3 ms·
It's not hard to imagine rote programming becoming a universal skill among high school graduates. I could even see this happening within our life-times; it's re
by nmrm 12y ago
It's not hard to imagine rote programming becoming a universal skill among high school graduates. I could even see this happening within our life-times; it's really only a matter of societal will and available teaching staff. The basics are... basic.
If this happens, then APIs and libraries that make development easy and intuitive for end-users could easily become as in-demand as well-designed websites and mobile apps are today.
- nathancahill 12y agoThis. Thanks for putting words to a thought I've had for a while. It's already happening. We're transitioning from web/mobile app demand to services demand, which explains the relatively recent explosion of the SaaS/PaaS/IaaS models. Also, there's no reason to base it on an arbitrary threshold like high school graduation. The amount of rote programming I have to do (as a professional working in the field of 10 years) is drastically decreasing.
- mbillie1 12y agoThere's already debate over the merits of introducing this in the Utah public schools. I think it's a great idea.
- pokpokpok 12y agoI (pessimistically) don't think that creators will ever be the majority. maybe in the future it will be easier for all who create things to incorporate custom software, but I don't think that the majority of the population will ever feel the need to create their own software, even if it's as easy as editing music with garageband or manipulating images with photoshop. I would love to be proven wrong within my lifetime though!
- nmrm 12y agoWhat do you mean by creators? I know very few people who don't create something. Most people do so at their jobs, and those who don't usually have a hobby or two (sewing/knitting, hobby construction projects around the home, gourmet cooking, etc.) Someone I think you're using the term to mean something else.
- ericHosick 12y ago> It's not hard to imagine rote programming becoming a universal skill Rote learning is a process of memorization that maps from an exact context to a specific answer ( 3 * 3 = 9). Writing a program very rarely has the exact same context by which a rote learner can map a solution to. There may be aspects of a program that can be mapped to a specific solution but I really feel this will never be the case for an individual coming up with a complete solution to a unique, never solved before, problem. Critical thinking is required to come up with a solution to a unique, never solved before, problem.
- nmrm 12y ago> Critical thinking is required to come up with a solution to a unique, never solved before, problem. 1. Perhaps I'm being slightly too liberal with my use of the word rote. But by "rote programming", I mean the sort that requires no understanding of anything beyond CS1 concepts, the domain and your toolset. The programs are very simple and sometimes hacky, but get the job done (e.g. "Move all those files over there and then watermark them using this snippet I found on SO and then add them to the database so they show up on the website"). 2. Even for many professional software engineers, often times most of the critical thinking is probably about the domain as opposed to the programming. Most people aren't (or shouldn't be) coming up with truly unique algorithms/approaches; rather, they are mapping new problems to tried-and-true techniques usually already implemented as libraries. So it's possible to solve new problems (in the sense of your domain) with rote programming (of the sort described above), if all the critical thinking is about modeling the domain as opposed to the software. Of course, every once in while, the "tried and true" technique is a piece of CS that only an educated engineer has heard about/knows how to correctly use. But my point was that there are lots of problems you can solve without getting to this level.
- ericHosick 12y ago> Most people aren't (or shouldn't be) coming up with truly unique algorithms/approaches Rote approaches to solving problems are great when the problem is very well defined and repeatable (need to fill an order for a coke and two fries). However, as soon as the mapping changes even slightly, Rote learning[1] and, in my opinion, Rote programming don't work so well. Even if every tool ever required to implement a software solution (algorithms/approaches/etc.) was available we still need to map a given problem to one or more solutions. This is why I wrote "Writing a program very rarely has the exact same context by which a rote learner can map a solution to." When I lectured, students could "get" what tools were available to them. If I asked them to describe a sorted list, they could in great detail. However, when given a generic problem, it was a lot harder for them to select from the tools available to them ("Oh, so to speed up this programing, I could use a sorted list"). That is the critical thinking part. [1] "Umm, I've already told the register that you are giving me 10 dollars so you will need to give me that instead of $10.50". - This happened to me and is a big signal that the person had done rote learning their whole life.
- JackMorgan 12y agoI can see general programming being added to a school curriculum as most people think it's a guarantee at a good career (for some reason). I don't mind this mindset, and would enjoy teaching such a course. I look at it this way though, we theoretically teach every single American student how to write, has that caused an increase in high quality literature being produced? Theoretically, every high schooler can read, I'm curious what percentage of adults actually read literature for fun? Most long form writing (which I'd consider to be analogous in complexity to large scale programming) is not very common. The average adult's writing is quick and "dirty". I'd expect to see an increase in programming similar in size, scope, and usefulness to email, text, lists, and meeting notes. It would be personal, private, and not meant to last. Tents, not marble palaces. I think a much more valuable tool would be to teach everyone git (or something easier but still with good branching). For quick and dirty, excel is fine, and some improvement on it likely will come in our lifetimes. What I think is far more valuable is a way to version all text a person produces, with branching and history.
- nmrm 12y ago> we theoretically teach every single American student how to write, has that caused an increase in high quality literature being produced? Maybe, who knows? How many American authors would have been illiterate if we didn't cast a wide net? More to the point, you don't have to contribute a great piece of literature in order to get some value (and give society some value) from basic reading and writing skills. Basically everyone does some reading in their everyday life which is crucial to their level of productivity (and personal enjoyment). > I'd expect to see an increase in programming similar in size, scope, and usefulness to email, text, lists, and meeting notes. It would be personal, private, and not meant to last. Tents, not marble palaces. Very much agreed. I don't mean to suggest that software engineers would be displaced in any meaningful proportion, just that we could increase the productivity of everyone by a little bit :-)
- collyw 12y agoThe problem with quick and dirty excel, is that the temporary gaps that it fills become permanent solutions. The a couple of years down the line, too many parts of the system are hinged around an unreliable error prone excel sheet, when something better should have been written.