![]() |
Photo by Kalen Emsley on Unsplash |
Setting the Stage
Everyone of us across the world is suffering from the impact of Covid-19. From the health impact, to social loneliness, to unexpected layoffs, the immediate negative impact are just too many and on everyone of us.
In this article, I am going to focus one aspect of the Covid-19, the lacklustre job situation all around. It may seem that this is going to never end, however this is not the first time economy has been impacted like this. I have myself witnessed such dismal situations atleast twice 2002 and 2008.
The key to address this situation is to realize that right now if the market is low, it will rebound back in next 6–9 months, and what you have to do is to prepare for that upbeat mood when you can encash yourself.. . .
Preparation — Putting Finances in Place
In this article, I am going to detail about the computer engineers who are at the early stage of their career. The key to remember here is that you have to make yourself aloof of the financial stress. To achieve it,
Bring down all unnecessary expenses. Remember, its just about few months and then you can come back to your lifestyle.
Don’t do panic selling, Try to pool your finances and ensure you can sustain the EMI payments.
Preparation — Study Plan
With the finances aside, let us now look back at the problem of allocating time. The key here is that if you are unemployed, you must be ready to stretch upto 10–12 hours daily. If you are already employed, then you must strive for atleast 5 hours daily. The way you can do that with a job is to cut down on every activity that is not related to work.
Ideal Profile
Let us consider what I will look in an ideal computer engineer.
Good exposure to programming languages (5 Skills). An engineer who is well-versed with multiple kinds and styles of programming language, is a better computer engineer because they can better evaluate the solutions and also have better exposure to different abstractions and paradigms. I will typically put languages in the following clusters -
- C
- Python, Ruby
- Java, C++, C#
- Go, Erlang, Rust
- Clojure, Haskell, Lisp, Scheme, F#
Strong Data Structure, Algorithms, and Problem Solving (2 Skills). A great engineer is someone who can transform its daily problem into some classic algorithms or discover some algorithms. Usually any data structures book along with Algorithms by CLRS will suffice. You can add to your belt graph algorithms, dynamic programming by Richard Bellman etc.
Design and Software Architecture (2 Skills). Knowledge about UML, design patterns helps us in building on the known high performant, reliable patterns of solutions.
Fundamentals of Computer Science (4 Skills). Knowledge about operating systems, databases, networking, threading, concurrency.
Study Plan
If we look at the above ideal profile, it is evident that we are talking of close to 13 different skills, assuming that we are starting at the ground level. The study plan is spread over next 5–6 months with each skill taking approximately two weeks -
- [Stage 1 — Duration 1 month] Start with couple of programming languages, data structures and algorithms. Divide your day into chunks of 3 + 3 + 4 hours. The three slots correspond to two languages and DS+Algorithms. The key is to implement the algorithms in the language that you are studying.
- [Stage 2 — Duration 1 month] Cover up the remaining programming languages and try to implement as many non-trivial algorithms in them. This will set you up solidly for the expertise in the languages as well as the algorithms, in different programming paradigms.
- [Stage 3 — Duration 1 month] Ramp up on the software architecture. Go back to your code that you have collected till now and organize them. Refactor the code, look at their interfaces, can you package them into your own data structure library with bindings available in 5 languages, what design patterns can be applied, and so on.
- [Stage 4 — Duration 2 month] Go through and learn the fundamentals. Note that by now you have strong fundamentals in development and DS+Algorithms. Try to implement physical storage engines, implement different kind of distributed computing setups, network servers. Note that every of your little code goes into your personal Github repository.
Avoiding Distractions
- Keep reminding that you are building your profile and you will rebound back once the economy opens up and in much better position.
- You may occasionally give interviews in between but don’t hamper your study plan under any circumstance.
- Remember job market is always open for smart folks and ones who are ready to learn. It operates in cycles and such difficult times are just a mechanism to step back and enrich ourselves.
Comments
Post a Comment