5 Skills a NEW Software Developer should have!

A list of 5 important skills that you should have in your skillset if you are joining as a new Software Developer

Hrishikesh Suslade
6 min readJun 3, 2020
Photo by Max Duzij on Unsplash

The month of June-July and August is the season of college graduates starting their new jobs. A new job is full of challenges. Adapting to a new environment is a big task, you have to interact with new people, new technologies, and what not! But, there some skills that are pretty common irrespective of which software company you join in. Having a good command over these skills will surely help you in adapting to this new environment!

I will be sharing why you need to know these skills, how will they help you, and from where you can master them.

I also will be joining Amazon as an SDE within the next few days, so you guys must be wondering

“How come he knows what we should do?”

Photo by Hello I’m Nik 🎞 on Unsplash

The answer is My Internship at Amazon! I understood, if we have a good command over these select skillsets it will be very easy for you to work and adapt easily! By the way, I learned this the hard way!

So, I hope you’ll listen to my advice and don’t make the same mistake that I did!

So let’s begin!

1. Git or Version Control

Every Software Development Company has some of the other distribution. You’ll be working on projects which might have 100s of contributors, 10s of version, and various modes. Version Control is very important at this level. Having a good command over Git is very very important, there is a reason why it is at the top of my list!

I’ll suggest having a medium to intermediate level of proficiency with git commands, you’ll learn more about it by working on it. Plus every company has a variation of git so you’ll have to learn some new methodologies and commands.

Also, mastery over git is not at all restricted to just commands! Documentation and giving proper commit messages is also important! Having some knowledge of Markdown will help you in doing this.

Introduction to Git and GitHub course on Coursera by Google is a really detailed course and has all the core topics that you are most likely to use practically.

For beginners, Progate has a very interactive learning track, it is very easy to understand, but it is very basic.

And there’s always a lot of resources on YouTube too! So, learn from wherever you feel comfortable but learn!

2. Command-Line or Bash

99% of developers work on some or the other form of LINUX. And command-line tools are very important if you will be working on it. Not, just that you’ll need them everywhere deploying your projects, setting up Cloud Virtual Machines, and where not!

Photo by Markus Spiske on Unsplash

A software developer without the knowledge of Command-Line tools is like a car without tires. I’m sure you don’t want to be that!

There numerous commands you don’t need to focus on all of them but having basic knowledge about it will surely help!

Master the Bash Shell course on Educative is a good place to learn. It has just the right things that you need to know!

P.S. I strongly recommend using ZSH command line, it makes your life a lot easier!

3. Object-Oriented Programming OOPs

If you are a Software Developer it is very much likely that you will work on some kind of OOP based programming language. Java, C++, and C# are some of the common languages that you might work on! And you’ll be working on legacy code which is complex and built using OOP.

Having your OOPs concept will help you in understanding the codebase easily and consequently, you’ll adapt to the system quickly! There are lots of things to study but having strong basics will surely be a good thing. Also having good knowledge about one of these languages will be really great.

Learn Object-Oriented Programming in Java on Educative is a good course where you can brush up your OOPs Skills.

4. Design Patterns

Along with OOPs Design pattern is also heavily used in the industry. Design Patterns make the software much more efficient and modular, there are many other advantages of using it. You’ll hardly see any code written without design patterns being implemented.

Photo by Ron Whitaker on Unsplash

It is a very complex concept and vast too, but its knowledge will surely help you!

Software Design Patterns on Educative and YouTube playlist — Design Patterns in Object-Oriented Programming by Christopher Okhravi are some good resources to study Design Patterns.

If you are a book person Head First Design Pattern is a book that you’ll love. It is very detailed but will clear your concepts from top to bottom.

5. Soft Skills and Writing Clean Code

You must be thinking what is this? I want to be a Software Developer, not a Manager!

I know but communication is an important part of development! If you can’t convey your ideas clearly it will be very difficult for you to survive!

Photo by NEXT Academy on Unsplash

At the end of the day, we all are Sales Man, the only difference is that we are selling our ideas!

Coming to clean code, your code will stay forever, will be read by 1000s of employees of your company, refactored infinite times. So, if you keep a practice of writing neat and clean code, you’ll save a lot of hardships for you and your teammates!

Clean Code by Robert Martin is a must-read book, it has some great tips and guidance that will help you write understandable code.

There are many other skills too such as Cloud Computing, Code Pipelines, build systems, or even IDE knowledge. But, you can learn them gradually after you start working.

No one is perfect! Even I don’t have mastery over all these skills, but what I know is I need to have good command over these skills to be a better Software Developer. And with practice and consistent efforts, we can master these skills.

I hope these tips and resources will help you become a better software developer!

Don’t forget to signup for the newsletter so that you won’t miss any of my tips!

I recently started a YouTube Channel, don’t forget to check it out!

Thanks for reading!

Happy Coding :)

--

--

Hrishikesh Suslade

Software Developer @Amazon | Tech Enthusiast | Blogger What's the fun in living an easy life? That’s all about me! https://hrishi84.github.io