I could not use my GI Bill to go to code school
May 4, 2017 9:24 AM   Subscribe

Thousands of Veterans Want to Learn to Code — But Can’t | David Molina launched Operation Code with a single goal: Modernize the outdated GI Bill so veterans can land tech jobs.
posted by I_Love_Bananas (46 comments total) 18 users marked this as a favorite
 
I'm not sure if attending a coding school/boot camp is really all that necessary to learn how to code. Back in the day, I learned C and C++ from the local community college, and not only was it affordable the teachers I had were top notch.
posted by gyc at 9:33 AM on May 4, 2017 [8 favorites]


I have a brain that can work with numbers like calculator stuff but as the concepts get more abstract the going gets more difficult. Computer programming requires a brain that does well with math beyond arithmetic. If you don't have that skill, you'll never be able to code.
posted by hippybear at 9:35 AM on May 4, 2017 [1 favorite]


My brother is in his 40s and tried to learn programming at college but gave up after a couple of weeks. Having spent time tutoring him, I don't blame him; the course was boring, had serious flaws in its pedagogy and the pacing was just insane. Sure, a competent coder can learn the basics of a new language in 30-60 days with boring and lacking instructions, but people with no STEM background? Incredibly difficult. Let's not forget that MANY coders start out as kids so by the time the formally study programming, it's much easier for them to grasp all the levels of abstractions.

Programming is beautiful, fun and incredibly useful but 9 out of 10 times it's taught poorly. I hope more veterans learn to code but what I really hope for is a revolution in how programming is taught to everyone.
posted by Foci for Analysis at 9:41 AM on May 4, 2017 [7 favorites]


Yeeeeaaaahh, if the GI Bill were extended to cover unaccredited code schools, I predict that a whole bunch of terrible, bullshit code schools aimed at veterans would pop up overnight. My sense is that there's already a pretty wide variety in quality of coding bootcamps, and some of them are not great. I also am not convinced that the bootcamp model is going to work well for veterans, a lot of whom have family responsibilities that make round-the-clock short-term education not super feasible.

A better model, I think, would be to use the existing community college infrastructure to create programs that were responsive to the needs of veterans.
posted by ArbitraryAndCapricious at 9:42 AM on May 4, 2017 [95 favorites]


As both a professional Senior Software Engineer and a Soldier, I'm really leery of code boot camps.

Learning to program is easy enough, but learning to program *well* takes significant time and (often) good mentorship. Having worked with a number of graduates of such programs, I've been thrilled by the enthusiasm they show, but have almost always become saddened by the fact that they end up having to unlearn so much of what they learned in order to progress, and as such many never do. And, quite frankly, veteran or not, few showed any skill in the logic structures behind programming before going to the code school.

I like to say in situations like this that amateur coders produce amateur code, and amateur code is a threat in an increasingly interconnected and technology-run world. If you're writing a widget for your own use, then fine, but if you could potentially screw up the security or stability of a major piece of software used by many people/organizations, then the risk simply isn't worth it. Unless and until code boot camps show serious recognition of that fact, and attempt to grapple with it directly, I just can't give broad support.
posted by mystyk at 9:44 AM on May 4, 2017 [23 favorites]


I am a code school graduate who went thanks to a public grant program. I did really well and it was good for me and I have gotten a lot out of it. But looking at the graduates of my program and the way some people have struggled, especially those who weren't already pretty code-literate? Looking at the number of these schools and the way they're almost completely unregulated and grossly more expensive than public universities?

Yes, the average mid-level developer might make a very good living, but a great many of the employers in my city who talk about not being able to find enough talent are also not particularly interested in hiring junior developers. And after twelve weeks, if you weren't coding before you started? You're still super, super junior. Until that part gets fixed and there's a better pathway for this, all this is asking for is a glut of new schools and a tanking of wage rates for interns. Which is what a bunch of the people in my program started as, or as 'junior developers' at like $12/hour, but those are still reported as 'hired' by the school. Omaha's already struggling with two schools churning out new students, I can't imagine how the market would go if you doubled or tripled that, which this probably would. (Lots of military here.)
posted by Sequence at 9:46 AM on May 4, 2017 [9 favorites]


My only meaningful contribution to this is, absent a regulatory framework or some kind of journeyman-programmer certification process, I'm skeptical of median code school quality. They seem incentivized to over promise and under deliver.

A local school promised students that after a single, intensive semester, you too! could be a web freelancer – which was false if not irresponsible.

It seems to me that a semester or two of these schools prepares you to be a very green junior at a very trusting company willing to make an investment, and that's about it.
posted by pmv at 9:47 AM on May 4, 2017 [2 favorites]


Back in the day when I was actually able to do computer programming, it was more like writing interconnected haiku because of memory limitations. Also, computers couldn't do a lot. And making one do something that seemed magical was to truly be deemed a wizard.
posted by hippybear at 9:49 AM on May 4, 2017 [1 favorite]


Computer programming requires a brain that does well with math beyond arithmetic.

This really just isn't true, as far as I can tell. Reasoning about abstracted concepts and structures, sure, but "math beyond arithmetic" is a language I don't speak. I learned to program in part so that I could avoid doing math.

That said, I think it's fair and reasonable to say that a whole lot of people don't fundamentally have the cognitive equipment to program, at least much beyond a rudimentary level. I don't, much as I think everyone should be given access to the tools and opportunities to learn, believe that "anyone can program". (Much like I didn't have the cognitive equipment to pass a single highschool math class.)

I have mixed feelings about the phenomena of code schools / boot camps in general. I know people who have emerged from them with a good base of skills and good industry jobs. I've viewed programming as a trade skill for pretty much my entire working life, and I sure as shit don't have a formal CS education. At the same time, anything with this much momentum has got to be attracting a whole bunch of scam artists, and I have some concerns that people are emerging from these things without a lot of perspective on the field, into jobs that don't offer them a lot of support in terms of developing a depth of practice or turning a set of baseline skills into long-term vocation. I also wonder what happens when you drop your $10k or whatever and just come to find out that you really aren't equipped for the trade.

Then again, I guess: I learned on the job. I don't see any reason to deny more people that opportunity. I'd just hope returning vets don't get roped into programs that take the money and leave them without much to show for it.
posted by brennen at 10:00 AM on May 4, 2017 [8 favorites]


hippybear - Memory limitations? Wizardry? You'll love this. The executable is 256 bytes long.

I am amazed that the C64 demo scene is still active.
posted by bh at 10:02 AM on May 4, 2017 [4 favorites]


Learning to program is easy enough

I say this as someone who has tried (and keeps plinking away, just as hobby and because I hate myself): no, it really is not.
posted by soren_lorensen at 10:02 AM on May 4, 2017 [4 favorites]


It seems to me that a semester or two of these schools prepares you to be a very green junior at a very trusting company willing to make an investment, and that's about it.

The caveat I will make to this is that of my classmates, it seems like we fell into two camps. There were the people who'd never been into tech much and were trying to start a new career but had no previous experience? And this was very true of them. A few of us had taken an interest in the prospect long before and had at least been dabbling for awhile. People who'd already been through all the beginner-level content and didn't know how to step it up? We did pretty okay. The trouble is that the schools are happy to take tuition money from both groups and that's only going to get worse with a big infusion of new money.
posted by Sequence at 10:03 AM on May 4, 2017 [4 favorites]


Learning to program is easy enough

I say this as someone who has tried (and keeps plinking away, just as hobby and because I hate myself): no, it really is not.


GI Bill people are gonna fit right in.
"You know what the hardest job in the Army is? Mine. You know what the easiest job in the Army is? Yours."
posted by Etrigan at 10:06 AM on May 4, 2017 [14 favorites]


I would prefer that my taxes support the kind of education that protects people from being exploited by any entity labeling itself as "boot camp", and that prepares people for a lifetime of adapting to the evolving needs of a community.

I'm not in favor of training people to be commodity coders who will be jobless in five years.
posted by amtho at 10:08 AM on May 4, 2017 [14 favorites]


I love computers (but they don't love me) and programming, so I am more than happy hearing that people are interested and want to learn, however when I recall my personal experience (nearly 25 years of computer work) I sometime ask myself if would have gone through it if I had know how much knowledge and practice was required before becoming proficient in programming. As anything worth learning, programming requires a LOT of learning and practice for a LONG time, and this isn't to say that people should not approach the topic, but they must be aware of what it requires.

Having said this, I know that everybody can learn anything at any age if they really want it because I have seen it happen around me in multiple occasions. I will never learn music theory because I think it's too complex and would require a lot of time, so I decide not to learn it, but I know that if I decided to learn it I would, as in anything.

Also, I am wrong thinking that in the future that our tecnoleaders foresee for us all (where there is no more place for human manual labor) there still be the need for someone to program the damn machines? And nobody wants to have the new programming masses asking too much money for their jobs, so they decide to push for this programming education so that they will be able to exploit the vast pool of developers.
posted by yann at 10:22 AM on May 4, 2017 [1 favorite]


Yeeeeaaaahh, if the GI Bill were extended to cover unaccredited code schools, I predict that a whole bunch of terrible, bullshit code schools aimed at veterans would pop up overnight.

We've already seen veterans get targeted by for-profit schools, which has been covered on the blue. And I certainly don't trust the current POTUS, who had his own problem with a failed for-profit school, to keep the hogs from running to the trough.
posted by Halloween Jack at 10:26 AM on May 4, 2017 [21 favorites]


I like to say in situations like this that amateur coders produce amateur code, and amateur code is a threat in an increasingly interconnected and technology-run world.

as 'junior developers' at like $12/hour, but those are still reported as 'hired' by the school.

$12/hr was a lot like what I made as a junior developer starting out -- and by that time, I'd passed the AP computer science exam, taken a few college CS courses, knew basic data structures and algorithms, and had spent years programming as a hobby.

I arguably made some bad geographic and negotiation decisions and missed some opportunities to make much much more, and I wouldn't say everybody *should* have to pay their dues making that little as a developer. But I think if we do expect there to be junior roles, it might help if we were reasonable enough to recognize that not all of them are going to start in the upper quartile or even the upper half of the salary distribution.

The other part of the problem, of course, is that employers prefer to externalize the costs of training to the extent that they're allowed to. That means if they can get away with it, they'd never hire anyone without 2-3 years of experience, and even there, they'd prefer not to train/mentor and probably have no idea how.

I'm not in favor of training people to be commodity coders who will be jobless in five years.

This is something I've been reflecting on as some friends and I have talked about creating our own computing education curriculum. The traditional computer science curriculum has some things to recommend it but doesn't seem to correlate closely with software engineering productivity, so it's neither necessary nor sufficient if sometimes helpful (particularly for certain domains). Bootcamps seem too focused on shallow surveys of current stacks, but software engineering is ultimately a practical field so starting with any concrete practice might be as good as anything. Again, the gap seems to be in what takes a junior developer into a journeyman and then a craftsman, and if anybody has this solidly qualified, I'm not aware of it. Would love to hear people's ideas.
posted by wildblueyonder at 10:30 AM on May 4, 2017 [3 favorites]


Has anyone actually surveyed what tech jobs exist in the US, especially the ones that are supposedly hard to fill, and what skills those jobs require? I feel like that question informs a lot of public policy debates about things like H1 visas, but I haven't been able to find any data on it. My sense is that bootcamps typically train people for front-end web development jobs. Are there a lot of jobs like that, or do most of the existing jobs require higher-level skills? What exactly would "blue collar coders" be doing? And are those jobs going to be around for the long-term, or are they going to be outsourced or mechanized in the near to mid-term future?
posted by ArbitraryAndCapricious at 10:31 AM on May 4, 2017 [3 favorites]


I'm wary of the whole idea that a field requires some sort of innate talent rather than willingness to work hard and learn - this concept results in fewer women in the field (and, I would add, African-Americans and Latinx too). But I'm also wary of scammers and for-profits springing up to feed at the funding trough and exploit veterans, because that has already happened - University of Phoenix is probably the worst offender, and we do not need any more of those!

I agree with ArbitraryandCapricious - what jobs are really undersupplied (versus just the fad of the moment) and what can be done, in a non-scammy manner, to connect people in need of employment with fields that need workers? And as Sequence said, will corporations hire bootcamp and certificate graduates and pay them a living wage?

There is just so, so much flimflammery, scammery and bullshit surrounding "retraining" and "reentry education" - it's like the homeopathy of education or something. And the losers are the people who really need those skills and jobs.
posted by Rosie M. Banks at 10:40 AM on May 4, 2017 [9 favorites]


$12/hr? I was hired as a junior with no experience and 2 year technical college diploma in 1995 doing very mainstream Windows development for $15/hr

Expect more.
posted by blue_beetle at 10:49 AM on May 4, 2017 [4 favorites]


I worked at a top code school for a few years. It's a common misconception that these programs exist to teach students programming. In fact, our students ran the gamut from those with only a basic comprehension of what a `for` loop does, to others who already had years of professional programming experience or had written large software projects on their own time.

Programming ability isn't sufficient (nor, realistically, necessary) to land an engineering job. Our goal was to teach students from all backgrounds the job skills they needed to land engineering roles in a particular industry — in our case, that was full-stack web development — and to do well at them. That includes basic programming skills, but also an understanding of software architecture, domain-specific knowledge about web technologies, comfort with development tools and version control, the ability to self-motivate and problem-solve, and soft skills needed to work as a member of an engineering team. Add on to that information about the industry, practice in realistic job interview settings, and aggressive job placement support for as long as it takes to find a job after the program.

The result of all this was being able to give long-term employment statistics, including salary data, that were detailed, well-supported, and really, really good. That's what prospective students need to be looking for from schools. (Granted that it would be so much easier and less treacherous with a proper review process— and that my former school is disappointingly unconcerned with the accreditation issue. They have problems.)

So yeah, anyone who's trying to sell "learn to code" as your easy path to a six-figure salary is indeed selling a bill of goods, but such a path does exist.
posted by emmalemma at 10:55 AM on May 4, 2017 [3 favorites]


But I think if we do expect there to be junior roles, it might help if we were reasonable enough to recognize that not all of them are going to start in the upper quartile or even the upper half of the salary distribution.

FWIW, my comment was never about how much someone makes, or whether they need to "pay their dues." Someone else mentioned the $12/hr wage for junior devs. You quoted me about the part on amateur coders writing amateur code, and I see that as a risk whether the person is making <$10/hr or >$120k/yr.

That means if they can get away with it, they'd never hire anyone without 2-3 years of experience, and even there, they'd prefer not to train/mentor and probably have no idea how.

I'm reminded of the item last summer where the creator of NodeJS pointed out how ridiculous it was that a recruiter wanted 7-10 years of NodeJS experience for a position, since he only created it in Spring 2009 and may literally be the only person alive who met the criterion.

More realistically, though, any company with an appropriately mature development philosophy will have ongoing training and mentorship even for its senior personnel, but you're right that they want people with existing skills rather than people they have to train from scratch. At its extreme, it can be quite depressing, as 90% of the openings I see equate to "Looking for mid-to-senior developers willing to take junior or even entry-level pay," and then they wonder why their applicants lack skills as they whine about the sills shortage and how companies can't find qualified people. No, you just can't find them at the price point you're offering.
posted by mystyk at 11:02 AM on May 4, 2017 [6 favorites]


But I think if we do expect there to be junior roles, it might help if we were reasonable enough to recognize that not all of them are going to start in the upper quartile or even the upper half of the salary distribution.

The main problem is not whether people are in the upper half of the salary distribution; it's that $12/hour means two things. One, it is not actually a living wage, even in Omaha. Two, a company that can only afford to pay $12/hour to you for the first six months? Well, the implication has always been that once you know more, you'll be more valuable and they'll pay you more. The reality with people I've known is that rather than getting bumped to like $40k at least--a reasonable amount to live on if not anything spectacular--these companies are often either keeping people at $15 or less long-term and waiting for them to leave, or just flat out laying them off and bringing in new interns/juniors in 3-6 months. Only... 3-6 months experience isn't screaming "mid-level" on your resume. So it just puts off people having trouble finding work for a few months. And a lot of these are people with kids and mortgages who don't have the option to leave for greener pastures.

I don't expect to see people making $100k out of school, but if these programs are actually viable, I'd expect graduates to actually be starting with genuine permanent positions paying at least a living wage in the city they're in, if this is supposedly an industry that has such a shortage.
posted by Sequence at 11:27 AM on May 4, 2017 [5 favorites]


Disclaimer: I know Molina, and so I know he's a good guy. But I think a lot of you are right about the long term expectations of these boot camps.

Honestly the problem with veterans' employment is two fold, and I'm not sure they are fixable.

First, that veterans have experienced, honestly, exceptional employment circumstances. Soldiers are relatively well paid - at even an entry level, they have guaranteed food and shelter and very good healthcare. Even a beginning soldier has 30 days off a year, and their bosses genuinely care about their welfare. As long as they are trying, they don't get fired, so they have amazing employment security - and if they do 20 years, they get a permanent retirement. Good fucking luck looking for a job even kind of comparable at even mid level in modern America, much less entry level where everyone thinks they should start.

Secondly, that veterans have experienced more responsibility and autonomy than your average company will ever grant you. When is a first year new guy ever going to get entrusted with millions of dollars of equipment?

So veterans are looking for jobs that are better than what they last had, and those jobs just can't be found really.
posted by corb at 12:11 PM on May 4, 2017 [17 favorites]


I think Anil Dash's concept of a certain level of programmer as a skilled trades position and not a 4-year liberal arts/sciences degree position is intriguing. My local community college offers a 20 credit certificate program in programming that I imaging is pretty similar in terms of materials covered to what one can obtain in a typical coding bootcamp and that avoids the problem of having to take 30+ credit hours of gen ed requirements just to get an A.S. The downside to the community college certificate approach is that it looks like it still takes 3-4 semesters to complete just due to course sequencing. That works great if you're already working FT and want to go back to school PT, but not so great if you're not working at all and want to jumpstart a career.

So maybe one approach would be to work with community colleges to increase the number that offer certificate-level programs in coding, enhance the quality of education provided through those institutions (I would imagine it's hard for CCs to attract quality instructors with solid industry experience at CC adjunct pay rates), and think of alternative program models that escape the usual college "3 hours a week for 15 weeks" model of class scheduling/sequencing to allow for a more condensed certificate pathway.
posted by drlith at 12:24 PM on May 4, 2017 [3 favorites]


I have a brain that can work with numbers like calculator stuff but as the concepts get more abstract the going gets more difficult. Computer programming requires a brain that does well with math beyond arithmetic. If you don't have that skill, you'll never be able to code.

For what it is worth, I am in my 40s and have been coding professionally for 22 years (self taught). Yet my ability to deal with abstract mathematics is extremely limited. There are many coding jobs out there that focus on accomplishing practical tasks rather than mathematical abstractions.
posted by davejay at 12:27 PM on May 4, 2017


I'm a graduate of a coding bootcamp (Dev Bootcamp, Chicago, 2014). I was quite happy with my experience, but I am a little worried about the way the schools have proliferated (and some of the changes that have happened within DBC). That said, the one thing I do want to push back a little on is this:

I like to say in situations like this that amateur coders produce amateur code, and amateur code is a threat in an increasingly interconnected and technology-run world. If you're writing a widget for your own use, then fine, but if you could potentially screw up the security or stability of a major piece of software used by many people/organizations, then the risk simply isn't worth it. Unless and until code boot camps show serious recognition of that fact, and attempt to grapple with it directly, I just can't give broad support.

because while I agree that that is true, that isn't just a bootcamp issue. I've worked with people fresh out of CS degrees who write crappy code, and I've worked with people who've been programming for decades who write crappy code. If the fact that some bootcamp grads write bad code as junior developers discredits the industry for you, shouldn't the fact that plenty of people who come out of traditional CS programs write bad code discredit the entire apparatus of CS education?

I would like regulation/accreditation for bootcamps (and any/all vocational schools), but I'm not sure what that would look like, given the speed at which the industry changes. And again, universities are regulated and accredited, and yet I've met people who graduate with CS degrees who can't really code that well, or who end up working for $36k/year cranking out Java for some megacorp. Would we regulate the languages taught? I learned primarily Ruby and a sprinkling of JS, but I work in Python now with a sprinkling of PHP (damn you Wordpress) and am learning Go for a project. Ten years from now I might be working in a language that doesn't exist right now. Get ten programmers in a room and you'll hear ten suggestions for what language you should start with. Would we regulate the content of the course? I don't know much about algorithms, beyond what I crammed for when I interviewed, but I don't use algorithms in day-to-day life that much. I sort lists by calling sorted(), not be rewriting Timsort. I see a lot of calls for regulation without much discussion of what that regulation might look like, or what the intended goals might be, or whether regulating bootcamps like universities will actually accomplish those goals. I think starting with accurate reporting is necessary and important, but it's not the magic bullet that a lot of the people pushing for it seem to think it will be.

Again, the gap seems to be in what takes a junior developer into a journeyman and then a craftsman, and if anybody has this solidly qualified, I'm not aware of it. Would love to hear people's ideas.

Reaching back in time a bit, but I think it takes a lot of the same things that it takes to turn, say, a junior carpenter or blacksmith into a journeyman/craftsman/master: a lot of time, a lot of work, a lot of hands-on mentoring from someone who's already a ways up the ladder, the freedom to make a bunch of mistakes in non-catastrophic settings. The last five months at my current job were the first time in 2.5 years of employment as a dev where I was working closely with a significantly more senior developer and it's startling to look back and see the difference between where I was in December of 2016 and where I am now. I learned more in that short span than I did in probably the first year working as a dev, because I wasn't fumbling blindly around.
posted by protocoach at 1:09 PM on May 4, 2017 [3 favorites]


That means if they can get away with it, they'd never hire anyone without 2-3 years of experience, and even there, they'd prefer not to train/mentor and probably have no idea how.

Good lord, this.

I'm just leaving a principal software engineering position at a company I moved up to over more than a decade within a single company, and near the top of my list of why I'm leaving is that we literally never hire lower level developers anymore. 15 years ago, a team would've been something like 1 principal dev, 1-2 senior devs, 1-2 devs, and 2-3 associate devs, with mentoring happening from all levels. As I leave though, neither my team nor any adjacent team has hired anyone below the principal level for over 5 years.

Management has zero interest in mentoring, career building, or even what might be the more selfish concern of building up a healthy bench of people who can take on more responsibility. They just want to hire experienced people, do zero training, and expect them to hit the ground running. Not only is this bad for morale (at least, it was awful for mine), it's part and parcel to the bullshit interviewing practices endemic in the industry, because the thought that you might have to work with a new employee to get them doing things the way you want them done is nowadays heresy.

Programming isn't easy, and the domain-specific concerns of programming for particular kinds of software is also not easy. Trying to structure a company on the assumption that you can just hire people and slot them into development with a known outcome and no training program is nuts, and yet it's also pretty much the norm.
posted by tocts at 1:28 PM on May 4, 2017 [6 favorites]


I say this as someone who has tried (and keeps plinking away, just as hobby and because I hate myself): no, it really is not.

So first: yes, programming isn't easy to learn.

That being said, I feel like it's not so different from a lot of skills requiring practice. Nobody picks up a guitar and is suddenly Jimi Hendrix; they reach that point by picking up a guitar and noodling with it for years, making mistakes and discoveries along the way. Sure, there's some natural aptitude, but a lot of it is repetition and mistakes and trying it all over again.

It's my own personal opinion that this is the biggest obstacle to learning programming -- it's easy for people to have unrealistic ideas of what they're going to accomplish early on. And honestly, it's hard for me to know if there are good programs to get people past this, but I think having realistic projects and goals to use as learning opportunities early on is how you eventually get good at the truly hard stuff.

(related, for the older folks, I still fondly remember how the CircleMUD source basically came with a warning saying that if you had never programmed C or C++ and decided running a MUD was how you'd learn it, you were in for a rude awakening and you should really go learn on something else. I was cocky and ignored it. I was probably not super well served by doing so!)
posted by tocts at 1:39 PM on May 4, 2017 [3 favorites]


I think having realistic projects and goals to use as learning opportunities early on is how you eventually get good at the truly hard stuff.

This was the hardest thing for me in the time before I went to DBC. I was on Codecademy, I had some of the very, very basics of Ruby and JS down, but then...what? Getting from there to a real web app felt like that Far Side comic: "a miracle occurs" -> website. I was poking around because "eh, I like computers and this would be cool to do", but I couldn't come up with some project that would push me beyond that comfort zone, and you can't grow without that. I know people who seem to be an inexhaustible wellspring of app ideas, but I wasn't/am not like that. DBC gave me that - "Here's a goal. Make it happen." Sure, it was arbitrary, but it was still something to work towards.
posted by protocoach at 1:52 PM on May 4, 2017 [3 favorites]


> Nobody picks up a guitar and is suddenly Jimi Hendrix; they reach that point by picking up a guitar and noodling with it for years, making mistakes and discoveries along the way.

One difference with the guitar analogy is that we could actually use a lot more mediocre programmers, but we're all set with our supply of mediocre guitarists. :)

As long as the accreditation process is ensuring that the coding schools are actually preparing vets for entry-level or better coding jobs, this is a great idea. Unfortunately, there are a lot of crappy ones out there.
posted by tonycpsu at 2:09 PM on May 4, 2017


Again, the gap seems to be in what takes a junior developer into a journeyman and then a craftsman, and if anybody has this solidly qualified, I'm not aware of it. Would love to hear people's ideas.

From my current experiences:

Think ahead. Start sorting out tasks according to complexity and skills necessary to actually achieve it. Some pairing is good, some training is good, but the #1 thing that has made my first position reasonably successful is that I have been working the whole first six months on stuff that any given time was a bit of a stretch... but not something where I had no idea where even to start. This seems like it should be fairly easy thing to do. Beginning accountants start with simple stuff and work up from there and just ask questions as they go. But it seems like I really hit the lottery, given what I hear from other people.

It seems like it's the sort of thing that shows a lot of flaws in how you're doing things. You need to make sure you're capable of defining your requirements in detail and breaking work into manageable parts. You should really be doing reasonably thorough code review so that things don't go into production with only one person's eyes on them. You should really be... I mean, automated testing, basically, across the board, is not as common as I expected. I think a lot of the reluctance to deal with junior people comes from failure in these areas, so that it seems like you can't let people loose in the code without incurring huge risks. If you're managing the work appropriately, it doesn't seem hard to slot in someone to do the simpler tasks and free up the more experienced developers for other work.
posted by Sequence at 2:15 PM on May 4, 2017 [1 favorite]


As someone that does IT hiring, I agree that code schools are not the full answer. the variance in grad quality is too much to trust them as reliable so it ends up being a throwaway line on the resume.

>15 years ago, a team would've been something like 1 principal dev, 1-2 senior devs, 1-2 devs, and 2-3 associate devs, with mentoring happening from all levels.

and you'll find that still happens - but at cloud providers and software companies. I know people here still 'grr cloud', but that's what is driving this change. it's better for the vendor - they control the environment so easier support, they get a recurring revenue stream. but its also better for most business. They don't want to be in the job of mentoring developers or building software or running data centers - they just want a service so they can make widgets or sell widgets or sue people over widgets.

> if anybody has this solidly qualified, I'm not aware of it.


"Teach Yourself Programming in Ten Years" came out way back when and still covers it I think. Not that it takes 10 years to be a programmer, obviously, but that you have to have the long term mind set of wanting to understand.


Also for any vets reading: no matter your current skills, information security wants you. And there are opportunities in IT and Infosec for all technical skill levels, even 0.
posted by anti social order at 3:51 PM on May 4, 2017 [1 favorite]


what takes a junior developer into a journeyman and then a craftsman

Time and experience - that's all it takes :)

Leaning how to estimate how long something will take to implement, how to break up a big task into smaller tasks, how to avoid rabbit holes and time sinks, what the right solution for the problem is, how to communicate with a Product team and other developers, when Product is asking for something but really wants something else that can be done much more easily, how to write good documentation.
posted by kokaku at 3:55 PM on May 4, 2017 [1 favorite]


This would be just as useful as changing the law to say that 30% of all GI bill funds had to go directly to Phoenix University.
posted by the agents of KAOS at 4:43 PM on May 4, 2017


I've worked with people fresh out of CS degrees who write crappy code

Yes. I've been in the tech industry for around 20 years. I have interviewed countless CS grads (from good schools) who can't code thier way out of a paper bag. Thankfully I haven't actually had to work with many such people, because I've been lucky enough to work at top tier tech companies that tend to do a pretty good job of screening them out early in the process (not that their hiring processes aren't badly broken in other ways). But I assume most of them ended up getting jobs somewhere.

I honestly believe that many people come out of college as good coders despite their school's CS curriculum rather than because of it.
posted by primethyme at 4:54 PM on May 4, 2017 [1 favorite]


because while I agree that that is true, that isn't just a bootcamp issue. I've worked with people fresh out of CS degrees who write crappy code, and I've worked with people who've been programming for decades who write crappy code. If the fact that some bootcamp grads write bad code as junior developers discredits the industry for you, shouldn't the fact that plenty of people who come out of traditional CS programs write bad code discredit the entire apparatus of CS education?

And the thing is, on one level, you're absolutely right. Bad coders come from all avenues. So do good ones. And, statistically speaking, the bad tend to outnumber the good from any source.

But what I've seen in years of being a senior engineer doing the direct interviewing/mentoring/project-management is two notable trends: First, boot camp grads are far more frequently bad coders not just as they exit the gate, but (critically) also in terms of resisting the training and mentoring aimed at getting them much better. Second, and very relatedly, boot camp coders are more likely to drastically over-inflate their current skill level.

Does it happen elsewhere? God, yes! I've seen people come out of a BS in CS program assuming they were ready to take a position as a Senior Dev, even while making basic errors that make you wonder how they got through the program at all. But the boot camp graduates have been consistently worse, with only the rarest exceptions. Out of dozens, not one I've run across has considered themselves to be less than a mid-level developer despite typically no work experience outside the boot camp and only the occasional one or two showing any strong aptitude for progression. As many here have pointed out, the ONLY things that really advance your skills in programming are time and experience, especially when combined with solid mentoring and repeated exposure to new ideas. Maybe I got hit with continuous bad apples, and some boot camps are just shit while others are gems, but I haven't seen any indication of it.

[RANT: I dealt with one recent boot camp grad, via his being the boyfriend of an old Army friend, who was immediately asking for 6-figures as a Senior Java Dev, and with his total of 0 months work history and inability to answer basic questions about Java (basic knowledge asked in passing, not just interview Q's) he is definitely entry-level, and I got sick real fast of his complaining how both certifications and traditional degrees are just busy-work because he was so clearly able to grasp everything without them... I genuinely feel sorry for the company that hired him (luckily not mine), and then sponsored him for a clearance, because they are just asking for trouble.]
posted by mystyk at 5:08 PM on May 4, 2017 [2 favorites]


After seeing some code from people who've done these bootcamps. yeah, no let's do better than send vets off for that crap.
posted by 922257033c4a0f3cecdbd819a46d626999d1af4a at 5:22 PM on May 4, 2017


First, boot camp grads are far more frequently bad coders not just as they exit the gate, but (critically) also in terms of resisting the training and mentoring aimed at getting them much better. Second, and very relatedly, boot camp coders are more likely to drastically over-inflate their current skill level.

I think there's a very small subset of people who have weird egos about the whole thing, but I have a feeling that if you're working for somewhere with a very good reputation (or at least where people know they pay very well), the reason you're likely to see more of this is that I wouldn't have actually dreamed to even be applying for highly competitive positions. If you see a boot camp person in that context, then I would think they'd either have to be amazing or borderline delusional, and there's probably a few more of the latter than the former. Either that, or you just have some schools in your area that're worse about this than mine.

My boot camp pushed people uncomfortably hard in the direction of inflating our resumes, yes. I don't know a single person in my class who was actually particularly bombastic about it; we were all pretty uncomfortable with the notion. And we definitely weren't encouraged or inclined to apply for anything "senior". There was a lot of push to claim to be competent at more things than you were, which I found questionable, and to not restrict ourselves to applying for "junior" or "intern" positions, which seems only sensible in light of many of those positions being exploitative.
posted by Sequence at 5:31 PM on May 4, 2017 [2 favorites]


I'm curious about two-year community college software development degrees. Has anyone worked with people who come out of those programs? How do they measure up? That seems to me like it may be a better deal for most veterans than either boot camps or four-year CS degrees. And for a lot of non-veterans, boot camps are just not going to happen, because they would require people to quit their jobs and move somewhere that had a boot camp. Even if you could get a loan to cover tuition and living expenses, that just seems like a huge risk.
posted by ArbitraryAndCapricious at 5:44 PM on May 4, 2017


FWIW, my comment was never about how much someone makes, or whether they need to "pay their dues." Someone else mentioned the $12/hr wage for junior devs. You quoted me about the part on amateur coders writing amateur code, and I see that as a risk whether the person is making <>$120k/yr.

Yeah, risk of drawing from two different comments. Sorry.

The issues of introductory wages and risk of amateur code can be separated, but I suspect that in the mind of prospective employers, they're overlapping, as part of the general consideration of the unknown risk vs benefit that unexperienced prospective employees seem to present in particular. The incentive is to want to price that in by paying the employee less, if they can get away with it.

The main problem is not whether people are in the upper half of the salary distribution; it's that $12/hour means two things. One, it is not actually a living wage, even in Omaha.

Sure, and it's worth remembering that $12/hr was a living wage for me in the time/place I was receiving it, which was something of a privilege.
posted by wildblueyonder at 5:52 PM on May 4, 2017


Funny thing about machine learning and AI things is that the general statements about CS grads not being able to code their way out of a paper bag half the time holds true while at the same time getting close to the state of the art requires an ability to read papers (critically), which is basically 99% learned at school. What that means in practice, I think, is that a lot of AI people can't code their way out of a paper bag, and many quite competent programmers can't math their way out of a paper bag. Doesn't stop research, of course, but you can count the shops really good at both on fingers and toes, I think. The darkest fate is people who are smart enough to use and understand programs with single-letter variable names, who proceed to write programs with single-letter variable names.

Amusingly there are quite a few machine learning bootcamps - designed for 1st and 2nd year PHD students.
posted by hleehowon at 6:04 PM on May 4, 2017 [1 favorite]


I do kind of feel like the machine learning bootcamp(s) aimed at PhD students are a bit ropey, too, or have become so as they've gotten bigger. (The big one has no tuition, I believe, so it's substantially better than the dev bootcamps. I think there even used to be a stipend.) The people I know who've gone have all gotten decent jobs, but it's not at all clear to me they couldn't have gotten the same job without the bootcamp.
posted by hoyland at 8:04 PM on May 4, 2017


Late to the thread, but one of the things I rarely see mentioned is exactly *why* growing productive technical talent is hard. I think people lack perspective of what being an effective technical contributor really means.

It's hard for people (even those already working in the field) to really understand the mechanics of building technical products. It's starts with literally learning to express yourself in another language. Then there's learning the ideas and concepts this new language is typically used to describe. Then there's the reps needed to develop your ability to read a situation and your own internal heuristics on how to best address similar situations, then to integrate both of those things to have a sense of which descriptions need a lot of care, and which ones don't really, at least this time. All in a way that makes sense to your users, who don't really know nor care how you got there. Assuming your audience is actually your users - sometimes it's really your co-workers or your management.

It's kind of like wanting someone to produce a great monthly magazine article on deadline - in a foreign country, writing in a foreign language, for native speakers who don't really understand anything about the subject matter about which you're writing, who don't really care about the details or methods you used while writing, only how your article makes them feel. Whether it's Stanford or a boot camp or a tech company your mom has heard of, I'm not sure there's any single instutional approach that gets you all the way there other than time in the trenches, lucking out on your mentors, lucking out on your userbase and market, and a whole mess of stubborness and desire.

FWIW, I think because syntax and CS 101 concepts are a right of passage, the field tends to fetishize those two things to an unhealthy degree. As in: "well, if they can't get the basics right, what are the odds they can get to the harder stuff?" Whereas the reality is you only really need to understand that stuff well enough to know where to look it up and remind yourself - the hard part is situational awareness and scoping. Knowing when to recognize that yeah, every last bit of efficiency really matters for this bit, and really doesn't matter over here, so stop with the over-optimizing, already. Except instead of looking for this awareness, we instead just say "fuck it, show me you're super efficient everywhere, both on whiteboards and in your github commits, and everyone just work a lot of hours and maybe we'll hit a target that way." It's crazy.
posted by NoRelationToLea at 12:25 AM on May 5, 2017 [6 favorites]


I'm so confused by the code school phenomenon. The companies in my sphere are pushing for more and more formal education - first it was a BS in CS, then a BS in CS with an internship, then it was an MS, now they actually won't hire anyone without an MS in CS (ruling out professional masters programs). Many senior devs have an MBA or PhD as well. And I don't work for Google or anything, just a midsized IT company in the Midwest. So how can people with a couple months of training expect to compete in that environment? I mean, maybe you can get a foot in the door, but you're not going to be able to stick around for years without formal education.
posted by miyabo at 11:13 AM on May 5, 2017


Maybe I'm too cynical, but I think the companies still want the PhDs, they just want to be able to point to a huge supply of $12/hour boot camp coders so they can keep wages down. It's a skilled profession with no union, and no professional guild restricting supply like law and medicine. Industry wants it to stay that way.
posted by Wemmick at 8:33 PM on May 5, 2017 [2 favorites]


« Older And who is my neighbour?   |   “...a physics basis for why there is a... Newer »


This thread has been archived and is closed to new comments