My Journey to Becoming a Software Developer
It was the summer of 2015. I was getting my second degree in mechanical engineering with a focus on mechatronics. I have moved to Finland for obtaining this degree. When I overcame adaptation issues I started to think of what I want to do in my future life. Doing mechatronics means that you are a specialist in the fields of mechanics, electronics and programming. After 7 years of studying in total, I have not done so much in the latter one.
Programming was always hard for me from the very beginning. I did not understand how to make this ‘for’ and ‘while’ loops make what I want to achieve in the end in order to solve a problem. Also after talking and partying with people from mathematical/programming schools in Russia I had an assumption that coding is for really smart guys.
One day, with exact this feeling and understanding of things around me I was browsing one of the social networks. There was an advertisement for free online coding courses. Out of curiosity, I have entered this link. My journey to the new software development world has started.
In this article, I will share my experience in getting the first coding skills and advancing them.
Finding the right courses
In the beginning, I did not understand how to transform tasks written by humans into code. After starting the online course, I realized that all the teachers and study programmes before were unsuitable for me because of various reasons. Here they are:
- A too quick movement from ‘Hello, World!’ to advanced topics
- A lot of theory with very primitive practice on the topic
- A teacher’s way of explaining is complex
We all have a limited amount of time in life. Of course, there are difficulties in the process of learning. For me taking challenges is an important part of self-development but it is such a relief to dismiss the course which is not feeling right for me.
The practice is a key
“In fact, researchers have settled on what they believe is the magic number for true expertise: 10,000 hours.” — Malcolm Gladwell
Maybe it’s not the exact number but the most important part here is that you should exercise a lot in order to reach the level of Junior Developer. I was practicing programming every day for 1 year before getting the first job offer. My goal was to do at least 30 minutes of it. Before sleep, I was reading ‘Thinking in Java’ which gave me a theoretical perspective and a good sleep, of course.
Experimenting while learning
Doing just courses is boring. Try to step up a little bit and think about some useful tools for yourself. When it is related to your hobbies, it will give the true benefit for leveraging up your life experience.
Sometimes it can be painful to do repetitive tasks. For instance, I was annoyed by checking the menus of 5 different canteens on different websites. I have found a solution to automating this boring activity of checking pages manually. Why not make a chatbot for that purpose? I was so excited to make my first menu scraper. I was coding my chatbot everywhere with every possible device because of Cloud9, online IDE. It gave me almost instant information on food in campus cafes.
Software skills are ephemeral
Learning is a very important activity. However, because of human nature, if we are not using the acquired skills, they will be forgotten after a while. I had exactly this case with Python. I have completed some really nice online course for using it in bash scripts and AWS-CLI. I have built small serverless function with Python and also used it for automation of data import at work. More than 5 months have passed from these times and it feels rusty to do development work with this language again.
If you want to be fluent in the language/technology, it will be great to use them from time to time. It can be a hobby project, even a small one. Although, websites with coding exercises can help. My favorite one is:
Codewars: Train your coding skills
Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest…
At this awesome website, you can solve not only random tasks but practice your TDD (test-driven development) approach. In the task, there are tests written by the author which you should pass. Also, there is a possibility to write your own ones in a special window.
All in all, the journey of adding a new set of skills can be challenging and curvy. I learned to not give up on doing what I like to learn and master. Software development looks hard in the beginning but it becomes easier after practicing like any other skill. Nowadays, I am happily working as a software developer. All these endless amounts of hours were totally worth it.