A year ago, I had almost zero experience in software engineering. Yet, this was something I ever wanted to do. So when I got the opportunity to become one, I jumped right into it.
In this article, I will tell you about my learning journey. I will share my experience and the things that helped me go through difficult times. Let’s go!
Yes, coding is hard and frustrating. The coding challenges I do every day on Leetcode or Hackerrank are challenging. Yet, this is the reason why I am doing them (almost every day). And I like it. Being a good software developer is about solving problems. And the least resources you use, the better it is because you are saving time and space (hence money).
In the beginning, it was difficult to solve even one challenge. But, as you may know, everything becomes easier if you decide not to give up. Many resources can make you a better problem solver. One is Hackerrank, the other one is Leetcode. I also recommend AlgoExpert if you can afford it.
The feeling you have when you solve a problem is great. You feel more competent and happy. Yet, in most cases, there is a better way to solve your problem (using a faster algorithm). So be always willing to improve your code and algorithms.
When I was starting to code, I had no idea about what the big(O) notation was. So let me save you a lot of time right away: you need to start there. Don’t try to solve a coding challenge without learning what big(O) notation is first. This will help you think about your problems with efficiency. It’s pretty simple and there are a few resources that can help you understand it:
I meet with my team from Monday to Friday to do coding challenges and talk about our days. This is very important because it keeps you motivated. Plus having people that share your goals helps hold yourself accountable. There are many ways to have coding partners. Go to Facebook groups or popular Slack groups and ask if anyone needs a coding partner.
When working with an experienced developer, you can feel like you are not competent. Know this is false. You can achieve anything you want as long as you put the time and work into it.
Failing is part of the process. The more you “fail”, the more experience you get and the better you will be. I have seen developers “fail” a lot. And in that process, they improved themselves. So instead of dreading it, embrace it.
Especially when you have a hard time learning a new language. If free resources don’t help, you can choose to buy a course on Udemy. For example, when I was learning Ruby On Rails, I chose to invest some time in a course. Haven’t I taken that course, I know my learning curve would be a lot steeper.
The same goes for Javascript or any other language. If you don’t see any help in what you are learning with free resources, you can always choose to invest your money.
Don’t hesitate to ask for help. But, you have to try whatever you can first to solve your problem. Why? Because if you get help the easy way, you will not internalize the solution.
On the other side, if you have struggled for some time, you will get a better reward if you ask for help. Plus the person helping you will know that you tried your best. This can make him more willing to help you.
One of the most popular websites for having help is Stack Overflow. You can use it to find solutions to your problems. In most cases, there are already people who had your problem in the past.
If you are about to learn to program, know this is worth it. Programming is an in-demand skill. And a good developer shouldn't have much problems finding a job in that field. Yet, as any valuable skill, you have to put in the work long enough to become good at it.