This is part one of a three post series
Getting a job in software development can be anything but a walk in the park. There are so many things to learn and be open to, and equally as many pitfalls to dwell into. Throughout my search, I reached many new highs, as well as quite a few lows. I'm writing this post as a starting point in your job hunt, as well as a reminder of the things you need to keep in mind when looking for a job. Not everyone is in the same situation as I once was so do take some of this advice with a grain of salt - however, whatever advice you do keep, I hope it is of help.
I've structured this post as a series of Pitfalls and Opportunities (Fancy terms I'll use for Do's and Dont's) - if there's anything you want to add, any resources, anything - feel free to comment!
Taking on a job hunt is far easier (and more fun) if you do it with friends that are in a similar area as you. In my case, I have three good friends which all graduated from the same university in the same major - all looking for work.
We were able to ask questions to each other in a group chat, notify each other of an application open date, and share links to recruiting events. When times were tough, I really relied on this small group of friends to vent to, and we even held group calls. Having a small squad of people whom are in a similar situation as you not only helps you realize that you are not alone, but also that their successes can be and definitely are yours too.
This one's going to be controversial. In today's competitive entry-level market, the OA (Online Assessment) has become an unpopular pillar in companies' interview processes. No matter what your opinion is on it, you must take some time to get prepared for it, whether by using services such as Leetcode, CodeSignal, or a competitive coding site like Kattis.
The main problem with OAs is that they tend to be relentlessly challenging. Potential employers expect you to hop on a one hour session and solve novel problems of high difficulty. To increase your chances of success you must practice, unless you're a crack coder (please teach me your ways if you are).
It takes time and practice to get the hang of the key underlying principles of challenges. You have to build up a habit, and like many habits, it can be very easy to give up. However, it can also be very easy to completely immerse yourself into practicing coding challenges, which is not healthy, nor fulfilling.
I avoided the grind by gradually ramping myself up - the first month of my job search, I'd commit to solving one problem a day of any difficulty within one hour. I'd use it as an exploratory exercise - if I didn't solve it, I'd spend the following hour or so reading the solution and committing to learn something new. This built up and by the third month, I could solve two novel problems within an hour. However this is not a one size fits all problem, and there's a great list of guides for practicing found on Leetcode itself after you create an account.
Outside of Leetcode, I filled up my time taking MOOCs from edX/Coursera and reading books on topics I liked. This leads into my next point:
I completed my job hunt after graduating, and I didn't have any classes contending for my time. So, I had an opportunity to veer out to learn concepts that intrigued me and hopefully challenged me. Although I was in a rush to get a position, I still had to keep my knowledge sharp as a generalist, and generalize I did. I enrolled in an Algorithms course, Machine Learning course, some courses for Devops and cloud infrastructure, and even an Android course (I didn't finish the Android one - I realized I am more interested in WebDev/Machine Learning!)
Many of these courses consisted of high quality video lectures and assignments that felt like coding towards a Leetcode problem - however, with solid grading criteria, I learned to write better code, in my own personal coding environment. I learned different ways to wrap my head around a problem, which, when done at your own pace is really fulfilling. Try out different courses - many of these providers offer them at no cost to you to access lectures and assignments, which is truly zero risk other than your time.
The point being here - enjoy this opportunity that you have to learn, and try to challenge yourself in a non-grind manner.
I hope I was able to inspire you with some of the most important considerations in my job search. If you're interested, I accepted a position in the United States at Epic Systems - and I'm hyped to start there in the late Spring of 2021!
In my next post, I'll cover subtle reminders about the effects that luck has in your job search, the importance of networking (And a few sub-tips related to that), and avoiding something I like to call job hunter burnout. Till the next time, fellow developer!