CS Degree or Code School?

I had an interesting conversation over lunch with some of the folks at TRACE Camp. It’s a topic that we’ve all heard before, ‘Is a computer science degree really worth the time and expense?’ I think that both pros and cons have a lot of merit, but in my opinion, an academic degree in computer science is absolutely worth the effort.

I think that coding intensive programs, or ‘boot camps’, or whatever you want to call them are a terrific idea. I have invested time into more than one of these programs, and they are very rewarding for the right kind of learner – the ones who like to drink out of a fire hydrant.

Code camps are great at getting motivated students up to speed on development technology very quickly, and they do so through hands-on, experiential learning. A brief period of instruction that is immediately followed by a practice session is a tried and true training method. It allows immediate reinforcement of concepts, and well-structured exercise content allows students of different capabilities to move at their own best pace.

This environment encourages open discussion, group problem solving, and a flexible lesson plan that can be much more accommodating and responsive to the varying needs of each cohort. Auto-didactic learners flourish in this environment due to the self-driven nature of this training where the returns are proportional to the effort put in.

One of the strengths of the code camp education model is it’s brevity, but I believe that this is also one of the biggest weaknesses. This is not a one-size-fits-all solution. A short, intense program might be a good way to bring experienced developers up to speed on a new dev stack, but it may be overwhelming to students who are just entering the field. There is also an upper bound to the amount of information that we can process within a given period, and once we reach a point of saturation everything else is just noise. While it would be great if we could download knowledge Matrix-style and become experts at any topic in an instant, this is simply not reality. Effective memory techniques like spaced repetition require intervals of time between the review of material, and this demand for more time is beyond the scope of the boot camp.

Here is where the academic environment shines. A Bachelor’s Degree in Computer Science is a four year proposition, and this is adequate to allow not only a wide variety of topics, but repetition of concepts that build on each other over time. This repeated discipline of training, learning, practicing, and reviewing is what makes the academic process so valuable, and it cannot be boiled down into a brief period of training, no matter how intense.

Most boot camps focus on practical, hands-on job skills that will be readily marketable. This is one of their main goals, and they excel at it. But any experienced developer knows that there is much more to software development than typing code all day. Non-coding aspects of the software development life cycle are rarely if ever addressed in short-term education, yet these are arguably more important to project success than the code itself. Good code should flow gracefully from well-planned software architecture, and this means taking a little time to develop a plan before typing ’npm install’. Is it possible to build useful software without a plan? Maybe for something trivial. A carpenter might start hammering nails into lumber and accidentally build a house, but will most likely just wind up with a pile of dented boards with nails sticking out.

There’s a lot more to software than code. Better understanding of the theory that underlies the code is a direct benefit of a CS degree. Of course this might not be important to everyone, different people want to work in different areas of the tech stack. Let’s face it – if you want to drive a car, you need to know how to operate the car and that’s about it. But if you want to design race cars, you need a deeper understanding of the elements that are important to engineering, performance, and reliability. This is a personal choice, and I’ve always wanted to know ‘what’s happening under the hood’.

I think that academics vs. boot camps shouldn’t be an OR choice, it should be an AND, especially for students actively pursuing a degree. The models for learning are distinct and complimentary, and the skills gained in each are mutually beneficial. I think that people who have the opportunity to participate in an intensive code program should do it. It is absolutely worth the effort. And so is the Computer Science degree. For me at least, it’s 100% worth it.

2 Comments

  1. Great content! Super high-quality! Keep it up! 🙂

    February 16, 2020
    Reply

Leave a Reply

Your email address will not be published.