You might not need that $15K coding bootcamp
medium.freecodecamp.com
medium.freecodecamp.com
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.)
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
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.
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.
- 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.
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.
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.
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.
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.
Basic mathematical knowledge + ability to think logically = success
But 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.