6 ms·
You created a bimodal distribution because you only talked about two types of people. Some people start later in life, but have an incredible talent for progra
by justinpaulson 11y ago
You created a bimodal distribution because you only talked about two types of people. Some people start later in life, but have an incredible talent for programming. Some people start early because they really like programming, but never achieve the highest levels of proficiency because they lack some natural talent.
Like most things, programming is a mix of natural talent and practice. Some people have incredible natural talent and will succeed no mater when they started. Some people will achieve a very productive level of programming with less natural talent because they put in the work to achieve it. There are more than just two archetypes that make up the landscape of developers.
- JoeAltmaier 11y agoThen, there are those profoundly incapable of programming. My high school classmate who seemed to be getting it, but on the 1st assignment came to me and asked for help. It became clear he had no concept of the ordering of statement. He wrote them like math formulas, and didn't understand that they got executed in order. Fast-forward 3 years; both of us in college. He had to take a programming class again. I met him in the 'computer center' (they used to have special buildings for using computers). He asked for help again; he still didn't understand about statement ordering. I smiled and suggested a tutor. There was just nothing I could say that would get through to him. So no, not everybody will learn to write computer code. Some people are tone-deaf too, and will never sing nor play an instrument.
- SNvD7vEJ 11y ago"He wrote them like math formulas, and didn't understand that they got executed in order." So he had a talent for functional programming, then?
- JoeAltmaier 11y agoCute, but not quite. Those are still executed in some order. Not like algebra which is a set of expressions that are all true over all time.
- halflings 11y agoThen declarative programming, maybe? You don't care as much about execution order when doing declarative programming like Prolog. (unless you're writing code "procedural-style")
- JoeAltmaier 11y agoThat's it! He could have found a niche there.
- geoelectric 11y agoGiven that I have a hell of a time wrapping my own (algorithmic-oriented) mind around that kind of programming, that's not necessarily a weakness. It is an interesting contrast in ability though.
- ta0967 11y agoThose are still executed in some order. in all languages? i don't think so. def x = y where y = a * b a = 21 b = x
- hk__2 11y agoin all non-declarative languages.
- cbd1984 11y agoFunctional means that sequence doesn't matter. Haskell is functional, Lisp largely isn't.
- nmrm 11y ago>Those are still executed in some order. Not really. E.g. there's no ordering in function composition that isn't also in high school math. Also, you shouldn't depend on e.g. maps processing elements in a given order. My impression is that statement ordering is easier for mediocre but competent programmers than it is for excellent programmers. The reason is that writing correct imperative code is non-trivial, but writing correct-y imperative code is pretty easy. So someone who's carefully thinking things through while learning will have a more difficult time with simple assignments, because -- at least while learning -- they're essentially trying to construct the correctness proof in their head. And that's pretty hard for imperative code.
- deleted 11y ago[deleted]
- scotchmi_st 11y ago> Some people are tone-deaf too, and will never sing nor play an instrument. That's quite a telling statement. Actually, there are very, very few people who are _truly_ tone deaf. Since intonation is used extensively in nearly all human languages, anyone who truly is 'tone deaf' will have quite an issue in communication. Nearly all the time (and tbh I think it probably is just all the time), they actually just have an 'untrained ear'. Like most people in that kind of position, part of the reason they are in it may well be because they were told when they were young that they weren't any good, and decided to put their efforts elsewhere. And like all people in that position, you can get better. Will they be the next Miles Davis? Probably not. Will they be able to play in a band with their mates? Yes. A century or two ago, around the time literacy started to become a thing most people could attain, people must have had a similar attitude to yours with learning to read. Some people can read, others will just never learn. Their brains aren't designed for it. This is how stigmas form. Coding is not that much different to other human endeavours. All I'm saying is, if you plan on becoming a teacher ever (in the widest possible sense), you're really going to have to re-think your attitude there.
- nice1 11y agoThis is ideology speaking, not experience. Whether you want to call a person tone-deaf or just 90% tone-deaf is somewhat irrelevant. A whole lot of people will never be able to learn to play an instrument no matter what they do.
- JoeAltmaier 11y agoYet people think different ways. Its easy for a musician to think "everybody knows how music works; its easy for me so its possible for everyone". The evidence suggests otherwise. I think we may all want to rethink our attitudes.
- dasil003 11y agoAt some point it becomes a philosophical question: is this person incapable of learning to program or do they just lack the will and persistence.
- 11y ago
- TazeTSchnitzel 11y ago> It became clear he had no concept of the ordering of statement. He wrote them like math formulas, and didn't understand that they got executed in order. That's not an ability issue, just a knowledge issue. Coming from math, you'd assume there is no evaluation order.
- sqeaky 11y agoI think the point of the statement was to show it was a ability issue because knowledge can be acquired and presumably abilities cannot. So the second time the friend asked for help with the same issues it should not have have happened if missing knowledge were the only issue. I was not there and my opinion on this issue is complex, so I will just step out now.
- JoeAltmaier 11y agosqueaky has it exactly right. No matter how many times I said "they get executed in order. There is a state to the computer, and these statements modify that state sequentially", he just wrote random statements down in no particular order. I never saw such profound inability to understand programming.
- igravious 11y agoYou needed to be able to find a way to relate the machine model to him. There must be some kind of everyday task that could be used as an analogy. Also, because code looks kind of like maths this person was engaging a math mental model. Therefore you needed to say, (1) it's not like math, stop thinking like that and (2) it's like a recipe for a cake where each step must go in a particular order (or whatever analogy works! Maybe multiple analogies! That said, I was asked to give computer grinds to a friend and the guy could just not grok it. But then again he had zero motivation and interest. Lots of people who say that they are bad at math/programming have no interest in making the effort to becoming even a little bit proficient. I really really would like to know if there are people out there who want or would like to code but for the life of them they cannot wrap their brains around it. I think this is a very important question because I can imagine future social arrangements and scenarios where not knowing how to code will be highly socially disadvantageous.
- thwarted 11y agoIt became clear he had no concept of the ordering of statement. He wrote them like math formulas, and didn't understand that they got executed in order. We eschew languages like BASIC these days, but I wonder how much BASIC, as available on Commodore machines, the Apple II, or even some graphing calculators, helped communicate this concept. I know I didn't have any problem understanding that when moving to languages that don't have line numbers (although, I did have trouble moving from the full-screen interactive editing on the Commodore to editing "files" as "the program" vs files being a "snapshot" of the program), and I've had the same experience with people who couldn't grok statement ordering. BASIC with its line numbers and simple loops with GOTO may continue to be good first programming languages because it helps with these concepts.
- JoeAltmaier 11y agoI wonder too. I'm no help; it never occurred to me that programming was functional. I took to 'imperative programming' like a fish to water, at a very young age (elementary school).
- deleted 11y ago[deleted]