Skip to content
Chandima's Blog
What you think you become.

Primary

  • SAUSECODE.COM
  • Blog
  • .LinkedIn
  • .Github
  • .Hackerrank
  • .About me

Familiarize with these tools before going to Industry

Chandima May 8, 2021 computer science check list, industry, software engineering, technologies

Maybe you are following a Computer Science-related degree and wondering what things you can start learning even before going into the industry, or you are just wondering what type of tools commonly used in the software industry. From this post, I will try to fill that gap for you.

But before that, the first piece of advice I want to give you is, all the theoretical and fundamental stuff you are learning in your university courses is going to help you a lot. Maybe you don’t realize that now, but having a sound knowledge about operating systems, computer architecture, digital design, computer networking, programming methodology, software design patterns, computer security, data structures, and algorithms going to help you if you want to design and implement resilient systems.

Having said that let’s see some of the skills/technologies/tools that you can learn by yourself before going into the industry. I thought it would be intuitive to categorize them into the following 4 sections.

  • Software Design
  • Development
  • Testing
  • Deployment

Software Design

Software Design

Documenting

You will have to create design documents a lot. Usually, companies use private Wiki spaces to maintain the design documents and related documents. To create diagrams we use software tools like Drawio. So having sufficient written skills is a must for a software engineer.

Database Manager

You will have to design and create relational databases during the design or development process. Dbeaver is one of the great tools you can use for database management (Dbeaver is something like PHPMyAdmin for MySQL).

Development

Software Development

Integrated Development Environments (IDEs)

The widely used IDE is the Intellij IDEA. Some engineers prefer to use just the Visual studio code as well. You can just use any IDE that you are comfortable with. Make sure to familiar with not just coding and building programs but debugging using the IDE as well.

Version Controlling

Git is the widely used version controlling system among software companies. Every software engineer must be comfortable with working git. Try to maintain your codes in Github or Bitbucket. Have a look at this article to learn more about git workflows.

Dependency Management

Maven and Gradle are widely used dependency management and build automation tools in the industry. I recommend you to explore Gradle more. Gradle scripts are written using a programming language called groovy. Learn groovy and understand the components of Gradle build scripts properly. The knowledge you acquire from learning Gradle/groovy will save you a lot of time later as well as let you write your own customized build scripts. Apart from those two npm is a widely used package manager for JavaScript-related projects.

Programming Languages & Full-stack Understanding

The programming concepts that matter the most rather than knowing few languages. My personal openion is as a learner, it’s better learn C language first. Because, you can map with the things you learn in Operating systems, computer memory in Architecture while writing C programs.

In the industry most widely used programming language is Java. So having sound knowledge of core concepts is a must. Then you can try learning Java frameworks like Spring Boot. Usually, most of the backend applications are written using Java frameworks in the industry. Meantime, explore how you can create backends using other languages like Python (Django, Flusk) and JavaScript (Nodejs).

In the industry, most front-end applications are written using JavaScript libraries or frameworks. But even before using those frameworks or libraries, I suggest you start with simple HTML + JS + CSS first. Once you understand them, then learn how you can use Bootstrap library instead of vanilla CSS. You will see a lot of frameworks still use Bootstrap. Then, try learning how to create front-end applications using ReactJs. Meantime, you can explore Flutter as well. Flutter has a sort of different programming style compared to previous ones.

Learn about different software architectures. Apply your computer networking knowledge to understand what’s really happening underneath. Learn about REST API fundamentals.

Project Management

Most of the software engineering teams follows Agile Scrum methodology. Learn and understand how it works, what are the benefits of following Agile?

Testing

Software Testing

Unit Testing, Performance Testing and Code Quality

You need to write unit testable and maintainable code. Try writing unit tests while doing your university projects as well. There are many libraries out there for unit test writing for every programming language. Junit and Mockito are few examples for Java and unittest is an example for Python.

Meantime, getting familiar with JMeter tool. It’s widely used for performance testing and report generation.

You must write programs adhering to certain programming standards. The quality of the code is analyzed by tools like Sonarqube. Get familiar with Sonarqube as well.

Deployment

Software Deployment

CICD Pipelines

Usually, separate deployment environments are maintained for Development, Testing, and Production. To make the development and deployment smoother CICD (Continuous Integration & Continuous Development) pipelines are used. Usually, these pipelines are created using Jenkins. So it is good to have a basic understanding of how to use Jenkins.

Cloud Services

Companies tend to use Cloud services to create their infrastructure for a number of reasons. If you can utilize cloud services in your university projects that would be beneficial for sure. Amazon Web Service (AWS) and Microsoft Azure are widely used cloud service providers. Read the documentation, watch youtube videos and try to map the things you learn in courses with their services.

You will see containerized applications a lot. So getting familiar with Docker.

You will most probably use Linux operating system for development and also in the deployment environments. Therefore, getting comfortable with using Linux.

How to let the scripts run in the background [ssh]PREV

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary

Search the blog!

Recent Posts

  • Familiarize with these tools before going to Industry May 8, 2021
  • How to let the scripts run in the background [ssh] June 6, 2020
  • NoSQL vs SQL Databases in a Nutshell June 5, 2020
  • SSH to a host through multiple jump hosts. [Linux] April 30, 2019
  • GNU – Octave [matlab equivalent for linux] – This is how you can install packages January 22, 2019

Categories

  • android (11)
  • applications (2)
  • apps (4)
  • arduino (2)
  • avr (1)
  • blog-android (2)
  • blog-arduino (1)
  • computer science (1)
  • database (1)
  • embedded (1)
  • emui (1)
  • games (1)
  • home made (2)
  • Honor 3c (6)
  • how to (15)
  • huawei (6)
  • java (4)
  • kali (7)
  • kitkat (1)
  • learn (10)
  • linux (11)
  • networking (6)
  • octave (1)
  • PC Apps (1)
  • pi4j (1)
  • programming (3)
  • pyqt (1)
  • python (2)
  • raspberry pi (1)
  • remote controlled (1)
  • Server (3)
  • tech (4)
  • tutorial (8)
  • Verilog (1)
  • windows (6)

Tags

2018 aero plane android Android 4.4.2 android app player android apps on windows class cross-platform file honor 3c honor 3c custom unicode honor 3c sinhala how how to how to install how to install custom unicode huawei honor 3c install custom font in honor 3c install custom unicode install unicode interfaces java kali language linux network opengl programming pyqt python remote run scripts server sinhala sinhala app sinhala for huawei sinhala installer sinhala unicode sinhala unicode for honor 3c sinhala unicode installer sinhala unicodes Sri Lanka ssh to

Archives

  • May 2021
  • June 2020
  • April 2019
  • January 2019
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • April 2018
  • March 2018
  • October 2017
  • February 2017
  • June 2016
  • July 2015
  • January 2015
  • December 2014
  • November 2014

"I hear and I forget, I see and I remember, I do and I understand." ~ Confucius

© Copyright 2020 SAUSECODE LABS | Chandima Samarasinghe