I am skeptical of developer bootcamps because they often aren't open enrollment. You generally have to have the aptitude and background to get through their admissions process and interview. That weeds out some people right away.
They are right to have this admissions process, because if you let everyone in, lots of people won't make it, and then the promise of good paying jobs is much more hard to advertise.
Let's not forget that it does favor a certain type of people over others; namely people who have grown up in an environment that teaches them how to learn. Most people on HN know how to learn on their own and see value in bootcamps because they feel that candidates from bootcamps can learn the material easily.
But folks, that's not everyone.
A lot of people don't like school. They aren't good at it, or they had bad experiences, etc. And a lot of people transitioning into software development have been trained for many years to do what they were told, so they have to develop those critical thinking skills.
I think these people have a harder time making it through the application processes for some of these camps. And that's a shame.
I would be 100% behind an immersive bootcamp experience that had an open enrollment process. I work at a school that has that right now, and we do have lots of people who don't make it very far. But we have many more that go from minimum wage to doing very, very well for themselves and their families.
If I had those students for 12 weeks straight where they could learn and apply through immersion, oh man, the things we could do together!
When it comes to those "who don't make it very far"; how do you handle tuition and possible refunds?
I'm not really advocating that they deserve or should get a full refund; I'm just skeptical that an open enrollment type thing where anyone can join (like I've experienced with a MOOC)-- you'll have a lot of students starting out, and end up with very few. The one's who couldn't make it should have been screened out, as they're both spending a lot of their own money on this, spending a lot of their own time on this, and potentially taking time away from others with remediation or tutoring-- at the very least, there could be various levels of classes for them to work things out before being introduced into the subjects where they might tend to fail.
From the perspective of someone who has been taught and who has taught, in both cases I prefer small group sizes of people I have some confidence in being relatively adept at what's going on-- the need to reiterate and reintroduce certain core concepts on things goes down a bit as well.
But I've seen people who came from nothing rise to the occasion and turn things around. And if we'd screened them out, the world would be worse off for it. The perspective they bring demonstrates the true, non-politicized idea of diversity.
And so that's what I fear happens if the industry picks this bootcamp thing and runs with it; that we'll end up with a very homogeneous group of developers. People from middle income families where education was held in wide regard and who had parents encourage them to explore things on their own.
Yea, as a teacher, I really enjoy it when everyone in my class wants to learn and is highly motivated. But I also enjoy getting them there. :)
Refunds? I really don't know. But this is why traditional schools can compete - they have the resources for tutoring, remediation, and open enrollment.
Of course, if all the motivated people skip that and do bootcamps because it's a "guaranteed" path to a job, well....
I've seen that "problem" in college graduates as well, and the flurry of problems arising after that guaranteed job never came to fruition.
I can see the fulfillment in having taken someone from nothing to being prepared for (or having) gainful employment in that field. I'm sure screening out folks who perhaps weren't immediately going to be competitive / successful plays into that fulfillment and success as a teacher; higher risk, higher potential gain (or at least, personal fulfillment).
I'm actually signed up for the General Assembly WDI next month in Atlanta; while its interesting to hear that Google has done this with GA, it wont strictly affect my class (I don't think it will, at any rate)... but speaking to that "guaranteed job"-- I do have _slightly_ more confidence that I'll be able to find a place I want to work (vs what I'm doing now, basically doing triage on broken webapp backends for various folks as a consultant).
As for the refunds; yeah, idk-- I could just imagine some really sore feelings surrounding it, and I'm sure there would be individuals raising cain about having spent money and time on the program (though, I don't know of a college that offers refunds...). I can't really speak to a solution there besides having possible remediation style "classes" or having a really strong network of after-hours study groups.
While I agree that there should be programs out there that reach out to underprivileged people and teach them to program I don't think the bootcamp model really suits them.
There are a number of organizations that do things like this (there should definitely be more though) but one of the main things is that the should generally be free and allow people to keep to differing paces. Otherwise you run into a large number of people who have spent a lot of money on a program that they won't do well at.
So more schools are opening their doors to bring in more people. You'll see the trend continue.
Do you mean that the program should be made available to anyone who wants to take it? What if there just isn't enough capacity to take that many people?
> people who have grown up around how to learn
Neither of these phrases makes any sense.
The latter phrase could be rephrased as "people who have grown up in an environment which taught them how to learn".
You took the IBM Data Processing aptitude test and if you did OK, the company inducted you into a trainee programmer role and you were sent on a course and got your PL/I book. You then spent 6 months working with the senior programmer gaining experience and making small patches and then eventually moved into a journeyman status. Basically it was an apprenticeship for coders.
Some stayed at that level, some quit, others would then do a combined CS with Computer Systems Engineering degree and get honours :-). The point is that it gave people a look in at the ground floor - people who gained value for their company who never would have had the chance in a world where the only way to open the door is a degree.
So despite my initial skepticism, I think there can be a place for things like this. In the end it depends how it is used. If it is to get people to pay money for a worthless course, then that is not great. However, if people can get placements as part of the gig, and they are treated effectively as apprentices, then it opens doors to a little more diverse crew than we are getting at the moment, and that's a good thing.
After I finished I was at the point to know enough to know I don't really know much of anything, and got hired into an apprenticeship program a local company was running, even though the majority of the stack I learned at GA isn't even used. He hired me with the knowledge that I am teachable and willing to learn.
Everyone but one person from our cohort now also has a development job. General Assembly at least does a ton to make sure you are prepared to fight your way into the job market. The only thing I am worried about is what the market will look like for people coming from bootcamps 5 to 10 years down the line. Is this going to start to bring out the people opening ma and pops bootcamp to get a quick buck?
Also you will hear wildly different GA experiences because every campus tackles the curriculum differently. Mine went JS prework, first 3 weeks of HTML/CSS/JS, next 3 Ruby/Rails, next 3 full MEAN stack, next 3 either random lessons about things like web sockets, comp sci topics, or any other thing the instructors found important. I talked to a LA grad though, and it was completely different. They had Ruby prework, and then day one started learning about Angular.
It's really all about the campus. If you want to go to GA, find out about that campus, not GA in general.
Now, three years later, I am taking online classes to learn about those issues. The more advanced I got, the more I needed those "basics."
Looking back at myself at 18, there is no way I would have made it through a CS course. I had no motivation for school. Now, I am doing really well and learning a ton.
Saying they are a scam ignores that the students are getting a marketable skill. None of the camps say you will be an expert with understandings of how the language works but you will have enough skill to be useful.
These bootcamps can teach people the basics of programming and if they have the interest and aptitude, they can grow into mature, experienced developers.
What I'd love to see is schools begin to take on various career-track options for students. Like theory and want to go to grad school? Take the theoretical track. Interested in front-end and mobile dev? Take some in-depth classes that cover fundamentals in that area. Distributed Systems? That could have oodles of classes, too. This is the way many other engineering degrees are structured. Somehow we're in this weird position where we're making students take electives which are relevant to industry so they can go get a good job, but they still have to learn how to write turing machines on paper.
We just happen to not have one for programming.
+++ On My Personal Experience +++
I also learned to write code on my own and had a junior dev job with no college experience. I then attended college part time to get my CS degree because
1) There are a large set of potential employers that will not consider hiring if you do not have a degree; so in times of job scarcity your options will be limited.
2) The subset of employers that will hire someone without a degree is then further broken into a subset that will pay you less since they know you have less options not having a degree.
+++ On Dev Bootcamps +++
1) 12 solid intensive weeks of learning to write code may be enough to get someone an entry level job if they learn/retain enough to get through the interview process. Having this as a focused class room where assistance and guidance is provided is likely of benefit to some people; so they are not entirely useless.
2) In my experience bootcamps have either not published or have been deceptive with job placement numbers. As a for example; I know of a bootcamp that published a 100% job placement rate. This was deceptive since they did not publish that 1) More than 75% of the attendees did not complete the bootcamp and so they were not counted (only graduate placement was counted), but they still were out of pocket for tuition costs. 2) Being hired for ANY job was considered as a successful job placement, but only about 1/3rd of the graduates actually found jobs that were in the field, the other 2/3rd were counted as successes because they were employed (e.g. if you found a job as a waitress you would count towards the success metric.)
Someone should be telling these students the truth. "This is going to be the most intensive, gruelling twelve weeks of hell on your life so far. Three out of four students will drop the program and will still owe the equivalent of one years (state university) tuition at a standard college. If you do finish then you still may not find a job in the field."
Data structures are not basics. Self-balanced binary tree graphs are not basics. More basic than that would be to learn what a graph is - Euler's bridges, Dijkstra's shortest path. More basic is the initial introduction to the concept of the graph and the set in discrete mathematics (as well as other discrete subjects like logic, combinations, probablility etc.)
Algorithms are not basics. Bresenham's line algorithm is not basic. More basic is theory of computation - Turing machines, lambda calculus, mu-recursive functions. Automata theory, complexity theory, computability theory. Basic does not necessarily mean easier, sometimes the abstractions can be harder to grasp. What is the complexity of your algorithm, what's the worst case big O notated case? How is big O notation determined? Can you even know what an algorithm is, or compare algorithms without knowing these things? Then more basic than these things is the math such as calculus you may to determine some algorithms.
Frankly, if when "looking back at myself at 18, there is no way I would have made it through a CS course. I had no motivation for school" , and then you study Ruby for three months and get a job and are now taking online courses - I would be very skeptical of how deep your knowledge is.
You're honest enough about what you did. There's also nothing wrong with being in a situation where you don't have the opportunity to study CS intensively for four years under professors and grad students who have published papers in the field (although "no motivation" sounds worse than "no opportunity at the time"). There's nothing wrong with being lucky enough to bootstrap yourself to your current situation, there's everything wrong with fooling yourself that in five years, that kid in his third year of CS right now, who is dedicated to studying the things I mentioned, and who will study it next year, and who will then get a job and work for four years. In five years he will be ahead of you. He has a foundation that you don't. He will have a confidence you won't. As an interviewer I will be able to tell this.
My advice would be to look at local public colleges and see if any are good. See what their CS programs are, how they deal with night/weekend students for CS majors (some required classes may be on a weekday at 1 PM) etc. See what the pre-requisite graph is. Then take one class a semester, at night or on weekends. It will be one or two nights a week. Maybe take an easy non-CS class first like art appreciation or something. Note they often put one of the hardest courses for CS (like Calculus 101) as an initial pre-requisite for all CS classes to weed out "unmotivated" people from burdening the school CS program. Keeping on the topic of the weed-out class though - if you struggle over Calculus 101 like we CS majors did, to where you're even thinking of dropping out - wouldn't that be a sign that we were learning things in school you didn't know? It's not a laugh a minute to do Cook Turing reductions of NP problems in order to show similar properties of problems - but it does help in understanding fundamentals of CS.
It is better to think about this sooner than later. People do these things when they're in there teens or early 20s because it's easier to do then. You really don't want to have this revelation after you have a child or two, and are having trouble finding good work because of no diploma and lack of fundamentals. One bonus is the diploma is not the only payoff - even halfway through school you'll be a better programmer, more attractive to some employers, will have met interesting professors and students (if you put yourself out there) etc. You get out what you put in - professors like students who pay attention and do well, and can be helpful.
> (although "no motivation" sounds worse than "no opportunity at the time")
18 was ten years ago. I was playing college football, thinking I was going to go pro. I was an idiot, but I got a college degree.
I then went on to have a career in a different field, grew up a little and taught myself to code. I've been working in the industry for three years. I have a long way to go. I spend every evening either a) doing homework for an online course I'm taking from Rice (through Coursera), b) Going through a self-directed course I've made consisting of various text books/academic papers, c) actually writing code.
Seriously, fuck you for acting like the only way to become a respectable or successful developer is the path you picked.
Can you name me the respectable, successful, known developers that did not get a college degree? I mean, I can think of a few who were in the math/CS program of a top-tier school, who started a company on the side that took off, and dropped out since they were already on a rocket ship. I can also think of a few like John Carmack who just dropped out, but would still fit that category. Although...Carmack has been very straightforward about what he knows, does not know, and is learning, and sometimes I'm surprised that he is just learning a topic I had already studied indepth as an undergraduate.
While people like this are few and far between, I can name many more successful and respectable programmers who have a college degree. Who are the majority.
I look at this equanimously, while you seem to take it very personally. In my experience, those who spent four years at college studying calculus, computational complexity, backtracking, 1st/2nd/3rd normal form, how floating point numbers are stored in memory etc. are usually better than those who have not. That doesn't mean someone who slacked through school for four years is always better than someone who did not go to school for four years. It just means more often than not, someone with four years study of foundational computer science is better than someone without it.
You said you've been at this for three years - so 2012 or so. The tech economy (and to a lesser extent the broader economy) has been booming, as can be evidenced from stories here on HN. You seem to be getting upset...over a comment on HN! Let's see how you do when the economy tanks like it did in 2008-2009. Let's see how you do when tech jobs crash with the dot-coms like they did in 2000-2001. When suddenly the few job postings which appear will say "BSCS required". Why wouldn't they, because in those times, they'll still be flooded with dozens of resumes with people with BSCS's. By then you may have a mortgage, a car, two kids.
Your argument is not with me. Here's a line from a job posting on SF Bay Craigslist - ( http://sfbay.craigslist.org/sfc/egr/5278943482.html )
"Senior Application Engineer @ Slack...Here are a few extra things that would lift you up a couple of notches in our eyes: * Academic background in computer science (BSc or MSc)"
That's the #1 thing they have on their "nice to haves" list. I can assure you - when we go from these go-go unicorn times to a 2000-2001 or 2008 recession, at a time when you need work the most, I can guarantee you that their #1 "nice to have" will move up into the required column.
When the economy takes a dive like it does every eight years or so, and you have a mortgage and two kids, and you're a fifty-something unemployed coder with no degree and gaps in his technical knowledge who refused to take the bull by the horns at a time when you could have (two night class a year over twenty years would get you a degree by the age of 48), you will look back in enormous regret that you did not spend 90 minutes twice a week going to night class to earn a BSCS.
You're acting as if your example of the 50-something engineer without a degree is starting his career. The more plausible scenario is that his days of needing a degree to prove himself were over decades ago. He's getting jobs based on the knowledge and experience he gained at work, and if he isn't, he's been doing it wrong.
But I would guess there are at least a few shop owning mechanics who make as much as the highly degreed engineers designing the parts they install. And no shortage of plumbers making more than people who have graduate level knowledge of Latin. It's not fair. Life isn't fair. But from what I see, life rewards practical know-how... which may or may not entail academic credentials and esoteric knowledge.
As one of those few back end developers, I would HOPE I'm not competing with you for a job, as that would then have been a waste of my time and money. That being said, 4 years down the road of real world experience, I doubt there will be any separation between myself and someone with a CS degree and 4 years of work experience. Real life converges. From my couple years post-GA, I'm perfectly capable of talking the talk with the CS majors who think the two letters give them superpowers.
Again, nobody is implying 3 months will match your 4 years. However, thinking that 3 months of immersion doesn't give you enough knowledge to gain the REAL knowledge on the job would be ignorant. I'm reasonably confident if you blindfolded me and dumped me in France, I'd be speaking french in 3 months. I doubt I'd be able to appreciate The Count Of Monte Cristo, but I'd be more than capable of navigating day to day life.
That depends entirely on what you do in those 4 years. If you spend that time studying algorithms, data structures, graph theory, discrete math, and the theory of computation, then you may be right.
If you spend those 4 years making CRUD apps, then there will still be a large gap.
I speak from experience by the way. I was a professional programmer for 5 years before I went back to get my CS degree. There were so many things that I didn't know that I didn't know.
It's the difference between spending a week banging your head against a wall or spending 20 minutes realizing your problem is just a variant of a graph theory problem that was solved 50 years ago.
I think that puts it very well. It's not just what people know they don't know, it's what they don't know they don't know. That's where it really hits them.
Here's an employment rate and weekly earnings chart from the US Department of Labor correlated by education level:
Who cares? You're just another job among the hundreds out there. That CS grad could be working on very difficult problems... or he could be pushing web apps for the next four years because his interviewer promised him cool toys and tough problems and then bait-and-switched. Not all of the school programs are top notch. Not all of the students that pass those programs will remember half of what you mentioned in your post or even recall the solutions when a typical problem is staring them in the face. His confidence will be misplaced, and now you're back to where everyone else is: assessing actual skill instead of guessing with credentials.
Frankly I'm alarmed that you've placed so much faith in that credential. For America in particular it really doesn't mean that much on its own unless you went to a well-known school. Not all CS programs are created equal. I'm certainly not going to burn cash and time because of spooky predictions of developer armageddon. People with four years of actual experience will be just fine.
Personally I'd be more interested in security-oriented devs. That's more important than knocking a few thousand cycles off of your algorithm.
A developer and a computer scientist are two different things.
There are awesome developers who are terrible computer scientists. They can build a great website/small web application in RoR or Django, fast and get the job done.
The site will never scale tho.
There are awesome computer scientists who can't build a great web app but can scale the hell out of it.
Most companies want developers, not computer scientist. You might get asked all sorts of questions about algorithms ^& data structures, but in reality day to day problem is CRUD.
Now, I would imagine Google would want more of those CS types than developer types...
No, they are not. A good developer is someone who, by virtue of the fact that he or she has to write software whose theoretical underpinnings are rooted in CS, must be good in CS as well. It's ok if you're not a CS person, but stop generalising and saying no dev has to be.
> There are awesome developers who are terrible computer scientists. They can build a great website/small web application in RoR or Django, fast and get the job done. The site will never scale tho.
No. These are people who are good at gluing together a framework. If that's your definition of a developer, I'm sorry to burst your bubble, but you are mistaken. Web development is not the be-all/end-all of Software development.
Scalability is a very very specific topic, but it's not the only one. CS includes a vast number of things.
Good developers write things like compilers, infrastructure tools, operating systems, libraries, the frameworks that you so like to use - someone wrote them, and chances are, they knew their CS. Video Games - try writing one without knowing much about Linear Algebra. See how far you get.
> Most companies want developers, not computer scientist. You might get asked all sorts of questions about algorithms ^& data structures, but in reality day to day problem is CRUD.
Partly agreed here. The thing is - as the CRUD things become more and more common, everyone wants in on the next stuff - Analytics, Data Science, Machine Learning! Who is going to provide that for the companies? The guy who did dev bootcamp or the guy with a CS degree under his belt who says he can learn it? Who are you going to hire?
And it just so happens there there are quite of lot of 6 figure jobs that solely involve building crud apps by gluing together frameworks.
You can shit it on all you want, and talk about how "us real computer scientists are solving the Hard Problems by building compilers and OSs".
But at the end of the day, the person going to the bootcamp doesn't care about this opinion. All they care about is that they were able to spend 3 months of there time in order to double or triple their salary.
And the only other price they have to pay is having to put up with people like you shitting on them for not working on Hard Problems. And to me, that seems like a very small price to pay.
Person A: "No Scotsman puts sugar on his porridge."
Person B: "But my uncle Angus likes sugar with his porridge."
Person A: "Ah yes, but no true Scotsman puts sugar on his porridge."
I feel the much of the negativity towards bootcamps is partially due to people feeling threatened by new entrants. Kind of like black cars in London claiming that to be a cab driver you'd have to know the streets by memory, while in most cases GPS would be good enough. To me, it seems like a lot of bootcamps get you to good enough. That doesn't take away from all the years of investment and learning that other developers might have gone through to get where they are. There's room for both.
There's so much work in this industry, and will only be more over time, that I'm not worried about being replaced by any stretch. Fear certainly may be the driving force for some folks, but my experience with bootcamp graduates has just generally been unimpressive. I'm certain there are quality graduates from these programs! I've just never actually worked with them, and it's getting to the point where the correlation is uncomfortable.
The only difference between the above mentioned professions and Software Engineering is that there is no formal "examination" that you have to pass to demonstrate your qualification - which is the barrier that is there to ensure quality students. It comes down to qualification. Unlike doctors and lawyers, the barrier to entry in our industry is much, much low. Which most assuredly leads to a decline in quality.
So yeah, thanks for the passive aggressive attacks about me feeling threatened, but no. I've never seen a 6-figure salary, I don't live in US/Bay Area. I just like quality code and working with quality people. Bootcamp devs aren't those. Can they be? Sure, but as some graduates in this thread themselves admitted, it took them 2-3 years to reach that position anyway.
Yes. There is plenty of work that can be done by a nurse that doesn't need to be done by a doctor. It seems silly that someone gets sent to school for over a decade to talk to me about whether I can take a drug to bring back the spark in my relationship.
Yes. There are plenty of routine legal procedures that should be allowed to be performed by someone that doesn't have to go through the costly process of going through law school (routine divorce comes to mind)
Don't know much about architecture :-/
Didn't mean to be passive aggressive. So for that I apologize.
Accounting is perhaps a more interesting corollary because it doesn't have the built-in awe and long history of respect as the medical and legal professions: perhaps we should have 12-week tax accounting bootcamps! I'm being a bit tongue-in-cheek, but there are real benefits on both sides of this argument: there are real quality of work and quality of employment (salary, respect, etc.) advantages to professional certification enforcement, but it is difficult to imagine the pace at which the technology sector is growing if employment were controlled by certification.
What is changing right now is that demand for skilled people is outstripping the education system's ability to produce them. So you see the emergence of schools and eventually employer driven training programs. This has been coming for a long time, and it is actually a good thing. It's actually an opportunity.
> Yes. There is plenty of work that can be done by a nurse that doesn't need to be done by a doctor. It seems silly that someone gets sent to school for over a decade to talk to me about whether I can take a drug to bring back the spark in my relationship.
> > Law
> Yes. There are plenty of routine legal procedures that should be allowed to be performed by someone that doesn't have to go through the costly process of going through law school (routine divorce comes to mind)
Paralegals and Nurses require 2-4 year diplomas or degrees, typically
Meanwhile they were taking home a paycheck instead of paying tuition dollars. Maybe they've got family to support and taking four years out of the workforce wasn't a possibility. Or maybe sitting in a classroom is just not how they learn.
What exactly is the problem with some people learning on the job if they want to and employers want them to? You don't want to work with them find an company that doesn't want to hire them or found one yourself.
How is that in any way the problem of the company said guy is joining?
> What exactly is the problem with some people learning on the job if they want to and employers want them to?
Because it is inherently a risky proposition. Why should the rest of the team be held back or be responsible for plugging the gaps in the education of the guy/girl who doesn't know their stuff? It's not an Internship, is it? If you're getting paid a full time salary you better be able to fucking to the job.
Anyway all this talk is pointless. Any company worth its salt will weed out the weaklings in the Interview process.
Trivial in Unity or UDK. Good frameworks / game engines make non CS people productive in building apps. There are thousands of successful mobile game developers with little to no CS background.
You don't need to know classical mechanic physics as a construction worker to build a structure, but you do need to know it as the architect designing it. The bigger the structure, the more important.
And in fact the basics of structures is taught to Technicians as well.
It depends on the problem domain. Most problems solved by software developers today do not require a CS background, or even any technical background. Just like in other fields, we have the advantage of building on the shoulders of giants. A smart person invents Ruby, another smart person builds Rails on top of that, and the next thing you know, a ton of people are writing web apps. This doesn't mean that the web app developers are "bad" developers. It just means they can focus on other types of problems.
that is the state of the industry dominated by "developers" instead of "scientists" or even "engineers". An industry with endemic Dunning–Kruger.
The point is to move industry beyond the CRUD. "Developers" just don't understand it and are happy to manually churn it again and again like those manual workers before industrialization or like those car assembly line workers before robots...
When given the choice between diploma mill graduates and Google Developer Bootcamp graduates, I will choose the latter. And you will too.
Bare-minimum spaghetti code from passionless software developers is going to be mass produced and it will continue to be mass produced.
Honestly, I think we should look at this from a pair-programming perspective -- but on a massive scale. It is more beneficial to partner with existing educational institutions and make an on-going, consistent, and strong effort to create a robust pipeline from school to the industry.
I'm from Dev Bootcamp and barely knew anything before participating. I had multiple good job offers a week after "graduating" and have always been performing well, obviously according to what was expected when I finished.
I was able to do useful stuff in our rails app since the first week, and although I needed a lot of mentorship I still think I was useful.
I think what's important is to be realistic on expectations you have on bootcamp. You won't understand how things work after 3 months, but you will definitely know enough to get a job as a junior, and be able to continue learning.
After I landed my first job, I continued to take some online classes to know more CS stuff, learn basic algorithms, etc.
and now that I've been working for almost 3 years (really hard) I feel like I know better than a new grad getting out of school.
I didn't when I started working obviously, but I think that those past 3 years were way more valuable in every single aspect than if I had spent 3 years in College studying CS.
Don't get me wrong, I'm not trying to say you shouldn't go to school or anything, but there is definitely a value in bootcamps, especially for people (like me) who already spent 3-4 years in College but want to make a change. I would have never been able to become an engineer without a bootcamp, because I couldn't afford another bachelor's (and tbh, didn't have the motivation for it anyways).
These skills can be taught but aren't in most modern universities.
Mostly, there is argument that university is not vocational training. At the same time, most people implicitly feel the need to go to university to get a job.
These developer boot camps create a new path. It's a good thing.
Is a categorical falsehood that has cost me alot of time and money.
There is not one top tier technology company software team that you can get on without having a strong grasp of at least the basic fundamentals of CS (namely data structures, algorithms, and some college level math.)
You will ALWAYS get passed on if you only focus on domain specific knowledge (ie. web development or mobile) to the complete detriment of theory.
Why? because because eventually said tech/language/toolchain/development target/ or platform will become obsolete and good companies want to know your skillset won't die with them.
I've written about this before
Anyone reading this who is interested in being a software engineer for the long haul please DO NOT discount the importance of a strong CS foundation as I did early in my career.
Edit: If you downvote please explain. I have strong evidence to back these claims in the form of missed jobs opportunities at multiple name brand tech companies. You can stick your head in the mud if you like but it wont make you anymore correct.
This just in: Getting on a top tier team requires being top tier.
This doesn't mean you can't teach for the rest of the industry, nor does it mean you can't go into the top tier work later. Just the path to top tier changes, from college to having solid experience and code out there. This can come from blog posts, open source, or simply working on hard problems at whatever gig you can get.
>> not one team... you can get on
>> passed on
Is the problem that you can't join the team without fundamental skills, or that you can't do the work?
In some of the easier cases, a person who is only a bootcamp graduate will be able to do the work. In other cases, they absolutely won't. The latter will be those that require more knowledge of at least some CS theory (parts of it), algorithms, data structures, OS fundamentals (and particularly the interactions between the programs you are building and the OS, i.e. system calls, I/O to/from peripherals, data representation format and conversion issues, etc.), troubleshooting (and I don't count looking up issues on StackOverflow as troubleshooting), etc.
For example, I've come across both devs and sysadmins who didn't know that a binary (Unix term) / EXE (Windows term) compiled for one hardware/OS platform will not run on another hardware/OS platform (with maybe some exceptions). - due to the different hardware instruction set and OS system calls.
I would argue you can still do the work without it but it will be at a completely different level if you have a strong CS foundation because you'll understand at a fundamental level how to build software that is performant among other things.
Many software teams have decided by using that as the interview process to have it as a floor for the aptitude of people on their team.
If you're smart and perceptive, then you can learn enough of these things, for the average job, by osmosis or by day-to-day exposure over the course of a career.
You can learn fundamentals (and see them applied to real problems) while being paid on the job
Look at any of the statistics. These bootcamps graduate people making 80k-100k. That is a good salary for someone who didn't graduate with a CS degree from a top 5 tech school.
EDIT: See my post further down for clarification on this idea. I shot this comment from the hip a bit too fast.
I'm a high school dropout and have started/ran/sold a startup, managed a division for a well-regarded consulting firm, and worked on data taking for a detector at the LHC. Perhaps the problem is that I minimize the amount of effort that goes into being autodidactic (determine the problem, determine what information and skills are needed to solve the problem, acquire said information/skills, execute, repeat).
Let me correct/clarify my above post: Theory isn't a waste, per se. Is it best to spend a significant amount of time front loading knowledge one may not need? And paying a substantial premium for that experience? That's my problem with the college experience for tech professionals.
I'm not a huge fan of bootcamps, but I do believe there is much to be gained by Google's efforts here. There is value we've lost in the old apprenticeship system, and I hope to see it revived over time (I owe my skill and career progression to the luck of finding quality mentors along my way).
There are hard problems I want to solve that I want to have the resources (mostly time) to solve. College would not teach my those skills, but me trying to solve those problems are lessons in themselves.
Don't get me wrong--I'm self-taught too, I'd been writing code for a decade-ish before I went to college, but this stuff changed my life profoundly, and I think minimizing it out of hand is downright tragic. Maybe if there was a better way to get people to acquire this a few years on (calling to mind the idea that people should have a few years of experience before getting an MBA), but there isn't right now.
As far as paying a premium goes--I graduated with about $20K of debt, mostly because it was effectively free money (my total interest payments before I paid them off were less than $2K), and was getting paid through school (did Google Summer of Code twice, ran my own web dev shop, etc.). Bad choices can be made with regards to college, but that's a criticism of overly expensive (private) colleges.
The tech industry currently doesn't need any more people to work on the Actually Hard Problems.
The tech industry currently pays people 6 figure salaries to build CRUD apps. There is such a huge shortage of tech people, that the industry can't even get the "Easy", low hanging fruit work done.
It doesn't matter how many PHDs work at Tesla designing space cars if the world has a cronic shortage of car mechanics. And right now the car mechanics get 6 figure salaries.
Could you make your point without that?
I dunno, more people keep offering to pay me to do them than I have time to take up...
In a sense I feel like we do things backwards. You should work in industry for a couple years, then learn the theory you learn when getting a CS degree. The software development career path isn't setup like this now, but if it were, I feel like we would all be better off.
They hack around on computers in high school and get to being pretty good at programming, then go to college and pick up the theory side.
Fundamentally, I think trying to get people to be developers who are only interested in money is a losing proposition.
I'm interested in the fundamentals of CS, and I code because I love coding, not because I'm really interested in a high paying low stress job. Most students in my program and who I'm friends with have an interest in going into management or building a cool product quickly. (Let me be clear, I don't wish to pass value judgement on the reasons that one is interested in CS. Those reasons are equally legitimate, just not to my interest)
Unfortunately, at least my observation, students who have recently become interested in CS "for the money" tend to perform significantly worse are and are largely less successful at Computer Science. The students who are most successful are those who have known that Computer Science is their passion for a long time and who are now in college pursuing that interest.
Fundamentally, I agree with you, the divide between those who wish to be serious computer scientists and "coders" becomes more clear every year.
Now that I've been developing for a while, everything has fallen into place. I understand Chomsky's hierarchy, the limitations of regular expressions & stacks, time complexity, and the like. It's like development filled in this enormous gap that I had been missing.
I credit a lot of my ability to learn to my bachelor's degree, though. I wouldn't recommend most people skip college, and I've considered going back for a MS in CS.
Exactly my experience. When I started college, I hated all the theory and built apps. Now I am a senior and spending most of my time reading theory books and wishing I had minored in math!
I interview developers pretty often for my company and I've come across about a handful of people whose only education in development was one of these bootcamps; none of them were anywhere close to being ready for even an entry level position.
So I become super skeptical when people are being asked to pay $13k for a 3 month program that may not actually land them a job. That's a LOT of money.
I'd like to see GA's historical track record - how many of their graduates have received offers within 6 months? Within a year? What were the average starting salaries they received?
Based on my limited exposure to the graduates of these types of bootcamps, I don't think I'd recommend this type of program to anyone, despite having Google's name attached to it.
The "average" ones are closer to 75k average starting salary.
I did a bit of research and found a Quora answer regarding GA's success with its Web Development program here: https://www.quora.com/What-is-the-hiring-rate-for-graduates-...
Hack Reactor indeed has these statistics, but their application process is probably the most difficult/selective of any of the bootcamps. The people going into the program, are usually, already quite good.
As an example, I have a friend who graduated from General Assembly, didn't feel quite prepared, so did Hack Reactor AS WELL. (ie, 2 separate bootcamps, one right after the other). On top of, of course, a college degree (albeit non-CS)
It is kind of like how Harvard has very good hiring stats. Is Harvard really that good, or does their admissions process just select for people who are almost certainly going to be successful, no matter what college they go to.
A 12 week program is certainly enough to prepare someone for real, practical applications in development, especially if the student has done self study before and after and has ambition.
From what I've seen, often times a CS degree does the exact opposite.
Just look at the job statistics for anyone of the top ones, like Hack Reactor, Flatiron School, ect.
They graduate people who get 80-100k salary jobs, within 6 months of graduating.
People go to these bootcamps for the singular goal of getting a high paying job, and these programs are wildly successful at achieving this goal.
You're flat out wrong and you're doing a disservice to yourself and the industry by dismissing them out of hand.
I've talked to quite a few people who have gone through bootcamps or hired people from bootcamps. Many come out completely capable of filling a junior dev role.
We hired a junior dev straight out of a bootcamp and she has been great. Not only is she competent but she adds a different perspective to the team which is valuable.
One caveat though. Not everyone is suitable for a bootcamp. You have to be an intelligent, fast learner who wants to continue learning and is aware of your limitations.
Employers have to have reasonable expectations too. You can't expect someone from a bootcamp to be committing code on their first day, first week, or possibly even first month (depending on the complexity of your code base). At first they will take much longer on tasks than a CS major or someone with experience. But they've clearly shown a willingness to learn and learn quickly so it doesn't last.
To be fair it seems like the people that go to the "top" bootcamps are not like this. I mean, App Academy has graduated Googlers, but a lot already had degrees or some industry experience.
I do know of many CS grads that were woefully unprepared to write production code until they had a few weeks of real learning.
Myself, I have no CS degree, and have been a professional developer since 1999, in multiple languages, and have had the opportunity to run user groups, speak at conferences, serve as technical editors in many big name programming books, and more. I'm FAR from exceptional; I'd say I'm only mildly above average in terms of intellect and skill. My point is that a great career can come by many paths.
For more info see my other comment on the main thread.
I spent a year teaching the web development immersive program at General Assembly. I felt skeptical about the program too, but I always wanted to try teaching so I thought it was worth a go.
by the way, I'd recommend it to anyone. It's a great way to take a break from dev work and teach the next generation of developers. It is extremely rewarding to watch people go from next to zero knowledge to being able to build functional apps, and they are always looking for new instructors.
So, does it work?
Admissions - We did have a fairly high admissions bar (as to not waste anyones time or money), but the bar was really about motivation and ability to learn the basics (they have to do some basic html / css). The program is VERY fast and demanding and people need to be able to do nothing but code for 3 months. Their personal life gets put on hold and they live, breath, and eat code.
Completion - Every class I taught had exactly one student drop toward the beginning, but outside of that everyone that started the program made it through (thanks in part to the admissions process).
Outcome - Every student that finished the program and actively tried to find work got a job. Each class (of 20+ people) had a couple people that decided to do something else with their lives, but everyone that decided they wanted a job in development got one.
I can't speak for all "boot camp" programs, but I can say that the program that I taught was very effective and IMO people got a great return on their investment.
These views are my own and don't reflect the views of General Assembly or Google, blah, blah, etc..
(edits to fix typos and some re-organization)
Admission gripes and crappy students aside, the rest of the learning environment was great. The teachers were always willing to give more outside work if we wanted more. It was invaluable having classes overlapping and students at different learning stages sitting next to each other in the community workspace. Most people were happy to provide help. I even had the dumb luck of sitting next to Ryan Dahl while I was learning node (I had no idea who he was at the time); now I use node all day every day.
My advice to anyone considering any immersive program would be to meet/vet the actual instructor(s) teaching your particular cohort.
Students should most definitely be able to write a decent app after a class like this. Interface and backend communication aren't that hard, nor to they require an engineering background. Engineering problems, UX design, etc. are all likely beyond scope.
It's important to identify where on 'the scale' this lies: Google creates advanced tools that allow people to develop products using simpler concepts. This program targets the latter audience, which is a sensible business decision.
The full-time course will be offered in early 2016 at General Assembly's flagship offices in New York and San Francisco and then spread to its 14 locations around the world.
Totally worth your time. Many questions like this on https://www.reddit.com/r/omscs .
I applied when it first opened for applications. I was not admitted. Two session later they reached out and mentioned that my application was flagged for re-evaluation and asked if I was interested. I said I was and a few months later I was accepted.
It is a great program, I highly recommend it.
You can? I thought it had to be a very specific, accredited school for that.
What does age diversity look like at Google for engineering staff?
Google, and most larger tech companies, optimize their hiring process to aggressively deny candidates if they aren't a slam dunk. The negatives that come from hiring a bad engineer far outweigh the positives that come from hiring a good engineer.
Not saying there isn't an age bias, just not an obvious one I noticed.
There is very little statutory protection for employees in the USA so the actual cost of firing some one isn't that high.
So think about it from Google's point of view. You take a risk, hire a programmer that doesn't pan out. You fire him after 6 months. That's 6 months of salary and benefits. 6 months of bad code sitting in your code base. 6 months of lower productivity for whoever was on that person's team. And probably another 6 months after that of clean up either ripping out bad code, or worse, leaving passable code that turns bad at a later date causing even more work.
It is better to just take no action on a potentially good candidate and let them try again in a year than it is to take even a small risk on someone who might cause things to snowball.
The legal cost is low, but the social cost of a workplace where people often get fired is high.
Or is Google just trying to spark innovation by getting more engineers into the Android ecosystem?
I completed half of an android MOOC course and for the most part it was just Java + mobile design patterns.
The android specific stuff (build tools/IDE, configuration, version partitioning, etc) can be learned on the fly I assume.
That's been my experience anyway...
Perhaps Google is worried about declining developer attention focus on developing for the Android platform. Network effects make markets like the app store a winner take all (more or less)
iOS App Store Revenue Now 80 Percent Higher Than Google Play, Thanks To China
Demand for mobile developers in general is off the charts, and still climbing. It's kind of absurd, really - the going rate for mobile devs has increased 200-300% over the past 3 years amongst colleagues I know, which I think is almost entirely attributable to the demand growth in this sector and the relatively slow growth of the talent pool.
Looking at Android vs. iOS devs, both are in high demand but Android especially so. Overall demand for Android doesn't feel particularly pronounced, but the talent pool of experienced, competent Android devs is dramatically smaller than the counterpart in iOS-land.
The key here is experienced, competent devs. We've interviewed a lot of Java people with minimal Android experience trying to make the leap over - it rarely goes well. Mobile development is substantially more complex than "knows Java and can work Android Studio".
There are a few posts replying to yours that I want to respond to, but I'll just do it in one shot instead of littering a bunch of replies everywhere:
RE: simply hiring experienced Java devs. This doesn't usually work - good mobile devs are also at least partially UX people - we spend a lot of time knee-deep in UI, and consumer expectations for the fit and finish of apps are high. Someone who has completed the "Hello World" equivalent of Android learning has done exactly that - finished "Hello World". It in no way implies the ability to build apps that aren't an embarrassment to the Play Store. There is a vast amount of domain knowledge here, and the gap between an app built by someone who merely knows the API vs. someone who knows mobile apps is pretty darned wide.
RE: iOS gaining a larger share of revenue. This is true, but relatively inconsequential to most mobile devs. Outside of gaming the number of businesses directly monetizing apps is dropping. The bulk of attention for non-game apps go towards service-oriented apps (see: Uber, AirBnb, Facebook) for whom "app store revenue" is a nonsensical concept. There is lots, and lots* of work for companies that don't rely on direct monetization (i.e., app sales and in-app purchases) to live (and increasingly so).
RE: the market balancing itself according to supply/demand. Yes, this is happening, but it's happening more slowly than the demand is rising, so overall wages are still rising. Much of this is because it's non-trivial to learn the domain knowledge necessary to really do this well, and consumer expectations on app quality is high enough that (to be charitable) the value of beginner-level devs vs. experienced devs is non-linear.
Why not hire and expect that people need to be trained and train them? There's a catch 22 situation here. Do most tasks really require amazing android specialized developers? Cant some decent developers get by with some guidance?
Is there an Effective Android or Android the Good Parts type of book?
It's a weird catch-22 as folks just end up going iOS only first as a result.
Personally I'm currently 20 years old, and I'm studying and working at the moment. I intend to self-learn, to enable to to get a Jr dev position as well. Even with a 20% chance of success, the risk is worth it considering the off-trade of debt and 3 years for a bachelor.
Does anyone have any input on whether it's viable or not? What would you require from someone self taught, to hire them?
Here's my logic: Too few developers are developing on Android as there are few profits to be had. As a result, the Android eco-system is not sufficiently valuable to customers willing to pay for apps. To break this cycle, Android wishes to attack the supply issue and raise the value of the platform via working with groups to train more Android developers. Google is partnering with General Assembly on this initiative because of their experience running bootcamps. Karma and Vice are willing to hire every programmer because they're short on developers?
This is where I'm tripped up. Can Karma and Vice not find a sufficient number of Android developers? Or are they unwilling to pay enough to compete for talent? Are developers lured into GA's pipeline to find higher paying jobs? Is the $13.5k tuition not subsidized by Google or Karma and Vice to filter for 'serious' developers?
Maybe this is true for the best of class but for the rest, I don't think so.
The best that they could achieve is that a company would present those exceptional graduates with an apprenticeship offer under a probationary period, roughly 6 months or longer, but with a fast-track path to full employment based on on-the-job performance, but to promise someone that, to the effect, that once you immerse yourself for 12 weeks in our boot camp and then make it and graduate successfully, your productivity will match that of other professional developers who are more experienced or knowledgeable in the field is overly unrealistic and misleading.
Of course, then you can pay them less.
The current title implies two things:
1) That Google is creating this bootcamp on it's own
2) Google is hiring the developers
As written it's pretty linkbaity.
I am not even sure if they are promising jobs in any literal sense "General Assembly has said in a statement that it will connect developers who finish the course with jobs in its hiring network".
To be clear I am a big fan of GA and bootcamps in general, I just feel that the title of this article is misleading.
Btw, I'm an electrical engineer and I want to move to web development, do you guys have any tips on what would be the best bootcamp?
If I were you I'd save the 5 figure fees and go through the python (learnpythonthehardway.org) and Django (learnpythonthehardway.org/book/next.html) tutorials.