8 ms·
Boot camps have their place, but they are not a replacement for a traditional CS degree. I have met good and bad programmers from both types of programs (some
by kemiller2002 10y ago
Boot camps have their place, but they are not a replacement for a traditional CS degree. I have met good and bad programmers from both types of programs (some from well respected colleges who I still wonder how they exactly passed), but here's the thing, I don't care about practical skills. I care about the person being able to think.
All those concepts that they teach in CS isn't about knowing the name of an algorithm, it's about thinking abstractly. I honestly don't care if a recent grad knows how to use IDE x or even much about source control. I can easily teach them that. I can't easily teach a person how to understand pointers or pass functions as parameters. I don't need someone who can write code; I need someone who can look at a problem and realize that we can cut the amount of work we have to do by understanding programming concepts at an abstract level. It is very hard to achieve this in a 12 week course. Can some people do this? Sure, they may have the background from a previous career that aids them in this, but they are the exception and not the rule.
- p4wnc6 10y agoThe trouble is that while most employers say the same thing you say -- that they hire for critical thinking ability and intellectual curiosity / talent -- almost all of them don't actually want that. Instead they want employees who don't think independently; employees who are pliable and will not complain if given drudgery, told to use poor practices, told to make things of poor quality. Everyone says they don't just want warm bodies to type code, but lots and lots of places actually do just want warm bodies to type code. Since this is what wins average-case jobs, this inevitably is what average-case products of bootcamps and universities tend to look like. I actually had a pretty long debate with a professor friend of mine who taught me numerical analysis as an undergrad. Their whole scientific computing program has morphed into this awful mess of basically just teaching various Hadoop tool APIs and Spark. As an alum, I am in concerned. He hates it too, and feels the students are not getting anything resembling a good education in scientific computing. But at the university's considerable career fair, where the faculty actually spend a lot of time talking to recruiters and employers, all they hear is we want more people who already know framework X, library Y, etc. They don't care if you even know what LU decomposition is, what issues there are using power method for eigenvalues, let alone anything about the actual hardware specification for basic numerical types and issues with precision. I mean, they don't even care if you have the slightest fluency or naive understanding of that stuff. Literally zero understanding is fine, as long as you have memorized sections of certain APIs that they use and you will not complain if your job is drudgery related to rote usage of those APIs. Since this is what wins jobs, it's what they teach.
- jegutman 10y agoI don't think companies really don't want employees that think independently. These employees come with a ton of upside. However, not everybody turns out to be a star and in some companies (plenty still foster it) they don't want their average employees to be completely rogue.
- GVIrish 10y ago> However, not everybody turns out to be a star and in some companies (plenty still foster it) they don't want their average employees to be completely rogue. I think it's more that most companies don't want employees challenging decisions made higher up in the org chart, star or no star. A lot of people don't like having their decisions challenged, especially when they're wrong or they have a hard time defending those decisions.
- p4wnc6 10y agoThere is even a vein of organizational management research literature on topics like this, see e.g. [0] [0] "Reversing the Extraverted Leadership Advantage: The Role of Collective Employee Proactivity." by A. M. Grant, F. Gino and D. Hofmann [PDF] < https://mgmt.wharton.upenn.edu/files/?whdmsaction=public:main.file&fileID=4164 https://mgmt.wharton.upenn.edu/files/?whdmsaction=public:mai... > Briefly, the paper suggests some evidence that the most disliked type of employee is a subordinate who is introverted and also proactive. Someone who takes initiative, solves problems independently, and is self-reliant, is seen as a problematic and uncooperative subordinate. Employers say this is the type of employee they want -- someone with a lot of self-reliance, independence, ability to think on their own and needing little oversight. But actually they don't really want that, because the micromanagerial oversight and the need for the manager to step in to direct people is what the management layer uses to justify their compensation and status in the firm. If everyone beneath you handles things without your intervention, it's just a short step to a situation where they claim credit instead of you, and maybe get promoted above you. This makes a lot of middle managers sweat and become paranoid about putting their stamp of micromanagement on everybody's work, which means they need subordinates who require more attention and who reliably can't find the right direction or solve the problem fully independently, and who will be satisfied when given work that doesn't allow for as much autonomy. High performers and independent thinkers will want autonomy (there's actually a lot of literature about this too), and giving them autonomy would be overall good for the company. But it would be bad for specific gatekeeper middle managers. That's why they talk a big game about hiring people based on their creative thinking abilities and general aptitude, but in reality they instead focus on micromanagerial things, like how much of some specific Hadoop tool API have you memorized, or how much direct experience do you have in precisely our exact tech stack. These are just status games to protect them from actually productive subordinates.
- mattnedrich 10y agoIf the most important quality is being able to think abstractly and solve problems, why does it matter if they have a CS degree or come from a bootcamp? I do agree with you that CS degrees are very valuable, though it seems like you are saying that they are important because they teach problem solving and abstract thinking - but aren't there many ways to obtain those types of skills?
- nostrebored 10y agoMy CS degree was four years of heavy abstract thinking. If you can get those skills elsewhere great, but I don't think it's that common.
- sillysaurus3 10y agoBased on what? The amount of bias in this thread is very strange. I think what's going on is that the people with CS degrees invested a significant chunk of their life and a significant amount of money into getting a CS degree. Therefore they're invested in denying the possibility that the qualities they achieved through their program can be achieved without. The article presents some evidence in support of this possibility: Over the last year, we’ve worked with about 100 bootcamp grads, and many have gone on to get jobs at great companies. We do our interviews blind, without knowing a candidate's background, and we regularly get through an interview and give a candidate very positive scores, only to be surprised at the end when we learn that the candidate has only been programming for 6 months. We’ve found bootcamp grads as a group to be better than college grads at web programming and writing clean, modular code, and worse at algorithms and understanding how computers work. All in all, we’ve had roughly equivalent success working with the two groups. That's pretty persuasive. So why respond to data with anecdata?
- hornd 10y agoHow do you suggest structuring an interview to find candidates who are able to think abstractly? I don't think the current trivia-esque style interview works.
- excitom 10y agoI like to give candidates a word problem. It doesn't need to be complicated, but I want to see the candidate turn it into code. Doesn't matter what language. Just show me you can read and understand a problem and write down the solution. I never cease to be amazed at the number of people who freeze like a deer in the headlights.
- softawre 10y agoFunny enough, solving this requires thinking abstractly.
- arebop 10y agoI've worked for places with trivia-esque interviews and I agree it works really badly. The only things worse was the "tell me about your greatest weakness..." style favored by the MBAs. I'm very happy with the people I work with now, who were mostly hired by an audition-style interview: here's a problem that's simple to explain and not simple to solve; solve it with a mix of whiteboard coding (required) and (optionally) proofs, drawings, arguments...
- mrdrozdov 10y ago> I need someone who can look at a problem and realize that we can cut the amount of work we have to do by understanding programming concepts at an abstract level. I think in many ways this is the exception not the rule. Many students certainly go through their CS degree without thinking this way, and some of these students go on to get phenomenal jobs because they spent a lot of time programming. There are lots of good jobs for people who can program effectively. There are also lots of good jobs for people that can think abstractly about CS problems. These jobs don't always overlap. You're right in that bootcamps are not a replacement for the traditional CS degree. There are things you can do in a 4 year research institution that are difficult to do in a 12-week program. It's probably more fair to compare a University program to a bootcamp + 3.9 years of working professionally. It also almost unfair to call the CS degree traditional. Of the STEM degrees, it is probably the newest and least understood. Bootcamps are wonderful since they help people get awesome jobs, become amazing contributions to society, and in turn will continue to help the CS degree through its identity crisis.
- joslin01 10y ago> I think in many ways this is the exception not the rule. Many students certainly go through their CS degree without thinking this way, and some of these students go on to get phenomenal jobs because they spent a lot of time programming. Huh? Even if you didn't want to learn to think abstractly, you would still be enrolled in courses like "Data Structures" that force you to. Did you get a CS degree? You're also making the assertion that you can code successfully without learning abstract thought. That's like saying you can paint a picture without knowing how to use a brush. Quite literally, you can't program without keeping an abstract model in your head of one form or another. Things like OOP helps make these abstractions tangible, but it is nevertheless, just your own vision of how 1s & 0s gotta fly around. I think it's bad form to assert most students who complete a 4 year degree don't ever think at an abstract level. It's rather ridiculous from my vantage point (again, it's 4 years), but maybe your experience is different.
- mrdrozdov 10y agoI'm confident you can get through an Algorithms and Data Structures course (which is the most difficult aka "weeder" course at most institutions) by memorizing a handful of sorting and search methods. You probably won't impress the Professor, but I'm sure you can pass. OOP and other design patterns are also susceptible to memorization. I suspect that you're bringing this up because we have vastly different views of what difficult abstract thought is. Here are two problems that I suspect are difficult to solve on programming experience alone. 1. How does Google display instant results (and recommendations) when you type into the search bar? 2. How would you build a Siri competitor, and what would be the biggest bottlenecks? A problem that someone with minimal programming experience could probably solve would be. 1. How would you build me an inventory system which has an app, automated deploy, and unit tests? 2. Imagine you have only ever built Android apps with a NodeJS and Mongodb backend. How would you build an iOS app with a Python and MySQL backend?
- robohamburger 10y agoCouldn't agree more but I think bootcamps could probably steal some of the magic that CS has. I spent years programming as an amateur/hobbyist and I thought I knew it all. When I started studying discrete maths and functional programming at the university level it opened my eyes to a lot of things. Suddenly computers weren't hardware they were just implementations of a theoretical idea where many more things were actually possible than I had ever thought of before. Once you know even elementary discrete math such as sets and logic programming becomes more of an exercise in seeing if you can realize abstract ideas and models. I do wish CS gave me a better more practical mindset around real world problem solving though. Maybe there are some things you can only learn in the industry but it took me awhile to adjust my attitude and really become a productive programmer.
- RegEx 10y ago> Once you know even elementary discrete math such as sets and logic programming becomes more of an exercise in seeing if you can realize abstract ideas and models. I agree with this 100%. The proof exercises you have to complete in discrete math make for great programming exercises. They force you to ask yourself 1. What's the problem? 2. What do we know? 3. How do we get to the end? 4. What does it look like to be "done"? These are great questions to ask yourself when programming.
- robohamburger 10y agoYes, when you combine this thinking with thinking about the real world in a holistic manner you basically unlock programming super powers :) Some what tangentially related, hammock driven development: https://www.youtube.com/watch?v=f84n5oFoZBc https://www.youtube.com/watch?v=f84n5oFoZBc The part about pushing on the problem statement is always useful, even if you don't have time to think about problems like he describes.
- pbhjpbhj 10y agoThis thread is confusing me: >"Boot camps have their place, but they are not a replacement for a traditional CS degree" // Don't they teach different things. Boot-camps teach programming and CS degrees teach, well, computer science. Do boot-camps really address things [that I imagine CS degrees cover] like information theory and algorithm design, Turing completeness, language design and such? I imagined they chose one or two programming languages and taught the craft of program implementation? I'm not a programmer but have learnt the very BASICs (lol!) of a few programming languages, in doing that I've barely touched on any CS worth talking about - normal forms in db design and comparison of a few different sort algos would be about the limit. I always thought CS vs. programming was like physics vs. engineering?
- elliotec 10y agoYou're correct, and people are being ridiculous for conflating the two. They are different things. If you want to get a job as a developer, a bootcamp is clearly the way to go as far as efficiency, cost, and pragmatism. Otherwise do a CS degree. A bootcamp is absolutely unquestionably a replacement for a CS degree in the context of getting a practical job.