11 ms·
Time and time again I keep coming back to the same conclusion - anyone who has the desire can learn to code. I would say that 95% of people have enough innate l
by superpope99 9y ago
Time and time again I keep coming back to the same conclusion - anyone who has the desire can learn to code. I would say that 95% of people have enough innate logic to write code, they just need to be taught to express it formally.
- brianwawok 9y agoI mean most people can make an alert box. Most people can't design and build a decent sized application. I have never met a good programmer not in the top 25% or so of the intelligence range. So at best that limits us to 1/4 people.
- bloaf 9y agoI'd suggest that maybe we're all looking at programming the wrong way. Not everyone can build a decent sized building, and the people designing and managing their construction are likely also in the top intelligence quartile. But they're not necessarily the ones doing the actual construction of the thing. In programming, there seems to me to be a refusal do the kind of delegation that occurs in construction. Instead, we've got a huge market of tools designed to reduce boilerplate and increase abstraction so that the highly intelligent programmer can get more done faster. That's all well and good, but at the end of the day there are programming nails that need to get hammered, and its not going to matter if they're hammered by a MENSA member or not. The current mindset seems to want to deny this, and make every programming task something that must be handled by the best of the best.
- brianwawok 9y agoSo it is fairly easy to split building up into the thinking part (design, planning, etc), and the grunt part (nailing crap together). People try and try to apply the analogy to software. Heck that was the entire premise of EJBs. Have your smart people design the system. Then hire a bunch of foreign slave labor to implement the interfaces and BLAMO the program is done. It just. doesn't. work. No matter how good your up front design is, designs need to change over time. That is what makes software so powerful. But if you are just a code grunt and you don't KNOW how to design anything, you won't know when things need to change. So what do you do, keep adding more and more if blocks until a senior person can code review it? That is a crappy way to build software. WAYYY better to have 2-3 smart people working together than 1 genius and 14 code monkies.
- gravypod 9y agoI don't think programming is science I think it's more like plumbing. You're dealing with a complicated system made out of the most simple parts. Anyone can learn how to setup or fix these systems if they get what the basic parts do. There's not really much science in non-academic computer science. We're just builders who make, fix, and break things. Edit: added do
- Neliquat 9y agoYou just described an Engineer.
- lithos 9y agoPersonally I'm of the opinion that a lot of programming learning difficulties come from the teachers and methodology of teaching programming. Though it's all antidotal from Going through different college courses that teach both programming and contactor/ladder logic. The programming classes had something like 40% learn rates, while the ladder logic classes everyone eventually got it. And with chances of going out to the field utterly normal people have been able change our contactor/ladder logic to make things work and/or fix issues.
- true_religion 9y agoCollege doesn't really teach programming. They teach computer science. Professor largely expect you to pick up programming on your own to solve the problems given.
- unclebucknasty 9y agoI dunno, maybe things have changed, but I certainly learned to code. Sure, coding skills sharpen and evolve through experience, but coding was heavily emphasized and there was much lab work in my CS curriculum.
- reducesuffering 9y agoAt the upper-division level (years 3/4) this is true, but my college certainly teaches programming and syntax in Python/C++ along with computer science concepts your first two years.
- yanslookup 9y agoReally? What school? That sounds...bad. Most CS curricula should definitely not be focusing on any one language, no matter what the year. A typical first few courses are something like: 1) intro to computer science. This is typically teach entry level program flow techniques, loops, if/else, recursion, some OO. My school used java but the focus was not on the language. 2) Data Structures and Algorithms. Overview of your typical data structures and common operations. Gets in to big O, etc. My school accepted assignments in both java and c++, but didn't emphasize either one. 3) Architecture. This is low level CPU architecture. Pipelines, caches etc. We used some sort of assembly for assignments. 4) programming paradigms. This was basically SICP. Meta circular evaluators, etc. We used scheme for assignments but again no real emphasis on the language. 5) OSes. Basics of operating systems. Threads, memory management, networking etc. Assignments were in C. I think this is the standard CS curriculum, at least according to my experiences and most of the people I've worked with with CS degrees.
- gravypod 9y agoI don't think programming is science I think it's more like plumbing. You're dealing with a complicated system made out of the most simple parts. Anyone can learn how to setup or fix these systems if they get what the basic parts. There's not really much science in non-academic computer science. We're just builders who make, fix, and break things.
- mythrwy 9y agoSure. 95% of people can lay bricks too. But 95% of people can't lay bricks precisely enough or at the speed a bricklaying company is going to hire them. And for sure 95% of people aren't interested in laying bricks. Is it worth teaching 95% of people to code? I don't think it is. Most people don't have to lay bricks to live in house.
- brianwawok 9y agoOr 95% of people can make more money at jobs other than laying bricks. 95 % of people can't make more money than coding. Some can and do. Many would if they could.
- mythrwy 9y agoHypothetical question: If you could make 1/3 more laying bricks than coding which would you chose?
- brianwawok 9y agoIt's hard to say. I really really enjoy coding, and have tons of passion for it. But I can get really deep into about anything and really enjoy it. I suspect I would find some position in the brick laying field that would satisfy me the same. I have worked physical labor jobs in the past, and as a whole I think they are "better" (except for the pay). I come home at the end of the day physically tired, but mentally fresh. Now I come home the reverse, and need to go run to stay in shape.
- mythrwy 9y agoYa, it's a tough call. I've worked physical jobs as well including construction. Both programming and physical labor are enjoyable and good for a person in different ways and both ruin a person in different ways if taken too far. I guess if it all paid the same I'd lay bricks half a day and program the other half :)
- gm-conspiracy 9y ago
- Moshe_Silnorin 9y ago>in 2015, then watched as more than 900 applications rolled in. From this pool, they chose 11 former miners who scored highest on a coding aptitude test. Two years later, in an old Coca-Cola factory by the Big Sandy river, nine men and one woman remain They gave people an IQ test and took the top percentile of a group that, due to their interest, was already slightly selected for intellectual ability. This is not proof that anyone can program. Did you even read the article? It is in accordance with the unfortunate fact that programming is a high IQ job that the majority of people are not capable of becoming proficient in. Though for many here this is not unfortunate, as it is the reason wages remain high despite a lack of licensure. Humans differ in cognitive ability and most of this difference is genetic. Modern psychometrics and common sence agree with this. We cannot build a better word on false but pleasing ideological assumptions.
- literallycancer 9y agoIt's not a proof that anyone can program, but neither is it a proof of the opposite. You don't need to be the top 1 percentile to make CRUD apps, they chose the best because they had the first pick, not necessarily because they needed to.
- true_religion 9y agoI think the idea is that many people will never be able to make a stable crud app in a reasonable timeframe, no matter how hard you try to retrain them. This isn't the 1%, it's just that the majority of programmers are more proficient than the general public in some way. Sure that's hundreds of millions of people, but it's not everyone.
- douche 9y agoIt's quite possible that you need to be the top 10 percentile to sling together CRUD apps. I think trying to minimize the difficulty of what we do is a little insulting. Even the dumbest software developers I've met are sharper than the average bear. I mean, get out in the world and see what most people are like.
- Neliquat 9y ago
- slv77 9y agoProgramming is similar to chess in that it has a high branching factor. Each potential path towards a desired end state leads to other potential paths and excludes others. Good programmers are adept at being able to visualize complex trees and with experience to be able to quickly prune (exclude) suboptimal paths. This is a pretty limited skill set and is closely correlated with spatial reasoning. Studies have shown that that skill is somewhat malleable through training but still follows a bell curve. Better training could double the number of people who could potentially succeed in stem careers but that is still far from everybody being able to code. And the effect of training is to largely move people from the middle of the curve slightly to one side and not moving somebody from the middle to the edge of from one edge to the other. That means while you can make some people programmers you can't make anyone excellent programmers. On a side note my experience is that people without strong spatial reasoning skills tend to find shortcuts early on that help them cope and those coping methods can eventually become strengths in their own right. For example they become adept at memorizing procedures (medicine) or start at the end state and work backwards (project management). To someone who relies on strong spatial reasoning abilities and never developed these techniques these people's abilities can seem like they are able to manage complex trees with speed (memorizing) or extremely deep trees with ease (project management).
- unclebucknasty 9y agoWhy do we say this about coding? We don't say anyone can be an artist, or an astrophysicist, or a brain surgeon.
- mythrwy 9y agoDentists for sure. Probably could really teach someone to do most of that in a several month bootcamp followed by a couple of years apprenticeship. Source: Several dentists in the family and that's about what they say. (doesn't stop them from charging large fees though, I mean, they do have student loans to pay off:)
- unclebucknasty 9y agoOTOH, I have visited dentists to whom I would not return.
- azernik 9y agoMy view is that most programming work is more of a skilled trade, like being an electrician or plumber, rather than a profession, like law or civil engineering. Doing something useful doesn't take a whole lot of formal education, doing clean good work requires lots of experience plus good teaching in industry best practices, and there are a lot of opportunities for self-employment.
- BurningFrog 9y agoThe studies I've seen are a few decades old, and I think programming has become easier since. But the result back then was that even among young talented people who entered programming classes, a large percentage (40%-70%, don't remember) just couldn't do it. The biggest "tell" was understanding pointers (in C). A lot of people just got stuck on that and couldn't move forward.