Hello! I am Anna, and since 2020 I have been successfully working as an Android Developer. I mastered Android development from scratch when I was 30+ years old, without having any programming experience before. Before I started learning , I worked for a long time as a personal assistant in various companies, including IT companies. Android development When I worked in IT companies, I had the opportunity to communicate with mobile developers - it was so interesting for me that sometime I began to come to the conclusion that it would be nice to change my career path and become an Android developer. I am now convinced that this was the best choice in my life. My journey into Android development was long and difficult as I didn't have a detailed roadmap to help me along my study way. I had to research a lot of information on the Internet and spend a huge amount of time making some mistakes in my self-learning. Now, looking back, I can say that it would be great if I met a person along the way who could help me put together a detailed roadmap. Therefore, I wrote an actual detailed step-by-step tutorial and want to share it with you. I really hope this tutorial will be useful and help you save time and make your more consistent. I will also share useful resources that I myself have used and continue to use for my learning. path to Android development So, let's assume that you, like me four years ago, have never had any Android development experience. Besides, you’ve no experience in coding at all. Where should you start? Let’s go step by step from scratch to getting your first job offer! Step 1: Set a Deadline First of all, to my way of thinking, it is worth mentioning that it is extremely important to - the date by which you will start looking for a job or the date by which you start your new job. limit the duration of your study period and set a deadline If you are starting to learn programming in 2023 from scratch, I would strongly recommend setting aside at least for self-learning, provided that you study Please don't think that one year is too long in this case. You will have to learn not only programming languages but also a lot of different technologies in order to master Android development, successfully pass the job interview and get your first job offer. a year 5 days a week for at least 4 hours per day. As for me personally, a self-learning period took me a little more than a year. During this time, I mastered Kotlin programming language and the basics of Android development, sent about 100 responses to Android Developer vacancies, participated in 12 job interviews, and received two job offers. Step 2: Create a list of actual Android development technologies Secondly, before you start , This will help you make a clear plan for your self-learning and not waste a lot of time in vain. Please note that Android Development is moving very fast, some technologies are being replaced by others, and it may well be that by the time you get your job, one technology will be replaced by another. developing your Android apps you need to make sure that the technologies you plan to study are still in demand. Of course, not all programming technologies become obsolete after some time. There are basic, fundamental programming concepts that appeared in the middle of the 20th century and are still relevant. But we cannot ignore the fact that currently, any Android Developer should be very inquisitive and practice constant self-education. Therefore, I consider the constant monitoring of Android Development trends to be an important skill for any Junior Android Developer. It is very useful to constantly read the descriptions of current vacancies on various job search sites and write out requirements that are often repeated. Thus, you can form a list of relevant technologies that need to be studied. Good news: I did this job for you I analyzed many actual Android developer vacancies that have been published on popular job search resources such as www.linkedin.com, www.indeed.com, and others and compiled the following list of needed technologies. I believe that this stack will be relevant in 2023 and with a high probability - in 2024. For your convenience, I divided this technology stack into the following groups: Fundamental programming concepts: OOP principles, SOLID etc. programming language - Kotlin (classes, interfaces, coroutines, multithreading etc.) design patterns - Observer, Factory, Builder etc. architectural patterns - MVP, MVVM, MVI working with network - Retrofit + OkHttp3 working with database - Room working with IDE - Android Studio, Intellij Idea working with layout - Jetpack Compose, xml, ViewBinding dependency injection - Dagger, Koin unit & ui tests - JUnit, Espresso Android Architecture Components (ViewModel, LiveData etc.) You can use it as a cheat sheet or supplement it later with your own actual search results when you start learning about Android Development. You can also read my about top Android Development Technologies. article Step 3: Start Kotlin learning Yes, you heard right - , not Java. It should be mentioned that Java is still heavily used in Android development. There are projects in companies that have a lot of legacy Java code. However, if you have never studied programming languages before and want to become an Android developer in 2023, I highly recommend starting your study process by learning Kotlin. It is this language that is recommended by Google for Android Development. If necessary, you can learn Java later after you already get your job offer. Kotlin Set up IDE (Intellij Idea), learn programming language basics, and start writing your code as soon as possible. At the same time, I would highly recommend you learn fundamental programming concepts (OOP principles, SOLID, multithreading, etc.). The deeper you understand general programming concepts, the easier it will be for you to move to new technologies. You can download Intellij Idea You can also use to learn Kotlin step by step. I believe that this tutorial is enough to master the basics of Kotlin. by this link. this tutorial Step 4: Learn Git basics, create and set up your Git account - a distributed version control system that you will constantly use in your daily work. It is needed for sharing code with other developers in a team. Git I can safely state that any Junior Android developer needs to master before he gets his first job. For an understanding of this tool, I can recommend the following resource: . basic Git commands dangitgit.com I would highly recommend you create your account on . You can commit and push your pet projects to your remote git repository so that your future employers can see examples of your code. https://github.com/ Step 5: Start writing your Android apps Set up Android Studio - Android Development IDE and start writing your pet projects using the actual Android development technologies I mentioned before. I’d highly recommend this . You can go through this step by step so you will successfully learn Android development basics. During the training, I also recommend that you constantly refer to the official training course created by Google official documentation for Android Development. It should also be mentioned about a book which named . The book explains step by step how to write various simple mobile applications on the current technology stack. I definitely recommend that you read it and rewrite all these applications after the book's author. You can write and run your code step by step, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, store data in databases, and more. “Android Programming: The Big Nerd Ranch Guide (5th Edition)” I suppose that all mentioned resources will give you a very good basic Android development knowledge, teaching you how to create mobile apps that integrate with other apps, download and display images, store data in databases, etc. I also should mention another popular resource that I constantly use in my daily work, of Philipp Lackner. This channel has a lot of useful information: popular Android Development technologies overview, explanations of complex concepts of mobile development, and a series of videos that explain step-by-step how to write Android apps. the YouTube channel Step 5: Find a Mentor I’d highly recommend you find a mentor at an early stage of your study process. A mentor is an experienced mobile engineer who will help you to notice your code mistakes and move faster in your study process. You can skip this step if you think you can successfully master Android development completely on your own. So it’s up to everybody to decide whether study by themselves completely, using popular online courses, videos, and books, or using the help of a mentor. But as for me personally, I think that you should not neglect the help of a mentor. Step 6: Start a job search Create your CV on www.linkedIn.com and other popular job search sites, start monitoring Android developer vacancies, and apply for them. From my way of thinking, it is very important for any junior Android developer to learn how to pass job interviews. You can use the following lifehacks: after each unsuccessful job interview, write down questions that you did not answer and study this topic later. Accordingly, at each subsequent job interview, you will answer better and better and finally get a job offer! Step 7: Get your job offer and start working in a company Additional tips & tricks for Junior Android Developers: Keep a diary of completed tasks. For example: "Today I completed an authorization screen for my Android application" or "Today I learned the MVVM pattern.” This will help you track your learning progress and see results. Practice writing code constantly. Programming is a practical skill. Practice makes perfect. At the same time, try to keep the work-life balance so as not to lose interest in programming. Join a professional community: participate in mobile development meetups, and add Android developers to your contacts on www.linkedIn.com. The wider your circle of professional contacts, the more likely you are to find a dream job. Become an “eternal student.” It is impossible for Android developers to learn one programming language and a limited technology stack and work on it for the next 10+ years. As for me, I have been developing Android applications for about three years, and I can safely state that during this time, This does not mean, of course, that the skills I received earlier are now completely useless. This means that a modern Android developer has to increase such soft skills as an inquisitive mind and the ability to quickly learn new technologies. The stronger these qualities of the Android developer, the more value he has for an employer. the technology stack has changed completely. I hope this tutorial will be useful and help you to get your dream job! Good luck!