Weston Ludeke

Launch School Core Curriculum Review: The Slow Path Towards Mastery of Software Engineering

Published in code.

rocket launch via Unsplash. used under a Creative Commons license

“Mastery is not a function of genius or talent. It is a function of time and intense focus applied to a particular field of knowledge” -Robert Greene, Mastery

After three and a half years of studying part-time while working at my day job on the support team at Streak, I finally completed Launch School’s core curriculum in June of 2023. For the unfamiliar, Launch School is an online, self-paced software engineering school focused on teaching the fundamentals of web application development through mastery-based learning.

My time as a student since beginning my studies has transformed me from someone with zero self-confidence that I’d ever be capable of being a professional developer to someone who currently has no doubt about my abilities. When I started the program back in January 2020, I had very little prior experience and was barely able to code much of anything. Today, I’m able to think deeply about code and am also able to create in-depth web applications. Throughout the past 3½ years, I dedicated a staggering 1,718 hours to working through the Launch School core curriculum. It has been an incredibly enlightening experience leading to tons of growth both as a programmer as well as personally. In this article, I’ll share my insights and provide an overview of the program’s core curriculum.

Origin Story

Before Launch School, I did a few different courses on Udemy, Codecademy, and Treehouse which taught me a bit of basic syntax and how to create simple websites. I also played around briefly with The Odin Project and FreeCodeCamp, though neither of those two programs clicked enough for me to stick with either.

By 2019, I had learned enough of the absolute basics of coding that I could “hack and slash” different snippets of janky code together in order to make a barely functional website or app. Meaning, I knew enough that I could copy different pieces of code taken from several different sources across the web in order to build a project, and I was able to build a custom Google Sheets invoice tool for my day job using the Stripe API and Google Apps Script. 

While I was impressed with myself for getting to the level that I could duct-tape that app together, the truth is, I barely knew what any of that code was actually doing. Being able to copy/paste pieces of code together to create a working app had some value to me as a beginner, and it was an important milestone for me to reach in my learning journey, but afterward, I still didn’t have the ability to understand what was happening on each line in the application. What that meant was that I had no idea how to troubleshoot the code when things would inevitably break. And even if I could eventually fix any potential bugs, I knew it would take an incredible amount of time to even begin to understand what went wrong in the code. After finishing that project, I knew I was still at a beginner level and was a long way from being good enough to work in a high-quality software engineering role at a top-level tech firm.

I then continued to do a lot of research on what to do next to fill my knowledge gaps and to advance to the next level. There are many bootcamps on the market and I spent time researching them, but I discovered many bootcamps require a rather large financial commitment of roughly $15,000-20,000 USD or they require the student to agree to an income share agreement (ISA) where they agree to give up a sizable portion of their future earnings until the tuition is paid. Even more concerning to me is that several of those programs require students to agree to pay the tuition in full and/or fork over a percentage of their income via an ISA even if they fail to complete the program or if they get removed from the program involuntarily. Not cool. 

I also researched enrolling at a traditional brick-and-mortar school to obtain a post-baccalaureate degree in Computer Science. The good news is there are several online CS undergrad programs that would’ve allowed me to go back to school part-time while keeping my full-time day job. One of the post-bacc programs I looked at closely was the CS program at Oregon State University, which seems to be fairly reputable and is a moderately-known school in the US. However, I decided against doing the OSU program as it would cost about $33k USD and I estimated it would take me about four years of part-time study on nights and weekends to complete the program. Several students on Reddit also were saying that the program’s material in many of their courses is subpar and that they were essentially having to teach themselves the material, which made the program seem suboptimal at that price point and for what I was looking for.

Another route I considered going was potentially getting an MSCS degree instead of a post-bacc in CS. I looked at several online MSCS programs, such as the program at Georgia Tech which has one of the top CS departments in the US (ranked #8 by US News as of 2023). The program at Georgia Tech seems to be one of the best in the industry and also appears to be of extremely high quality. G-Tech’s program is also notable for being incredibly affordable at a total cost of less than $6k USD. After spending a lot of time researching this route, I realized that it didn’t make much sense for me to get an MSCS at this stage in my learning journey when I hadn’t previously learned the fundamentals of CS that are typically taught at the undergraduate level. Getting an MSCS when I also hadn’t yet learned the fundamentals of programming, nor previously worked as a paid software engineer, didn’t make much sense to me at this point either.

An Oasis In The Desert

As I was researching the different potential paths to take, I randomly came across Launch School mentioned in a Reddit comment in late 2019. That comment sparked my interest and I later read through all of the pages on the LS website, including all of the blog posts they had published up until that point. Here was a software engineering school that promised exactly what I was looking for, to help me learn enough to go from a beginner level to a level where I would be knowledgeable and skilled enough to work as a software engineer at a top-tier company in the tech industry. I was also enamored with the fact their site had no marketing fluff and is full of high-quality, in-depth info, completely devoid of any slick sales pitches.

One of the most important parts that stood out to me is that Launch School isn’t a bootcamp. In fact, I’d argue after completing the program that Launch School is the complete opposite of the bootcamp model, the anti-bootcamp if you will. Unlike how students at bootcamps quickly progress through their program’s material and are thus given only a superficial, cursory overview of the topics, Launch School emphasizes a slower path where students do an incredibly deep dive into each of the foundational software engineering concepts. It’s the difference between only getting a brief exposure to different topics versus being able to spend the time to deeply master the concepts. As each individual course at Launch School requires an understanding of the material to the level of mastery before one is able to continue to the following course, there isn’t a single topic covered in a course that you can simply gloss over or rush through as a student. You must learn everything to the level of mastery in order to continue to the next course.

Mastery-Based Learning

Traditional educational models have a fixed timeline, that is, a fixed start date and end date that are set prior to a course starting. Students are (mostly) able to pass a given course and proceed to the next course regardless of their comprehension level. Often within this traditional model, a student may pass a given course with a grade of a ‘C’ (i.e. roughly a 70-79% comprehension level of the material) and is then able to continue forward to the next course. That simply isn’t possible here, as Launch School’s mastery-based learning model removes the fixed timeline from the equation altogether. Instead, students cannot proceed past their current course until they’ve demonstrated sufficient mastery of the material, regardless of how long it takes.

A huge benefit of this mastery-based approach is the program accommodates individuals with various skill levels and prior experience before starting, promoting a diverse and inclusive learning environment. Some Launch School students are complete beginners who have never previously written a single line of code or have very little prior experience (like me). Other students enter the program having previously obtained computer science degrees or having prior bootcamp experience and are looking to deepen their knowledge of topics that were only covered at the surface level by their prior programs.

Another awesome hidden benefit of the mastery-based pedagogy is that seasoned software developers with multiple years of professional engineering experience also find tremendous value in doing Launch School. There are several students doing LS who have several years of paid, professional engineering experience, some who are frontend developers who want to learn the backend, or vice-versa. Others are even already working as full-stack developers and they realized that they need to fully master the fundamentals before they’re able to advance to more senior-level engineering roles. I knew of one student who had twelve years of professional experience as a software engineer prior to starting at Launch School and was using the program to learn the fundamentals at a deeper level so he could get promoted to more senior-level engineer roles. 

Aligned With Students’ Best Interests

When researching Launch School, I also loved that the program hadn’t taken in outside funding from venture capitalists, as VC money sometimes leads startups to take shortcuts in order to hit unrealistic growth metrics. Of course, in theory, there’s nothing inherently wrong about a startup taking VC money, almost all of the largest tech companies do it. However, for education-based startups, it can sometimes lead to students being collateral damage if the startup is eventually forced to serve the interests of their investors instead of the students. The quality of the service provided to students may drop significantly in order to rapidly scale the company to meet the demands of their investors in order for them to realize a return on their investment. This has led some VC-backed coding schools to take on more students than they can reasonably handle, rapidly churning through staff members, and/or the course material changing on the fly without warning (sometimes changing a course’s material for students who are in the middle of the course!). There are endless stories online of these programs leaving students feeling cheated, wholly unprepared to find any decent job, and completely incapable of paying the expensive ISA bill that is now due. Not to mention, most of the other online learn-to-code programs don’t seem to have been founded by experienced software engineers.

Instead, what caught my eye about Launch School is that it’s run by solo entrepreneur, Chris Lee, who himself is a former engineer with decades of experience. I was also impressed with their pricing structure, realizing that it is designed to be aligned with the student’s best interests by charging a flat rate of $199 USD per month with no contracts or hidden fees, no income sharing agreements for the core curriculum, and the ability to cancel anytime. I liked that I could dip my toes into the water with Launch School and that I could cut my ties with minimum losses financially if I were to find out the program wasn’t for me. Much better than the alternatives on the market. After all of my research, I decided that I would enroll in Launch School!

Learning How To Learn

One of the biggest adjustments for me once I started learning at Launch School was leveling up as a student in order to be able to succeed in a mastery-based learning environment. When I was in college back in 2004-08, I was a fairly subpar student academically as I approached university life with a narrow mindset. I looked at college as a means to an end and didn’t realize the immense benefits of learning new things across a wide spectrum of fields simply for the sake of learning. I wanted to graduate as quickly as possible to get a good-paying job and didn’t care about grades or about actually learning much of anything. I was often content with a passing grade of a ‘B’ or ‘C’ if it meant I could continue to other courses and graduate faster.

Launch School’s mastery-based pedagogy, and the fact I was doing the core curriculum while maintaining my day job, forced me to train myself to have an immense amount of self-discipline at a level I’ve never had before. The program recommends students study for at least 15-20 hours per week in order to maintain sufficient progress, so I knew I would have to stay incredibly focused in order to maintain my progress while working my day job on top of everything else life throws at me. The program also helped me realize that in order to be successful, even though it’s self-paced, I couldn’t do it alone. I would have to de-isolate my studying, teaming up with other students in order to study for written assessments and to practice live coding to prepare for live coding interview assessments. It also taught me the benefits of circular learning, that is going over each course’s material multiple times in order to achieve true mastery of the material to the level of being able to pass the program’s incredibly difficult and thorough assessments.

When I have downtime, I’ve also been spending a lot of time reading as many books as possible to help me understand the art and science of self-discipline and mastery. Learning that there’s no such thing as natural-born talent and that success in any field actually comes from an incredible amount of hard work, grit, and determination, was incredibly eye-opening and liberating. I had to learn that people who are incredibly successful in any discipline, from computing to mathematics to science, etc. aren’t due to some innate talent that they’re born with, but is instead due to an immense level of hard work that they put in. I also had to learn that mastery of any topic isn’t achieved due to intense, infrequent bursts of hard work over a short amount of time, but it’s instead due to consistency over a longer timeline. 

These realizations were incredibly liberating as I began to understand that I too could succeed in this field given enough time and self-discipline. My poor GPA at university from fifteen years ago isn’t a reflection of who I am today, nor of my potential in the future.

Be More Ambitious and Set Bigger Goals

“Do not think that what is hard for you to master is humanly impossible; and if it is humanly possible, consider it to be within your reach.” —Marcus Aurelius

Launch School has completely changed my mindset about the industry and has taught me to be a lot more ambitious and to set much bigger, bolder goals in life. This is because the program encourages students to look at the bigger picture, to approach their learning journey on building a career rather than solely aiming for getting a job. This mindset encourages students to think in terms of decades, emphasizing long-term growth and professional development. 

Many other learn-to-code programs and bootcamps also encourage their graduates to get any job that they possibly can, even if the role isn’t a software engineering role, isn’t at a tech firm, and/or isn’t at a decent salary. Launch School is specifically designed for students to learn enough to build a long-term software engineering career in the tech industry. The best way to maximize your earning potential over the course of your career is to work as a software engineer at companies where the engineering team is a profit center for the company. That is, where the work the dev team does on a daily basis directly contributes to the company’s bottom line. Even though I knew a lot about the tech industry before starting the program, I had never previously known about the differences between working in a cost center versus working in a profit center until Chris Lee discussed these concepts several times at length over the past few years.

In order to do that, to get a high-paying software engineering role at a high-tech firm (i.e. at a profit center), one must avoid what Chris calls the “Career Transition Trap”. Many newbies and aspiring developers think the best route is to simply learn “just enough” to get their foot in the door. Then from that entry-level job, they’ll be able to quickly level up into the more desirable roles in the industry. However, Chris points out that this jump almost never happens and is incredibly difficult, as it’s far easier to make the jump from a non-engineering role to a bad engineering role than it is to make the jump from a bad engineering role to a good engineering role. This might be the most surprising and counterintuitive advice I’ve learned from Launch School but also may be the most valuable advice I’ve learned so far.

Take Your Time and Learn to Depth

One of the key principles that I’ve also learned that is important in order to have success at Launch School, and with learning to code in general, is it’s best to avoid placing artificial deadlines on oneself. When evaluating the different paths and programs available to learn how to code, many prospective students give themselves a random timeline of when they want to have completed a learn-to-code program in order to start looking for a job. I believe setting artificial deadlines should be avoided as it often leads to students taking shortcuts when they inevitably hit a roadblock and/or if they feel they aren’t progressing fast enough. The truth is, that learning programming deeply enough to get a highly-paid software engineering job at a top-tier tech firm takes time and the process cannot be rushed. Focus on the long term and trust that the process will be worth it in the end, even if you have to take some side gigs or have a day job in order to pay your bills.

Other programs may briefly introduce you to a programming language over the course of a few weeks, and then immediately dive into frameworks and libraries. Launch School takes the time to help students fully grasp the intricacies and nuances of the entire language by itself. By understanding the language deeply, students can make informed decisions about when and why to use specific frameworks or libraries. Angular, Express, Node, and React should be thought of as solutions to problems, and unless you deeply understand the problems they solve you won’t be able to fully understand if Rails or Sinatra, etc. are the appropriate solutions for your specific situation. 

“Don’t be a boilerplate programmer. Instead, build tools for users and other programmers. Take historical note of textile and steel industries: do you want to build machines and tools, or do you want to operate those machines?” -Ras Bodik, CS professor, University of Washington

Looking at the above quote, do you want to be someone who only has superficial knowledge and learns “just enough”? Or, do you want to be someone who understands things at a deeper level and has the knowledge to rapidly advance in your career? That latter is what sets Launch School apart, and it’s not hard to imagine that the level of foundational depth Launch School teaches will lead some future Launch School alumni to eventually create their own frameworks or libraries… hell, maybe even write their own programming language.

Another thing I had to learn was that one shouldn’t set performance-based goals, like giving oneself an artificial deadline to finish a given course, or the entire program, or to join Launch School’s capstone, or to get an awesome high-paying job afterward, etc. As soon as you start daydreaming about the finish line when you’ve just started the race, you’re likely to rush things before you’re ready, causing you to make mistakes like I did. Instead, set mastery-based goals like mastering every single topic covered in each course, regardless of the time it takes to learn the material. All of those good things will come in time, but only if you’ve mastered the material. Focus on putting one foot in front of the other, mastering the current mile of the race. The finish line will be in front of you within no time, but only if you master where you’re at right now.

Code With Intent

Another hugely important skill I learned at Launch School was how to “code with intent” as opposed to the “hack and slash” method of coding I used prior to joining the program. LS emphasizes thoughtful design choices, forcing the students to think through the logic of a given code exercise and/or of their application before writing a single line of code. The goal isn’t to merely plan ahead, it’s to help avoid the endless wasted time of running off in the wrong direction with your code due to a lack of proper planning and/or not completely understanding the code’s requirements before you start writing a single line.

Launch School cultivates this meticulous approach to coding and problem-solving through the PEDAC (Problem, Examples, Data Structure, Algorithm, and Code) process. Through PEDAC, students are taught first to think deeply about a problem, devise a logical plan, and express it through pseudocode before writing actual code. This attention to detail enables students to understand every line of their application, anticipate outcomes and edge cases, and troubleshoot effectively. The PEDAC method also trains students to be able to clearly articulate their thought processes before, during, and after coding. Effective communication skills require a completely different set of tools than being able to solve complex coding challenges, and both skills are required in order to build a successful career as a developer.

Many tech companies require prospective developer hires to do at least one live coding interview during the hiring process in order to test the candidate’s communication skills and see how intentional the candidate is with their code. In order to prepare for these live coding interviews, Launch School has several live coding assessments throughout the core curriculum where the student will solve a coding challenge in front of a TA. Speaking from experience, it’s incredibly nerve-wracking to live code and/or pair program with a TA or another student, but it’s one of the most important skills Launch School teaches and it will serve students well going forward in their careers. Don’t just aim to become a programming ninja rockstar genius who codes up a masterful, succinct code solution. Instead, if you really want to level up in your career, be someone who can also explain exactly what is happening with your code to other programmers and to key decision-makers at your company.

Practice, Practice, Practice

To solidify knowledge and problem-solving skills, Launch School emphasizes extensive practice. The core curriculum includes hundreds, if not thousands, of coding problems and exercises, both within their curriculum and encouraging additional practice via external resources like Codewars and Edabit. By solving a multitude of problems, students develop their muscle memory for problem-solving, improve their ability to break down complex issues into manageable parts, and become intentional with their code. This extensive practice helps the student build their coding pattern recognition skills to help the student anticipate and solve problems efficiently.

If the student doesn’t immediately know how to solve a given code problem, due to the immense amount of practice and experience gained throughout the core curriculum, the student will know exactly what questions to ask when asking questions to other developers, or when searching for help via Google, StackOverflow, etc. In a bootcamp that only runs for a few weeks, you may be briefly exposed to lots of technical concepts, but you’ll likely not have nearly enough time to develop a strong coding challenge problem-solving ability, as that only comes through patiently spending the time solving hundreds of coding challenges.

It’s through this development of coding challenge pattern matching ability that students will not only gain the ability to anticipate how to solve a problem but will also learn how to anticipate any potential edge cases they need to take into consideration. This includes if the student needs to add test cases and/or guard clauses to handle different types of data (e.g. strings, booleans, integers, null, undefined, arrays, objects, etc.) not explicitly stated in the coding problem’s description.

Any learn-to-code program can teach you how to use the built-in features of a language. One of the coolest parts of Launch School is they have many exercises that force students to solve coding problems without using any of the language’s built-in methods. An example is writing a Javascript function that accomplishes the Array method slice(), without using any built-in methods. This is important because it forces the student to think through the logic of the built-in method, to think about what is actually occurring under the hood of a method like slice(), in order to write their own custom method from scratch.

Mastery-Based Curriculum, Not Project-Based

Often prospective students ask if the Launch School curriculum will help them create coding projects for their resume or portfolio. Looking back on my experience at Launch School, I know now the program’s focus is at a much deeper level than being focused on projects as the outcome. Inexperienced newbies often look at developer portfolios as a checklist of languages and frameworks to show potential employers what technical skills they have. They mistakenly think that counting the number of frameworks and libraries a coding school teaches tells them anything about the quality of the program.

The reason this is extremely misguided is Launch School’s pedagogy is instead focused on the mastery of fundamentals of software engineering. The goal of Launch School isn’t to hold your hand and show you step-by-step on how to build a project from scratch like an Udemy course does. Instead, the program equips students with the skills to learn any new language or framework in the future independent of hand-holding.

It’s fairly trivial to be exposed to some very basic vanilla Javascript or Ruby and then immediately jump into using a framework or library. Launch School is designed for students to master the language thoroughly and deeply in order for the student to be able to understand why and when a certain library or framework should be used and to understand what problems it solves. Of course, there are some optional projects students are able to build during the core curriculum, and there are some project-based assessments, but the goal is for students to be employable software engineers upon completion of the core curriculum. Once you achieve this level of mastery via the core curriculum, you’ll be able to build your own projects and you won’t need any hand-holding.

Support and Community

A concern prospective students may have about joining a self-paced program is finding other students to study with. It can be challenging for some students to adjust to the fact that every student at Launch School is going at their own pace. Those students who have more experience than you, and/or those students who are faster learners, will progress at a quicker pace, which can be disheartening if you’re not careful.

The good news is at Launch School students are part of an incredibly supportive community. Learning programming can be a slog and a grind, so it helps to have others who are in the same boat as you. While others may progress faster than you, there are always students who are in the same course as you and/or preparing for the same assessment. The Launch School Slack is very active and there are always TAs and other students around to help out when you get stuck and to offer advice and tips.

There are official study groups run by TAs and there are also many student-led study groups. Students often also message each other and share resources and/or meet up to study together. You can of course do the entire core curriculum on your own while never interacting with any other students, but I encourage everyone to meet other students who are in the same course and to study with them. It makes the experience far more rewarding.

How Long Will It Take?

At the beginning of this article, I mentioned how the core curriculum took me 1,718 hours of studying at Launch School over 3.5 years. If you have more experience than me, and/or if you’re able to study full-time with zero breaks and zero time off for travel and/or work, you’ll likely progress much faster than I did. Those with extensive prior programming experience who are able to study full-time may finish the core curriculum in less than a year. The average duration seems to be roughly 1,000-1,500 hours of studying over about 12-18 months.

Due to the nature of my workload at the startup I work for, there were several weeks where I had to spend less time studying due to having to pick up the slack when our support team was shorthanded for several months, or because I was involved with hiring potential new team members, etc. I still managed to push forward and tried to at the very least get the bare minimum ten hours of studying per week, even if I was slammed with work.

Because of this, the core curriculum took me much longer than I anticipated, but I’m glad that I took my time and focused on the end goal. Having at least some income coming in the door helped keep my stress levels lower than if I wasn’t working at all and studying full-time. And I’m eternally grateful to Streak’s CEO Aleem and my manager Andrew for their endless patience and support during the past few years.

I encourage any future students to not worry about how long the program will take, and instead to trust the process. It’ll be worth it in the long run.

Standing Out In A Crowded Market

“It’s lonely at the top, but it’s extra crowded at the bottom” -Earl Stevens

One thing I’ve seen following this industry over the past several years is how insanely competitive the job market is for entry-level development roles. There are endless stories on different subreddits like r/learnprogramming and r/codingbootcamp of newbie developers having an incredibly difficult time finding their first programming job. As of fall 2023, many recent bootcamp cohorts are placing very few of their graduates in software engineering roles.

This has led to a large amount of frustration, which compounds when endless news articles are written about there being an apparent shortage of software engineering talent. If such a shortage exists, why do new programmers have such a difficult time getting hired? The truth is that there is a decreasing number of available entry-level or junior-level software engineering roles, while at the same time, there’s an increasingly growing number of aspiring entry-level developers. The downside of this is aspiring developers need to learn much more and learn far deeper in order to get their first engineering roles. Simply learning some basic HTML, CSS, and Javascript and that being enough to get an entry-level “web developer” job is no longer possible.

The job market for more senior-level talent has the inverse problem: there’s a huge demand for higher-level software engineers but a huge shortage of experienced engineers who can code at the level these higher-level job openings require. Knowing this, what should aspiring developers do in order to maximize their chances of getting hired in order to succeed in the current market?

It’s not enough to spend twelve weeks, or even just a few months, learning to code and expecting to obtain a high-paying job at a tech company. The smallish, cookie-cutter projects produced by typical bootcamp grads are no longer enough to impress hiring managers in this market. If you want to stand out in this insanely competitive environment, you will not only have to outwork everyone else, but you will also need to work smarter. Prospective developers will need to spend time learning the fundamental programming concepts deeply to mastery, spend hundreds of hours solving coding challenges, and learn how to read the official documentation, all while learning how to communicate their thought processes out loud during live coding challenges. An in-depth program like Launch School is designed to help prepare students to stand out and thrive in this insanely brutal job market.

You can, of course, use other resources to learn to code, or learn to code through reading books and/or reading through a language’s official documentation. What sets Launch School apart from every other resource or program on the market is their assessments which serve as benchmarks to ensure if you’ve truly mastered the material or not. Back when I was doing some of the Odin Project and a few different Udemy courses before I started Launch School, I did learn a decent amount. However, the lack of assessments when using those resources meant that I had no way of knowing if I had truly learned the material presented at a sufficient level. Launch School’s insanely difficult assessments forced me to learn all of the concepts at a level far deeper than I ever thought possible. The assessments also forced me to utilize circular learning and go through each course’s material sometimes three or four times to ensure I had fully mastered all of the concepts covered. Because of those assessments, I’m a far better coder than I ever would’ve been had I not gone through Launch School’s core curriculum.

What Next?

Now that I’ve finished the core curriculum, I’m hoping to do Launch School’s capstone program in the spring of 2024. The capstone is full-time and lasts about four months, and is considered as rigorous as doing a grad school thesis or a Ph.D. dissertation. Since finishing the core curriculum in June, I’ve been doing some extra studying and learning on my own in order to prepare.

Even if you’re not able to do the capstone, I still 100% recommend doing the core curriculum based on everything else I’ve said in this article. By the time you finish core, you’ll be a very competent programmer and will be able to continue your learning journey and/or build your own projects with zero hand-holding.

I also have a long list of additional topics I’d like to study in the future, even after I get my first SWE job. Since I don’t have a CS background, I’d like to continue to learn and build upon the knowledge I learned during Launch School by learning some of the foundational Computer Science topics. I also may still decide to do an MSCS at some point in the future in a few years, which I know will be much less difficult for me having finished the core curriculum.

No matter the path I choose, I know I’m now in a position to succeed due to the level of depth I learned while a student at Launch School.

Final Thoughts

“Everyone holds his fortune in his own hands, like a sculptor the raw material he will fashion into a figure. But it’s the same with that type of artistic activity as with all others: We are merely born with the capability to do it. The skill to mold the material into what we want must be learned and attentively cultivated.” —Goethe

Choosing Launch School has been one of the best decisions I’ve made for my software engineering journey. Its emphasis on mastery, deliberate practice, and deep understanding has transformed me into a more confident and well-rounded developer. The Launch School curriculum’s focus on fundamentals, attention to detail, and community support make it a standout program in the crowded landscape of coding education. If you are passionate about building a solid foundation in software engineering and are willing to commit the necessary time and effort, I highly recommend Launch School.

Remember, Launch School isn’t just about getting a job—it’s about building a successful and fulfilling career that will endure for years to come. So, take the slow path, embrace the journey, and strive for the mastery of software engineering. I promise you, that if you put in the hours on a consistent basis, stay disciplined, and do work, eventually this insanely difficult skill of learning programming will start to come together. You likely won’t be a mythical 10x programmer overnight, but slowly you’ll start to suck a little bit less and less each day. And eventually, some of the programming concepts you previously stressed out about will start to become a little easier, until one day they become second nature.

Completing Launch School’s core curriculum is the single hardest thing I’ve ever accomplished in my life, but also the most fulfilling. It forced me to learn an incredible amount of self-discipline, which has paid off as I went from having zero self-confidence as a developer to now having zero doubts about my skills. The most important thing is today I know I can learn any topic in this industry, given enough time. If you want to become a software engineer, I encourage you to take this path as well!

Notes

  • Launch School doesn’t have an ISA for the core curriculum and charges only a flat rate of $199 USD per month. Launch School does have an ISA for their optional Capstone program which can be done after completion of the core curriculum.
  • The quote from Professor Ras Bodik was borrowed from this incredible article.

Further Reading