Introduction
As you might have read in my “About” page, I’m a self-taught Android developer and started my career on the first months of 2017.
I decided to become an Android developer more than a year after I graduated as a Mechanical Engineer.
A local company in my hometown was hiring and I decided to work there. That decision was what made me want to become an Android developer.
But that story is for another time.
Here are 5 things that I learned the hard way, in my first self-taught year as an Android developer.
1. Memorizing a programming language
After reading a few “how to become an Android Developer” articles, I realised that I needed to learn Java first (Kotlin was still a bit far from where it is today).
So I went to Amazon, bought a Head First Java book, and started to read it like a regular book. (If it was today, I would definitely buy it, but the Kotlin one)
Bad decision…
After more or less 2 weeks I was starting to become frustrated and just wanted to play with some code. I thought I just needed to read and remember later when needed I would remember, what all functions did, all the existing frameworks, etc.
At the time, I remember that my goal was to “memorize” Java in 6 months.
What a facepalm I’m doing right now, while I remember this.
I was sharing this with someone that was already a developer and he just gave me the best advice for this:
“You can’t simply memorize a dictionary. Just start solving small problems and creating small projects”
That’s what I did, and I have to say that it became really helpful. Frustration was now turning
into motivation because my energy was now being converted into something that I could play with.
2. Trying to learn everything alone
I’m the kind of person that prefers to learn things by myself, i.e., doing my own research to learn the concepts.
In the first few months, it was ok to do some online courses (at the time, mainly Udacity), and to read some tutorials and technical articles on the internet.
But I didn’t have any training in this field, and the most close I came with programming until then, was in the university, creating some algorithms in Visual Basic that were “important” to our career and future as Mechanical Engineers.
Because of this I just followed what “what to learn to be a good Android developer” type of content were telling me. The problem was that there was lots of technical language that I didn’t understandd completely.
That was when I decided to ask help from a real Android developer that I knew.
I went to his house and sat next to him while he was working. He gave a few problems to solve, and while I was solving these, he showed me why I shouldn’t do this or that.
While doing this, it was possible to understand that there was A LOT more to know, and whenever I had some question it was awesome to have someone experienced next to me to point me in the right direction.
In other words, I would say that he was my first mentor and because of him and the knowledge he shared with me, I was even able to get my first freelancer project and my first professional contract as an Android developer!
So, if I could time travel and talk with my past-self, in the first days, I would say to him:
“Best thing you can do for yourself is to get a mentor”
This was not only a good thing in the early days, but later I got to work with amazing developers that I consider my mentors also.
Every time I got guided by someone, it was the time I grew the most! Hands-down, the most relevant decision in my career.
3. Not learning basic CS concepts
It took a while until I started to understand or even study basic computer science and programming topics such algorithms, networking, object oriented programming, among others.
This was something that I ended up learning much later, while I was already working in my first project as a freelancer and even after, in my first company.
4. Creating projects
Fortunately, the online classes I took were pretty decent (Udacity) and while learning Android concepts I was also building some real projects that were used to show what I was able to do.
Along with these, I was creating a demo app for a restaurant which made me consolidate even more the knowledge I was acquiring.
It’s much more motivating to create an app from your own ideas, then to create one without any purpose.
Creating an app, where you have some features in mind, the app design, the architecture patterns (etc), will make you search for topics, face problems and make questions, that while following a tutorial you wouldn’t do.
Conclusion
I truly believe that consistency is one of the most important things to have if you want to be a good developer.
The Android world is huge and there’s a lot to learn, even more if you don’t have any background or education related to IT.
If there is something that I’ve been learning in all these years, it is that there isn’t a single day that I don’t learn.
It doesn’t really matter if you have a Bachelor or Master’s degree in Computer Science. If you want to become an Android developer - a frontend, backend, fullstack, whatever… - and you have the passion for this, I’m sure you will become a successful programmer!