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.
As an aspiring software developer, you must immerse yourself in the software industry and its culture. You need to be able to speak the language of software, in addition to knowing how to code. Fortunately, the software industry has a culture of openness and sharing, so there are plenty of ways to learn about it. One source of information comes via podcasts. Our engineering team at Bloc assembled a Top 10 list that aspiring developers should follow, in no particular order:
Accidental Tech Podcast was created by three people, two of whom are developers. In the podcast, they discuss industry trends, capabilities of new devices, new products with great design, as well as other topics.
CodeNewbie features stories about people who are new to development and are now working as developers full-time.
Shop Talk Show is hosted by Chris Coyier and Dave Rupert. They interview notable developers, designers, and other industry leaders to discuss hot topics in development and design.
Software Engineering Radio targets professional software developers. Each episode focuses on specific topics as well as tutorials on software engineering.
Ruby Rogues is dedicated to the Ruby programming language. It features technical discussions as well as general concepts on Ruby.
This Developing Story was developed by Bloc’s very own Brian Douglas. As a former student and current engineer at Bloc, he interviews new developers to discuss their stories about learning and becoming software engineers.
Under the Radar is primarily for independent iOS developers. However, it hosts a lot of discussions about the day-to-day responsibilities of being a developer.
While short-lived (only four episodes), Reboot is worth listening to. The podcast, hosted by Thoughtbot, shares the stories of people who transitioned from non-technical careers to software development.
Release Notes’ features news and information about Mac and iOS indie software development. Hosts Charles Perry and Joe Cieplinski discuss topics, tricks, and tips for new developers focused on Mac and iOS platforms.
Mule Design’s Mike Monteiro and company host Let’s Make Mistakes. While it focuses more on design than development, it’s worth listening to for anyone who thinks about software.
While not all of these strictly apply to software development, their topics are interesting and each conversation can help you understand the industry as a whole.
If you look through the history of each podcast, you can also find other topics of interest or topics that pertain to a particular skill you’re trying to learn. As you listen, don’t be worried if you’re not familiar with all of the concepts they’re discussing. Listen to the context of each concept they talk about, and take notes on things you want to continue learning. You then have the ability to follow up by Googling or searching on Stack Overflow for more information. Several of these podcasts also have “Show Notes” associated with each episode, such as this Accidental Tech Podcast episode. They have links to articles with the topics covered in each show, and you can use those to continue your research.
When starting a new career, you want to give yourself every advantage. If that career is in software development, then learning computer science fundamentals is that extra bit of oomph you bring to each interview. Most bootcamps eschew these fundamentals for more pragmatic skills. But as these bootcamp grads expand the talent pool, recruiters start to see a lot of the same credentials.
To help our students stand out, we’ve included Software Engineering Principles in our new CS-degree replacing program: the Software Engineering Track. We included the following topics after consulting with some of the best engineering companies in the world, including Twitter and Google. Read on to learn why these four skill-sets are critical to every software engineer.
The Data Structures section challenges students to build and apply hash maps, linked lists, stacks, queues, trees, and graphs. Interviewers test for knowledge of data structures because these constructs are the most commonly employed tools in software development. We dissect these structures to reveal how they work, and thus provide students the insight necessary to optimize their use.
Some data structures perform better than others, and each applies to specific scenarios. Using the wrong data structure can hinder performance, and relying on an unsuitable data structure can lead to illegible code and wasted effort. In one example, students build two versions of a favorite film organizer, each powered by a different data structure. This project demonstrates how choosing the right structure improves performance and utility.
Algorithms act upon data to sort, calculate, or otherwise manipulate information into a desired form. For example, given a set of 10,000 numbers, return the five smallest. We can devise infinite ways to perform this work, and each way represents a unique algorithm.
Students study known algorithms as well as their complexity to understand the performance cost of each. Complexity analysis goes further to assess the value of any piece of code: both the number of operations required as well as memory consumed. This is a critical skill to have, chiefly for those students hired by firms that work with large data sets. The cost of a small oversight is minimal when operating on 12 pieces of data, but enormous with 12 million.
Databases provide the storage backbone for nearly all applications. Frameworks such as Rails help abstract the database from the developer with Object-Relational Mapping (ORM). While beneficial to the seasoned coder, these abstractions can hinder a beginner’s understanding of how modern software reads and writes persistent data.
During the Databases section of the Software Engineering phase, we instruct in the Structured Query Language, more commonly known as SQL. We use SQL to build an ORM by creating tables, inserting data, accessing rows, and performing other common framework operations. Students will also learn how to support object associations and protect their databases from malicious injections.
For companies like Facebook, their database structure is critical. Facebook users across the globe access millions of data elements every second; a poor query or mal-designed schema can translate to countless dollars lost every day.
With a working understanding of Rails, data structures, algorithms, complexity, and databases, students will build a new framework. The Software Engineering phase requires this because it removes the last metaphoric road block that separates an amateur from a professional.
After completing this project, students are no longer mere users of a framework, they are its marshals. They understand how frameworks operate and need not assume how Rails brings their applications to life. This section empowers the idea that nothing is beyond a student’s understanding.
Comprehending framework design is critical, especially for employees at GitHub. GitHub once ran on a forked version of Rails which they modified to suit their product’s needs. Without the requisite knowledge, creating and maintaining a custom framework is extremely difficult.
At their core, Bloc’s Software Engineering Principles address the gaps of knowledge between a web developer and a software engineer. By dismissing the “magic” of software, students acknowledge that beneath every shortcut and library, more code exists. Students armed with this knowledge are more valuable to future employers, coworkers, and projects.