Which leads me to my goal in writing this article. I hope to shed light on the steps I undertook and the lessons I learned along the way so that others can find the confidence to transition into being a Software Developer.
My backgroundAfter graduating from university with a degree in Civil Engineering, I ended up working in the mining and construction industry for seven years. I had recently transitioned into a Project Manager when I decided a career change was right for me.
Essentially, my decision for a change in career stemmed from my curiosity in finding what I was passionate about, my ability to dream big and the guts to do whatever it took to make my career change possible.
For some context, the construction industry in Western Australia was facing an economic downturn during that time — there were fewer projects on the market, existing projects were getting shelved and no one was safe from losing their job.
I was presented with an opportunity to pave a new path for myself: learn new construction standards in a new location, or learn something completely new that could potentially place me in a better position regardless of the location. Through all of this, I was certain of one thing — I wanted more out of my career than to simply earn an income. I wanted a long-lasting career in a field I was truly passionate about.
It was through this journey of self-reflection that I realised I was most afraid of lying on my death bed wondering about the “what-ifs” of not taking the chance to do something different in my career.
But what could I do? What was I truly seeking? What kind of career would I be passionate about? Where did I see myself in the future? What work would I be doing in that future?
I reflected on these questions for hours. With no clear goal in mind, I decided to take action to try to find the answers. It was the beginning of my journey to discover my life purpose. The first thing I did to better understand myself was to take the Myers-Briggs Type Indicator personality test. My result was true to me, and my values and also recommended a number of different careers suited to my personality type. These careers were mostly in the sciences, engineering and financial sector.
However, this still didn’t provide me any specific answers on what I would be passionate about as a job. Which lead me to my first month of rediscovering what I used to love to do.
RediscoveryGrowing up, I had many interests which included drawing, dismantling my toys to figure out how they worked, looking up ways of building websites, and most of all, gaming.
What I loved best about playing games on my computer was that it allowed me to connect with other people across the world and I was curious about how these games were built. However, over time, I had found modern gameplay to be repetitive and was starting to get bored because it lacked a compelling story to tell. I remember thinking to myself, 'how can I build a game I would want to play?'
It sparked a curiosity that I was compelled to answer, which led me to Unity 3D, a game engine used to create games on any platform. I spent many hours teaching myself how to use this program by reading their online how-to-use guide, leading me to the section about programming.
Epic light bulb flashing moment, PROGRAMMING! A flood of memories came back to me about programming as though I was suddenly jacked into the Matrix. 'I know how to code!'
That being said, if Morpheus asked me to prove it, well let’s say I would’ve been beaten.
During high school, I had taught myself some HTML, CSS, set up content management systems like Wordpress and Joomla, set up MySQL, navigated myself around cPanel, and uploaded website files using FTP programs. I was able to use the tools available to set up websites and had an idea of basic website architecture.
However, none of these required much knowledge on coding to implement, and therefore, was not a strong enough foundation for an immediate career transition.
I opened up my browser and searched... 'can I become a software developer?'
The overall answer, YES… but if you want a job you will require a Computer Science degree. Unsatisfied with this, I went to YouTube for validation and found people changing careers in a couple of months by self-learning. So, after watching a couple of videos, I discovered two websites that taught how to code for free - freecodecamp and codecademy.
ValidationAt this point, I was still working as a project manager but would find myself effortlessly spending every available moment to learn to code on codecademy and freecodecamp. I was motivated and would be completely immersed in my self-learning journey.
Personally, it was refreshing for me to rediscover my appetite to learn and the satisfaction and excitement I got out of finding so much enjoyment in coding was something very foreign to me. I felt like I was getting closer to realising my ‘perfect’ career path.
Another aspect that was contributing to this feeling of validation tied back to the construction industry and what I liked most about it. To me, the most satisfying aspect of construction was the opportunity to constantly building something new, or making new of something old. Whilst learning to code, I realised this was something I could still do as a programmer — coding enables me to build something new and also convert old code into new and relevant code.
These sentiments stuck with me as I continued to persevere in my studies every day. Every module felt great to complete because I was truly enjoying what I was learning. When I didn’t know the answer, I would come across StackOverflow for the occasional answer and off I went again!
After having completed multiple modules, I decided to use what I had learned to build something. I decided to build a 3D sphere which shot at targets. So I went into Unity 3D, wrote some C# code, compiled the code, and it worked! My 3D sphere was shooting and making targets disappear! Awesome, now lets ramp this up and find something even more challenging.
I returned to the Unity 3D website with the intent on finding other tutorials and had stumbled across a page on Unity Certification. I thought to myself how great a challenge this would be, and definitely, one which would test my interest and abilities. So, I decided to take the plunge — I signed up to take the certification exam which was held a little over one month away on the other side of the country, booked a return flight to Melbourne and two nights accommodation.
At this point, all I had was a couple of hours worth of experience relevant to Unity 3D and basic C#. To pass the exam, I was required to score a minimum of 75%, and if I missed this chance I would have to wait until the exam was held again one year later. I clearly remember wondering if I had unrealistic expectations of myself; however, I also felt like I needed a challenge to truly prove how much I could learn and achieve within this deadline. I gave myself an ultimatum…
ChallengeThe exam was paid for, flights booked and accommodation sorted, now all I needed to do was prove that David could beat Goliath. It was a chance to prove to myself that I could become a programmer, that I could change my career if I put in the effort.
Relentlessly and without fail, I spent the next five weeks after work studying six hours a night, and 16–18 hours each day every Saturday and Sunday. During that time, I completed studying the certification modules, created experimental projects on Unity 3D, and completed a Unity Certification Course from Udemy.
I remember spending my first night in Melbourne pacing in my hotel room, with my mind telling me that people in the industry would spend months or years working with Unity and coding to get certified but I only studied it for one month. What did I get myself into...
The next day, I attended the Unity Event and had to wait till 3:00 PM until I could sit the exam. The entire time I was at the event, I felt like throwing up from nerves. While waiting, I tried to keep myself occupied by trying out the cool things built by small teams with Unity. I remember watching people in the industry and what they had accomplished with envy; hoping so badly that I could be one of them.
Two hours before the exam, I found myself a quiet corner revising some notes I had prepared earlier. That was when I spotted the founder of Hipster Whale, Andy Shum, across the room. Of course, I approached him and asked for a selfie. For those who do not know who is, he is part of the team that created the popular game Crossy Roads. I walked away from my short interactive with him, thinking how much I wanted what he had: the skills to create anything at any time, and having people enjoy my creations on a global scale.
Before entering the exam room, I had a moment to chat with the guy next to me who had two years working experience in Unity development. At that moment, it felt as if my heart was going to stop beating and I was silently freaking out whilst feeling like an imposter.
Before I knew it, the exam had started. I took a moment to refocus and with resolve, I told myself to just give it my absolute best. Time flew by as I sat the exam and before I knew it, I was done. With 30 minutes left to spare, I submitted my ‘answers’ all while feeling a little confident that I did OK and that I should be able to pass. My passing score of 86% flashed on the screen. I passed! I did it!
I exited the exam and was congratulated with gifts and Unity memorabilia including a t-shirt that I would wear occasionally, I felt like a rock star; like I had worked so hard for this moment and had proven to myself that I have what it takes to continue on my journey to being a programmer. The next day, I flew home, shared my success with my family and proceeded to figure out what was next in this epic journey.
I returned home as a Certified Unity Developer. The Unity T-Shirt that made me believe anything is possible
Self-taught Online Bootcamp and MeetupsMy new goal was to get hired as a Software Developer. To get there, I needed to prove that I had the capability to deliver; however, I didn’t have much experience in coding.
As a first step, I decided I didn’t want to waste time learning a language that was not in demand, so I attended every local Meetup event in Perth related to software development.
I remember attending a Ruby meetup listening to a presentation about session tokens with absolutely no idea what it all meant. More specifically, it was related to Ruby on Rails. In my mind, all I could picture was gems fixed to train tracks. I was completely clueless. I knew I had much to learn if I wanted to make myself employable in the industry.
At each Meetup session I attended, I’d approach other software developers and directors of companies asking for advice on what I should learn in order to be desirable in the industry. They all were speaking in a language that was completely alien: “SCRUM”, “LAMP stack”, “Node backend”, “MEAN stack” and so forth. Instead of looking like a fool and asking what all that was, I just nodded my head as though I knew everything they were saying. After each Meetup session, I’d return home and Google all this jargon.
One day, while I was Google searching after a Meetup session, I stumbled on The Complete Coding Bootcamp on Udemy. It was the first time I had learned there was a separation between Front End, Back End or Full Stack Development. From there, I set my target on becoming a Full Stack Developer because that meant I would be able to do both Front End and Back End development. I wanted to do whatever it took to be as desirable to hiring managers as possible.
The next month I studied the same number of hours I had spent studying for the Unity Exam, not because I had to, but because I was driven by curiosity and determination. Occasionally, I’d take breaks from coding/studying to attend Meetups. During this self-learning experience, I finally found what I was passionate about — coding.
After building a small portfolio of work, I prepared my resumè and cover letter to begin job hunting. Unfortunately, Perth was not considered a tech hub and did not have many opportunities for software developer positions. I decided to look over east and found Melbourne and Sydney had the most job offerings in the industry. However, I couldn’t just pack my bags and move interstate because I was still employed in the construction industry, and the fear of making the move without the certainty of a job scared me.
Learning about General AssemblyI contacted a friend of mine who lived in Melbourne and worked in web development as a Front End Developer. I told him that I had been working towards changing careers into the tech industry but felt I had a huge disadvantage because I was self-taught and didn’t have a Computer Science degree. He reassured me that he didn’t have a degree in the IT field either, and tole me he was currently working with a number of people that had come from General Assembly, and that they wren't bad at programming. He proceeded to tell me they had a good reputation in Melbourne and it seemed that companies liked their students.
Who and what is General Assembly (GA)? I had never encountered them before and the courses they offered. Through my research, I found they were marketing their graduates as having high employability rates — their graduates managed to find jobs with a very high success rate within three months of completing the Web Development Immersive course. I took that marketing spiel with a grain of salt and decided to validate that statement for myself.
I went to LinkedIn and searched for as many General Assembly graduates as I could, connected with them.
I decided to take a chance and enrolled to attend the immersive course. The immersive course was a full-time course, over a span of three months with classes and workshops each day. I was given two choices: to study over Christmas or begin early February. Since I had a holiday booked in December, I had to attend the February classes. By the end of the year, I had resigned from my job, packed my bags and moved to Melbourne. From this moment, it was certain that I would invest all my efforts to becoming a Software Developer.
Moving to Melbourne and GAWithout going into too much detail, I spent the next three months learning with individuals who had the same passion as I did to get into the industry. Being self-taught with some skills in web development prior to attending GA, helped me keep up with the pace of the lessons but the course was still challenging enough to continually contribute to my learnings and prepare me to be a programmer.
General Assembly provided me with a safe environment to learn and experiment with different ways of programming. I used most of my time there practicing functional coding and building upon the basic knowledge I had previously attained through self-study.
GA has an outcomes producer whose job is to help you find motivation and advice on finding a job at the end of the boot camp experience. The advice helped me obtain multiple job opportunities, which assisted me in landing a job at the end of the course. This was the start of my career as a software developer.
Getting into ThoughtWorksI first heard of ThoughtWorks when attending Meetups in Melbourne during the time I was studying in General Assembly. At that time, when I was studying, I knew I had to continue learning more about Software Development and attain good practices in coding.
The concept of Test Driven Development (TDD) was briefly mentioned in GA, but was never explored and taught. I wanted to build reliable software that was able to give fast indication of what I was coding will work as intended, this led me to teach myself how to TDD.
ThoughtWorks really reiterated their commitment to good software engineering practices which resonated well with me. So I took the opportunity to apply, as I felt there were many things I could learn that would shift my mindset to building maintainable software.
I've been with ThoughtWorks for almost two years, and feel like I have grown and learned so much in a short space of time. My advice to junior Software Developers is to look at working for companies like ThoughtWorks that enforce a strong mindset of good software engineering practices.
Final thoughtsIf I were to give advice to anyone thinking of making a career change, it would be to learn the basics of programming on your own, and enroll yourself into an institution offering bootcamps to help you progress further and build a portfolio to attain a job.
This has been my personal experience in career-changing into the tech industry. I have found it a very fulfilling journey, in so many ways. I’m glad to have taken this leap of faith to venture into something completely unknown to me despite the uncertainty, risks, and fear.
Thanks to this experience, I have been able to find what I’m truly passionate about, and do fulfilling, exciting work every day!