Finding a Path As a Self-Taught Software Developer
My journey in software development began several years ago after a conversation with a friend. He had recently hired a small development company to help him build an app for his commercial real estate business. As we spoke more about it, I thought about my own ideas for apps and wondered if that was something I could do.
I had learned some basic HTML & CSS and built a couple of simple websites in the past, but I had no experience with anything more complex than that and started thinking about what I might need to learn to build apps myself.
It was around then that I decided I was going to learn how to code.
I began asking people I knew that worked in tech what programming language I should learn. One friend suggested learning JavaScript at an in-person coding bootcamp in NYC, so I looked into that program and others like it.
I noticed that a lot of them were teaching a similar web-development stack – JavaScript, Node, Express, Mongo and so on.
I liked the idea of enrolling in a coding bootcamp, but thought maybe before I commited to an expensive in-person program that I should try something online – to be sure that it was not only something I could do, but would be something that I’d want to continue to pursue.
Coding Bootcamps
After exploring a number of different online learning platforms, in the fall of 2019 I enrolled in The Web Developer Bootcamp at Udemy and devoted much of the next several months to learning the material covered in that course.
I quickly found that one of the great things about online platforms like Udemy is that it can be very affordable if you time things right – because courses are frequently offered at a generous discount – so I could buy several classes on the same subject, then concentrate on the one or two that I liked the most.
I bought a few more coding bootcamps and JavaScript courses so I could cherry-pick through them for a fresh perspective when I was having difficulty understanding certain material – like some of the more advanced JavaScript topics.
In the meantime I worked through The Web Developer Bootcamp from start to finish; and as I got closer to completing it, I began to apply some of what I’d learned to building various front- and back-end elements – e.g. forms & UI’s, RESTful routing & Express middleware, and database schemas & CRUD operations.
Touring and COVID
I’ve been playing music professionally for some time and had several performances scheduled around the northeast US in March 2020, so in late February of that year I stepped away from coding to begin practicing for my shows and preparing to be on the road for a few weeks.
It was around that time that reports about a new “coronavirus” that was slowly spreading around the US began appearing on the news more frequently.
I was touring with another guitarist and we played several shows between Minneapolis and Washington DC before driving to NYC for the final show on March 15th.
That morning the venue called and said they were closing down temporarily because of COVID – which, as we all learned in the coming weeks, was what was about to happen everywhere.
It was tough timing for me because I was getting to a place in my music career where I was being invited to perform more frequently, and I was accumulating more bookings on the horizon then I’d had in the past – then COVID threw a wrench in the whole thing, and I found myself right back in Massachusetts in front of my computer again for the next 18 months.
Building My First App
During that time I continued to apply what I’d been learning to building what would eventually become my first full scale Node/Express/Mongo production web app, Gigpromoter.
From initial concept through deployment and maintenance, I learned about every stage of building and deploying a production web application through the experience of doing it – including development of application language and content, user interface design and layout, back-end architecture, testing and cybersecurity implementation, and site optimization & web performance.
While I was building it I also saw how much my original concept changed and evolved – from a simple event promotion task-management tool to a comprehensive resource that could help new artists learn how to book, manage and promote live events.
I soft-launched Gigpromoter in 2022 – and between ongoing work on music and a few performances, I continued with my education in software development.
Continuing my Education
Because I was still curious about the experience of attending an in-person coding bootcamp, I continued to go back and read the syllabi from different programs to see what they were teaching – except now I found that I knew a lot of the material I was seeing, so I decided I would keep taking online courses to learn more about some of those topics I hadn’t covered yet.
As I had done previously with web development and JavaScript courses, in 2022 I bought several ReactJS courses on Udemy, then found two that I liked the most and worked through those for the next several months.
I did some traveling around the western US in late 2022 to take stock of where my life was and where I was going. During that time I decided that I would go all-in with my coding education, and committed to learning the remaining material listed on those bootcamp syllabi that I had not yet studied – namely, connecting the pieces of the MERN stack; learning about automated testing and data structures & algorithms; and studying development paradigms & methodologies like Agile, Scrum & Kanban, and OOP design patterns & principles – as well as continue to develop my programming fundamentals on platforms like Leetcode and Codewars.
I also found that I was seeing Typescript being talked about in a lot of the same places as JavaScript and web development, so I took a course on that as well.
Being a Self-Taught Developer
A quick search online will reveal that there are many ways to define what it is to be a self-taught developer, but also that many of those definitions have a few things in common – i.e. that someone has engaged in online courses, tutorials, and self-study, and gained practical experience by using what they learned online to build applications.
I neither received a degree in computer science nor attended an in-person coding bootcamp, but over the last four years I took a lot of classes online, watched a ton of instructional videos at Udemy and on Youtube, took hundreds of pages of notes, worked through countless code-along exercises, and read a lot of tutorials and blogs about coding, JavaScript, and web development.
Additionally, I supplemented my online study with a lot of books that really helped me out such as A Smarter Way to Learn JavaScript, The Imposter’s Handbook, and The Complete Software Developer’s Career Guide.
I also found that tech podcasts can also be an invaluable source of knowledge and have learned a great deal from listening to podcasts such as JavaScript Jabber, Syntax, Coding Blocks and CodeNewbie.
I’ve learned that the disadvantages of taking courses online – mainly, not having access to a live instructor in a more formal bootcamp setting, or the peer network and other opportunities I’d likely gain in such an environment – have emerged as advantages in the sense that if I don’t know or understand something, then I have to rely on my own research skills and initiative to identify exactly what it is that I need to learn, and then figure out how to learn it – because as I’ve also come to understand, that’s a lot of what a developer does every day.
Lessons Learned
I’ve often said that if someone is going to be an artist, then nothing and no one can stop them or stand in their way – if they’re going to do it, they’ll find a way to make it happen.
I’ve learned that the same can be said about becoming a software developer. Especially during this time, there are so many different ways to learn how to code and such an abundance of resources online that if someone wants to learn those skills, they have the opportunity to try many different learning paths until they find the right one.
It’s taken some time to get to where I am now, but I’m happy with the path I chose – because as much as I’d still like to have the experience of doing an in-person coding bootcamp [and I still might, who knows], I can see now that the path I took gave me the space to understand all that I’ve learned on a deeper level, and that the path I chose was the best path for me.
Subscribe to my newsletter
Read articles from Peter Ciluzzi directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Peter Ciluzzi
Peter Ciluzzi
Software engineer with a passion for seeing the big picture and working across the full scope of the software development lifecycle, from initial concept through deployment and maintenance