We know that CodeGym students want to hear the stories of those who are already working in IT. We've taken matters into our own hands and launched a series about developers from various countries and companies, who completed our Java training. This story is about Android developer Dima, who left the hotel business to pursue a career in programming. He mastered Java and Android in a year and a half and got a job as a developer.The story of software developer Dima: "Writing code is much more interesting than testing it" - 1

"I got up every day at 5-6 in the morning and studied before work."

I have higher education in the humanities with a degree in hospitality management. So after graduating from university, I worked with customers at a company involved in the hotel business. At that point, I realized that I wasn't interested in the field for a couple of reasons: working with people is not as easy and pleasant as I had believed, and salaries are also not very high. Over time, I had the opportunity to move to the product department (the company has an app and a website for booking hotel rooms), since a vacancy opened in the quality assurance department for testing mobile apps. I was able to land the job, but I did not have the necessary experience. In the course of my work, I ended up writing automated tests, and I started programming. It was then I realized that writing code is much more interesting than testing it. A question arose in my mind: where do I go to study? At that time, I already knew about this course, so I started to work through the course. I completed 20 levels and began to think about where to go next. I decided that a good option would be to go into mobile app development. I can't say that the knowledge I gained from 20 levels was enough to become a junior developer. I learned syntax and Java Core concepts, but it was just knowledge with no practical work. Rather, it was a foundation for trying to write code. In addition, I read two more books on theory. With this baggage, I went into Android development. I had a training plan: I got up every day at 5-6 in the morning and studied for 2 hours before work. I also studied whenever I had any free time (for example, if as a tester I was waiting while a developer was implementing new features): I completed programming tasks during the day. I completed 20 levels in 1-2 months. Following my schedule, I spent 1-4 days per level. After this course, I went through several courses elsewhere on Android development. I first turned to a basic course on Android, figured out what was what, and further deepened my knowledge. The Android world has its own zoo of various libraries that are considered industry standards. There are 5-6 main libraries and there is no point in going to job interviews if you haven't studied them. While working full time, my whole educational endeavor took about 1.5 years. If you study 8 hours a day, you can do it in six months.

"Unsuccessful interviews bolstered my foundation"

I had an understanding with management: I would study and they would hire me as a developer. But this plan didn't come to fruition. A senior developer quit, and they couldn't find a new one for a long time. I realized that there was no point in waiting and had already started looking for other job openings and going to interviews. In some instances, I didn't like the company. In other instances, I wasn't a good fit and didn't receive a callback. If I failed to answer a question in an interview, then I went home and studied the topic so I could give a good answer the next time. Unsuccessful interviews bolstered my foundation. As a result, I managed to get an interview at the company where I worked for two years. At that time, I already knew all my weak points and was as prepared as possible for difficult questions. I got a job at an outsourcing web development studio that performs custom development for various companies. Clients include Gazprom Media and TV channel TNT. Our company inherited this project from other developers. It was in bad shape: the code was written based on outdated standards. At the time, it was already about 5 years old. Another junior dev and I were put on this project. We were fortunate: we slowly figured out the code, helping each other. Over the course of 2 years, we made the codebase presentable. Because the project was initially poorly written, I was able to understand Android and break into this field. In this job, I negotiated to work remotely while abroad for about 3 months. This allowed me to travel to Bali and work from there. I didn't find that challenging, but it all depends on one's internal self-discipline and self-organization. I enjoyed getting up early. I started to work at 4-5 in the morning Moscow time. That was an hour when nobody would be chatting, so I had time to get a lot done. By lunchtime in Moscow, my work day was done.The story of software developer Dima: "Writing code is much more interesting than testing it" - 2

"Anyone from any field can master programming"

After I returned to Russia, I worked for this same company for some time. In May 2020, I left to accept a better position at the grocery company DPD. We develop and maintain courier apps: apps for couriers and separate ones for customers. I work on two apps at once. I recently brought the customer app to its first release. When I was hired, it was only partially ready. I had to finish it and push it out to Google Play. The second app, the courier app, is an old app with a lot of legacy code. Since there was a lot outdated code that I worked on previously, I had experience with working with legacy code. That has helped me a lot in my current job. Literally one month ago, I successfully passed my probationary period. Programming requires problem-solving skills. These skills can be acquired in a variety of ways. Mathematicians and physicists and those with a technical background cultivate these skills by default. We can say that it will be a little easier for them to take up programming. In general, I believe that anyone from any field, who has the desire and interest, can learn programming and become a developer.

Tips for beginner developers:

  • Read the book "Java Programming for Children, Parents, and Grandparents" by Yakov Fain. Once upon a time, this book helped me a lot, since IT is not my background and I had to learn many concepts from scratch. This book explains the basics of programming in a very simple format. Reading it before you start your studies greatly simplifies the process.
  • Create a clear training schedule. If someone tries to study several hours a week without a schedule, they're going to be disappointed. That is a recipe for forgetting what you have previously learned and failing to to make any progress. The right approach is to learn a little, everyday. Then you'll see progress.
  • Advice about Android: You need to be familiar with the main libraries. Find some tutorials on these libraries and try to write code to understand what tasks they solve.
  • You can prepare for "interview questions", since many of them are online. There are employers who like to ask a trick in order to check an applicant's general intellect. You need to be prepared to answer those questions as well.
  • During interviews, show your interest and desire to learn. Someone may initially not know something, but they can quickly take in new information and quickly solve problems on the job. That is always valued.