Good article (yet to read the paper). I believe learning of software development is a glance at the future of education. Diverse paths for diverse people. A myriad of options: college, bootcamps, internet; free, cheap, expensive; lectures videos, tutorials, documentation, blog posts, coding in the browser; teachers, tutors, colleagues, coworkers; templates, boilerplates, open source.
I think all of it is wonderful. Knowledge about software development is much more accessible than, eg, architecture. And much more aknowledged without a degree.
But, with the myriad of paths, come more risks of one choosing the wrong path, both from honest mistakes or being mislead by dishonest people. And these mistakes can be very costly.
I have a hunch that sometime in the future almost all knowledge will be able to be learned like this. It is a good thing to study the advantages and disadvantages of this environment.
The problem with self-guided learning are knowledge gaps.
When you are learning on your own you will be biased towards things that interest you more. But the boring stuff is as important in the real world.
You can interview a candidate that can impress you with fairly advanced concepts described in depth.
But you may feel disappointed if probing for gaps... Sometimes having gaps in certain concepts come with risks.
A simple example: If someone does not know how floating point numbers work (e.g: default number type in JS) for instance, they may want to use them for finance with disastrous results.
I'd rather someone have theory gaps, than toolchain gaps where the person googles how to do every other feature asked of them and ends up copy-pasting from stack-overflow in the interest of time.
If a project calls for knowledge in theory - hire one person who knows that aspect, and can either handle it, or teach it to others.
The rest should be people who know their craft. Finding those is hard enough.
Too much theory and not enough practice is obviously a problem, but not having a solid mental model of the computation you want to do mapping to the underlying is far worse, or not knowing that want you want is a solved problem and trying to hack up your own rather than using it.
Who would you rather hire, someone who knows what a logistic regression is but has to look up the API calls, or someone who doesn't and tries to write their own classifier from scratch, but doesn't need to look up any syntax?
I worked with a large group of a local graduates from a well-known coding camp. The results were horrible.
They would submit a lot of pull requests, but upon review it became very apparent that documentation was not being consulted resulting in unnecessarily hacky solutions. The reason: programming by trial and error.
In the face of that, the only thing I could do is: give them the benefit of the doubt by asking them to walk me through their problem solving approach. This insulted them, because there was no problem and solving approach, just bruteforcing code with live reload until the feature worked.
Unfortunately, sometimes the feature did not actually work, or would not handle edge or error conditions which caused the program to be unstable. Sometimes to the point of causing a live incident.
Since coding camp graduates graduate very frequently and because of referral bonuses, they were a majority in our team. They used their majority to deny code reviews (not allowing people to mark their tasks as finished), and took turns to pull off microagressions in a round robin manner so nobody is accountable enough to be retaliated against.
In the end, these people know they will not prevail through technical excellence but rather by pumping as much code as possible and by playing dirty: refer a lot of friends, become a majority, avoid situations where a relative rank can be established and bully any opposition until they quit.
I would say that although your situation is probably not unique, not all people from coding boot camps are like that. There are people who believe that an 8 week course will teach them all they need to learn, but this is true of all education, and I have seen similar results from people with 4 year C.S. degrees as well. Do they need to learn more, absolutely, but there are a number of students who understand that this is just the start of their journey.
Like anything, there is no absolute, and I like to evaluate each one on a case by case basis. Just because someone can't spend the time and money to go back and get another degree doesn't mean that person won't turn out to be a great developer with a little bit of practice and help.
If you are in an entry level software engineering job after having spent little time and resources, you have very little to lose by behaving in this way.
It's either that or the alternative: working harder than everyone else, learning on your own time, try to push your career forward while completing low risk tasks.
I'm helping my husband run a mini bootcamp. We focus on collaboration from the first day so they don't develop any bad habits and appreciate the value of feedback from code reviews. We do a lot of whiteboarding to make sure students have a solution well thought out before writing code. Our motto is "Think twice, code once."
A broken recruiting process might be also at play here. An applicant should not get an offer if they're producing trial & error based hacks, irrespective of background.
For them - good enough is good enough. This is extremely common in organizations that are interested in profit over quality - which's why they hire fresh graduates in the first place.
I used to teach front-end development at a bootcamp several months ago. What once was a great opportunity to share my 15 years of experience with various startups and fortune 500 tech companies ended up being a nightmare with management.
First and formeost, I liked most of my students. They came from all kinds such as: Background Actors, wives of programmers, students, military veterans, teachers, and a hodgepodge of characters. They were eager to learn a step-by-step procedure of HTML, CSS, and Javascript Fundamentals with a bit of web design elements.
What struck me as odd was the President/Founder of the bootcamp first hired me to do my job and observe the videos of what their past instructor did. So I did and found out he was too aggressive in his approach to teaching his students. He was talking too fast and went off in some awful tangents that wasn't on the itinerary. I told the founder, my boss at the time, about what changes I could do to make it less aggressive and with a flowable and presentable approach to the fundamentals of front-end development and he agreed.
In my first five days, things went well. Then the boss wanted me to stick with the previous itinerary while forcefeeding javascript trends in one week. It wasn't enough to teach them basic syntaxes, array methods, loops, and other things I learned in 1 year of CS studies (I finished my undergrad in Economics). He wanted me to feed AJAX, jQuery, Angular, and APIs with javascript in one week. I hesitated at first, but he insisted as his "board of directors" feel this would give my students a reason to keep buying more advanced courses in the school I don't want to give out.
I find out the real reasons for my services to my students is to not just give them a new career perspective, but to also have the boss read the idea proposals his students have as startup ideas and he would be the bridge to their funding. Except, he's the end of the bridge as an angel investor looking to own a huge chunk of their startup property before he prepares his elevator speeches to real angel investors. An another thing is he's also aiming veterans for their GI bills to be spent at his coding school.
I left after a month. I felt dirty and icky just looking back at it.
The incentives for the bootcamp model are just so completely broken. You suck in people with promises of a career, have them pay $10k each, and if they don't get a job it's somehow their fault. It's really hard for word of mouth and reputation to kill a bootcamp because the demand outstrips supply right now. You could really suck, buy users with advertising, and make a killing for a looooong time.
I truly hope the future of education is something in which the incentives of the school are aligned with the students, and if the student fails the school doesn't get paid.
<shameless plug> We've been trying to do that at https://lambdaschool.com. We're a 6 month CS or Machine Learning/AI education, and instead of students paying up front we give them an education for free and take a portion of future earnings if they get a job in their field that pays >$50k/yr. If they don't get a job in their field it's 100% free.</shameless plug>
At the course I did the model was the education is completely free, if you then get a job afterwards you're expected to let the bootcamp try to get a recruiter fee from the company that hires you.
Or you stick around, freelance out the space on the projects they help you find and then give them a 10% contribution of those earnings and also teach the next cohort how to code.
That model works as well, but then the school is disincentivized from getting you work at most companies that don't pay a recruiting fee. If we get a recruiting fee we deduct that from the total owed.
It's an interesting idea, but according to software engineering average salaries, seems like that "cap" will most of the time be met, making the cost of your bootcamp way higher than most.
I don't really get the "it's costly argument" since it is still education, and most education (at least in the US) and usually way more expensive than that.
I paid 10k upfront for 3 month bootcamp and got a job in a few weeks. Because I got the job through the referral system of the bootcamp, I got 5k back on my tuition.
This seems like a good deal to me. The bootcamp was aligned with my success because they make more money through the referral also.
The program you're looking at isn't a bootcamp, it's closest to (but not equivalent to) a CS degree. Our bootcamp is $3k up-front, though we'll likely phase it out as there's a lot you simply can't teach in three months that good software engineers need to know.
And 10k up front isn't a big deal for me, and it may not be for you, but a lot of our students were making <$20k/yr before they joined, so the risk is enormous, especially when you look at the failure rate for bootcamps. Glad it worked out for you.
I'm going to second what the parent said just to reinforce it. $10k is a crazy amount of money for most Americans to drop for a purchase with that much uncertainty.
The pricing was never three years. And built into that is expensive instructors (hailing from Stanford, Berkeley, NASA), small class sizes, potential default, and the ability to attend all other LambdaSchool classes in perpetuity.
So for about the price of 1 semester of private tuition (or about 50% more than the top bootcamps), it's not unreasonable, especially when attached to a guarantee you'll be paid $90k/yr while you're paying for it. It's capped at $30k so that's the maximum payback.
First of all, I'm sorry your experience was so terrible. Glad you escaped.
>... but to also have the boss read the idea proposals his students have as startup ideas and he would be the bridge to their funding. Except, he's the end of the bridge as an angel investor looking to own a huge chunk of their startup property before he prepares his elevator speeches to real angel investors.
So he's looking to steal ideas and/or "fund" his students who are just learning how to code. Wow.
Not that non-technical founders can't have good ideas, but on balance I'd say my dog could plan a more diabolical scheme than this dude. He sounds like he's just bad at being bad.
Lack of morals only gets one so far at being evil, solid strategy is still required.
If I were in a similar situation, I would feel an ethical responsibility to publicly out the school, report them to the state regulator and report them to VA. They can do a lot of harm and ruin a lot of lives.
I did some mentoring sessions (via CodeMentor) with a student from a bootcamp teaching Angular 2. Mind you, this was while Angular 2 was still in beta and the API was changing every week it seemed. Turns out the bootcamp started with one thing (React maybe) and shifted gears in the middle of the cohort. I was able to help them, but it was totally a WTF moment - not only were they teaching a beta framework, with no jobs at the moment, but I'm certain it wasn't what the students thought they were paying for.
My kitchen is a disaster. My whole house is just a mess. Anything that is not directly related to [the bootcamp] or to keeping me up and functioning, just goes by the wayside. […] I don’t remember the last time I had a shower.
Hmm. Maybe the bootcamps do give you a more realistic preparation than I had previously thought.
Companies here value skills in specific programming languages/tech stacks over skills in core Computer Science. They are hiring bootcamp graduates (who are overall weaker), over stronger applicants, just because the bootcamp graduate will hit the ground running quicker.
It makes learning Computer Science in university less valuable, since university graduates lack knowledge in specific programming languages/tech stacks. It's like saying, "You know all that stuff you learned about memory management, virtual memory, I/O subsystems, CPU schedulers and so on? Yeah that doesn't matter if you don't know Angular X.0"
I really don't care whether one knows Angular or CPU schedulers on day one. What I care is whether one has done programming and can listen. Knowing and doing are two different things and I found knowledge a poor predictor of ability to do - plenty of threads here on challenges of IT interviews. Knowledge gaps are relatively easy to fix but ability to analyze complex issues and then create solutions always felt to me a more innate capability. CS degrees are proof of ability to execute a longer project and having analytical skills. That is worth something but does not proof ability to craft new stuff or work in a team which are also vital.
Hiring is taking risks and hiring from boot-camps is likely riskier. Cost is lower and depending on the job, project, business and hiring managers risk profile one or the other decision makes sense.
However, someone who learned "about memory management, virtual memory, I/O subsystems, CPU schedulers" should have easy time to get up to speed in same stack as bootcamp graduate. Bootcamp graduates have to learn basic concepts during bootcamp (that computer follows instructions, how conditions and loops work, how to debug systematically, how to split task to smaller ones, etc). CS graduate shold match them in short time.
There are good and bad code schools, but knowing about compiler design and binary trees is probably not going to help you that much with your web monkey job. I think you and many others drastically overestimate the value of the CS degree, and you certainly don't appreciate the difficulty of being able to learn several complex web stacks in a few months starting from zero. The pace set is brutal if you already know the languages.
CS grads should ideally know nothing about the practice of programming. Dijkstra never wrote any code except with a fountain pen. A CS course should give you his skillset: being able to analyze programs in an academic sense. This is assumed to be representative of job performance by people who have no other measure. At the very least it should not be expected that it takes less time for the CS grad to pick up the bootcamper's skillset than it took for that person to acquire it. Most likely it will take far longer unless you're focusing on resume-driven development. The reality is that CS courses aren't likely to give you much of an edge in a coding bootcamp, let alone the workplace. In the long run there may be an advantage to the CS degree if the bootcamper can't pick up the relevant bits on the job, but otherwise the real difference is that you can expect the bootcamp grad to be productive immediately.
I strongly disagree with "CS grads should ideally know nothing about the practice of programming." and it does not even describe real life CS grads. Not knowing theory is a problem, knowing also practice is not a problem.
If you was able to learn compilers and implemented one ( as most of those courses require) then you not just have aptitude, but already can read code, can debug, learned to split code to smaller chunks developed etc. In practice, all CS already encountered databases, sql, at least one Web framework, did projects etc.
Web stacks are not that complex and complex parts repeat between frameworks. They seem complex if they are first thing you learn.
Condescending, incoherent, and wrong. If you think that CS is about how computers work in practice you should take that up with Dijkstra and Knuth. It's an absurd position. If you think that 'can read code, can debug' is the benefit of a university education then what about that takes four years to teach?
I'm a self-taught programmer. I talked my way into my first coding job with no experience and learned as I went. For the theory side of things I went with MIT and Stanford's online coursework, and the relevant papers when appropriate (e.g Turing 1936, Shannon 1948, McCarthy 1960). These days I'm getting into Haskell and J -- I hate being outgolfed by the array languages. Recently I audited a couple courses for a local coding academy. At the coding school, the default expectation is that you will be working with a framework that you have no prior knowledge of, possibly in an entirely new language, and expected to complete three to five projects per day, with specifications, unit and integration tests, and a meaningful commit history, five days per week for twenty-odd weeks. Most people require significant amounts of study time outside of class. This is not descriptive of CS coursework. It's almost like there are two related-but-distinct bodies of knowledge are being pursued in different ways!
If you have the idea that bootcamps are easy then I definitely invite you to try one sometime. Discard the idea that what the university and bootcamp are offering are somehow equal. A CS education may or may not be a better preparation for a career in programming, but it's not good job training, and that's on purpose. If things were otherwise, coding schools would not need to exist, would they?
A CS degree is a loosely-correlated proxy for being able to code. It happens to be very easily measured. This leads small minds to believe that it is a good proxy, especially if they happen to have CS degrees. I'm sure the rationalizations and condescension come naturally.
> I couldn’t work because I really needed to do job searching full time.
This is the part that don't quite understand. To me, the period when you search for jobs is exactly when you should be working as freelancer or working on side projects.
Working helps you get into the coding zone so that you are more prepared for coding sessions during interviews.
Working helps to add your resume and things to talk about when the interviewer asks "what have you been doing recently?".
Working should also be the natural next step to do after completing a bootcamp to put all the knowledge into practice.
I can't think of why it would need a full-time commitment to send CVs, practice algorithms and attend interviews.
If you have a job, then you can only interview on lunch breaks or after work. If you have a shitty job then you have incredibly short lunch breaks and get off work late. You'll miss a lot of interview opportunities.
You also might not have time to do the various different screener exercises that many companies require of junior developers to make sure you actually know how to do something more complicated than fizzbuzz
If you've got two juniors of similar skill levels, and one of them needs this job significantly more, that may also weigh in your hiring decision
For myself, it is easy to forget this reality. Once your career is bootstrapped the story changes so much. I've changed employers only 4 times in 23 years, one of those was an acquisition, and the other three times I only interviewed with four companies (total, not each job change). Since getting my first job, I've never not gotten the phone screen/onsite interview/job offer.
Ok that all sounds very braggadocio. Sorry.
But when I consider my first job search: over a period of nine months I sent out over a hundred applications, received several hundred rejections (some companies like to reject you once for each internal department that doesn't like you), and finally scraped a handful of interviews, some mealy mouthed "maybe if" not-quite-offers, and finally a real job offer. I also had the unbelievable arrogance to walk out of an interview because they used a 4GL and I wanted a real programming job (I was polite about it, I waited until lunch and just said that I didn't feel that I would be a good fit)
I'm actually on the other end of this, have had to design a few of those screener questions myself.
They're a pain but they do help with screening out those who can talk the talk but end up being overly confident spaghetti machines.
I know I'm missing out on people who are good but don't have time to prove it to me, but the cost of a bad hire is much more costly than missing out on a good one, and there are so many people to sort through
Fairly recently I left my job at a startup (I've been in startups for 4 years as a software enginer).
Every single day I am practicing interview questions. I am talking with recruiters on the phone. I am talking with HEADHUNTERS on the phone (not the same as recruiters). I am doing tech phone screens. I am doing take home projects. And I am going to tech meetups.
And I haven't even gotten to point in the process where I would be spending the entire day doing an onsite interview, so when that starts happen in a couple weeks I'll be even more busy.
I have perhaps over-prepared, but boy do the results show. I've passed every single one of my phone interviews and been invited to an onsite interview for Google, Cruise automation, Uber, Linkedin, Twilio, and a few other smaller startups.
2 years ago, when I was also looking for jobs, I took my job search much less seriously. And the results were predictably much less good. I was only about 50-50 on passing phone interviews, and only ended up getting 2 offers, and they were at no name startups.
Zero offers from any of the big 5 tech companies, as well as many failed interviews.
This time around my success has been much much better, because of how seriously I am taking the process. And this success is going to add up to literally 10s of thousands of dollars in pay increases.
Take your job search seriously. The difference in pay between "top" tech companies, and rando startups is 10s of thousands of dollars, and perhaps even over a hundred thousand dollars when you add up ALL the benefits/stock/401k matching/bonus/ect. Obviously money isn't everything, but it still matters.
I've never gotten a good answer on another scenario: what if someone already has software development experience but no experience in a particular stack and they take a boot camp class to learn? Are they marketable if they know how to interview well?
For instance: a .Net full stack developer who takes a boot camp to learn how to develop for Android or iOS.
One of my developers was a CS grad who took a bootcamp to learn Ruby/Rails. She parlayed that into a $100k job out of the gate doing Ruby/Rails consulting work, and has been one of our top developers ever since. I've talked to her about her bootcamp experience, the main pain points for her were:
- Unsure about whether the cost and time spent were actually worthwhile, or whether self-learning might have been a better option
- Bootcamps are not optimized for those who come in with basic programming skills
That second point was also exposed by a close friend of mine who decided to abandon her career in the aerospace/defense industry (she was an aerospace engineer) and do a bootcamp. She was top of our class in college, and she had done a fair amount of basic programming in tools like Matlab. She parlayed her bootcamp experience into a great job as well, but she often found that she was way ahead of the rest of the class. Luckily I've recruited from all of the bootcamps in my town, so I recommended a very good bootcamp with great instructors to her, and her instructors worked to put together a shadow curriculum of work to do while the rest of the class was still working through the main curriculum.
So, YMMV. If you can afford the cost of the bootcamp, it's a proven method to learn new skills and turn that into a new job, but the more programming experience you have, the more you'll find yourself far ahead of the rest of the class.
I would guess yes, but you have to take a junior position as your first in the new field. A good developer can probably specialize in just about anything, but it takes time to learn the specifics. My 2c!
The metrics they measure against are money and job based. Which gives me the impression that we either don't know how to determine if people know how to program, or that no one really cares. We need some kind of standardized test or similar. I know of the Advanced Placement CS exam[1], but we need something more practical and not focused on a particular language.
Nothing trains people to program well. Colleges teach fundamentals like lambda calculus, but fail to teach practical skills. Bootcamps have the opposite problem, and the actual industry seems to assume that trained developers spring up out of the ground like sowing dragon's teeth.
The requirement of 'not focused on a particular language' is actually something that I would be forced to disagree with. That leads to things like HAGGIS[0].
Generally we can probably say that determining whether people can program is difficult at best, but HackerRank[1] seems to have a good model. Problems are given in English with examples of input and output, and the testee may select from some five dozen supported languages. Programs use standard inputs and outputs.
Alternately I would support the use of a standard language. People do okay with computers even though they're not really Turing machines; it would not be harmful to concede conceptual purity to satisfy some real-world constraint. Python or Ruby would probably be fine. In a bootcamp environment I'm afraid it would have to be JavaScript.
Either way, the part about "more practical" conflicts with the "not focused on a particular language" part, and the right answer is whatever is furthest from HAGGIS.
I vaguely remember that in the 1990's the US Advanced Placement test for CS was done in Pascal. The point has to be a focus on fundamentals. There are fundamental data structures and algorithms that any programmer is useless if they don't know, and I doubt people are learning these at bootcamps in 6 months.
> Colleges teach fundamentals like lambda calculus, but fail to teach practical skills.
College CS programs in the USA are focusing more and more on appeasing recruiters and HR folk with keywords than in teaching CS fundamentals. And I think that's a tragedy.
> College CS programs in the USA are focusing more and more on appeasing recruiters and HR folk with keywords than in teaching CS fundamentals. And I think that's a tragedy.
If true, I am sure we would agree on that score.
> There are fundamental data structures and algorithms that any programmer is useless if they don't know, and I doubt people are learning these at bootcamps in 6 months.
I believe that what gets taught at bootcamps is how to tackle new things, and professional standards of code quality. More learning how to learn. I do dispute the idea of "any programmer is useless if they don't know X" for any X. It's too strongly worded, for one thing. If you qualify 'programmer' as someone with 4-6 languages under their belt then yes, if that person doesn't know their algorithms they're probably going to be less productive -- writing BASIC in every language. That is unfortunately far from useless. But the subset of coding tasks you'd assign to junior developers are probably not going to inconvenience you much if you don't know how to do an A* search.
I feel that they try, but bootcamps won't always succeed. It depends on the student. For quite a number of students the bootcamp format isn't the right one, in my opinion. This is when I regard training students as good programmers. If it is regarding getting a job, then a coding bootcamp is suited for a lot more students. Not every company needs a programmer. A lot of companies that I've seen come by, need people who are able to do some programming and some web-design.
> Also, we noticed that at least four students happened to be married to programmers, and at least seven others had parents, siblings or other important people in their social circle who were programmers.
On the flip side of of bootcamps, are orgs like 42.us org, which aside from being a nonprofit, is also completely free! Much emphasis is placed on code review by your fellow students, with it being required that your projects must be graded by them. They just opened a new campus in Fremont that even inclides a dorm room for free for about 11 months. Disclaimer, I attend 42 at the Fremont campus
A year and a half ago, my wife, Kristen, was an English teacher. Now she is a full-time software engineer at Microsoft. I followed her journey with excitement as she went from writing her first “Hello World” program, then her first full stack web app, to getting an apprenticeship and finally a full time job.
It's not in the sense that I didn't have any connections and she got in on her own. It is in the sense that I have a CS degree and have worked in industry. I helped her on occasion get past a bad explanation in a tutorial and I could talk her through how technical interviews work.
I think a post from you and her on what she did during that year between deciding to enter tech and getting the job at Microsoft would be incredibly interesting and helpful.
Particularly, what resources did she use? More top down things (Udacity, FreeCodeCamp, jumping into building projects), or bottom up (online computer science classes, Berkeley CS61, SICP, etc).
The article has a link to her blog in that first paragraph (though links on Medium don't stand out that much). FreeCodeCamp was one of a number of things she did.
I read both your posts and her series of blog posts which where interesting to follow along. It wasn't clear to the reader how it is that she got past the HR screening for Microsoft as a non-cs graduate. I'm starting to believe that maybe she made a good impression by doing that class under that MS engineer who then made her students interview with actual Microsoft employees?
For people who are interested in a story (technically anecdata, I know, but I can't resist to chip in), here's mine.
I have taught a coding bootcamp 2 times now. The selection/recruitment of students -- not done by me -- was fairly loose in some cases. The only thing the bootcamp selection was strict on was that people completed their undergraduate degree (which is financially easier to do in Europe).
__Succesful Students__
What I noticed is that there are people who will be successful. These people somehow have a strong background in logical thinking. It can be by doing predicate logic in philosophy courses, being data oriented from your biology studies or even being hardcore at knitting [1].
Another thing I've noticed is that they learn quick and won't ask a lot of questions. They will use a search engine and will only come to you with difficult questions. They know how they learn quite well -- at the very least.
The final thing I've noticed is their determination. Some people come to a coding bootcamp with the expectation of "fix me, I need a job in this industry." The most successful students don't take anything for granted and know that they need to learn everything they can get their hands on.
__Unsuccessful Students__
What I noticed is with students who aren't successful is that they don't think logical -- their attention/focus does not allow it unfortunately. They may or may not ask a lot of questions. And they will completely fail the bootcamp if they don't ask fellow students for help. Also interesting is that they did not learn the terms or basics well enough.
In one of my groups I've noticed that one of my best students was coaching one of the least successful students. It was intensive, and the explanations and questions were sharp. Yet, by my surprise, it didn't do much. At the end of the bootcamp the student was still one of the least successful students. It makes me believe that not everyone can do a coding bootcamp, since the right mindset is required to start one. Teachers can only help you when you're open enough to receive the knowledge. I don't know to what extent that idea is true, but I want to find out.
__Unsuccessful Students Becoming Successful Students__
I have seen not so successful students become quite successful. They had an insane amount of grit and understood how they needed to learn the material. Compared to their other unsuccessful counter parts (in the beginning at least), these students are more structured and disciplined.
__When To Take A Bootcamp__
Even for not-so successful students it can be a great tool, provided they self-teach 1 to 2 months after that. However, unfortunately, it is not for everyone. If you don't think in a logical fashion, learn fast then at the very least you need to make that up in determination -- or in time after the bootcamp. I feel a bootcamp is as tough as nails if a student only learned bullet points from presentation slides during their academic years. Programming is more akin to learning a music instrument (i.e. it takes practice), and not everyone has experience learning that way.
With all due respect for the Author (and I don't doubt in any way that his results are correct) I am surprised that a research with 26 participants can lead to anything, even if the Author himself specifies that in the "Limitations" of the paper:
>Our research focused on a small sample of students in coding bootcamps in one part of only one country. Other students may have had different experiences, especially in other bootcamps, in other places, and in other times. Additionally, while our stratified snowball sampling provided a range of experiences, we can make few claims about the commonality of experiences or causality.
The sample is IMHO simply too small to give to the outcome any more relevance than anecdotal data.
I don't have too much time to reply, but this is something I didn’t know before starting grad school, so I thought I’d write briefly.
As a qualitative research project, the goal was not to find out how many students have which outcomes or experience. The goal was to find a range of experiences and how those experiences are viewed by students. For a qualitative project, 26 is actually a large sample and I intentionally sought a range of demographics, bootcamp stages and outcomes to capture a large range of viewpoints. The goal here is depth on a few people rather than breadth across all bootcamps everywhere. I hope someone does a proper quantitative study as well, finding the size of groups and correlations between factors and success. I chose qualitative methods because I wanted to discover viewpoints, which is something quantitative research is not well suited for.
I believe my research demonstrated the existence of several groups and viewpoints. For example, some students successfully change careers and I found what it meant for them, while others struggled and I found what it meant for them. Similarly, I found that some people took a year or more to change careers, so I can say that this is the case for some people. I can't say how big these groups are, just that they exist. Whenever I cite numbers (such as at least four students married to programmers), that is not intended to show how many students are married to programmers, but to suggest future researchers, bootcamps, and students might want to consider it and look into this more.
>I believe my research demonstrated the existence of several groups and viewpoints.
I am not in anyway contending that, all I was noting was that your demostration (of what I would have assumed to be self-evident "there exist several groups and different viewpoints") is backed by so little data (and as written on the paper "a small sample of students in coding bootcamps in one part of only one country") that the title "What I Learned From Researching Coding Bootcamps", swiftly followed by a graph with "big numbers" such as "Graduation rates of coding bootcamps compared to Computer and Information Science degrees in the US. " seemed to me like a "quantitative" study.
And notes like "Also, we noticed that at least four students happened to be married to programmers, and at least seven others had parents, siblings or other important people in their social circle who were programmers." do seem like a statistical approach.
I definitely see how the graph with numbers at the top and numbers mentioned inside the paper could be misleading. I hope I made it clear enough in the post and paper what the limitations are that people don't misinterpret my findings even if they may be disappointing in my methods and their limits.
I think all of it is wonderful. Knowledge about software development is much more accessible than, eg, architecture. And much more aknowledged without a degree.
But, with the myriad of paths, come more risks of one choosing the wrong path, both from honest mistakes or being mislead by dishonest people. And these mistakes can be very costly.
I have a hunch that sometime in the future almost all knowledge will be able to be learned like this. It is a good thing to study the advantages and disadvantages of this environment.