9 ms·
What I Learned from Researching Coding Bootcamps
- soneca 9y agoGood 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.
- partycoder 9y agoThe 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.
- alexashka 9y agoI'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.
- partycoder 9y agoNot every upvoted or selected answer in StackOverflow is correct. And sometimes the questions themselves are wrong.
- gaius 9y agoToo 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?
- watwut 9y agoThat question can be answered only if I know what position you are trying to fill. Some jobs are more suitable for one kind then others. I don't mind new hire to not know API either way - senior programmers should be used to working with APIs they don't know. Tech changes constantly.
- deleted 9y ago[deleted]
- partycoder 9y agoI 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.
- kemiller2002 9y agoI 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.
- partycoder 9y agoIf 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.
- AndyMcConachie 9y agoBut do bootcamps train people to program well? 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. [1] https://apcentral.collegeboard.org/courses/ap-computer-science-a/exam#2016 https://apcentral.collegeboard.org/courses/ap-computer-scien...
- taneq 9y agoIt's hard (not to mention highly subjective) to judge development skill. My guess is that it's in the same class of difficulty as the halting problem.
- mettamage 9y agoI 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.
- sethrin 9y agoNothing 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. [0] https://en.wikipedia.org/wiki/HAGGIS https://en.wikipedia.org/wiki/HAGGIS [1] https://www.hackerrank.com https://www.hackerrank.com
- mettamage 9y agoFor 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. [1] (following knitting instructions is very algorithmic -- it's a whole new world if you've never seen it. Here is an example of a pattern: http://vintagecraftsandmore.com/wp-content/uploads/2012/07/Vintage-Crafts-and-More-Counterpane-Knitting-Pattern-Dahlia-Design-Instructions-1.jpg http://vintagecraftsandmore.com/wp-content/uploads/2012/07/V...
- pulpwave 9y agoI 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.
- alsirg 9y agoIf 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.
- 9y ago
- paradite 9y ago> 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.
- gcatalfamo 9y agoJob search is a full time activity if done right. It doesn't leave you time to do freelancing.
- rukuu001 9y agoYou're corroborating a quote from the article, which I don't think deserves downvotes. Would you like to expand on your point? It might be illuminating for people already established in the industry.
- stale2002 9y agoI can expand on it. 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.
- tmacro 9y agoOn 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
- twoshoes 9y agoCompanies 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" Does anyone else see a problem with this?
- heisenbit 9y agoI 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.
- watwut 9y agoI see a bit of problem with it too. 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.
- sethrin 9y agoThere 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.
- udioron 9y agoInteresting quote: > 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.
- lr4444lr 9y agoMy 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.
- paulpauper 9y agoA 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. Damn that is impressive
- Fifer82 9y agoIs it a case of who you know?
- kylethayer 9y agoIt'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.
- wikibob 9y agoI 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). Thanks!
- kylethayer 9y agoThe 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.
- whb07 9y agoI 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?
- scarface74 9y agoI'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.
- mlent 9y agoI 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!
- Double_a_92 9y agoIf you are a good .NET developper you should be able to pivot to whatever language you want on your own. Spending 30k on a bootcamp seems extremely expensive for that.
- 1_800_UNICORN 9y agoOne 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.
- jaclaz 9y agoWith 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.
- kylethayer 9y agoI 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.
- jaclaz 9y ago>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.