Starting Software Development at 40: My Journey to Chief Developer

Author | Ely, Translator | Wang Qiang
Planner | Chu Xingjuan, Source | infoQ

Starting Software Development at 40: My Journey to Chief DeveloperSomeone once told me: “If you are still a programmer at 35, you should start looking for other options for your second half of life. The younger generation is catching up quickly, and soon you will be eliminated.”

Indeed, I began to reflect on my career when I turned 35, but the situation was a bit different.

Had to Start Over

Once you know what you want to learn, just get started!

At that age, I was not a junior programmer but in a management position. In the early years of my career, I did have a brief stint as a C++ developer. However, after I started my management role, my programming skills deteriorated. My daily work consisted of meetings, making PPTs and Excel spreadsheets, and, of course, reading a lot of emails. I hardly looked at code, sometimes not even for weeks or months, let alone writing code.

At 39, I immigrated to a new country. By then, my management skills were no longer applicable. Companies here preferred to hire people with local experience for management positions. I could choose to switch careers and take on temporary jobs that didn’t require technical knowledge. But I really liked programming. I wanted to return to my original role, so I tried a few interviews related to C++.

Ironically, I didn’t even pass the initial programming test. I felt disheartened about that.

I didn’t know what I could do by going back to C++. Those C++ programming jobs were aimed at embedded software development involving hardware, not mainstream software development, which I was interested in. Since I was no longer interested in C++, what did I actually want to do?

At that time, mobile development was a hot topic, especially iOS. But to do iOS development, I first needed to buy a MacBook and an iPhone, neither of which I had. The problem was, if I couldn’t know in advance whether I could handle this job, spending money on equipment would be too much of an upfront investment.

I had a Windows laptop and a Samsung S2 phone at that time. I saw that Android was gaining momentum, and although Android wasn’t the most used mobile platform back then, more and more people were starting to use Android phones. So I chose Android development.

Once I determined my learning goals, I just needed to obtain relevant resources. First, Google’s development kit, Android Studio, is free, and I also bought some books I could find. Since the Android system was relatively new, there weren’t many books available at that time, but there were plenty of learning resources and code references online, which was very important. I could also subscribe to some of the latest learning emails.

Learning development knowledge was much easier than before; anyone could easily get started.

Creating Opportunities for Myself

Being in the right environment helps you learn faster.

First, I created a few small applications myself and published them in the store. I learned what was needed from design, development, testing, to public release, and experienced the entire Android development process.

Although I could learn and work on my own, I knew that I would never reach my desired learning speed unless I worked with other Android developers. In that case, I wanted to join a company that did Android development.

The applications I published gave me an interview opportunity with a growing mobile development company, which was very valuable to me.

I knew I wasn’t qualified for a senior developer position, so I was just looking for any job that would provide me with a chance to work and learn. I had no specific expectations because it would give me ample learning opportunities, and I could be a junior.

Unfortunately, I failed in the final round of interviews, which left me devastated.

But I still sent an email thanking the company for the interview opportunity. I didn’t give up; I asked them if they would consider letting me join as an intern, and I was even willing to work and learn without pay for the chance to improve my skills.

In the end, I got an opportunity, but not as an intern, but as a mobile application QA tester.

I was very willing to accept this position. While working in testing might not involve writing code, I could interact with experts and learn from them. Even better, I could get paid while doing testing. This was much better than being an unpaid intern.

Time and Age Don’t Matter

Study hard and make it part of our work.

When I started working at that mobile development company, I had already achieved 50% of my goal of becoming an Android developer, but that didn’t guarantee I could complete the remaining 50%. I had to improve my development skills and be prepared when opportunities arose.

As a QA tester, I had to work 8 hours a day. I envied those who were developers because they could learn while working. Learning while working is the best, but I didn’t have that opportunity. Nevertheless, being in a mobile development company was already a significant advantage. I had access to some learning resources within the company, which made it easier to identify the areas I should focus on learning, and I was very grateful for that.

Most importantly, I established connections with experts in the field. 95% of them were younger than me. Age was not an issue; what mattered was their experience in the field. I respected their skills and knowledge, as well as their willingness to share. I learned a lot from them.

Learning and writing code in my spare time was not easy, but it was fulfilling. Learning little by little and knowing that my direction was correct was a great experience. My goal was to become an Android developer.

At this stage, I needed to continuously showcase my learning outcomes while persistently fulfilling my mission as a QA. Every now and then, I would show the Android supervisor what I had achieved and check if I was ready to take on any Android development positions that became available.

Six months later, I was transferred to a development position and officially became an Android developer! Although it was just a junior position, I was still a developer.

Share It, It’s Okay to Be Wrong

When you start sharing, you learn the most.

When I entered the role of an Android developer, I was already 40 years old. But this was not the end of my goal; it was just the beginning.

I was very happy because I could write code freely. My working hours were spent writing code, allowing me to learn on the job. I could pair program with experts and learn from them. I could read their code, and they could review mine. At this point, my understanding of Android development accelerated significantly.

I could be content at this level, but I knew that as I aged, I didn’t have as much time as others. I needed to do more than just learn.

Encouraged by my leaders, I started writing a blog. It took me a while to start doing this because I wondered who would want to read what I wrote? I wasn’t an expert. What if what I wrote didn’t meet the standards or was even wrong?

Nevertheless, I noticed that I easily forgot what I had learned. So my purpose was simple: to write a blog for myself. It was more like my learning notes; even if no one read it, at least I could easily recall what I learned through the blog.

Afterward, I spent time writing down my learning content and tried to make the text simple and easy to understand for my own recollection. For each learning progress, I would draw diagrams and provide code practice examples.

I was surprised that someone actually read it, and some even left grateful comments. Their messages gave me great encouragement to keep writing. More importantly, some openly disagreed with me. Indeed, I sometimes felt resistant, but it was these replies that made me realize there were various different ways of thinking and ideas out there.

Sometimes I was wrong, and sometimes I wasn’t wrong, but I could understand the other person’s point of view. These were all learning opportunities that made my learning journey healthier. This was a journey to become a better Android developer.

Stepping Out of the Comfort Zone

Continue learning before you can distinguish right from wrong.

After more than 4 years of Android development experience, I became relatively adept in this field, and I became a senior Android developer. In addition to my own development work, I also guided other junior developers.

I wouldn’t dare to say I was an expert in Android development, but I knew better how to obtain and seek information, and I had a better intuition and judgment about right and wrong. The Android development industry is also constantly evolving, so there is much to learn. I love my job.

I could settle at this level. I love this job because my work is to write code, but I still remained just a single contributor, and my influence was limited to what I could do. I asked myself if this was what I wanted to do for the next 10 years of my life?

I decided to move forward when opportunities arose. I applied for the position of chief developer, responsible for both iOS and Android. In the end, I got the position, even though I wasn’t proficient in iOS.

Not understanding the areas I was responsible for made me feel uncomfortable. But it was this discomfort that motivated me to learn and enhance my knowledge. So, I began to spend time learning iOS development.

I didn’t think I could master iOS development knowledge as deeply as I understood Android, but this learning did help me see the mobile development field from a broader perspective. It made me aware of what Android development excelled at and where it lagged behind.

Returning to Management

It has been more than 7 years since I first ventured into Android development, and many things have changed.

I am now a mobile technology leader, responsible for the collaboration and architecture of the entire mobile team. Besides my technical role, I also need to participate in various management tasks. I have returned to a phase where I don’t have much time to write code and learn at work, but I still love my job because it remains relatively technical, just at a higher technical level.

To make reasonable high-level technical decisions, one must have a solid understanding of underlying technology. We cannot rely on past learning to maintain the required level. I need to continue learning, hoping I won’t fall into the same trap in a few years.

This is my story. Starting a career in software development at 40 is not too late.

Original Link:

https://levelup.gitconnected.com/i-started-android-development-at-40-6591c1e8bc38

Leave a Comment