Why is it so difficult to find your first job
Software development is a rapidly growing field, but that doesn't mean that it's easy to get that first developer role. There could be many reasons, including lack of professional experience, an outdated Github profile, or not understanding the fundamentals to pass technical interviews. In this post, I'll provide a high-level view of the challenges and additional tips in getting your first dev role. I won't be going over creating personal projects, job postings, and resumes, as that will be in separate posts.
0 to 1 versus 1 to 2
It is much harder to go from 0 to 1 than from 1 to 2 in most things you can learn. Let's say you're learning to play the guitar. There is a massive barrier between 0 and 1, and most people give up while trying to break through this barrier because it is challenging and requires lots of consistent practice. Another good example is a rocket, and it requires a tremendous amount of effort and resources to get from the ground to space.
A rocket needs to speed up to at least 17,800 miles per hour โ and fly above most of the atmosphere, in a curved path around earth. This ensures that it won't be pulled back down to the ground. But what happens next is different, depending on where you want to go.
source: spaceplace.nasa.gov/launching-into-space/en
Once you're in space, you already won the fight against gravity, broke through the earth's atmosphere, and you went from 0 to 1. Gravity here is your resistance to change and to learn new things (found in every human being). Now from 1 to 2 and forward, it is much easier also because you have momentum.
This analogy works for learning Software Development or finding a job as well. When it comes to learning Software Development, going from 0 to 1 means learning the basic concepts, which are the tools you will use for the rest of your career no matter what languages you use.
Now on job hinting, going from 0 to 1 is landing your first job because it will be challenging! Accept this challenge and study, face reality, be honest with yourself, practice interviews, learn the essential concepts, and do not give up! You will eventually land your first job, and after that, things will be a lot easier for you.
The switch that flips once you land your first job as a developer
Many recruiters will start reaching out to you because now you have professional experience, and you may be a potential fit for other companies. It is harder to find a job when you don't have any experience because your skills are not as marketable yet. It is similar to compound interest. The more you study, the more capable you become and your growth is exponential.
My suggested plan of attack for this quest
First, the behavioral part
Do journaling every day
Journaling will help you improve awareness, track your progress and keep yourself accountable. Since you are doing journaling, do your weekly planner because journaling will become more manageable as you check your planner every morning. You will know what tasks you need to do today to help you accomplish what you planned, here is an example of a weekly planner. And yes, you will fail multiple times until you manage to stick with the habit of journaling every day. For every new habit you start, keep in mind that it will require numerous attempts to get it right, and learning is a process that consists of trial and error.
It is ok to feel frustrated in the process. Just keep going because you will notice your progress, which will motivate you to keep going until you reach your desired goal. Always compare yourself with yourself, if you compare yourself with others, you are doomed to the same major problem people have with social media.
Prefer systems instead of goals
Having goals is important, but after reading the book Atomic Habits, it became clearer that creating systems to maintain good habits is better than having goals. When someone focuses on a goal, they will usually focus on the outcome and not on the 1% progress done every day you repeat the good habit. Focusing on the result will lead you to a frustrating journey because it requires multiple attempts to reach the goal. Instead, concentrating on a good routine and using a system to help you stick to it is a better approach.
You will learn to enjoy every little progress you make towards your goal. I find it hilarious that focusing on the habit will increase your chances of reaching the goal, but focusing on the result will reduce your chances. The idea connects with the concept of positive reinforcement, every time you make a bit of progress towards your goal, it feels rewarding, making you more motivated to keep going.
Drink water, go for walks, keep your body moving!
Your brain is part of your body, and you want to have it working at its best. Some people tend to forget that mind and body are a single thing and taking care of your body also means taking care of your mind.
Ensuring that your daily routine includes drinking enough water (around 35 to 50ml per kg), having a balanced diet, getting enough sleep, and exercising not only improves your overall health but adds a lot more oxygen and nutrients to your brain. This routine is the best way to increase mental performance significantly.
Once you understand how the machine works, you know how to make it perform well.
You already need to do these things in a usual routine, but I am reinforcing the idea here because when you are going through challenges such as job hunting, you need to put your body and mind at their best state.
Second, on what to study and in what order
Study the javascript fundamentals first
Understanding how the language works and its details will get you a long way. Always practice by writing code to reproduce everything you learned. It can be on Codepen/Codesandbox or a local project. I find it easier to open an online editor because it does not require setup. Practicing this way is fantastic! With no setup, you avoid laziness traps and self-sabotaging yourself.
Make things easy, so it is easy to stick to your habits. The fewer steps you have to do, the easier it becomes to stick to the routine. Removing the setup step is like waking up and having your clothes and shoes right beside your bed, so you just put them on and go out for running. When you need to find/choose these items when you wake up, your chances of giving up or spending more time than usual are high.
Study problem solving
This part can be the most challenging part for some developers. You have to practice problem-solving on websites like Leet Code, Hacker Rank, Code Kata. When you have solved enough problems, you will become faster at navigating problems and will solve them faster. Practicing will eventually make you learn techniques that are needed to solve complex problems.
If you don't practice, you may still be able to solve the challenges, but during your interviews, you will never have enough time to solve them, and that's why you practice becoming faster at navigating through the problems. During technical interviews, if it is live-coding, you will have 40 to 50m to solve multiple coding challenges.
If it is a take-home exercise, you have more time, but there is usually a deadline, so you have to be fast again. No matter how good you are, you won't pass if you are not solving the problems fast enough. Remember to take breaks when you're studying. Something like the Pomodoro technique can help you.
If you study for hours without a break, you may get stressed/stuck and only realize that when it's too late. I take a 5m break every 30-40m. It helps me to reset my mind, ease any tension and walk to get some blood flowing. Practicing problem-solving can be painful at first, but just like doing workouts, it becomes easier after a few days because you become stronger! Keep in mind that problems will never get easier, you get stronger!
Do not give up!
The journey is as rewarding as it is tough, and you will need multiple attempts to land your first job, but it will be so satisfying once you do that you will thank yourself for not giving up. You may sweat, cry, feel frustrated, get rejected, or all that together but do not give up! Frustration is part of the learning process, so embrace the reality and learn with every experience.
Practice awareness and try to understand what happens with you and with the world around you. Understanding what is happening plays a significant role in solving a problem with your life, your job, a coding problem, with everything. If you don't understand the problem, you can't break through the frustration.
The last thing I can say is to teach yourself to enjoy the learning process. Every journey is unique and has something to teach you. The interview preparation process will make you a better developer because it forces you to study and grow, so all your effort will 100% reward you.
I hope this was helpful to you :)