No, You Don’t Need a Bootcamp or Degree to Become a Software Developer
Oct 21, 2024Do you really need a bootcamp to become a software engineer? While it may seem there are only two viable paths into the world of software — bootcamp or college degree — there is another way.
Full disclosure — I did complete a bootcamp style program nearly 7 years ago. The price tag was trivial compared to what the average programs costs nowadays — $2000 for 12 weeks — but to me, at that time, this was a sum of money that I figured I might not soon see again. I needed to make this work.
In the months leading up to my program, I furiously studied, spending my weekends and free time building awful looking sites after learning HTML and CSS then learning enough Jquery and Javascript to be dangerous. By the time the program started, I wasn’t so much as learning anything new as I was reinforcing what I had taught myself. I was hired 8 weeks into the program and have continued a mix of self-study and bootcamps since then to round out my knowledge.
So do you need a bootcamp? Short answer: NO. One of the strangest complaints that I see about bootcamp programs for software engineers is that “you can learn all this material online… for free!” Well, yeah. Internet.
What a bootcamp provides is a clear and well-defined path to proficiency. The world of web development is as wide as it is deep. Where do you start? What do you really need to know to get hired? If you get stuck on a problem, where do you go for help?
Without knowing where to start or what you need to know, it’s easy to go down several rabbit holes and end up spending a year at the University of Youtube without much to show for your progress. I’ve met more than a few Youtube-ologists who know all sorts of abstract software trivia but struggle to put together a website.
Most bootcamps proclaim to be full-stack. What does that mean exactly? Well, simply that students will have the skills to work on both the client (think the user interface or what a person sees when they go to a website) and server (the database layer, and much more that is not on the user facing side of things).
I would argue that few bootcamps are truly full-stack and most focus on the front end of things with some superficial knowledge of databases and server-related topics.
I would continue to argue that you can absolutely teach yourself enough front-end skills to become hire-able without forking over upwards of 10k.
Here’s what I would learn, in order:
- HTML & CSS
- Install VSCode on your computer
- Take Codecademy’s course on HTML & CSS
- Learn Bootstrap
- Understand how flexbox and grids work
- Learn how to use media queries
- Create a basic site using HTML and CSS
- Replicate a popular site (like the homepage of AirBnB for example) using only HTML and CSS
- Update your work above using Bootstrap to make it responsive on different screen sizes
2. Git and Github
- Learn basic git commands for pulling, pushing and merging branches
- Create a Github account and repo for the sites you created above
- Update your projects and push the changes to your Github repo
- Explore git pages and create a quick draft of a page about yourself using git pages and deploy it
3. Jquery
- Learn about some basic user events like
onClick, onHover
and how Jquery implements these methods - Create a Github repo for practicing Jquery user events
- Make a series of buttons that have
onClick
andonHover
handlers and update other elements on the page by triggering these events (for example: turn adiv
a different color when a user clicks a button)
4. Javascript
- Take Codecademy’s course on Javascript
- Rewrite the Jquery in your repo created in step 3 using Javascript
- Look up how to use AJAX and then use it to query an API (there are many free APIs available)
- Install Postman on your computer and practice querying APIs using this tool
- Create a small app where a user triggers an AJAX request and displays this information on the page (New York Times has a free API last I checked, though there are tons of free APIs out there)
5. Deployments
- Take the project from above and deploy it using Netlify or Heroku — each of which has free tiers
- Deploy this same project using AWS Amplify and trigger a build from a push to your Github repo’s main branch
- Learn about branching strategies using Git and experiment with creating
stage, development
andmaster/main
branches for your AJAX project and deploying it to Heroku/AWS/Netlify
6. ReactJS
- Learn about NPM and node modules
- Learn about hooks, lifecycle events and the virtual DOM in ReactJS
- Install create-react-app
- Re-create your AJAX project from step 5 using create-react-app and class based components
- Refactor your project to use function based components and hooks
- Add routes to your React project
- Persist the results from your user’s AJAX query using local storage or cookies
- Deploy this project to AWS/Netlify/Heroku
7. Algorithms (Begin this step after learning basic Javascript)
- Do 1 easy/medium level question on Leetcode each day (no more than 45 minutes before looking up answer)
- Learn the basics of Big O Notation and how to determine run-time and space-time complexity
- Look up the most common interview questions on Leetcode and attempt to do 1 question a day
- Create an account on Pramp and do one mock interview a week
8. Javascript (Again)
- Learn about promises and async/await
- Learn the difference between prototypical and class inheritance
- Read the first installment of Kyle Simpson’s book series You Don’t Know Javascript: Up and Going
- Practice your understanding of objects and classes by creating an Bank object with methods to support asynchronous withdrawals and deposits, a method to support checking balance and a check to ensure a user cannot withdraw more than they deposit
- Refactor this Bank object to be a class
- Learn the difference between
call, bind and apply
- Learn about closure — now use it
This incredibly opinionated list I’ve provided is entirely front-end focused but learning how to deploy your projects will give you some exposure with back-end related concepts.
You may notice I did not provide any links above. I believe that if you can’t be bothered to do some Googling, then you probably are only interested in getting paid to write code and not committed. You need to be committed!
Once hired as a software engineer your learning does not stop. If anything, you are expected to learn faster while on the job. You WILL be exposed to concepts, frameworks and possibly languages you are not familiar with. Learning how to learn is an invaluable skill and teaching yourself to code is the best way to build this learning muscle.
The self-taught route is not for everyone and without strong personal accountability and focus, it’s easy to get into learning limbo, burnout or despair.
If you do choose to go this route, but want someone to help guide you, hit me up. I have taught dozens of students over the years how to become developers, interview and land positions in software.
Good luck!