I see many tweets and questions on Quora from people asking if they are too old to start coding. The age ranges vary from around early 20s all the way to 50s or even 60s. I always smile to myself when I see these questions as they resonate with me quite strongly.
I started really getting interested in coding when I was about 32 and didn't get my first professional Web Developer job (Junior!) until I was 34. I thought I might tell my story and also share my thoughts on how there are actually advantages with starting programming a bit later in life.
How I got into Programming
I was working at a major corporate firm at the time and I was a team leader with seven email marketing specialists as direct reports. I really liked aspects of the team leading role but I also liked the hands on work too and didn't want to lose that completely. I remember we used a system that generated raw csv files with certain data, which would then be used for reporting. I would download this csv and then manually go through certain steps in excel to convert the raw csv into a fancy looking excel document with charts and pivot tables.
As I was doing this I lost track of time completely and became immersed in a world of possibility. I was coding!
I distinctly remember, when formatting the fifth report that week with pretty much the same manual steps, that there must be a more efficient way to do this. Obviously there was and this was macros. But with macros you had to record the exact steps you took and then it would save these steps and perform them on further sheets. This was a step in the right direction but I was still limited as there were particular situations when conditional logic was needed...
This is when I discovered Visual Basic for Applications or VBA
. I remember seeing the code for the first time and some of it making sense and some of it not. But with the internet at my fingertips I soon got to understanding the different parts of the code and learning how to manipulate the code to get the macro to do what I wanted. As I was doing this I lost track of time completely and became immersed in a world of possibility. I was coding!
The Jump to Web Development
As any developer knows - enough is never enough. What I mean by this is as soon as you work out how to solve one problem you look ahead to the next. There is always room for improvement and always ways in which you can tweak the code or refactor it.
I was hooked on the power of what code could do for you. It could take away the mundane tasks and allow you to work on more interesting things.
With the Excel Macros I was hooked on the power of what code could do for you. It could take away the mundane tasks and allow you to work on more interesting things. But soon I wanted to take the data from the original system and present it on a web page and take advantage of all the wonderful visualisation libraries out there.
For me it was a no brainer. I was thinking long term. On the current career path I was on I would go from team lead to some kind of manager and then what?
At the same time (and it was pretty lucky timing) the department were absorbing a Web Development team from another office. There were five positions open and I applied. My manager was quite surprised I wanted to make what looked like a step down in my career - team lead to junior position - but for me it was a no brainer. I was thinking long term. On the current career path I was on I would go from team lead to some kind of manager and then what? I would be completely separated from the hands on work and I wouldn't have any hard skill to fall back on. Don't get me wrong, management is a skill and being a good manager is very difficult, but I wanted an actual trade and I saw Web Development as being this trade. My manager was actually very supportive and I will always be grateful for that because she could have just as easily blocked it for her own benefit.
However, after the interview I went home and completed the assessment at home (without cheating!!) and sent the completed test through to the interviewer. To this day I don't know if this made a difference to my overall application. I got the job though so I like to think that it did!
Swallowing your pride
One thing I notice online is that people have a certain amount of pride about their job titles. If you want to start programming later in life, or for that matter start any new career trajectory, then you will have to let go of that pride.
Unfortunately there is no way around it. If you want to start something afresh you have to accept you are a beginner/junior/novice and you will be labelled as such when you start working. However, there is something wonderfully liberating about this. You are now a beginner and you have a whole new world in front of you to explore. Everything you encounter is new and exciting. You run into barriers and obstacles often but you build up your self resolve by overcoming these. Although you may see former colleagues or friends on Linkedin with extremely impressive job titles, you can be content that you are doing something that genuinely excites you everyday.
The Realisation of other skills needed
It didn't take me long after starting my first professional coding job that there are a whole host of skills needed in a developer's role other than coding. Don't get me wrong, your knowledge on whichever programming language you work in is important, but there are many other skills that go into making a well formed developer. I also realised pretty quickly that many skills I had gained in previous roles transferred onto my current role and I wasn't so far behind as I thought I might be.
Even if you are the best developer in the world, you're going to be working for someone and that someone wants your skills to build something.
Some of these skills include:
You have probably heard this stated many times that developers need to be able to communicate effectively. From my experience however, so many developers neglect working on this skill. Even if you are the best developer in the world, you're going to be working for someone and that someone wants your skills to build something.
Therefore, as a developer you are going to have to interact with a whole host of people - Product managers, customers, engineers, sales people, the list goes on and on. Many of these people are not technical and they don't speak the lingo of APIs, response/requests, Databases, conditionals and all such like that you speak with your fellow developer with. You have to be able to communicate effectively with these people to gather specific requirements to make sure you build what is needed. When there are problems (and there will be problems!) you need to make sure stakeholders are aware of this and when and how it will be resolved.
If you neglect communication as part of your role as a developer you will run into all sorts of problems in your day to day work.
Once you get a full time paid job as a developer you will be required to actually do some work. Chances are as you become more experienced you will be given more and more work. This will undoubtedly lead to working on different projects AT THE SAME TIME. If you are not organised and don't have a solid system in place then you will most likely a) have a very stressful time at work b) miss some deadline because you didn't realise when one of the many things you were doing were due and c) generally get a bad reputation at work as a disorganised developer who needs their hand held.
To be organised requires some kind of system in place to assist you. This can take on many different forms but you need to find something that works for you. I personally use Todoist
and it's been a game changer for me. I love Todos and the way you get to categorise and organise Todos in Todoist really works for me.
It ultimately doesn't matter what tools or system you use to organise yourself, the important thing is you make sure you have something in place.
Seeing the big picture
My time as a team leader really helped me with this. Whatever you happen to be focused on at a specific time of your work day, it's important to understand where what you are working on fits in to the grand scheme of things.
This really helps me prioritise the things I am working on. By knowing where and how a particular app will be used helps you make decisions in your code implementation.
For example, if you are working on a demo app to show a proof of concept then the code implementation quality can differ from that of a piece of code that will be going into a production app used by thousands of paying users. This is maybe a bit of a simple example but by having this awareness in your day to day work can really help you as a developer.
Learning to program holds immense knowledge and growth opportunities at any age. My experience of learning to code in my 30s has been challenging, yet extremely enriching. Through my journey, I have recognized that age is not a constraint; it's merely a number. If an interest ignites your curiosity, pursue it with determination, and success will likely follow. There will undoubtedly be bumps along the way and sometimes it will of course be hard, but ultimately if you are genuinely enthusiastic about programming good times will come. Coding has opened a new world of opportunities for me, and I strongly believe it can do the same for any person. No matter how late you start, there is always enough time to learn, evolve, and ultimately, bloom.