on Wednesday, March 23 @ 3:27pm
Coding Bootcamps and Computer Science degrees are popular routes for students to launch careers in software development. Coding bootcamps average 12 weeks in length, and teach practical skills like building web applications from scratch. They prepare students for a job as an entry-level web developer, intern, or freelancer. Computer science programs average 4 years in length, and teach a wide range of concepts in programming, algorithms, advanced math, statistics, and general electives which may not correlate with computer science.
Coding bootcamps and computer science programs are the two most prevalent ways to start a career as a software professional. But coding bootcamps lack computer science fundamentals, and computer science programs often lack practical experience, and are extreme commitments in time and expense. The gap between what you learn in a coding bootcamp and computer science degree is why we created the Software Engineering Track.
Bloc’s Software Engineering Track teaches practical skills and combines them with advanced computer science topics and open-source software development. It teaches you everything you need to be a professional software engineer, and leaves out everything you don’t. We know this because we built the program after consulting with companies like Google, Facebook, and Twitter. After consulting with top engineering teams, we developed this chart to represent the programming learning curve:
We believe that 2,000 hours of focused study and practice are essential for becoming a software engineer. This chart shows where you’ll be after graduating from a coding bootcamp — which is between 500 and 1,000 hours — but it doesn’t explicitly illustrate why our Software Engineering Track is more effective than a computer science degree. Let’s explore four reasons why Bloc’s Software Engineering Track prepares you for a career in software engineering more effectively than a computer science degree.
For more information on why coding bootcamps often fall short, [read this blog we wrote about the topic](NEED URL).
A computer science program is four years worth of full-time study. This roughly totals to 6,000 learning and study hours. Thousands of those hours are unlikely to directly help you once you get a job though. A computer science program forces you to take electives, and advanced classes on artificial intelligence, history of computing, and theory that are not easily translatable to working as a professional software engineer. It’s not that these are bad things to learn – they may provide some useful life lessons – but they are not essential for becoming a software engineer. Bloc’s program includes 2,000 hours of learning and study hours, and every single hour is meaningful in becoming a software engineer.
Spending one year learning everything you need is a better use of time than spending four years learning many things you don’t. There’s plenty of time to learn new things in life, but when you’re paying to learn, the topics should be directly related to the outcome.
Computer science programs range in cost based on factors like residency, school, and financial status. A four year degree can easily reach into the six figures. For this reason, many students are forced to take out loans with interest rates between 4% and 6%. This is life-altering debt that will likely take years to pay off.
Bloc’s Software Engineering Track is not cheap — $24,000 is significant amount of money — but with reasonable payment options this amount should not be life-altering. In fact, financing as low as $750/month is available, which allows you to pay for the course after getting a job. Also, Bloc offers a tuition reimbursement guarantee that if you are not able to find a job as a software engineer with a starting salary of at least $60,000, you’ll be refunded in full. No computer science program offers such a promise.
At $24,000, Bloc’s program is a fraction of the cost of many computer science programs, and offers a tuition reimbursement guarantee on top of that. Your investment in Bloc is much smaller than it would be in a computer science program, and also much safer due to the reimbursement policy.
ROI is a financial acronym that stands for “return on investment”. It explains what you’ll earn as a result of an investment. Not only is Bloc’s program a fraction of the cost of a computer science degree, but it also employs you faster. After one year, you’ll start earning a full-time salary as a software engineer. The return on your investment of $24,000 will be greater proportionally to that of an investment in a computer science degree, and it will also come quicker. The ROI you realize from a smaller investment and earning at a faster pace can have exponentially positive results over decades. But most importantly, you’ll also start a career doing meaningful work. Software is eating the world because it solves real problems. As a software engineer, you’ll be able to positively impact other people’s lives through software, and the value and satisfaction you realize will be incalculable.
No matter how great a computer science program, coding bootcamp, or our Software Engineering Track is, it will always pale in comparison to the experience you have working as a professional. The lessons you learn in a classroom setting will never match what you learn when you’re on the job. The apprenticeship model – which we employ in the Software Engineering Track – is an improvement over the classroom, as it provides training and lessons in a practical setting, but even it doesn’t match the effectiveness of learning on the job.
To become a master at something, you have to practice a lot, and you have to practice in realistic settings. There is nothing more realistic than practicing your skills when you are being paid to do so. In this respect, you want to be careful not to spend too much time in a classroom.
The final phase in the Software Engineering Track is an Open-Source Apprenticeship, where you work on open-source software with other professional engineers. In addition to learning through practical work, you’ll build a remarkable resume of open-source contributions. After the Open-Source Apprenticeship, you’ll get a job solving real problems for a real company four times faster than you would with a computer science degree.
For more of our thoughts on learning and mastery, [read about mastering software engineering](NEED URL).
We aren’t so extreme in our views that we think computer science degrees should be abolished. They do serve a purpose for aspiring robotics and machine learning engineers, and they do many things well in general. But we feel strongly that they can be improved, and the Software Engineering Track is what we built to prove that. In a shorter period of time, with less of an investment, a safer investment, a faster return on your investment, and more effective learning, you will have a better outcome with the Software Engineering Track, and you’ll start the path to mastery sooner than you would by enrolling in a computer science program.
If you want to learn more about Bloc’s Software Engineering program and how it prepares you to land a job developing software, join us at an online info session. We’ll dive into the curriculum, what it’s like to be a Bloc student, and details about our 100% tuition refund guarantee.
Bloc’s Software Engineering Track takes approximately 2,000 hours to complete. Depending on your pace, we distribute those hours across 48 or 72 weeks. That’s a long time, and students often ask if they can complete the track faster. Our answer is unequivocally, “no.” We insist on 2,000 hours because — like mentorship, curriculum, platform, and community — adequate time is essential for learning a new skill. It can not be truncated, even in the spirit of hustle or efficiency. To understand why time is so important, you must first understand how we view the path to mastery.
Any craft can be mastered, barring physical limitations. That is to say, I believe that I could become a masterful guitar player; but my dream of playing quarterback for the New York Giants is undoubtedly limited by my age, height, speed, strength, and my body’s inability to absorb blind-side sacks delivered by 250 pound linebackers.
But most crafts can be mastered, and the path to mastery has been well-defined for hundreds of years. During the middle ages, an apprenticeship system emerged where young adults lived, worked, and learned from an experienced mentor — a master. An apprentice signed a contract and spent seven years learning a craft like metalwork, medicine, cobbling, or tailoring. After their apprenticeship, the apprentice became a master, established their own business, and mentored apprentices of their own.
The apprenticeship system of the middle ages was successful, and still applies to current crafts, like electrical work, which has a standard apprenticeship of four years. The apprenticeship system is successful because of three factors: mentorship, practice, and time. In the middle ages, masters provided the mentorship and the apprenticeship contract ensured that practice and time were accounted for. Let’s discuss each of these factors.
A mentor is more than a teacher. Mentors know how to teach, but they are also masters of their craft. A mentor adapts to their apprentice and their apprentice’s learning curve. They understand when to pressure the apprentice, when to help, and when to challenge. A mentor can predict when the apprentice will struggle and adjust their lesson accordingly.
A mentor ensures that the apprentice practices realistically; they know that the apprentice can get only so far with drills and menial tasks, the apprentice must also work on real projects. The mentor knows how to administer these lessons effectively. In Mastery, Robert Greene discusses the benefits of learning from a mentor:
Mentors do not give you a shortcut, but they streamline the process. They invariably had their own great mentors, giving them a richer and deeper knowledge of their field. Their ensuing years of experience taught them invaluable lessons and strategies for learning. Their knowledge and experience become yours; they can direct you away from unnecessary side paths or errors.They observe you at work and provide real-time feedback, making your practice time more efficient. Their advice is tailored to your circumstances and your needs. Working Closely with them, you absorb the essence of their creative spirit, which you can now adapt in your own way. What took you ten years on your own could have been done in five with proper direction.
When you commit to learning a craft, you accumulate personal debt. “I will become a grandmaster chess player” is a lofty goal that will require an arduous apprenticeship. The only way to pay down a debt is with consistent payments over the course of months or years. In an apprenticeship, your payment is practice.
Your payment may be small one day and large the next – 30 minutes of practicing chess tactics or 4 hours of match play – but the key is that you keep paying. Any debt can be paid off, as long as you commit to a regular payment schedule. Consistent practice is absolute with an apprenticeship, without it there is no path to mastery.
Practice is effective enough to overcome the lack of natural abilities. Bill Bradley was tall as an adolescent, but not athletically gifted. Despite his lack of natural aptitude for the game, he fell in love with basketball and committed himself to playing it well. In another excerpt from Mastery, Robert Greene explains Bradley’s approach:
Managing to get his hands on the keys to the high school gym, he created for himself a schedule–three and a half hours of practice after school and on Sundays, eight hours every Saturday, and three hours a day during the summer. Over the years, he would keep rigidly to this schedule. In the gym, he would put ten-pound weights in his shoes to strengthen his legs and give him more spring to his jump. His greatest weaknesses, he decided, were his dribbling and his overall slowness. He would have to work on these and also transform himself into a superior passer to make up for his lack of speed.
Through disciplined and consistent practice, Bradley became an all-time great professional basketball player. He mastered a craft that’s constrained by physical attributes, which is a remarkable achievement. After he retired from basketball, Bradley applied similar rigor and work ethic to another craft he was not naturally suited for – politics. He served three terms as a U.S. Senator for New Jersey, and a campaigned for the 2000 Democratic presidential nomination.
Time is the most misunderstood factor in the path to mastery, because a beginner underestimates how long it takes to become proficient at a new craft. In Outliers, Malcolm Gladwell postulates that it takes roughly 10,000 hours of deliberate practice to master a craft. This has become commonly known as the “10,000 hour rule,” and has proliferated in both supporters and detractors. Gladwell defended the rule in his article Complexity and the Ten-Thousand-Hour Rule. Gladwell cited the conclusion of a 40 year old study about expertise, regarding their research of chess grandmasters:
There are no instant experts in chess—certainly no instant masters or grandmasters. There appears not to be on record any case (including Bobby Fischer) where a person reached grandmaster level with less than about a decade’s intense preoccupation with the game. We would estimate, very roughly, that a master has spent perhaps 10,000 to 50,000 hours staring at chess positions…
The time it takes to master a craft depends on the person, the craft, and the mentor, though 10,000 hours seems to be a reasonable average for most cognitive crafts. For 99.99% of people, there are no exceptions to this average. Mastery takes time, and there are no shortcuts.
The need for cobblers isn’t what it once was, but as software eats the world, the need for software engineers grows. The craft of software engineering lends itself to the apprenticeship system. It is complex and requires skills in reasoning, logic, art, math, and theory. Software’s complexity requires masters to develop it, and teach it.
Unfortunately constraints such as time, money, and competition in business impact the ability for masters to train apprentices. Formal software apprenticeships exist – thoughtbot, 8th Light, and Trunk Club offer paid apprenticeships where apprentices train with master software developers – but these apprenticeships are limited. They last only several months, are offered in specific locations, and admit a small number of apprentices.
These limitations demonstrate the difficulty with scaling apprenticeship programs. Coding bootcamps attempt to solve the problem of scale by offering online and and classroom-based focused training, but they lack the key factors of mentorship and time. The average coding bootcamp lasts 12 weeks, or approximately 500 hours.
This is the average learning curve for becoming a software professional. The minimum number of hours needed to become a proficient, entry-level full stack web developer is approximately 1,000 hours. After consulting with world-class engineering teams, we learned that there is a skills gap between a full stack web developer and software engineer, which neither coding bootcamps nor universities are addressing.
We believe that this skill gap can be closed with an additional 1,000 hours of focused practice, which is why we require a minimum of 2,000 hours for our Software Engineering Track. We support this requirement with a tuition reimbursement policy – if you’re not able to start a career as a software engineer after graduation, we’ll refund your entire tuition. We are able to make such a guarantee because we know that the apprenticeship model is effective, given proper mentorship and 2,000 hours of consistent and focused practice.
Bloc’s mission is to offer software engineering mentorship at scale; to provide a way for anyone, anywhere to learn software engineering as an apprentice. The tuition pays for the factors required in the path to mastery:
While it would be interesting to offer a 10,000 hour program for software engineering mastery, we believe that 2,000 hours is an appropriate amount of time to start a new career as a professional software engineer. A graduate of our Software Engineering Track will understand how to learn from a mentor, they will have disciplined habits and practice consistently, and with these skills internalized, they will know that the path to mastery is simply a matter of time.
It’s an inspirational idea – to think that you can master a craft with such a simple formula. Seek mentorship, find realistic ways to practice your skills, develop consistency in your schedule, and practice for years. You will become a master.
New coders, does this sound familiar? You’re finally getting the hang of programming. But then you overhear a conversation about a language you’ve never even heard of. Oh no! How could you call yourself a programmer if you’ve never even heard of Haskell? (How many programming languages are there?)
Easy, tiger. Impostor Syndrome is setting in hard. You feel like a fraud, even though your accomplishments show otherwise. Maybe you have successfully coded your first app but you feel like you’re pulling one over on the world by calling yourself a programmer. Or perhaps you enjoyed dabbling in Codecademy, but you could never actually make the switch to becoming a developer. Feeling this way is not only normal, it could actually be a signal of greatness.
Learning to program lends itself tragically well to Impostor Syndrome. There is so much to learn about programming, it’s impossible to be proficient in every aspect. Do you know how many people know everything there is to know about Ruby? Zero. Not a CS grad, not your smartest developer friend, not even the guy who created Ruby in the first place.
Rest easy, you’re not alone. No matter how experienced you are, you will always hear other developers talking about a new concept that you have never heard of. You may feel like you don’t belong in the conversation, but you do. Frame it as an opportunity to learn and become a better developer, and remember, everyone feels this way.
I can’t think of a group more prone to feeling this way than bootcamp students. The beauty of programming bootcamps is that they allow people with little to no programming experience enter and succeed in the field. Thus, if you called yourself a developer before you enrolled, you really would be an impostor.
At the most recent Bloc Career Talk, Bloc students shared their experiences with impostor syndrome. Hillary, a student in the Rails course, shares her experience:
I started as a technical analyst at a company that created a proprietary application that worked alongside SharePoint. For the first few months I imagined myself getting fired daily. Six months after starting I was promoted, and three months after that I was promoted again to a managerial position.
Hillary says she’s feeling impostor syndrome all over again as she sets out to land her first developer position, despite crushing her course and having four completed projects under her belt (way to go, Hillary!).
Okay, so there’s a name for this rotten feeling. Now what? As with many struggles, your first step is to recognize the issue. It’s only overwhelming and soul-crushing if you believe you’re the outsider. Think you really are the only person that feels this way? Try voicing your misgivings about your developer skills to a community of developers—I’d bet a lot of 1’s and 0’s that you’ll hear many others feel the same.
Once you realize that it’s a common struggle among beginners in any subject, the problem shifts from an internal judgment of yourself (“I’m just not a programmer”) to an opportunity to expand your skillset (“I have a lot that I can continue to learn”). The key to persisting through this forest of self-doubt, hopelessness, and anxiety is to accept what you don’t know, and challenge yourself to master it.
Then you can focus on progressing in your work to prove to yourself that you’re no impostor. If you’re facing an overwhelming problem, which is likely what led to all those “impostory” feelings in the first place, break it into tiny steps. Whether this is fixing a bug, writing an app, or getting to the end of your foundations, it will feel more manageable if you break the problem into pieces and celebrate the small wins.
At Bloc, students can connect and commiserate with fellow students on this topic and others in our Student Slack Community. During our Career Talks, students also get to fire their burning career switch questions at our captive Director of Student Outcomes, Courtland Alves.
This blog post is based on the recently hosted Bloc Career Talk covering Impostor Syndrome. Career Talks are bi-weekly seminars that facilitate discussion among Bloc students about the career search process.
Note: I struggled the entire way while writing this. Who am I to think I’m a writer? #impostorsyndrome