Upskilling at a time of COVID-19 lockdown


We are going through unprecedented times. On an everyday basis, I am seeing my juniors revealing the news of their revoked job/internship offers, despite their calibre, despite their skills, despite being from the best of colleges. This situation might impact many more people, but the first brunt of the crisis has to be borne by fresh graduates, raison d’être their lack of industry experience.

Despite the scenario, something that is definitely in our hands is to upskill ourselves by learning the skills that we would have learned being on a job! This article is an attempt to help and guide fresh graduates to learn some very basic skills required to work well in tech companies — the exposure that we don’t usually get in college.

So here you go!



The importance of this skill cannot be emphasized enough. Just like you can’t read without knowing the alphabet, you can’t code without knowing the efficient use of this version control system. (Okay, this might be an exaggeration, but you get the point!)

In companies, you work in a team and teams write code together. You need to know how branching works, how merging code from various team members works, what resolving merge conflicts mean. These features provided by Git are meant to make the processes efficient, and if you are not well-versed with this skill, it can rob you off of some precious time which could have gone into designing another important feature (or your coffee break maybe).

Java — not just OOPS, but actual industry level Java

Well, this is if your job profile works around Java. The Java that most of us are familiar with comprises basic OOPS level concepts — which is just the bare minimum that’s required to enter the world of Java. So, if you are not clear with OOPS concepts, please stop reading further, revise/learn them, and then continue reading this article further.

Java has advanced multiple folds and there are so many features that you can learn. For starters, you can explore the Java 8 features. Simply knowing them is not sufficient, applying them is an art as well. The beauty of these new features is you can minimise the number of lines of code by leaps and bounds.

Do you know why 128 == 128 is true, but 127 == 127 is false, while using Integer wrapper in Java?

(Hint: explore the Integer class and its implementation!)

Unit Tests

I’m sure you had a boring software development course in college, which taught you the theory about unit testing, integration testing, regression testing and what not! Well if you are a developer, you are less likely to worry about the majority of the testing part, but unit tests are something that you may have to deal with on a daily basis. Learning the basics of some frameworks like JUnit and Mockito will come in handy!

SOLID Design Principles

Now, this is again something you haven’t heard enough in college, but as soon as you start working as a developer, these principles are your holy grail! When applied properly it makes your code more extendable, logical, and easier to read. A bad design can make the code inflexible and more brittle. Small changes in the software can result in bugs.

Now that we are talking about SOLID principles, it makes sense to explore various frameworks. You can explore Spring, which is a very powerful Java framework that has simplified Java EE development and made developers more productive.

The team you may join might not be using all features of Spring, maybe it’s using Google Guice as an IOC, Jersey for REST services and Apache Cayenne as an ORM. But this is something very specific which you can easily catch-up to, after having a piece of basic knowledge.


Ok, you’ve built your application. You’ve really brainstormed your way through the best design principles you could. You’ve tested it thoroughly. Now, how do you deploy it? Read up on it!

Tip: Apache Tomcat is something which is one of the most popular servlet containers available, it has been used to power a wide range of applications and websites across the Internet. You can learn about how Tomcat enables quick load and redeploy times.

Basic Unix commands

Unix commands are something you cannot escape. You will need them at some point, even if you are a holy Windows programmer. And, they aren’t so hard to learn after all.

You can go through this link as starters and explore further!

Basic knowledge of HTML, CSS and JavaScript

Well, whether you are in Front End Development or not, you might end up in a team that is into Front End Development. With the numerous libraries and frameworks available, it is very hard to pinpoint the exact things you need to know for being a great web developer.

If you are really interested, you can start going through the technologies mentioned here. Otherwise, a basic knowledge of HTML, CSS, and JavaScript can come in really handy.

Final words

It goes unsaid that practice and implementation are the keys to learning and retaining. I hope the skills mentioned above help you upskill, and the lack of industry experience does not hamper your bright future!