📚

Picking Curriculum

Picking the curriculum can seem pretty overwhelming at first. There are so many choices when picking an approach to learn how to code. From boot camps, to youtube and blogs, to paid courses. It is a pretty wide spectrum and each at wildly different price points. Even within each category, there are courses that range from $10 to $400, or some sort of monthly subscription to a course platform. How on earth will you know if you pick the right thing? Hopefully, by the end of this chapter, I will have eased any anxiety you have on this subject and you will be confident to pick up some curriculum and move forward with it. I am briefly going to share my thoughts on three categories, boot camps, free resources, and paid content, as well as share some examples I would recommend.

Bootcamps

First, there are boot camps, and those themselves range wildly. They have both on-campus and online boot camps, ranging from thousands to tens of thousands of dollars. Some don't charge you till you get a job, some don't charge you till you make a certain amount, most of them are likely scamming and ripping you off. That isn't to say that they won't deliver on their promises, most of them simply don't provide anywhere near the amount of value they are charging you for. The number one asset these camps typically provide is a one on one, or a classroom environment with some sort of mentor/instructor. This is helpful, and hard to find elsewhere but in my honest opinion it would be worth trying to find someone who you can pay directly to mentor you if you think you need that. Paying a mentor directly can give you 100% of the real benefits these boot camps deliver at a fraction of the cost. I am saying this as someone who mentored for over a year at one of the largest online boot camps.

Benefits

  • Direct access to someone who is somewhat of a subject matter knowledge expert.
  • Resources (most likely) to help you get unstuck, and help with the eventual job search.
  • Typically a single source (or near single source) for decent curriculum.

Drawbacks

  • Expensive.
  • Often unreliable, even the good ones have questionable success.
  • The actual course curriculum is often just ok, or even behind cheaper courses made by individual creators.
  • Usually a huge commitment with a ticking time clock, not truly self paced.

Personal Conclusion:

Avoid boot camps if you can at all costs, to be honest. If you really want one-on-one mentoring do the legwork to find a competent Mid Level to even Junior developer that will mentor you within the price range of $40-$100 USD/HR and you will likely get everything you would out of a boot camp. Just do your diligence in finding and picking a mentor. There isn't any service I am aware of at this time that makes that easy. At that price point, you should be able to find some highly competent folks eager to help you if you look hard enough, and will pay a fraction of what a boot camp would charge you.

Free Curriculum

There is a lot of free curriculum out there of all sorts of quality. A lot of it is really top-notch, as good as the best stuff out there. One of the major downsides, when you are new to programming, is that free content is not always comprehensive. This can be for a wide variety of reasons, sometimes free content leads to paid content, sometimes it was only meant to cover a subset of information, sometimes it is incomplete, whatever the reason may be, it can lead to a weird situation, where you are piecing together a bunch of different free content. This can lead to you covering the same few subjects over and over, leading to boredom and frustration. I think its best to avoid this entirely and pick a comprehensive curriculum for your first courses. By comprehensive, I mean something like "Learn JavaScript" or "Learn HTML and CSS" and not something like "Learn how to make a popup using HTML, CSS, And JavaScript." While the second one sounds great and will be helpful eventually, you shouldn't take a lot of stand-alone tutorials like that if you can avoid it. Ideally, you could find a comprehensive course, made up of many project-based tutorials like that, but this can be hard to find in the free-curriculum space. Because of everything I have said above, while there are many enticing options for learning how to code for free, I don't think there is an option that comes close to FreeCodeCamp.

FreeCodeCamp is extremely comprehensive, It can be your sole source of coding curriculum (this doesn't mean you won't still have to look stuff up) and by the end of it, you should be more than job-ready, you will have several finished portfolio-worthy projects, a deep understanding of web development fundamental and intermediate concepts. If you choose this route I would strongly recommend taking the three to four following certification courses if you hope to be a web developer in this order.

  • Responsive Web Design Certification (300 hours)
  • JavaScript Algorithms and Data Structures Certification (300 hours)

Then I would take either one or the other of the following.

  • Front End Libraries Certification (300 hours)
  • API's and Microservices Certification (300 hours)

At this point, you should have enough skills to be employable, but it won't be the easiest thing to find and get a job. I would start applying but also start on the other from the second set of courses. This means at minimum 900 hours of work before you start applying, and you are likely on the hook for all 1,200 hours in the current market. Reading this might feel like a punch in the gut to a lot of you. If you can only do 20 hours per week on learning then from what I said above this will likely take you around a year. You might be eager to join "TwoFortnights" and see if that is some quick path to success. It won't be though, I have taught a lot of people how to code, either at the Bootcamp, I worked for, the meetups I ran, or the people in my life I just wanted to help, and I haven't found anything that shortens it much, other than a predisposition to computers from a young age, then sometimes they pick it up about twice as fast in my experience, but only to a certain point, then everyone kind of evens back out for the most part. What I am saying is, there are no shortcuts and you should accept that this path is long and arduous, you should not stay away from FreeCodeCamp for the sole reason that they don't lie to you and give you an unrealistic timeline. Benefits

  • Great price point.
  • Lots of others have taken the same course, and answers to common questions are not behind a paywall or hard to find.

Drawbacks

  • Very difficult to find good free resources.
  • Often not one complete course, requiring you to piece a bunch of stuff together.

Personal Conclusion

Go with freeCodeCamp if you go this route, it may be intimidating, and it may use some computer science jargon that is sometimes tough to understand, and can even be a bit dry, but it is the most surefire resource to ensure you learn all the skills you need to get job-ready as a web developer, and honestly, it outdoes a lot of paid resources in terms of quality and completeness.

Paid Curriculum

Your first assumption might be that paid content means it will be better than free content, but this is not always... or even often true. You want to be careful to weed out scammers who put little to no effort into a course that they have little to no expertise on for a quick cash grab. Their people are pretty easy to spot, to be honest. They are usually on giant course platforms (Like Udemy for instance) and they have tons of average rated barely related courses. Be wary of someone who teaches Unity, React, Angular, iOS development, and basket weaving, because they probably won't teach anyone of those one things well.

Sometimes people will waste $100-$200 dollars and a lot of time on 10-15 low priced courses when they could have spent $50 on a great extensive course. Look for courses by specialists who focus on exactly what you are trying to learn. Assuming that is web development some great examples of places to get courses are:

There are many more, but I hope this illustrates my point. There are hyper focused $50 courses by specialists, and if you do the due diligence to find them you can find great content for the fraction of a price of a single college textbook.

If you decided to pursue the paid course route I suggest you buy courses that match up pretty closely to the freeCodeCamp ones I mentioned above in the free curriculum section and take them in the same order.

Benefits

  • Tons of great content by hyper qualified specialists.
  • Cheap relative to bootcamps and traditional education.
  • Often very well produced and more lively content.

Drawbacks

  • Could end up buying garbage.
  • Can be hard to get community support.

Personal Conclusions

I would recommend you take any courses from the three paid sites I linked above, but specifically I really like Wes Bos's Beginner JavaScript course. If you are looking for a paid resource for HTML and CSS I really recommend codecademy for that, but only for that. I would learn JavaScript and everything surrounding it elsewhere. I think the very act of paying for

Concluding Thoughts

The reasoning behind the order of courses I recommend is to get the basics of HTML and CSS out of the way. Then swallowing the hard and boring pill of JavaScript fundamentals. Then learning both frontend and backend development, you pick the order, and start your job application process after you learn one of the two. You can always mix free and paid courses, and I probably recommend this approach if money allows.

A lot of people debate about whether or not you should learn JavaScript first before trying to learn front-end or backend framework. I honestly don't think there is much to debate, as long as you have the discipline to get through learning JavaScript first then its pretty much unquestionably the right decision. Most people argue that it can be discouraging to do this, and that seeing things on the screen quickly helps people learn. That might be true, just know this will absolutely slow you down, and you are trading long term satisfaction for fleeting moments of joy. You will still experience all the same discouraging boring moments, just spaced out longer in-between some dopamine hits. If you have the discipline, or can force yourself to temporarily have the discipline I can not urge you enough to take a fundamental JavaScript course BEFORE a course about any front-end framework, or about backend development.

After you pick a course, no matter its quality, once you have completed let's say 10% of it consider yourself locked in. You must now finish this course to its completion. This will help you develop some important skills as a developer. First, it will teach you to identify bad projects early. You should be able to look at and figure out if a project is worth embarking on before accepting a job or a client as a developer. Learning to carefully research your courses is the first step in that. Don't let a lot of garbage courses take up a ton of your time only to end up half-finished. A lot of people make this part more difficult than it needs to be. They spend a long time looking for the perfect course for them. Then when stuff gets tough, or they don't understand something for too long, they blame the course and try to find another "better one". I was one of these people, hopping from course to course, subject to subject hoping that something would make everything magically click and get easy. That isn't how this, or really much of anything works. You need to see these things through to the finish. The author of the course might be leading to something you don't fully realize that might make everything click a lot more at the end, but even that is beside the point, more than anything learning to code is about determination, and if you adopt a mindset of giving up you straight up will not make it through the interviewing stage. Furthermore, on the job, there will often be times when you feel in over your head like there is no clear path out, and you will be expected to manage, break things into smaller chunks, seek help from, and overcome your problems. This is yet another skill you might as well start developing now because it will pay dividends for you. Do yourself a favor and finish the courses you start to a substantial degree, even if they seem questionable later on, if only to have the functioning code as a future reference or base to expand upon.