Years ago, being a professional developer involved following a rigid and narrow path of education. Today, this path has become wider, which offers developers endless possibilities to become the dev that they want to be. In this article, I will discuss the obstacles I encountered in going from feeling unchallenged at work to rediscovering my passion. This helped me become more sought-after in this fast-growing industry.
An app as my springboard to new horizons
I worked as a PHP developer for a web and mobile development company for over five years, while mainly assigned to a single project. As the years progressed, the growth scope of the project remained limited. Working on one single project became very tedious and unchallenging, with very few growth opportunities.
Around my third year at this company, I had a spark of inspiration to build an app that would make it easier to find information on US television series. The exciting nature of these shows had me interested in finding out when the next episode would air, but doing so was difficult and involved a number of Google searches that could easily be eliminated by an app. In order to build it, I needed to upskill myself because my PHP knowledge wouldn't be enough for the various tools I'd eventually have to use.
This springboarded me into my greater journey: I recalled advice from my mentor about the value of having multiple programming languages in one's toolkit, each with its own strengths, limitations and best use-cases. Specifically, I needed to learn how to develop apps in Android. Taking those first steps led me to a number of challenges:
- Finding the right teacher
- Feeling like I didn't know enough
- Battling with time constraints
Whenever I overcame one challenge, a new one seemed to appear. However, it was overcoming them that ultimately made me a better developer and enabled me to find that passion that I seemed to have lost.
Finding the right teacher
My first challenge was finding the right teacher - and not just a mentor, but a teacher who would inevitably offer exactly what I needed in order to become a better developer. Over time, each teacher I encountered online made me realise that not all of them carry that natural ability to deliver the information they know in a way that is captivating or that encourages the learner to ask questions. In order for me to excel, I needed to ensure that I picked the right teacher.
I did a lot of research online and found two promising avenues for learning the Android skills I needed: Udemy and Coursera. Each option gave a preview video of what the course entailed, as well as the costs involved - both financially, and in terms of time. I found myself leaning towards the Coursera option, as the lecturer teaching the course had two important qualities: very good knowledge of the content, and a way of explaining things that suggested he had a good approach to teaching. I enrolled into the course, which spanned over a period of eight weeks.
Not long after I had completed the eight week course, I came across another Android course, this time offered by Google and Udacity. This Nanodegree course - a collaboration between these two companies - was exactly the type of product developers like myself need in order to advance themselves as Android engineers. Not only was the course tried-and-tested, but it was being used and delivered by high-ranking companies.
I had no hesitation in enrolling into the course, as the benefits were clear: the majority of the graduates went on to work for top companies around the world, and all that was required was hard work. This course also set itself apart from all the other Android courses as it was offered by Google, who own Android anyway. The rewards I received at the end were worth the high expectation of time and effort. Having done sub-par courses in the past, I came to realise the true value in finding the right teacher.
Feeling like I didn't know enough
My second challenge, then, centred around me as a developer. This was something I battled with even during the time I was completing the above courses. I had a desire and a passion to build Android apps, but my obstacle was the confidence in my knowledge and expertise to be able to execute this desire. My hunger to know more is what motivated me to continue.
I also felt like I didn't know enough during the job hunting process with a particular company I encountered. This company specialises in making use of graphics in their apps, and use a very specific Android library to achieve their requirements. I knew I had aimed at something more challenging, but they declined to continue with the interview process because I had not encountered this library before - not even in the Nanodegree.
This, however, did not discourage me. Instead, I realised that you can never be satisfied with the knowledge you have. After the Nanodegree, I continued learning, and never stopped finding out what new libraries were being added to Android. I read articles and watched videos, all with the goal of learning more - and this is something I continue with to this day.
Battling with time constraints
It is not easy studying part-time, being a husband and a father, and still working full-time. A lot of time had to be sacrificed after-hours in order to be able to juggle everything at once. The Udacity course alone took close to a year.
Typically, every fortnight to a month, you would be required to submit a project, which was an Android app that you would build from scratch or improve on based on the lesson requirements. This meant spending very little time with my family after work, and working through the evening until just after midnight. After about a month or so, I had to change from working three nights a week to working every night, as the deadlines were fast approaching and required more time.
Thankfully, my wife was incredibly supportive because we both value education. There were times when I felt so burnt out that I considered whether it was worth doing the course at all, putting in hours that I could have been spending with my wife and kids. Without my wife's support, the time constraints would have gotten the better of me.
When I graduated with my Nanodegree, my Android knowledge had grown to the point where I could confidently search for new opportunities as an Android engineer.
Finding a new job
After I completed my eight week course, I was fortunate enough to be offered a position as an Android developer in addition to working as a PHP developer at my company. I would split my day between the two languages, working on either language for half of the day.
After working like this for a couple of years, I wanted to fully move over to Android. My company however was not able to offer a removal of the split, as the PHP side required my daily involvement. Sadly, to continue pursuing my passion, I had to start looking for work elsewhere.
Despite not having any luck initially, many recruiters contacted me with various opportunities after seeing my updated LinkedIn profile. One in particular had an Android developer opportunity that interested me, from a leading online fashion retailer. Although this would mean going into a new, unfamiliar industry, I was intrigued. I went for the interviews, did the required project, and got offered the job.
Getting this offer was a huge turning point in my life. It showed me that all the hard work, the late nights and the sacrifices had finally paid-off. Each challenge brought a valuable lesson, which have culminated into me getting the position I am in today. I know that this opportunity was certainly not the last, and only the beginning of my career as an Android engineer. I did this despite the amount of time and hard work required on my part, and by the end I had managed to fulfil my goal: I was able to create Android apps, add a skillset to my expanding toolkit, and rediscover my passion and my fulfilment.
Ahmed Tikiwa is a Software Engineer currently working in Cape Town. Having worked in the software development industry for almost a decade, Ahmed has experience in both frontend and backend systems, where he built enterprise solutions for major companies. His passion is Android development with a desire to build apps that help change the world. Check out some of his personal apps in the Play Store, with plenty more in development.