What does it take to change your career path and learn a programming language? What resources do developers use to stay informed about the latest trends in mobile development? How to start your career as an Android developer?
I had a chance to talk about these questions with Roman Chekashov, a leading industry expert in Android Software Development, who has developed one of the most popular ridesharing apps in Eastern Europe that outperformed Uber in its market.
I started working as a sysadmin at a company in my hometown. Part of the staff was downsized, including developers. However, working with an external developer was too costly. The management decided to train the company’s employees, so I took courses on the 1C programming language. In the beginning, I’ve faced many challenges — it was hard to understand the structure and the way algorithms and conditions work. However, later I started getting good at it, got interested and enjoyed the process.
I decided to learn Java after my classmate shared his excitement about this language. I studied it with a private tutor and then found an internship to improve my skills. Later, unfortunately, all interns were downsized.
Luckily, a friend of mine contacted me and offered me a job as a Junior Android developer. Since then I have been working in Android development for about 9 years.
I was eager to change my location and live in a larger city. I started applying for jobs, received several rejections and finally got hired by a company where I worked for around 6 months. It was the first time I got familiar with Kotlin. I kept moving forward and found a company with better working conditions where I got hired as a Middle Android developer. This is where I currently work as a Tech Lead developer.
To get a senior position I worked as hard as I could. As a result, the productivity of the team significantly increased, we released an app almost on time. After that, I got a promotion due to my great contribution and diligence.
Getting a tech lead position was a bit easier. The previous tech lead left at the end of 2019. The company hired a new one, but they weren’t satisfied. They eventually preferred to train current employees and chose me for the position. Since 2020 I've been working there as a tech lead.
Overall I love what I feel when the task is solved. When I just started I used to go on websites where developers can solve problems in any programming language. I often couldn’t solve them the first time, so I tried to find different approaches, and when eventually the result was desirable I got super excited.
When it comes to my current job, I love coordinating teamwork. I’m grateful that the company helped us to take a team management course. Therefore I’m now able to communicate with team members efficiently, build relationships properly and so on.
The most significant change, obviously, is that we eventually moved from Java to Kotlin. It was challenging to adapt to Kotlin as I got used to developing in Java. It took around 2 months to get accustomed to Kotlin.
Additionally, technologies are dynamically changing, new operating systems are regularly released. To simplify the developing process, Google started releasing native libraries. A suite of libraries is called Android Jetpack. Many components are already included, so the development is much easier and faster now. For example, previously you had to manually manage your app's life cycle. The tendency is going to continue.
To be informed about the latest news and trends in Android development, I read developer.android.com — the official website for Android app developers. It contains a lot of useful information and offers free Kotlin courses.
I also follow several blogs on medium and read weekly Kotlin and Android newsletters. To be up to date and enhance my technical skills, I regularly take Kotlin and Android online courses on Udemy and Udacity.
I’m proud of my current project. When I came to this company, management decided to replace an outdated ridesharing app as it was hard to scale and build new features. So we started developing a new one from scratch. In September 2018 we released a new app. Currently, 2 mln users downloaded it, 300,000 use it daily. We also expanded our service and now it operates in 27 cities. Our app gets more requests than Uber in Eastern Europe.
First, learn the basics. It may sound too obvious, but to start coding you have to learn theory. Even though Google has announced Kotlin as an official programming language for Android development, I strongly recommend starting with Java first. The reason is that Kotlin is designed to interoperate fully with Java. Therefore, you still have to know how to code in Java. Here are the resources that might be useful for newbies in coding:
Second, practise a lot. The theory is crucial, but it’s not enough. Gradually begin solving algorithmic problems. Remember, the sooner you start, the better.
After sharpening your skills by working on simple tasks, you may want to create applications that you would like to have for yourself. Your goal is to practice, so they don’t have to be perfect. As you enhance your skills, you’ll be able to add more features and make it ready for users.
You can find a bunch of practical exercises for your level on Kt. Academy.
Third, learn Android app architecture. As your goal is to succeed in Android development, at some point it’d be necessary to learn the way Android apps work. As a programmer, you should ensure that your projects are robust, testable, and maintainable. It’s possible with a well-designed app architecture. An app architecture provides a developer with best practices for building a well-structured app.
You can find useful information about Android app architecture on developer.android.com.
As 95% of applications interact with servers, it’d be beneficial to also get familiar with REST, HTTP and the way data is communicated.
Next, proceed with learning Git. Git is software for tracking changes in any set of files. It’s mainly used for coordinating work among programmers, who develop software in collaboration. Thus developers can work on a project simultaneously.
When applying for the position of Junior programmer, make sure you know how to use Git.
Then, get ready for interviews. It’s time to work on real projects. Most probably, you'll be asked to solve problems in Java or Kotlin. You can find samples of interview tasks on Google, evaluate your skills and try to solve them. Gradually you’ll add more complexity to your app and the project may become a ready app that you can add to your portfolio.
To pass technical interviews successfully, google interview questions for Junior Android developers and get ready to have similar ones on the interview.
By the way, don’t underestimate the power of a detailed CV that emphasizes your abilities and represents your background. Writing a CV may be boring and time-consuming, but it’ll definitely pay off.
I recommend applying for as many jobs as possible. Even if your experience doesn’t match the job’s requirements and you won’t get hired, I believe that you still need to apply. An interview is always an invaluable experience. Even if you’re rejected, you can ask for detailed feedback to find out your knowledge gaps and get prepared for the next interview better.
It’s easy to get discouraged after several job rejections. However, you need to realize that it’s a completely normal part of an employment process regardless of your experience. You can pause, take your time, learn what you missed and continue applying for jobs.
And finally, don’t forget that soft skills play a vital role as well. Try to find time and work on the following ones: the ability to work in a team, time management, communication skills, creativity, emotional intelligence and so on. These will not only impress interviewers but also help you to work more efficiently, present unique ideas and get along with coworkers.