Hello World

08/01/2024

ยท

9 min read

Let me preface this blog post by saying I'm a pretty terrible writer, so this blog is also partly to hopefully help me improve my writing skills (I was always a maths guy in school). The aim of this blog post is just to explain my journey so far, and for you to get to know a little about me.


Beginnings

I hail from the picturesque island state of Tasmania, where the tech scene is, admittedly, a bit of a rare find. The challenge of a virtually non-existent tech community has meant that opportunities for mentorship and structured learning have been sparse. However, since my formative years I've always had an interest in technology and I would always have so much fun experimenting and learning various things. My initial foray into coding coincided with the era when Myspace reigned supreme in the realm of social media. Hours were spent tweaking the HTML and CSS of my own profile, and soon I turned this newfound skill into a side hustle, customising Myspace profiles for others during my high school days. It was during this time that my fascination with coding truly took flight.

The rise of Facebook marked the end of my side hustle, but my passion for coding persisted. Throughout high school and college, I delved deeper into graphic design, a pursuit I still find enjoyable, though I recognized it as more of a hobby than a full-time endeavor.

After completing college I accepted an electrical apprenticeship. As I progressed in the field, I encountered programming in various forms, such as PLCs, controls, networking, and CCTV. This exposure reignited my interest in coding, inititaly it was just helping some clients adjust their existing websites with some HTML and CSS, which i still had a bit of a grasp upon since my Myspace days. The enjoyment derived from these experiences led me to a pivotal decision โ€“ I wanted programming to be my day-to-day job and from there I committed to the journey of becoming a software engineer.


Changing Careers

While career changes are becoming more and more common these days, it's relatively uncommon to see electricians aged 26 change industries...
Fair to say there are some risks involved with what I'm doing, but to be able to rock up and do something you enjoy each day is priceless to me.

I went about learning programming by myself, it's definitely one of the hardest if not the hardest thing I've ever undertaken. Having to not only study and learn these brand new concepts, you also have to stay motivated and disciplined. I don't think I'd have been able to stay on track without 3 things Leon Noel told me.

  1. Learning how to learn - Since it had been quite a few years since I'd last studied I had no real idea how to approach it, even reflecting upon my past studies I really had no idea what I was doing. So I took a course on how to learn. This course broke down some key concepts that been instrumental throughout my journey most namely chunking and spaced repitition. Link

  2. Anki - A revolutionary program that transformed my study habits. I transitioned from inefficient note-taking to creating flashcards with Anki, leveraging its algorithm to schedule reviews and incorporating spaced repetition. Link

  3. Looking after myself - Sounds pretty simple but it wasn't just about the study sessions; it was about finding moments of rest, practicing self-compassion, and acknowledging the progress, no matter how small. As long as I turn up daily and stay consistent I know in the long run I will be successful and I think this applies to basically anything in life.

If you can't already tell I like to try keep things as simple as I can, a teacher back in the day once told me to keep things simple and dont overcomplicate it, this is some of the best advice I have ever received and whether faced with challenges or a problem I need to solve, I find that simplicity not only makes things more manageable but also enhances understanding and effectiveness.


Initial Studies

The start of my studies was quite easy, I was already well versed in HTML and CSS and I naively thought this was going to be a walk in the park. However, delving into a real programming language like JavaScript was a rude awakening for me.

Having never used JavaScript or really any other programming language extensively. I found myself overwhelmed by the vast array of new concepts โ€” variables, functions, objects, loops, and more. One of my initial projects was a sketch pad, and at that point, I felt overwhelmed. It took me a considerable amount of time to complete, even though it comprised only about 200 lines of code. I was genuinely uncertain about my ability to tackle such tasks. However, by dedicating myself to mastering the fundamentals, I began to make progress.

Anki became my best friend during this time, daily revisions played a crucial role in gradually bringing clarity to my understanding. The intense focus on the fundamentals eventually paid off. Developing proficiency in these foundational concepts across various programming languages simplified subsequent learning. It reduced the challenge to understanding syntax and language-specific quirks, marking a significant improvement in my programming journey.

You can view the project here


Parallels

As I progressed through my studies and started helping clients, I kept coming to the realisation that the software engineering industry is not to different to the electrical industry that I had previously come from. Many aspects are shared between the two, and I find that I can draw numerous analogies to simplify concepts, both for myself and hopefully for you.

  • Rough in / Backend - This is the preperation phase where the foundational infrastrucutre is set up, laying down the wiring and connections that will form the backbone of the entire system which will be mostly concealed. Similarly, in software development the backend is the behind-the-scenes architecture where databases, servers, and logic are established. In both rough in and backend development, meticulous planning and attention to detail are instrumental in laying the groundwork for a robust and seamless end product.

  • Fit off / Frontend - This is the step where electricians install the fittings & fixtures that will be seen and be used, think of a light or a powerpoint. This relates to the frontend in software engineering shaping the interface and user experience that end-users interact with. In both fit off and frontend development, precision and attention to detail play a crucial role in delivering a polished and functional end result.

  • Testing - This principle is highly transferable between industries. Just as an electrician rigorously tests wiring and connections for safety, software engineers conduct thorough testing to ensure correct and secure code. Testing, whether in electrical or software engineering, is foundational for safety, reliability, and delivering high-quality outcomes.

The overlapping principles between electrical and software engineering have not only simplified my grasp of their lifecycles but have also highlighted key transferable skills:

  • Problem solving
  • Importance of testing
  • Attention to detail

Current Endeavors and Future Aspirations

In my current pursuit of software development, my main focus is on creating impactful projects that showcase my versatility in the field. I'm adept at handling everything from frontend design to building robust backend architectures, resulting in the development of full-stack applications. This hands-on approach not only sharpens my technical proficiency but also enhances my problem-solving skills as I actively engage with clients, collaborating to craft efficient solutions tailored to their unique needs.

While my primary focus lies in freelancing and personal projects, I am eager to rekindle my involvement within the open-source community. Collaborating with fellow engineers to contribute to open-source projects is something I'm passionate about, as it allows me to share knowledge, learn from others, and collectively push the boundaries of technology.

Looking ahead, I am actively seeking a full-time position where I can leverage my skills and experience to make a significant impact. I recognize the importance of having solid fundamentals in order to not only adapt to but also lead in the ever-evolving landscape of technology. To sustain my momentum, I consistently delve into emerging technologies, embrace industry best practices, and actively seek feedback from both my peers and the broader community.


Final Thoughts

My advice to anyone planning to embark on this journey or already making progress is to seek out a supportive community where you feel comfortable. There are numerous talented individuals out there who are likely experiencing similar challenges. Joining forces to collaborate on group projects, share insights, and offering mutual support through the highs and lows can be immensely valuable.

Personally, I consider myself fortunate to have connected with many amazing people through 100devs. This community has significantly enhanced my journey, making it not just educational but also enjoyable.

In conclusion, the journey to becoming a software engineer has been long and had plenty of ups and downs and it's not over yet, but I would not change a thing. Having gone through the struggles of trying to make the simplest thing work but spending days debugging the issue has made me a better programmer (Deployment, IYKYK). It has also been transformative, enriching, and filled with continuous learning as I navigate the ever-evolving landscape of technology. I am genuinely excited about the endless possibilities and the contributions I can make to the expansive world of technology.

Matt ๐Ÿ˜„