You're already employed but tickling the idea of becoming a software developer.
But with so many existing life responsibilities, just who are you kidding? You don't have neither the time or formal education in the space!
And yet, the urge to change is inescapable.
As Jane stood on the crowded subway, she couldn't help but feel a sense of dread wash over her. Her daily commute was a constant reminder of the job she hated. The monotony of the ride and blank expressions of her fellow commuters only served to applify her sense of entrapment. She couldn't help but think of all the missed opportunities and the life he could have had if he had made a different career choice. She was desperate for a change, to find something thats she was passionate about and that would bring fulfillment. The ride felt like an eternity as she sat there, lost in thought, dreaming of a better future.`
Tech offers more flexibility, compensation and career advancement opportunities.
Don't worry – it is possible to transition into a career in tech, even if you can't quit your day job. In fact, many successful engineers, including myself, started out just like you – working a full-time job while teaching themselves how to code.
My Origin Story
My journey with coding began in the fall of 2014.
I was an eager social sciences graduate when I landed my first proper job as a project manager in the localization industry, adapting products for international markets.
Localization involves a wide range of tasks, including textual translation, adapting brand language, dubbing and subtitling. The goal of localization is to make content as effective from one language to another.
I enjoyed the work and I climbed the ranks.
However, as time went on, I couldn't ignore a nudging desire to get into something a little more technical.
Managing suppliers and budgets, I felt that my work was very communications focused, rather than being a lifelong craft that I could continuously hone. This sparked a burning desire within me to create things that would have a direct, practical benefit for others.
One of my functions was liaising with the development team and at that time, I discovered that their work and team culture deeply resonated with me.
I was intrigued to learn more
I spent the next few months scaling the web and soon stumbled upon a part time Masters in Computer Science. I didn't want to leave my job and couldn't give up my salary, so it seemed perfect at the time.
I want to reiterate at this point that a university qualification is not a fundamental requisite for becoming a coder. It's an approach that suited my academic inclinations. But thanks largely to the internet, you can learn to code from scratch without going to college or even paying for a course - and this blog has plenty of articles explaining how.
Everyone thought I was crazy to learn to code, not only did I not have a Computer Science background, I would also have to balance my studies with an intense day job.
The journey did prove hard and I nearly threw in the towel several times, but each time I picked myself up and learned something new.
This article summarizes what I learned, so you too might benefit. And let me tell you, it was well worth it!
Work Smart and Hard
It's going to be crucial to manage your time wisely. You going need to prioritize your tasks and make some sacrifices in your schedule.
Take a look at your daily routine and consider if everything you do is really worth your time. Can you carve out a significant chunk of time each day for coding? This may mean cutting back on leisure activities like watching TV, gaming, and scrolling through social media.
By making these sacrifices and focusing on your goals, you can set yourself up for success in your journey to becoming a programmer.
Coding effectively became my only hobby during this time.
Make Time in the Morning
Waking up early in the morning can definitely be a helpful strategy for increasing productivity and finding time to practice coding.
Many successful people attest to how they are most productive during early mornings.
"I wake up at 5:00 a.m. every day, and I find that the early morning is the best time for me to get a lot of work done. It's quiet, and there are fewer distractions, so I can focus on what's important." Arianna Huffington, co-founder of The Huffington Post
Although I don't consider myself a morning person, I made an effort to wake up an hour earlier each day. This gave me the opportunity to accomplish something before the rest of the day began.
I know others on the same journey who’d wake up even earlier and totally free up their evenings for other activities.
My approach was a little more hybrid, and I would get most of my studying done in the evenings. However, I found that I was a lot more productive and ‘fresh’ in that extra hour I was able to carve out for myself in the morning. I was also a lot less distracted by social commitments and the constant buzzing of notifications on my phone.
By the end of the workday, you may find that your attention span is too depleted to tackle any more tasks. It's common to feel exhausted and lacking motivation to continue working on the computer, especially after a long day.
Maintain a Journal
Keeping track of my growth made a huge difference.
Every day I would write a journal entry recording what I studied and detailing how I felt about it. This daily ritual helped me stay consistent on my journey.
Writing down my thoughts and feelings helped me to process and understand them better. That made a big difference to my mental health, especially when leaving my job and becoming an actual software developer felt very distant.
Practically speaking, tracking my progress and topics covered helped me to stay focused on my learning and identify any areas where I needed to improve. Reflecting on what I achieved each day (and what I didn't) helped me to strategize and stay motivated.
Keeping a journal also helped me to determine when I was most productive, allowing me to optimize my schedule and tailor my schedule to make the most of my available time.
Get Help When You Need It
I am very guilty of prolonging my agony whenever I don't understand something and am unable to progress.
This is entirely pointless as we live in a time when great resources are so readily accessible online.
In particular, there are some great communities where programmers, novices and experts, help each other out.
Two of my favorites are Reddit.com and StackOverflow.
Reddit is a forum of subforums called subreddits. There are many programming-related subreddits, such as /r/learnprogramming, /r/coding, and /r/askprogramming, where you can ask for help and get advice from other programmers. Specific programming languages have their own subreddits.
It's important to keep in mind that the quality of responses on Reddit can vary, so be sure to read through the comments carefully and evaluate the advice you receive. It's also a good idea to follow Reddit's rules and guidelines for posting and commenting to ensure that you get the most helpful and respectful responses.
Stack Overflow is a very popular website where programmers can ask and answer questions related to coding. It has a large community of experienced programmers who are willing to help others, and the site has a reputation for having high-quality answers and a friendly, welcoming atmosphere. Many programmers find that their questions are answered quickly and accurately on Stack Overflow, making it a valuable resource for getting help with coding problems. It's also a good idea to follow Stack Overflow's guidelines for asking and answering questions to ensure that you get the most helpful and relevant responses.
Some interesting Stack Overflow facts I've curated!
If you are stuck for more than 1 or 2 hours on a problem that you have thoroughly researched. Consider creating a post on one of the sites mentioned above.
First and foremost, understand that this process will take some time. In our discussion here, we will be focusing on a sustainable long-term approach to reaching your goal.
We are looking to make this a realistically achievable target, that does not cost you your peace of mind and health. While there has been an influx of courses and workshops promising to make you a capable programmer within a few months, it must be noted that programming is a skill that demands a slow and steady kind of approach to be learned, not unlike most other technical skills.
There is only so much programming you can do and learn each day, without being completely burnt out.
Maximize Every Opportunity to Study
Finding time to study and learn can be a challenge when leading a busy life, especially when you are trying to change careers. It's important to make the most of your available time and find ways to fit study sessions into your daily schedule.
For example, one opportunity that many people have is the morning commute, which can be an average of 54 minutes in the UK. Instead of letting this time go to waste, try using it to recharge and boost productivity by staying up to date with current tech news, expanding your mind with podcasts, writing your to-do list, or even practicing meditation.
With some strategic planning, you can make the most of these gaps in the day, which are otherwise spent staring into space or scrolling through social media!
For me, one solution to finding time for study and learning was to purchase a netbook (small laptop) and work on programming exercises during my daily commute. I also made use of any other available moments, such as waiting for a delayed train or at the airport, to continue learning.
Another personal technique I found that worked for me is to fit study in and around existing activities. For example, getting an hour or two study in at the office before leaving in the evening.
You can also include it alongside existing activities, such as stopping off for a coffee and cramming in an hour's coding when out shopping or before heading home from your day job. If I went out shopping for the day, at some point, I would try to stop off at a café for a refreshment, taking the opportunity to study and even make an experience of it!
We're busy, and nothing is going to change that. But I do believe that you can find ways to optimize your time for those tasks and responsibilities that are non-negotiable in your daily life. You will get more done and boost your progress.
Make Friends In The Field
Having a supportive social network of friends and colleagues can be invaluable as you start your career in programming. While online resources like Stack Overflow can be helpful, there's nothing like being able to get real-time assistance and feedback from someone you know and trust. When you're stuck on a problem and can't find a solution online, it can be incredibly helpful to have someone with experience take a look at your work and offer guidance.
For me, that was reaching out and befriending my work colleagues from the IT department at work. They were actual engineers and easily reachable.
Experienced programmers can also provide valuable insights into the industry and offer tips on how to succeed as a developer. They can also be great sources of networking and potentially even job opportunities. So don't be afraid to reach out to your connections and ask for help or advice as you start your programming journey.
Consistency is Everything
Becoming a skilled programmer doesn't happen overnight – it requires consistent daily grind.
You may have noticed a lot of my tips focus on precisely that. Finding time to study consistently.
An athlete doesn't become championship-ready in a day, it requires months of daily grind.
I believe it's the main variable that determines success and failure.
To develop a new habit, it's important to repeat the behavior daily – that’s why I also ascribe to the code of everyday concept.
Becoming a coder might seem like a long way, but your knowledge compounds and that day does come. And when it does, it’s worth it.
Skipping a day here or there is fine. Just make sure to continue back from where you left off.
“Continuous improvement is better than delayed perfection.”- Mark Twain
Persistence is Everything
It is normal to make mistakes in this process, and there is no problem with that. Just incorporate some of the ideas discussed above and apply them to your life consistently. Trust your potential.
Sure, it may not be as easy as a walk in the park, however, take it from me - with a decent amount of passion, perseverance and discipline, there is no reason as to why you cannot reach your goal.
Check out my The mindset and habits that helped me learn to code and successfully change my career post for additional tips.
This Isn't For Everyone And that's OK
One last note. It's important to note that this path may not be suitable for everyone. Some individuals choose to leave their jobs entirely to focus on coding, and there are also intensive coding bootcamps available.