We continue a special series on our blog about developers who’ve studied at CodeGym and now work in our company, creating and improving the product. It's the story of Alexandr, who earned a degree in International Business because his father wanted him to follow in his footsteps. Alexandr was always pretty good with computers, knew a bit of HTML/CSS, and one day he decided to switch a job. Now Alexandr is a developer at CodeGym, he creates new tasks for the course and tests new course projects. “My only regret is that I did not do this earlier”: a story of Alexandr, developer at CodeGym - 1

“I first started thinking about switching to IT in 2016”

I was born in Lithuania. My Ukrainian parents came there for work right after graduating from a university in Ukraine. I spent my youth in Lithuania and then went to the UK in the 90s to study English. I stayed there to finish secondary school, then entered one of the UK's universities on the south coast to study BA (Hons) in International Business. The choice of the university course seemed relatively straightforward to me back then since my father was involved in international business, and I wanted to follow in his footsteps. However, looking back at this decision now, I wish I had studied Computer Science. I started thinking about switching to IT in 2016. I wasn’t working at the time and tried to find something similar to what I did before or choose a completely different and more exciting profession until it’s too late. I chose IT because I was always pretty good with computers, knew a bit of HTML/CSS, and still regretted not studying something computer-related at university in the back of my mind. Somehow I knew that I could make it in this field. I started researching all sorts of options, including programming (backend/frontend), systems administration, and others, before finally deciding that programming looked like the most applicable option for me. After narrowing down the options to "programming," I spent over two weeks researching different languages: where you use them, what for, and which popularity’s growing. After that, I started looking at free courses which taught various programming languages and practicing. It was hard to fathom whether I would actually like a particular language without working with it.

“I came across CodeGym in one of my searches and decided to give it a go”

I eventually ended up narrowing down my list to two languages: Python and Java. Python was really on the rise back then, but my final choice went to Java. One of the first things I liked most about Java is that it’s a strongly typed OOP programming language and also platform-independent, so I didn't need to choose a specific platform. Many companies use it, from start-ups to huge enterprises. So, I knew that if I learned Java, I might have a better chance of finding a job and then more opportunities to switch between industries if I wanted to. Once I decided that Java was "The One," I started looking at various resources where I could learn the language properly (and preferably for free). I watched some Youtube videos and looked at multiple websites with free/freemium courses, but they were all missing something for me. Finally, I came across CodeGym in one of my searches and decided to give it a go. After all, the website looked more professional than most other Java-related websites, and I liked the structure of the course. Back then, I could go through 10 levels for free, so I signed up and quickly got sucked into completing the course tasks. It also helped that there was quite a big community of other students who answered questions if someone got stuck. All in all, I decided to stick with the CodeGym course and top it up with some Youtube videos and other research when and if required. I remember not going through 10 free levels before purchasing an annual subscription. I already knew that I wanted to finish this course, and the paid subscription was an extra motivation to crack on.

“What also helped is that I was not alone in a similar situation”

I did not have a specific timeframe to finish the course. I knew that I wanted to go through it as quickly as possible, but at the same time, I wanted to learn the language properly. As far as I remember, it took me around three months to complete the first two quests. The rest of the course dragged on for a long time because I started working and didn’t have much time to study. I restarted the course a couple of times to repeat what I had learned before proceeding to other quests. With the unfortunate stop-start nature of my learning adventure, I spent around two years going through the course. One important thing I recommend to anyone just starting to learn any programming language is to avoid long breaks, or you will eventually have to go through theory/tasks again. When you are starting to learn, it is essential to keep going. Otherwise, it is easy to forget what you have learned without continuous practice. I didn't need extra motivation until I ran into challenging tasks towards the end of the second quest. Two thoughts helped me keep going:
  1. I am halfway there, and it would be stupid to give up now.
  2. This is a chance to change my life, so I need to keep my head down and deal with the difficulties.
What also helped is that I wasn’t alone in a similar situation, and there was plenty of help in the course forums and online. As I’ve later found out, researching and asking questions is one of the most common "jobs" that every professional programmer must constantly do, so don't let complex tasks demotivate you. There's always help available somewhere. Multithreading is probably one of the most challenging topics for me. It's just harder to grasp some of the syntax and theory. But that's just me. It could be something else for others. It is quite individual and depends on your level of logic and the ability to understand the information provided.

“If you find coding attractive in general — do it”

CodeGym is my first work as a Java Developer. Right now, I am primarily involved in creating new tasks for the course, testing new course projects, and maintaining/administering our CRM. I still have a lot to learn, so I want to ensure I can cover all the basics well. It includes not just the language itself but also the required "extras," such as databases, frameworks, etc. I want to become a Senior Developer one day and help new guys like me start this exciting journey. I now know from personal experience that becoming a Java Developer is not a small feat, and at the beginning, you need all the help you can get from your senior colleagues. I am also thinking of trying Android development in the future once I have a lot more experience, as I feel it could be pretty interesting. I’d love to create an app that I’d use daily. I keep thinking why I haven’t done this earlier. I suggest that if you find coding attractive in general - do it, don't hesitate. Cause you will either soon change your mind and keep working in your same old tedious job or keep wasting time thinking "should I, shouldn't I" while others study and find employment. Unless you try, you wouldn't know. The faster you try, the quicker you will find out whether that is the career change you want or no. In the second case, you’ll stop wasting your time thinking about it and move on. The way things are changing in today's world, programming is one of the top career choices, in my opinion. And the significant benefit is that you can work from anywhere in the world. After I got into IT, I felt much happier working in a friendly and open-minded environment. I can talk to the boss without scheduling appointments days/weeks in advance. I can ask my colleagues any "stupid" questions, and they will gladly help, as they were in the same position once. The whole atmosphere here is much better than in my previous jobs. Overall, I am glad I made the switch, and, as I mentioned before, my only regret is that I didn’t do this earlier.

Tips for newbie developers:

  1. Try to dedicate at least a couple of hours per day (if you are working or studying full time) to learning Java. If you can devote more than that, that would be better, of course. On top of the information provided in the course lectures, try researching extra materials on Youtube/Google with practical examples and explanations. I find videos more helpful when learning to code since I can see real examples and the logic behind the code. Look out for discounts on Udemy or other services, where you can get a beginner course for just ten bucks sometimes. That should also help you grasp the essential theory.

  2. Try not to skip any tasks. I know that it's very tempting sometimes to go ahead and skip the most challenging tasks, but that's going to be counterproductive in the long run. If you are stuck on a difficult task, research more online, ask questions in the course forum/help sections, and I'm sure you will be able to come up with a solution.

  3. To summarize, spend as much time per day as possible learning Java, do further research, and don’t skip tasks. Also, remember: it's important not to have long breaks (even for holidays!).