By all means subsidize a laptop and point them at some great online (free) resources, but beyond that if they won't/can't help themselves...
By all means subsidize a laptop and point them at some great online (free) resources, but beyond that if they won't/can't help themselves...
I think it's obvious that not every single person in the world has the external characteristics to be a great software developer. But those with passion and curiosity will be able to make a great career for themselves.
Could the school have instead focused on more boring general job skills with a special focus on using software effectively? I think so. I think it would have been more successful than teaching "the LAMP stack" or whatever it was they did. Not that software development is rocket science, but it's true that it's not for everybody, and neither is accounting, nursing, engineering, teaching or plumbing.
But these initiatives that try to promise high paying jobs to everyone who applies, it's just not going to work out for everyone who goes through the mill. And yeah, I think to have a long career as a software developer, you need a little more than "meets expectations." You need the drive to improve and grow after you leave the program and even once you land your job. So, I think when you get a newbie who has passion, is personable, and who submits themselves to iterative improvement, I really do think that makes a great developer.
A better question, perhaps, is why this is assumed to equate to coding-based jobs.
Anyone can learn to cook. This shouldn't be equated to everyone being equipped to become a chef de cuisine.
The theme in this comment thread seems to be something like, "Only rockstars should learn to code, it's pointless for normal people".
By all means learn to code and make programs for yourself. No issue in occasionally helping other projects or programs or doing some small scale work. But don't try to directly jump into big things before getting trained correctly.
Cooking and coding aren't amalgamous. Cooking is necessary life skill, unless your only sources of sustenance are prepackaged foods or food from restaurants (which would include fast food).
The same cannot be said for coding. You needn't know or even understand technology or software to use a cell phone or browse the internet or what-have-you.
A more apt comparison would've probably been driving but even that is limited in scope, dependent on the public services available (which is, in and of itself, a byproduct of urban life versus rural life - at least in the states).
Also, I think Hanlon's Razor applies here.
The idea that everyone can make a stellar income from being a developer is oft touted as one of the points of these boot-camps. In other words, the argument is that those people can do it, it's just that they've never been afforded the opportunity.
Whilst this might be true for a small percentage of the group, as a whole, it isn't - implicitly - true that all of them will find jobs being programmers the day after they graduate these camps.
So, it isn't pointless for them to learn it, by far (and I'm only speaking for me, here), but it shouldn't be touted as the get-rich-quick-scheme that it's being pushed as because, then, yes, it's pointless for people to think it's possible to become a rockstar overnight; which I would like to point out is precisely what this business has capitalised on...
To continue with the analogy of music, even rockstars had to play gigs and sell records/tapes as up & comers (negating the pop genre) before they became big. People only hear the songs on the radio, they don't want to hear about the years it took before those stars were even given spins on the radio (see: Jewel living out of her van).
Perhaps it could be read slightly more charitably? Anyone can learn to code. At the same time, most people should not assume this will automatically lead them into a lucrative career in software engineering.
As you say, it's by no means pointless for normal people to learn. A great many people derive much value and satisfaction from homecooked meals and Excel macros. However, just as basic competency in a home kitchen does not automatically qualify one for a career as a chef, neither does basic competency with a programming language automatically qualify one for a career as a highly compensated software engineer.
In the same way most chefs don't work at Michelin star restaurants, most developers don't work at FAANG companies like Google. They work at other types of companies, whether those are large company in house development teams, small agencies, outsourcing companies, government agencies or as freelancers.
And in those locations, you don't really need to be some super smart genius to get the job done. Coding themes and plugins for systems like WordPress doesn't require a computer science background or an analytical mindset. Building a percectly usable site or app for a local business doesn't require that either. Enterprise or government work often doesn't require it either.
So there are plenty of jobs available for people who know only a bit of code, or who struggle with the theory side of things. They're just not jobs making hundreds of thousands of dollars a year in Silicon Valley.
The disconnect here, I suspect, is that bootcamps tend to promise that their grads will become the rockstars making hundreds of thousands of dollars a year in Silicon Valley. Not that they'll be able to set up WordPress or do reporting with SQL queries. Some make this very, very explicit - I've seen ads that literally read "GET A SIX FIGURE JOB".
I've worked as a freelancer. I've worked at big-name tech. I've worked on in-house development teams and outsourcing companies. In every one of those scenarios, I had to understand the fundamentals of how computers work and apply analytical abilities to be effective. So I could deliver features on time, on budget, and as specified. I'm not going to claim to be some super smart genius, but I often found myself dealing with shrapnel from colleagues who possessed wonderful opportunities to improve their grasp of fundamentals.
It's not that there aren't jobs for line cooks or people turning out cookie-cutter blog sites. But when you run a training program promising everyone who signs up that they'll be a chef de cuisine while knowing that you're just training line cooks...
Code is a way to express solution to the problem which a computer can execute.
If you can learn any language, you can learn coding too.
Sure, not everyone can understand intricacies of the algorithm design and data structure gotchas but some of that can come as experience and curiousity.
Question worth asking is that, does everyone need this special knowledge? And the answer is even many today working in the field know lot less than you would like them to know.
Many websites have vunerabilities which can easily be solved by following some good practise. But still they are getting paid for that kind of work, which means there is a market for less knowledgeable developers who get the stuff done what's assigned to them even if they do not know how memory and processor works on the basic level.
Today, it's lot easier to code with stackoverflow and GitHub at your disposal than ever.
Besides, have you tried to learn a new natural language in adulthood? A bootcamp won’t get you far. And natural languages are really forgiving in comparison because you’re communicating with a human-level intelligence that’s used to inferring meaning from low-bandwidth ambiguous datastream.
Yes, most definitely.
Is it reasonable to assume some people will land on the far lefthand side of certain bell-curve-fitting measurables, or unmeasurables, that lends them to being not particularly well suited for certain kinds of activities?
As long as people can practically attract a mate while lacking this sort of abstract reasoning ability, the majority of the population won't have it.
I've read that people tend to be intimately attracted to people of roughly the same intelligence and socioeconomic background, for whatever definition of intelligence was used.
Having said that, some people do turn out to become engineers fabricators artists and build amazing things. You're probably right though, the majority of the population probably don't have it.
Ok - maybe 'learning to write a few lines of code' - i.e. basic algorithms, should be 'no harder than reading or writing' ... or using Excel ...
But writing software, on the whole is a fairly intellectual exercise. It requires legit curiosity, intelligence, conscientiousness, etc..
"Code is a way to express solution to the problem which a computer can execute."
No, only in it's rudimentary form.
If every program was only 20 lines of code, I would agree fully, but since that's not the case, I don't agree at all.
Despite this, a lot of people just don't get math. Being able to go from an abstract problem to a concrete solution isn't just "write code until it works".
Writing a program is like a very detailed story that has to hang together. There can't be any loose ends in the plot or surprising twists that make no logical sense.
More than requiring language, programming requires thought.
The faculty of language doesn't confirm thought.
Those lose ends are called bugs and they often appear in the code. Coding a collaborative task in most companies, even if you've obvious holes in your plot, someone will see and fix them if they are not obvious to you.
> By all means subsidize a laptop
If you have a certain drive and curiosity for coding the price of a used low-end laptop is unlikely to be a significant barrier, when adequate new ones are available from Walmart for $159. I just found a 3 year old Chromebook on ebay for $57, or around 10 hours work at the federal minimum wage after taxes. And there's a salutary pride of ownership in earning it. I earned my first computer by working the grill at Burger King. Dreaming of what I'd buy with my wages made finally getting it particularly sweet.
Not everyone will go into CS and develop new data structures, algorithms, or programming paradigms—but most people can and should be able to code solutions to well understood problems—just like mathematics this doesn’t mean everyone will know how to apply it in novel business situations, but just as most people can perform easy calculations they should be able to write straightforward programs.
It’s all a matter of the appropriate cultural and educational scaffolding. Programming is still in its infancy and hasn’t permeated through the education system deeply enough yet to enshrine it as a core proficiency, but we can and should head in this directon.
As someone else in the thread said " Anyone can learn to cook. This shouldn't be equated to everyone being equipped to become a chef de cuisine." The fact that anyone can learn to cook only magnifies the detectable skill differential between a professional and an amateur, and I see no reason to see anything but the same pattern emerge with software construction.
Right, but that doesn't help today's adults trying to switch careers, as they're past that stage.
"just as most people can perform easy calculations"
That's true by definition, i.e. you would only count a calculation as 'easy' if most people can perform it.
But, based on the results of surveys like the 2015 FINRA financial capability survey, I guess that if you're talking about calculations that >50% of US adults can perform, you're excluding things that most readers of this site would consider 'easy', e.g.:
"What happens if you start with 950, and it grows by 20% each year for 2 years?"
Edit: No, really, I'm serious! There is literally nothing different between gluing APIs together, or whatever you think you are doing, and building the snazziest large-scale distributed statistical model of whatevers. Literally.
From VC and business owner "thought leaders" who have an economic incentive to flood the market with programmers and drive down salaries.
(Oops, I forgot we're not supposed to say that out loud...)
Yes, everyone can do it. No, not everyone can do it.
These statements are funnily enough not mutually exclusive, they just apply different meanings to the words "can" (potential vs actual aptitude) and "do" (future vs presence).
As a wild guess, it may partially be inspired by the idea that coding is done in languages, and, hey, people from all walks of life use language.