I doubt they paid a fee. But clearly, they're either gaming the system or there's a very large population on HN who are trying to break into the industry with no credentials.
From what I have research, a computer science degree and a boot camp certificate are very different in terms of education. The former focuses on depth and the fundamentals of CS. The latter is more practical and focuses implementation where languages matter more.
This is spot on. I've employed 2 people in the last year and I can say that the guy with a CS degree had heard of binary tree and big O notation but has no idea about how everything ties together. And CSS and HTML concepts are totally foreign to him. CS degrees are stuck in C land, learning shitty bubble sort implementation in C++ and other crap that doesn't help day to day at all.
From my experience doing a bit of both the bootcamp was focused on getting the results using technology X, Y and traditional study was understanding the paradigms that allow technology X, Y.
To me it is the difference between learning to build and learning to design (something to build).
> But clearly, they're either gaming the system or there's a very large population on HN who are trying to break into the industry with no credentials.
Not necessarily "clearly"; perhaps it's another thing altogether. We tend to be anti-marketing, and many see coding schools as selling a dream ("99% of our graduates get hired at a $100K starting salary"), while producing graduates that are ready to be interns at best. The idea of the anti-bootcamp, in the sense that it's not profit-driven, resonates.
I'm curious what kind of credentials you're referring to, however. Paid boot camps? CS degree?
Step 1: Get a copy of "The C Programming Language" by Dennis Ritchie, Brian Kernighan.
Step 2: Learn the fundamentals
Step 3: Master other languages
Edit...I know there's been a lot of negativity towards my comment and I can understand why. I like to keep my comments simple and leave it to the reader's interpretation. However, it seems my comment was too simple...
Let's focus on step 2, as step 1 and 3 are out of the scope of my comment. "Learn the fundamentals". As with any profession, trade, basketball player, high-rise building, pyramid, etc. you need to have solid fundamentals. What does that mean for programmers and developers? It means understanding computer theory. It means learning about the stack. It means learning the difference between big endian vs little endian. Learning memory allocation in C for an array is every bit as important as learning how to var arr = [].
Sure you can skip the fundamentals (hard stuff?) and go straight to high level languages but should you?
That's ludicrous, IMO. I think that people who are in the market for a $15k coding bootcamp should steer way clear of K&R (and LCTHW). Why? Because C is not the right tool for 95% of the jobs the coding bootcamp crowd will be asked to solve.
Don't get me wrong, C's great and I followed your three-step process over the years. But we don't need to do that anymore because most devs will just eke out the slimmest benefit to understanding those details.
> Because C is not the right tool for 95% of the jobs the coding bootcamp crowd will be asked to solve.
I'm curious about this point. Are the large majority of coding bootcamps teaching JavaScript and Ruby because of the number of jobs available in that market? Would anyone (hopefully, the bootcampers) benefit if there were a bootcamp teaching C?
C is largely used for embedded / engineering / systems work. That work largely gets done at engineering companies that also employe mechanical and structural engineers.
They like degrees and apprenticeships as routes to entry - the coding camp crowd might be able to find an equivalent apprenticeship and grow out of that into engineering work. But they won't recruit to an engineering role out of a bootcamp.
> Because C is not the right tool for 95% of the jobs the coding bootcamp crowd will be asked to solve.
Totally irrelevant. My first language was Scheme and I haven't touched a functional language in the 10 years since. However I'm really glad I learned it (through SICP) because it set me up for success later.
This is actually what I think is the big problem with bootcamps -- they want to treat software engineering as a trade. I don't care if you can check off the Javascript box on the resume. I care that you're an intelligent, motivated developer who's able to build decent software.
Have you met people with limited computer experience just getting 'into' it? Computers and code are literal magic to them. I mean people who's lives don't really entail a computer at all beyond social media.
I taught at a local bootcamp. It had less to do with code and more to do with getting people to think in abstractions within a specific domain.
If you can sit in a room for days on end juggling the uncertainty of learning something completely new, more power to you I guess. And that's like nobody. I consider myself decently intelligent and I almost went insane trying to teach myself something I had zero prior experience in. Literally wasted like 4 months due to uncertainty/following wrong info. Many moments of "oh, I didn't need to learn any of that actually". This is why bootcamps are amazing, you have experts roaming around that you can tap into at any second.
Somewhat ironically paying that $15k for the bootcamp would have saved me a lot of money in opportunity cost and sanity.
>C is a general-purpose programming language which features economy of
expression, modern control flow and data structures, and a rich set of operators. C is not a "very high level" language, nor a "big" one, and is not specialized to any particular area of application. But its absence of restrictions and its generality make it more convenient and effective for many tasks than supposedly more powerful languages.
Just reading the first paragraph already opens a world of questions, and this is way before you even get to any Hello World stuff. Just telling a beginner "Hey you should read this C book" would open up questions like "What is C? You're telling me I have to learn an entire new language just to make that tiny thing? Screw that!" Have fun untangling yourself out of that one.
External motivators work, there's a reason we have entire academic institutions instead of a world of disconnected hermits.
> Have you met people with limited computer experience just getting 'into' it? Computers and code are literal magic to them. I mean people who's lives don't really entail a computer at all beyond social media.
Then they need to learn to use computers, not to code. If they don't have basic computer skills then they are useless as programmers.
Back when I was a teenager I read "The C Programming Language" and did not get it at all. There's a lot of jargon in there that presumes familiarity with low level operating system and computer architecture concepts. I read it again a few years ago after many years of a successful software development career and it seemed generally concise and practical. Point being, there are much better introductory CS texts such as "Structure and Interpretation of Computer Programs".
If you could find a way to create a broadly recognized and meaningful certification, you wouldn't need school at all. You have the JavaScript certification? You know how to code. Doesn't matter if you went to an Ivy League school or (re-)created all of the fundamentals from scratch.
Make the certification standards free as in speech, charge a minimal fee to cover administration of the exams, and go to town.
Hey there. I'm certified to the hilt: IC3, CompTia A+/Net+/Security+ & Microsoft Certified Professional. All before I left high school.
These certifications were absolutely useless when it came to getting me a job whenever I interviewed somewhere where they knew what they were doing. All they proved was that I was particularly good at studying and taking tests. This may be a useful skill in another career but in IT (the area of the certs) and even more in software (where I work now) memorizing rote knowledge is nigh-useless in the era of StackOverflow and Google.
Any sort of programming certification test would be gameable. A test that can be gamed isn't useful for hiring - once again, you're not proving they're a competent programmer, just that they're good at taking tests. No company you want to get hired at will use such a metric.
If it was possible to prove the quality of a coder via a certification test, we'd be out of a job. One of the key signs of a good programmer is their ability to expertly handle problems & situations they've never encountered before, which is (by definition) impossible via some sort of standardized test.
A certification might prove that I've memorized the parameters that get passed into the function in Array.prototype.map but it'll never tell me if someone can build software solutions to real-life problems.
No offense, but those certifications are pretty low value. The A+, etc solely exist because the federal government requires them for contractors.
Code bootcamps do provide some usefulness, and you could problably look at that syllabus and come up with a more portable ciriculum that you could teach to people with aptitude but without credentials.
It would be great to use something like this in civil service and other areas to give disadvantaged folks a way to get into the industry without a four year degree in CS.
It's bizarre though. Companies won't even look at CS graduates from state schools, but will hire someone who went through a glorified training class.
None taken, the IC3 in particular exists so that people can say they're "certified". The qualifications are things like "Make some text bold in MS Word". Ridiculous.
What about a project based approach with testing similar to the AP exams (multiple graders, on a curve, with deviance from the mean singled out and examined)? I.E. implement a 12 factor web application using the python standard library that can handle x volume of traffic on n cores with y gb of ram where n and y are somewhat excessive? Could be interesting IMO.
That's literally a bootcamp (at least, the good ones). I taught at a bootcamp myself a while back and the entire curriculum was project-based. We wanted the students to imagine something and build it. Most of the bootcamp was about teaching new tools/techniques and providing support to our students as they built things.
How would you feel if one of the certification point consisted of:
Able to read, manipulate, and emit the contents of a file.
And the test point given by one proctor consisted of:
Write a program which accepts this file and translates all 'c' characters to 'C' characters, and puts the modified contents of the file to stdout.
Nothing too fancy, but a useful starting point (feel free to come up with a better test question than the one I devised in under 15 seconds).
Could it be gamed? Of course. But then so can a University course. As can an interview. As can a coding school.
> memorizing rote knowledge is nigh-useless
I used to think this, but accessing data in your brain is faster than accessing it on Stack Overflow. And sometimes it's impossible to find the right answer without at least having the right terminology.
"remove an item from a list where each item in the list has a reference to the next item in that list" doesn't return a meaningful Stack Overflow result, and the notes from a CS course show up below the fold in a google search; yet the use of the rote-learned phrase "linked list" yields not only a page full of meaningful google results, but the suggestions include every language which uses linked lists.
That certification sounds a lot like the job interviews HN constantly complains about - lots of minor Googleable trivia, no hard problem solving. I don't see how it'd be useful beyond possibly skipping the phone screen.
> Could it be gamed? Of course. But then so can a University course. As can an interview. As can a coding school.
It's a lot harder to game those things than it is a certification test.
I could be wrong, IANAL, but isn't the bar association test based on memorizing a tonne of stuff? A certification based on how much of on API someone can remember would be worth nothing.
If our jobs could be achieved by going to a 2 weeks certification, there would be plenty of people to do it and no need for the certification in the first place.
You're confusing the concept of a certification with a particular implementation of a certification. Being a certified electrician, for example, has a very different meaning than "went through 2 weeks worth of certification courses."
"'Teaching highly motivated students to code is actually not that hard.' — Dan Sofer"
This broadly matches my experience. The hiring and interviewing of bootcamp graduates I've done has made me thing it's really just an intense vetting process for junior developer candidates.
Which is valuable, but potentially could be replaced by something that costs less than $15k.
I've had a startup idea for this type of thing. We are forbidden, for nonsense reasons, to use IQ tests when hiring. This makes training your own workforce untenable for any cognitively demanding field, so we must use proxies like college education. However, one of the most important findings in psychometrics is the fact that scores on all cognitive tests are correlated. Thus there seems to be an opening for a company that is able to skillfully embed IQ tests in tests that are inarguably domain-relevant, and can be argued as such in court. If you can create an abundance of such tests for various occupations, this would seem valuable. Because psychometrics is both wildly unpopular and correct, this is exactly the type of secret, in Thiel's terms, one might expect to be under-appreciated.
It's not illegal to use an IQ test for hiring, as long as the job actually requires skills that the test screens for. Companies just don't do it because it's not useful.
It is very useful. This is why the military, police and even postal service use them. If you use an IQ test in your company, you will risk a lawsuit. The burden of proof is on you to prove how these skills are relevant, but in most cases they are only relevant because they are predictive of future performance, because they accurately measure cognitive ability. They do not resemble the tasks you will be doing in your job.
My startup idea would be to higher some psychologists and lawyers and develop IQ test templates that are both effective at measuring g and demonstrably related to skills in each job. Because of the nature of g, this seems doable.
I take issue with the false promises Coding Bootcamps make. Billboards all over my city read "6 Weeks to Learn to Code - Find a Job with an Average Salary of 80k." What that brings is people from all walks of life who aren't highly motivated to code, but highly motivated to make 80k. It's an excellent way to ruin the 0-Experience developer market and saturate the industry with "I'll do whatever you want (badly) for money" developers, but I've yet to see many excellent, qualified candidates out of a bootcamp. YMMV.
I too am a bit confused to why coding bootcamps are needed. I am sure they nicely compress lots of information into a short timeframe but even back in 1997 I was able to teach myself to code simply by sitting at Barnes and Noble reading book after book after book and then trying things out on my own. Today, this should be even easier since it's all online anyway.
If it's too much work looking it up yourself, maybe you don't want to code as much as you think you do.
The bootcamp I went to gave us a one-month internship and some job-seeking help/training. That plus giving us more networking opportunities and people to learn with was a huge help for me. We also spent most of the time pair programming. There is a lot you can get out of a bootcamp that is hard to do on your own. That being said, if you are motivated enough, learning on you own is still the most cost-effective method.
the book at Barnes and Noble won't give you 10 best tools to get the job done and help you configure them. It also won't answer any of your questions when you get stuck. It will also not give you insight form other people asking questions you didn't think to ask. Of course today you can get most of that with a $30/month subscription to pluralsight or frontendmasters. so yah, 15k seems a bit nuts. I remember back in the day they had these bootcamps for html/css also priced in thousands
I disagree. It's harder today now that everything is online. Most people in wealthier countries, especially younger people, struggle greatly to focus deeply for long periods of time and several of their most addictive distractions are available in the same web browser they use to visit docs, source control, technical chatrooms and Q&A sites.
Back when you did it, it was just you, the books and your dev environment.
Or maybe they're adults with responsibilities that don't have the time to learn how to code effectively and are stifled by the enormous amount of choice (interpreted vs compiled? front-end vs back-end? framework vs raw code? self-learning or bootcamp?).
Most successful developers neglect to mention the plethora of free time they had to study code in grade school and university.
Once you get out and have to support yourself with a job, your free learning time shrinks to a 1/4 of what it was. Yeah, you can sacrifice some things and learn to code eventually, but it's much harder after school.
No, it is not a fair point. Either you want to do something, or not. If you have no time because your existing job - quit the job. It might sound scary, but only then you'll be able to truly answer the question. Do you REALLY want to code? If so, learn and find a new job. Not having a job would work as a huge motivation. And when you finally do find one, I guarantee you'll feel great.
I have over a decade of experience, and have worked with:
- computer science and engineering graduates
- people with a degree, just on another fields
- 100% self-taught people
- coding camp graduates with varying degrees of computer science education.
From all of them, I have to say that working with the coding camp graduates was by far the most stressful. Some coding camp graduates come from computer science programs, some others come from zero... so you get a lot of variance.
Some are good, some others might show proficiency in some areas... but they might have a lot of important gaps in their knowledge. So you might want to make a 3x longer technical interview just for them, and start a broad conversation covering subjects they are expected to understand.
Now, if you come from a camp, or are self-taught, or even if not... if you want to assess your knowledge I would suggest the following book: the IEEE SWEBOK (Software engineering Body of Knowledge). It's a summary of topics in Software engineering, and points you to other books in case you want to learn more. Now, you can use this book to assess your strengths and weaknesses.
The thing is that the job market is very competitive, and I can understand if people don't want to be self-deprecating and admit to not be very good at topic X since some employers might be picky and choose not to hire if someone doesn't know about topic X.
Some other employers would just consider that when deciding what role is best given an applicant strengths and weaknesses and address that deficiency as a team.
I think that if there's someone who meets the requirements for a position there should be no problem to hire, the thing is to establish what those requirements are...
To be more specific now: I think coding camps can help you getting started on web and mobile development, mostly covering scenarios when things do work as expected. But to go past the prototyping phase you will need to also understand how to deal with scenarios where things do not work as expected...
Having that said, that's where some more experience and knowledge starts adding value. You can accrue that experience and knowledge in different ways. But when you build a team you need to account for that by having at least one person who can make sure some advanced requirements are represented.
For instance, low level issues like race conditions, number precision problems, resource leaks, error handling... and non-functional requirements (https://en.wikipedia.org/wiki/Non-functional_requirement)... can be a bit counterintuitive if you don't come from a computer science/software engineering background, but it's not rocket science. Through mentoring, collaboration, etc... experience gets accrued and deficiencies eventually get mitigated. It just takes a bit of time, and some risk mitigation skills.
Personally my approach to mentoring is to avoid trial and error, and have people be vocal when they are unsure or they're blocked. I try to do this by asking newer people to write unit tests, to develop an intuition about how requirements get implemented and verified. Also, to create a culture in which asking good questions is perceived as a good trait, and guessing as a bad trait.
In 1999 I was a college "drop out" (financial aid probation due to poor discipline and depression, and I was too poor to pay for school for a semester), so I got my first "real" job doing ISP tech support in the little Oklahoma town I lived in. Had already learned basics of web dev (HTML via Notepad on Geocities) and some basic languages (Turbo Pascal, TI-BASIC, QBasic, Javascript, etc). Got into a little Perl, some heavy experimentation with ASP, and eventually, ColdFusion (learned via reading the manuals they shipped in the box).
Within 15 months of starting that job at $6/hour, I had my first development job in Houston at $30/hour. No degree, and there were no coding schools then. Just a hunger to learn.
Today there's resources like Stack Overflow, great open source editors like Atom and VS Code, and frameworks like Rails. I'd like to think it's easier, but maybe there's a greater depth of knowledge needed that makes it tougher.
Actually there were coding camps in the 1990's. There were not marketed as heavily and as widely as they are today but there were plenty around. The industry booms anytime there's a big need for developers.
The point of the bootcamp is the job you get after it's over. I imagine bootcamps make deals with the local tech companies to direct the grads to them, so the bootcamp can boast high hiring rates, and the tech companies gets devs for cheap.
My understanding of the current coding bootcamps is that they're becoming a finishing school. Most people have some basic programming before they come in, and they are learning the basics of current web development processes on their dime rather than the company. The company then is taking a smaller risk compared to someone with no vetting and no experience.
I have a friend who realized academia wasn't for them after their Ph.D/postdoc. It would be asinine for them to go back for a Computer Science undergrad, but they're in their mid-thirties and essentially are making a career change from academia. They have all the internal skills for becoming a developer or QE, but need some social signaling that they have a chance of doing the job.
I think of that person as someone for whom the bootcamp is valuable. Spend a few months learning to code, then apply to the bootcamp as a finishing school/paid recruiter.
(As an aside, getting off the academia path for those in the humanities is rather difficult at this point. We have really smart people stuck in terrible jobs.)
I went through coding bootcamp and this is correct. We had former lawyers, bankers, accountants, IT personnel, database administrators, architects, and on more recent graduate front, physics majors, math majors, econ majors... We also had people from totally out of the left fields like designers and bartenders (both were better coders than practically anyone else). They were all looking to break into programming. They had spent a long time learning on their own and decided to do the bootcamp as a finishing school. It was a good experience for me.
Learning programming takes a really long time and you almost always think you know more than you really do.
In 2008, I thought I had mastered programming (that was about 5 years after I had started programming and learning intensively) - I was 2 years into my Software Engineering degree, I had built websites, Flash games, did AI stuff (ANNs and decision trees) and I even programmed an ATMEL AVR microcontroller to decode Morse Code from a binary signal on a circuit board.
... And yet, over the past 8 years (about 6 years after finishing my degree), I feel like I have learned more than I have ever before.
If you're curious, you will always find more things to learn.
I think the existence of $15k coding bootcamps is not a good sign for our industry. It means that without a doubt there is a huge bubble forming. Why? Because in 2002 I graduated with an undergraduate degree in CS with "only" $16k in debt. I know college is a lot more expensive these days, but $15k for a mere month of education, from which is supposed to follow a $100k+/y job? Get real, market. That seems like both a ripoff and a steal at the same time. Either way I think our industry is not in a good shape with so many highly inexperienced people commanding high salaries. A crash is soon to follow.
I think most of the $100k/year jobs are outliers and indicators of hiring in Silicon Valley/San Francisco. I went to Origin Code Academy in San Diego and it was $12k for 3 months. They let you know that you'll be considered a jr developer even if you have some prior experience. Jr decs get around $60-65k in San Diego. Some of the graduates from my cohort who have been hired are in the high 50s, though that's a probationary salary for 90 days. I have an offer of $80k and am waiting for a comparable one but I only have these higher numbers because of a year and a half prior experience as a LAMP stack developer.
One issue I take with the entire concept of "coding bootcamps" is the idea that "coding" is even a well-defined term. When you tell someone who's looking for a new field of work they should start coding, you should really be saying, "There's a job market here, but in reality it consists of thousands of subfields, some more well-payed than others, and some with a much steeper learning curve than others. Pick something you like within that massive space and maybe then find a bootcamp or whatever to continue to specialize, if you find it's even necessary."
Yes I have heard of people doing well out of bootcamps, but what will their ultimate contribution to the market be? If the value you bring becomes saturated, your salary will shrink in due time, and competition will increase.
The main point I'd like to drive home to my friends looking at bootcamps is that programming is a field of continuous learning. No school, bootcamp, or any other institution can give you that - you have to take it.
There are definitely options between free and 15k. I went to an online code bootcamp and paid about 4k. The course came with about 18 hours of one-on-one mentor sessions, an all original curriculum, office-hours chat help, a generally good community, and job prep help.
In hindsight, yeah, I could have made up my own curriculum from free and cheap sources, and just paid a mentor out of pocket for a lot less. But I had already done Treehouse and Codeschool courses and found I hit a barrier. A lot of what I was learning just did not stick beyond a certain point and I could not see the forest for the trees.
I know it's not for everyone, but it turns out what worked for me was a highly structured course with a focus on building practical projects, checkpoints, deadlines, and one-on-one guidance. And maybe I did need to sink a non-trivial amount of money into it just to make me take it all a little more seriously.
In any case, I was able to switch careers (at the age of 40 I might add) and I've paid off my investment many times over.
Regardless of whether you are considering a paid bootcamp, a free one, learning by yourself, or getting a traditional college education, my advice would be the same:
80 comments
[ 2.7 ms ] story [ 149 ms ] threadBut as many few people will dispute that you can get started writing production code much faster in the latter.
And what I will add, is that they'll be an average 80% as good as their fresh out of uni CS peers, if not more.
To me it is the difference between learning to build and learning to design (something to build).
Not necessarily "clearly"; perhaps it's another thing altogether. We tend to be anti-marketing, and many see coding schools as selling a dream ("99% of our graduates get hired at a $100K starting salary"), while producing graduates that are ready to be interns at best. The idea of the anti-bootcamp, in the sense that it's not profit-driven, resonates.
I'm curious what kind of credentials you're referring to, however. Paid boot camps? CS degree?
Step 1: Get a copy of "The C Programming Language" by Dennis Ritchie, Brian Kernighan.
Step 2: Learn the fundamentals
Step 3: Master other languages
Edit...I know there's been a lot of negativity towards my comment and I can understand why. I like to keep my comments simple and leave it to the reader's interpretation. However, it seems my comment was too simple...
Let's focus on step 2, as step 1 and 3 are out of the scope of my comment. "Learn the fundamentals". As with any profession, trade, basketball player, high-rise building, pyramid, etc. you need to have solid fundamentals. What does that mean for programmers and developers? It means understanding computer theory. It means learning about the stack. It means learning the difference between big endian vs little endian. Learning memory allocation in C for an array is every bit as important as learning how to var arr = [].
Sure you can skip the fundamentals (hard stuff?) and go straight to high level languages but should you?
Don't get me wrong, C's great and I followed your three-step process over the years. But we don't need to do that anymore because most devs will just eke out the slimmest benefit to understanding those details.
I'm curious about this point. Are the large majority of coding bootcamps teaching JavaScript and Ruby because of the number of jobs available in that market? Would anyone (hopefully, the bootcampers) benefit if there were a bootcamp teaching C?
They like degrees and apprenticeships as routes to entry - the coding camp crowd might be able to find an equivalent apprenticeship and grow out of that into engineering work. But they won't recruit to an engineering role out of a bootcamp.
Totally irrelevant. My first language was Scheme and I haven't touched a functional language in the 10 years since. However I'm really glad I learned it (through SICP) because it set me up for success later.
This is actually what I think is the big problem with bootcamps -- they want to treat software engineering as a trade. I don't care if you can check off the Javascript box on the resume. I care that you're an intelligent, motivated developer who's able to build decent software.
/s
Have you met people with limited computer experience just getting 'into' it? Computers and code are literal magic to them. I mean people who's lives don't really entail a computer at all beyond social media.
I taught at a local bootcamp. It had less to do with code and more to do with getting people to think in abstractions within a specific domain.
If you can sit in a room for days on end juggling the uncertainty of learning something completely new, more power to you I guess. And that's like nobody. I consider myself decently intelligent and I almost went insane trying to teach myself something I had zero prior experience in. Literally wasted like 4 months due to uncertainty/following wrong info. Many moments of "oh, I didn't need to learn any of that actually". This is why bootcamps are amazing, you have experts roaming around that you can tap into at any second.
Somewhat ironically paying that $15k for the bootcamp would have saved me a lot of money in opportunity cost and sanity.
>C is a general-purpose programming language which features economy of expression, modern control flow and data structures, and a rich set of operators. C is not a "very high level" language, nor a "big" one, and is not specialized to any particular area of application. But its absence of restrictions and its generality make it more convenient and effective for many tasks than supposedly more powerful languages.
Just reading the first paragraph already opens a world of questions, and this is way before you even get to any Hello World stuff. Just telling a beginner "Hey you should read this C book" would open up questions like "What is C? You're telling me I have to learn an entire new language just to make that tiny thing? Screw that!" Have fun untangling yourself out of that one.
External motivators work, there's a reason we have entire academic institutions instead of a world of disconnected hermits.
Ok, but why do those people think they just need to do a 5 week long $15k bootcamp to get a job as a senior software dev and make $100k+/year?
I get that people want to expand their knowledge. But these bootcamps don't cater to this kind of people.
Then they need to learn to use computers, not to code. If they don't have basic computer skills then they are useless as programmers.
Make the certification standards free as in speech, charge a minimal fee to cover administration of the exams, and go to town.
These certifications were absolutely useless when it came to getting me a job whenever I interviewed somewhere where they knew what they were doing. All they proved was that I was particularly good at studying and taking tests. This may be a useful skill in another career but in IT (the area of the certs) and even more in software (where I work now) memorizing rote knowledge is nigh-useless in the era of StackOverflow and Google.
Any sort of programming certification test would be gameable. A test that can be gamed isn't useful for hiring - once again, you're not proving they're a competent programmer, just that they're good at taking tests. No company you want to get hired at will use such a metric.
If it was possible to prove the quality of a coder via a certification test, we'd be out of a job. One of the key signs of a good programmer is their ability to expertly handle problems & situations they've never encountered before, which is (by definition) impossible via some sort of standardized test.
A certification might prove that I've memorized the parameters that get passed into the function in Array.prototype.map but it'll never tell me if someone can build software solutions to real-life problems.
Code bootcamps do provide some usefulness, and you could problably look at that syllabus and come up with a more portable ciriculum that you could teach to people with aptitude but without credentials.
It would be great to use something like this in civil service and other areas to give disadvantaged folks a way to get into the industry without a four year degree in CS.
It's bizarre though. Companies won't even look at CS graduates from state schools, but will hire someone who went through a glorified training class.
Don't Amazon, Facebook, et. al. send recruiting teams to most state schools?
I think it depends on the quality/prestige of the CS program.
(I am excluding the University of California system because its high cost and stringent admissions make it more similar to private institutions)
Able to read, manipulate, and emit the contents of a file.
And the test point given by one proctor consisted of:
Write a program which accepts this file and translates all 'c' characters to 'C' characters, and puts the modified contents of the file to stdout.
Nothing too fancy, but a useful starting point (feel free to come up with a better test question than the one I devised in under 15 seconds).
Could it be gamed? Of course. But then so can a University course. As can an interview. As can a coding school.
> memorizing rote knowledge is nigh-useless
I used to think this, but accessing data in your brain is faster than accessing it on Stack Overflow. And sometimes it's impossible to find the right answer without at least having the right terminology.
"remove an item from a list where each item in the list has a reference to the next item in that list" doesn't return a meaningful Stack Overflow result, and the notes from a CS course show up below the fold in a google search; yet the use of the rote-learned phrase "linked list" yields not only a page full of meaningful google results, but the suggestions include every language which uses linked lists.
> Could it be gamed? Of course. But then so can a University course. As can an interview. As can a coding school.
It's a lot harder to game those things than it is a certification test.
Seems to be working for the American Bar Association.
This broadly matches my experience. The hiring and interviewing of bootcamp graduates I've done has made me thing it's really just an intense vetting process for junior developer candidates.
Which is valuable, but potentially could be replaced by something that costs less than $15k.
It is very useful. This is why the military, police and even postal service use them. If you use an IQ test in your company, you will risk a lawsuit. The burden of proof is on you to prove how these skills are relevant, but in most cases they are only relevant because they are predictive of future performance, because they accurately measure cognitive ability. They do not resemble the tasks you will be doing in your job.
My startup idea would be to higher some psychologists and lawyers and develop IQ test templates that are both effective at measuring g and demonstrably related to skills in each job. Because of the nature of g, this seems doable.
Then again, they also asked me about my cultural and religious views, like my thoughts on immigration and refugees.
"I don't have strong feelings about this issue either way" was not the right answer to whatever it was they were asking.
See 42 U.S.C. § 2000e–2 [1].
[1] https://www.law.cornell.edu/uscode/text/42/2000e%E2%80%932
If it's too much work looking it up yourself, maybe you don't want to code as much as you think you do.
Back when you did it, it was just you, the books and your dev environment.
Most successful developers neglect to mention the plethora of free time they had to study code in grade school and university.
Once you get out and have to support yourself with a job, your free learning time shrinks to a 1/4 of what it was. Yeah, you can sacrifice some things and learn to code eventually, but it's much harder after school.
It really is that simple.
- computer science and engineering graduates
- people with a degree, just on another fields
- 100% self-taught people
- coding camp graduates with varying degrees of computer science education.
From all of them, I have to say that working with the coding camp graduates was by far the most stressful. Some coding camp graduates come from computer science programs, some others come from zero... so you get a lot of variance.
Some are good, some others might show proficiency in some areas... but they might have a lot of important gaps in their knowledge. So you might want to make a 3x longer technical interview just for them, and start a broad conversation covering subjects they are expected to understand.
Now, if you come from a camp, or are self-taught, or even if not... if you want to assess your knowledge I would suggest the following book: the IEEE SWEBOK (Software engineering Body of Knowledge). It's a summary of topics in Software engineering, and points you to other books in case you want to learn more. Now, you can use this book to assess your strengths and weaknesses.
Some other employers would just consider that when deciding what role is best given an applicant strengths and weaknesses and address that deficiency as a team.
I think that if there's someone who meets the requirements for a position there should be no problem to hire, the thing is to establish what those requirements are...
To be more specific now: I think coding camps can help you getting started on web and mobile development, mostly covering scenarios when things do work as expected. But to go past the prototyping phase you will need to also understand how to deal with scenarios where things do not work as expected...
Having that said, that's where some more experience and knowledge starts adding value. You can accrue that experience and knowledge in different ways. But when you build a team you need to account for that by having at least one person who can make sure some advanced requirements are represented.
For instance, low level issues like race conditions, number precision problems, resource leaks, error handling... and non-functional requirements (https://en.wikipedia.org/wiki/Non-functional_requirement)... can be a bit counterintuitive if you don't come from a computer science/software engineering background, but it's not rocket science. Through mentoring, collaboration, etc... experience gets accrued and deficiencies eventually get mitigated. It just takes a bit of time, and some risk mitigation skills.
Personally my approach to mentoring is to avoid trial and error, and have people be vocal when they are unsure or they're blocked. I try to do this by asking newer people to write unit tests, to develop an intuition about how requirements get implemented and verified. Also, to create a culture in which asking good questions is perceived as a good trait, and guessing as a bad trait.
Within 15 months of starting that job at $6/hour, I had my first development job in Houston at $30/hour. No degree, and there were no coding schools then. Just a hunger to learn.
Today there's resources like Stack Overflow, great open source editors like Atom and VS Code, and frameworks like Rails. I'd like to think it's easier, but maybe there's a greater depth of knowledge needed that makes it tougher.
I have a friend who realized academia wasn't for them after their Ph.D/postdoc. It would be asinine for them to go back for a Computer Science undergrad, but they're in their mid-thirties and essentially are making a career change from academia. They have all the internal skills for becoming a developer or QE, but need some social signaling that they have a chance of doing the job.
I think of that person as someone for whom the bootcamp is valuable. Spend a few months learning to code, then apply to the bootcamp as a finishing school/paid recruiter.
(As an aside, getting off the academia path for those in the humanities is rather difficult at this point. We have really smart people stuck in terrible jobs.)
In 2008, I thought I had mastered programming (that was about 5 years after I had started programming and learning intensively) - I was 2 years into my Software Engineering degree, I had built websites, Flash games, did AI stuff (ANNs and decision trees) and I even programmed an ATMEL AVR microcontroller to decode Morse Code from a binary signal on a circuit board.
... And yet, over the past 8 years (about 6 years after finishing my degree), I feel like I have learned more than I have ever before.
If you're curious, you will always find more things to learn.
Yes I have heard of people doing well out of bootcamps, but what will their ultimate contribution to the market be? If the value you bring becomes saturated, your salary will shrink in due time, and competition will increase.
The main point I'd like to drive home to my friends looking at bootcamps is that programming is a field of continuous learning. No school, bootcamp, or any other institution can give you that - you have to take it.
Basic mathematical knowledge + ability to think logically = success
In hindsight, yeah, I could have made up my own curriculum from free and cheap sources, and just paid a mentor out of pocket for a lot less. But I had already done Treehouse and Codeschool courses and found I hit a barrier. A lot of what I was learning just did not stick beyond a certain point and I could not see the forest for the trees.
I know it's not for everyone, but it turns out what worked for me was a highly structured course with a focus on building practical projects, checkpoints, deadlines, and one-on-one guidance. And maybe I did need to sink a non-trivial amount of money into it just to make me take it all a little more seriously.
In any case, I was able to switch careers (at the age of 40 I might add) and I've paid off my investment many times over.
Regardless of whether you are considering a paid bootcamp, a free one, learning by yourself, or getting a traditional college education, my advice would be the same:
You get out of it, what you put into it.