My Self Taught Programming Journey… So Far

On 1 March 2016, I made a decision that would take me on a journey I never expected, a journey that I am grateful for every day.

Jean Malan
7 min readOct 31, 2018

I was sitting in my office, working as a junior accountant, frustrated with all accounting software to the point where I decided to start building my own. I had no real programming experience, I had done a few basic web design courses but other than that, I had no understanding of programming in general. I decided to teach myself, through online material everything I needed to be able to accomplish such a task, which was difficult considering I had no real idea at what a mountainous task this really was. To top it all off, I was set to finish my undergrad in 2016, which meant that time was extremely limited. But I began anyway.

In a few key moments, my journey so far can be broken down to a few key factors/moments.

1.Get Started. The issue with being self-taught is actually starting somewhere. There are so many options out there to learn and it is often difficult to choose a path to go down. When I began my journey, I had found what I believe to be, the best online learning resource, that would simplify the process for me, Treehouse. With their learning tracks, it was easy to track progress and switch between material when needed. It was the perfect fit for my needs. Treehouse has some of the best teachers that guide you through the material. However, even with all the resources available, the trick is to just start somewhere, anywhere. Don’t get caught up in the forums of people arguing about what the best beginner language is or how popular it may or may not be — it is a rabbit hole that only makes matters more confusing.

2. Code every day. The first few months I made it my aim to code every single day for a minimum of two hours. As hard as it may have been, it was non-negotiable. I began learning Java under the impression that it was ideal for what I wanted to achieve but after much deliberation, I decided to switch to Ruby. Another key moment was, as the fundamentals of programming became somewhat familiar, I began to understand the specific roles of different programming languages. With the intention of building web applications, it was easy for me to see why Ruby on Rails was a great choice.

3. Prepare to get stuck. The beauty of the internet is that there is never any excuse not to know something. This means that regardless of how stuck you might be with a task, there are tons of forums willing to help, although, I can almost guarantee that you will find your problem already being solved somewhere. People are a lot more willing to help than you may think!

4. Keep going. As 2016 came to an end, my studies had finally finished which meant it was time for me to gear up and get working. I must admit, by this stage I was not confident in my abilities and felt that I was still far off reaching my goal. There will always be times like this that make you question why you ever decided to start, but as long as you can find the answer, you just got to keep going.

5. Make the leap. 2017 Arrived and I realised that I no longer wanted to spend my days as an accountant so I got a new job selling, and training people on, Point of Sale and Accounting software. The office was nearby to my apartment which gave me the opportunity to spend a more time coding than I had before — and I took full advantage. I decided that in order for me to truly reach my goals, I needed to make some short-term sacrifices. And my days began to look like this:
* 3 am — Wake up
* 3:35 am — Arrive at the office and get coding
* 8:30am — Work starts
* 4:30pm — Work ends
* 5:00pm — Gym
* 9:00/30pm — Sleep
This was not an easy task considering I need to uphold relationships, friendships and my overall wellbeing. But there was one thing I was sure of, later in 2018 I was going to get a programming job!! It is important to note, this is definitely not sustainable in the long run and the only reason I put in those hours was solely to reach short-term goals.

6. Coming together. Months went by of straight up hard graft, long days, early mornings and way too many cups of coffee, but, it was starting to pay off. In July 2016, I had completed building a basic accounting application that began resemble what I had envisioned. My skillset was growing by the day and my confidence began to grow, however, I still had far to go. It’s always good to reflect back and see how far you’ve come.

7. The key moment. August 2017, I decided to apply for a position as a Ruby on Rails developer. It was hard for me to leave a company so soon after joining, especially considering the flexibility they gave me. It is never easy leaving a company that truly treats you well, however, the time comes when its necessary for your career. I got a phone call from the company asking me to come in for an interview to assess my skill-set. This was, undoubtedly, one of the most nervous periods of my life. Unfortunately being self-taught makes you question your true abilities, because, along your journey, you become a master of nitpicking. This is not always a bad thing but when you face a technical interview, it is certainly not comforting. Needless to say, the interview was tough, I was asked questions I couldn’t answer with confidence, and others I could. The owner of the company told me that I was to write a technical project to determine my abilities as a developer. Once the seriousness of the interview toned down, I asked if he would like to see the accounting application I was building, to which he was more than happy to do. We went through the project in detail until he said: “ Okay, I’ve seen enough, the job is yours if you want it”. At this exact point, I felt as if the weight of the world was off my shoulders, all the hard work had finally paid off.

8. The aftermath. It is now November 2017, 4:30 am and I am writing this. Needless to say, the early mornings haven’t quite stopped, although they have become less strict. I figured that if hard work paid off, I can’t stop there. The first two months of my job have been nothing short of extremely challenging. I have begun working on projects way out my league, but I do believe it is the best way to grow, learn and adapt.

9. My key points for anyone who plans to delve into the programming world:

  1. Programming is complex and a long, never-ending, journey, but slow and steady wins the race. Forget the shortcuts, just make sure to follow the learning material step by step, regardless of any repetition.
  2. Find online resources that you feel will fulfil your needs, and trust their process, they know what they are doing. I highly recommend Treehouse as a learning platform.
  3. Put in the hours. If you are going to be coding an hour or two a week, I can almost guarantee that sooner or later, it is not going to quite work out the way you want.
  4. Persevere, don’t get despondent, back yourself and trust your journey. My go-to reminder is from John Welbourne, “It is like moving a big ass pile of dirt. Some days you use a shovel, some days you use a spoon but as long as you move some dirt every day, you’re headed towards your goal.”
  5. Don’t be scared to pivot your programming journey. If you are trying to become a backend developer but find yourself leaning towards the more creative front end side, then don’t get caught up in something you don’t enjoy and pursue the path you want.
  6. Maximise your time, not your hours. It’s one thing working for 10 hours, but if the time spent is not productive, you may as well be working 7–8 hours. Rather maximise the time you have to be as productive as you can be.
  7. Start, just begin somewhere. Block out all the critics and get going. I can guarantee you, you will not regret it.

This is only the start of my journey. It is important for me, regardless of where I am, to continue pursuing my goals, one by one, because, without goals, the whole journey is simply aimless and if there is one thing I can assure you, it is this, hard work will pay off.

A huge shout-out to Ryan Carson and the Treehouse for providing me with the best resources, which really helped me get where I am thus far.

--

--

Jean Malan

Self taught developer currently on a quest to master blockchain technology and build modern enterprise applications.