How I got into programming
I studied at the university in the IT specialty, worked a little as a system administrator, and after graduation I got a job as a WEB developer in a construction company. But there was not much work, but in the adjacent department, which was engaged in 1C development, there were plenty of tasks. I started to help them gradually and eventually started working with this language.
In 2012, I came to Lamoda in the 1C development department and stayed there for 7 years. At the very beginning of my work, all product distribution processes were automated using 1C. Our own photo studio also worked on it. All this was included in one big configuration based on the 1C: Integrated Automation solution. It also had accounting and personnel records.
Gradually, some parts were removed from the large configuration. The first was a photo studio, which was rewritten in PHP. Then the company began to implement Microsoft Dynamics AX, and the goods distribution and accounting department switched to it. Personnel accounting moved to a separate ready-made solution 1C: ZUP.
But at the same time, the company expanded, new branches were opened in the CIS countries, and in most of them personnel records and bookkeeping were conducted using 1C, and our Moscow 1C development department was engaged in support. Most of the tasks were solved remotely, but once I even went on a business trip to Kazakhstan to implement a project in a branch.
My career was successful – why did I decide to do something else?
In our team at Lamoda, we tried to write in 1C efficiently and apply modern approaches. We focused on the recommendations of the 1C company itself and on how the basic configurations are written.
I loved my job. I wanted to dive deeper into development, to grow professionally in programming. I read books, articles, but due to the peculiarities of the 1C language itself, and the development environment, many concepts are simply inapplicable for it. Compared to other popular languages - PHP, Java, C – 1C is quite simple, and it lacks a lot.
There was one more thing that I didn’t like. In 1C, you can’t just be a developer. You should be well versed in the areas that 1C automates – this is mainly accounting, tax accounting, payroll, plus some other parts of the business that are implemented in this language in the company. All this was not very interesting to me, since I liked programming more.
I didn’t know how I would develop further if I stay in 1C. I had basic certifications (several Professionals, 1C Platform Specialist). The next step is certification as an Expert 1C. The exam there is quite difficult, and either I had to start preparing for it, or go into some other area.
In the end, I admitted to myself that yes, I like 1C, but not enough to go with it to the level of an Expert =)
How did I choose which area to go to?
1C has a big plus – the high demand for developers. You can find a job in almost any city in Russia. I wanted to choose a new region that was also popular enough so that, if not in every city, but in large cities, there were vacancies – and not only in Russia, but also in the West.
I wanted to choose a powerful language, not a niche one. So that you can use a convenient development environment – in 1C this is not very good. There is a solution 1C: EDT, which allows you to make some extra effort and use not the built-in environment (Configurator), but Eclipse. However, in 2018 we found it rather crude and unsuitable for everyday development, so in Lamoda we continued to write in the Configurator.
Mobile development seemed to me a very promising area (and I have not changed my mind until now). All that was left was to choose between Android and iOS, which was easy enough, because I already had experience in Java development at the institute and wrote a small personal project for Android back in 2011. Therefore, I decided that it would be easier to restore and deepen knowledge in this particular area.
Preparing for the transition – self-study
I began to actively study theory, which took a little over a year. I did it myself after work and on weekends. Initially, I was very serious, I chose a pace so as not to burn out and bring the plan to the end.
I immediately decided that I would not take paid courses, but I tried to make my self-study quite structured. I started with a Google course, then added YouTube courses from Yandex and Mail.ru, plus books (mostly in Java). Of course studied Google’s official Android guides – there are many of them, they are of high quality and are constantly updated. At some point, Google officially recommended Kotlin as a language for Android development. I realized that I would most likely work on Kotlin, and added it to my training program.
On the practical side of learning, at first I only made learning applications that didn’t carry much payload. But when I had already mastered the theory well, I realized that I needed to develop a full-fledged finished application that I could show at an interview. After all, I was going to get a job without any experience in this field. I needed to show that I can do something.
I started developing my application. I wanted it to have some kind of practical use, so I decided to make an app for a friend who was fond of collecting sports stickers. Then a second was added to one application. As a result, my friend was pleased, and I had a finished project on github, the link to which I attached to my resume.
Moving to a new (?) Place of work
Finding a good job without experience in a new specialty seemed like a daunting task. I immediately thought about trying to move to the Android development team inside Lamoda. My 1C development managers could give recommendations that should help.
I wanted to know what Android development looks like in Lamoda. I installed and studied the company’s application as a user, but I wanted to learn more about the technical side. Lamoda has TechTalks – meetings within the company, where different teams make presentations about what they are doing, what technologies they use. They are open to everyone, and I started listening to reports from the Android development team. After internal speeches, specialists with the same reports go to the “outside world”. For example, recording of the report that I listened to, but already from the Mosdroid conference… From the reports, I learned what their tasks are, in principle, and at the same time began to study exactly the technologies that are used in the company – this helped me in the future with the transition.
In July 2019, a little over a year after I started learning Android, I decided that I was ready to work in a new field. I wrote a letter to the Android development team leader, went through a technical interview, and they took me to the team. And since August 2019 I have been working as an Android developer.
In a new place
The office has remained the same, but of course a lot has changed a lot. First of all, some technical things. The development environment is the main working tool, and it is very important that it is user-friendly. Android Studio versus 1C Configurator – heaven and earth. The feeling that you are just flying over a project in which you can very quickly find everything you need, figure out how and what works.
I was moving into a new field largely because I wanted to develop my programming skills in a powerful modern language. The move to Android fully met my expectations. Our team writes new code only in Kotlin, Java is needed to refine what has already been written. I like Kotlin a lot, it has nice syntax and is not as verbose as Java. Also, the language is young, and is made taking into account modern programming patterns.
The design principle turned out to be completely new for me. In 1C development, design is the tenth thing. The developer himself cares about the convenience of the interface for the user, as he understands it. And the entire audience of those who will see your forms, reports and processing is, in fact, limited to employees of your own HR and accounting department.
On the contrary, our Android apps have a very large audience, and design is very important here. Therefore, specialists are engaged in it, joint work with whom turned out to be an interesting new experience for me.
Android development belongs to the front-end, in which you are as close to the end user as possible and as far as possible from real business processes. The backend sends already processed data in a convenient format, which needs to be shown to the user in a pleasant way. Therefore, there is practically no need to understand the subject area, you can do more programming itself, which is what I wanted.
I like that our team has organized constant work with technical debt. We regularly refactor old code, rewrite from Java to Kotlin. This is an immersion in pure programming, when there is no need to even think about design: you take the old legacy code and rewrite it into a convenient, fast, easy-to-read one, in accordance with modern approaches. The habit of immediately thinking about the quality and convenience of the code, which I got back in the 1C development team, helped me a lot here.
What I miss the most from 1C development is the good detailed documentation completely in Russian =) And the Russian-speaking professional community on the Internet. In Android, 9 out of 10 cases, the answer to a question is only in English. So far, I read English more slowly than in Russian, and it takes more time to understand something.
In short: how to switch to Android from some other area?
- Explore theory. Or on paid courses, now there are a lot of them. Or self-study. There are good free introductory courses from Google and whole playlists on youtube … The volume of the theory is large (look, for example, at this roadmap), but if this is yours, you will be interested.
- Write your own demo application, which can be attached to the resume. You have no experience in commercial development, but future employers need to somehow assess your skills. The app will enable them to do this. The code needs to be posted to an open repository, for example, on GitHub.
- Prepare well for a technical interview… The first two points are needed to be called for an interview, but then you still need to go through it =)
- I advise you to get ready via telegram channels. There are good separate channels for preparing for general IT issues, questions by Android and in Java… It deals with all the basic questions that are asked in interviews. Many of them and we at Lamoda ask candidates. Now I myself take part in interviews, and when you can see that a person is prepared, it always creates a good impression.
These three points should help you find your first Android job.
If you have any questions, I will be glad to answer them in the comments!