The Modern Computer Science Degree

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.

software-engineering-job-critical-skills

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:

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).

cost-and-time

Time is a Feature, When It’s Focused

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.

Avoid Life-Altering Debt

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.

Return on Investment

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.

mastery

Path to Mastery

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).

Time, Money, ROI, and Learning

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.

More advice on changing careers

4 Computer Science Essentials to Land the Job

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.

Data Structures

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.

data-structures

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 & Complexity Analysis

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.

algorithms

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

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.

Framework Architecture & Design Patterns

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.

4 Computer Science Essentials to Land the Job
How a Top Programming Bootcamp Can Get You Ready for a Job as a Software Developer

Today’s modern programming bootcamps promise job readiness upon graduation, and in this post we’ll discuss how they deliver on that pledge. While Bloc wrote this for Bloc, this content applies to most well-known programming bootcamps (e.g. Hack Reactor, MakerSquare, Dev Bootcamp). We’ll explore three features that bootcamps provide to help students prepare for their new careers.

Skills

skills

First and foremost, a programming bootcamp imbues students with the necessary skills required for their new career. For Bloc’s Full Stack Developer Track, that means Ruby on Rails, Ruby, Javascript, the command line, Git, GitHub, and many more technologies. Though similar, each bootcamp instructs a slightly different set of skills. The industry finds most (if not all) of these skills relevant and highly sought-after. Regardless where a student studies or the tech stack they master, it is a good bet that career opportunities await on the other side.

More importantly, the software industry is one where within a year’s time or less, an up-and-coming tech stack can overthrow the standard – the industry changes all the time. Bootcamps employ working professionals who incorporate the latest technologies into the curriculum to combat the sector’s ever-changing landscape. These individuals filter the noise to discover the technological shifts critical to their student’s education and success.

Bootcamps also have students engage and master soft skills, such as Agile and Test-Driven development (TDD). Agile is a project management paradigm that is prevalent among many startups and established companies. Similarly, many organizations follow TDD practices that require developers to write tests before writing the code that runs the application. Bootcamps that employ these soft skills better prepare their students for their future work environments.

For a complete list of technical topics covered in Bloc’s Full Stack Developer Track, refer to our Rails and Frontend technology resources.

Portfolio

portfolio

Every developer should have a portfolio. For seasoned developers, it is a combination of projects worked on in corporate, contract, open source, and personal environments. For bootcamp graduates, the stakes are not quite as high. However, a bootcamp helps students build a modest portfolio of two to four fully functional, well-designed applications.

A portfolio reflects upon a student’s ability to apply their new skills and create something of their own. During an interview, students not only have applications to talk about, but may open up a laptop and show their interviewer said applications, what they do, and how they work. If a picture is worth a thousand words, then a working application is worth 10,000 lines of code (or something like that).

At Bloc, we require students to complete three projects before they graduate, and many often build more than that. We help students along the way, guiding them with mentorship and high-level architecture concepts. Students may also choose to develop a capstone project, one that is entirely of their own design. Students often graduate Bloc with an excellent showcase project or even a full portfolio of apps.

Career Preparation

career-prep

A skilled student with an excellent portfolio of applications is ready for one last thing: the job hunt. Bootcamps that aim to find gainful employment for their students will prepare them for the arduous task of looking for career opportunities. This begins with the fundamentals: resumes, online profiles (LinkedIn, GitHub, StackOverflow) and cover letters.

Most bootcamps go much further, often requiring the student to participate in mock phone screens and in-person interviews. This includes practicing interview questions, both technical and otherwise.

Once a student is adequately prepared for an actual job search, the bootcamp and its partners work together to find employment opportunities for them. Bootcamps have extensive networks of mentors, recruiters, and corporate partners that want to snatch up talent before losing it to the competition.

Established companies such as Autodesk, Starbucks, and Groupon have hired our graduates. Bloc’s mentors, and even Bloc itself, have hired graduates in the past, a practice that has resulted in great outcomes on both sides.


If a bootcamp can endow a student with fundamental skills, a stunning portfolio of applications, and the tools required to begin a job hunt, it prepares that student for a career as a software developer.

How a Top Programming Bootcamp Can Get You Ready for a Job as a Software Developer