A Mindset Guide to Learning Android Development The Right Way
13 January, 2022
3
3
1
Contributors
As the new year has begun, I'm sure many people will make resolutions, particularly those related to starting or expanding a career in software engineering.
Whether you're new to software development or have been working in the field for a while, the goal of this post is to highlight a few mistakes I made at the beginning of my Android development journey and, more importantly, to provide some tips to help you approach your learning and growth.
My first exposure to hands-on programming occurred when I was about 11 years old. I was enthralled by the prospect of being able to create something cool, and of course, I hoped to create the next billion-dollar software 😄. The culmination of all the excitement fuelled my progress, and I recall beginning with Python before moving on to Java and then deciding to pursue Android development.
In my Android learning journey, I made a lot of mistakes, as expected. I obviously didn't see them as errors at the time, and to be fair, I did learn from some of them. However, if I had read an article like this to properly guide me on how to approach the journey I believe I would have had a less rough path.
Although the post's content appears to be more geared toward Android development, it is also very relevant and applicable in developing for other platforms.
I believe the most common issue that anyone looking to get into programming faces is deciding which language or framework to learn. This preliminary stage can be challenging because there are so many options available, ranging from what platform to develop to deciding between "native" and "hybrid."
Another issue I've encountered while teaching and tutoring young people interested in technology is over-excitement, which can lead to impatience with learning the craft properly.
Yes, you may have discovered a YouTube video tutorial on how to create a Whatsapp clone using Firebase or a video tutorial on how to create a Tic-Tac-Toe game. This is excellent content and, in fact, a great way to try your hand at building interesting projects and understand how to apply some of the fundamental knowledge you learned when you were a complete beginner. The main issue I see with this though is that many beginners approach programming from a "get rich quick" mindset, so most do not learn anything from these tutorials. They simply follow through as a shortcut solution to a problem they have in the moment or for the feeling of fulfillment.
I believe everyone should be actively responsible for growing their knowledge and be willing to take the next step further. The issue I've noticed with newbies and how they react to some of these tutorials is that they get stuck in a rut of using the same techniques from these tutorials to build other projects without attempting to learn anything new or push for improvement.
Now that we’ve been able to establish some challenges, which I believe every starting software engineer must have faced, the next step is to suggest an approach that works; a better way around this.
Have a Learning Road Map: This is a very important step as it will serve as a knowledgeable guide and, more importantly, it will help you know what you should be learning. In a future post, I will be sharing a detailed road map for learning Android development from absolute beginner to advanced level.
Focus is very, very important: The first thing you need to understand about software development is that it goes beyond just the language. It’s more about principles and techniques, and you should focus on mastering those techniques. My advice would be to pick any language (could be javascript, java, Kotlin, etc) and try to understand it well enough. Understand the fundamentals and foundation of programming languages, how control structures work, design patterns, and data structures and algorithms. Take time to understand as much as possible, and once you understand one language well enough, it will be really easy to move to another language in the future.
Pay attention to best practices: One way to do this is to attend seminars, consult online resources (free or paid), strive to learn more, and study codes written by more experienced developers. Another way is to apply some of the knowledge you gained either by working on a side project or interning with a company of interest.
Keep an open mind: Keep in mind that language is just a means to solve the problem and not the solution itself. As a software engineer, you should have an open mind and be quick to adapt to change. The language used in developing for a particular platform may change, just like Android introduced Kotlin and iOS introduced Swift. You will find change easier to adapt to if you have been able to adequately understand how the system works, and it will be easier to adopt techniques across various languages.
Understand software architecture: Design and architectural patterns are very important parts of software engineering. They help you write clean, well-structured, and easily testable code.
Practice makes perfect: The more you continuously practice the art of writing quality code, the better you get and the easier it will be to learn newer concepts.
This post has only scratched the surface of this broad topic. Notwithstanding, I hope this post was helpful and insightful in one way or the other.
Feel free to reach out to me if you have any questions. Thank you.