As a 'business' guy, I taught myself to program so that I could communicate effectively with my team. It was damned hard - partly because I was doing it on an evening and (if I'm honest) I wasn't that interested in it... at first. The more I learned though, the more that I understood that its about solving problems and as soon as my brain understood that it was a challenge it became more fun. I will admit that I am s…
Is learning to program inherently hard?
41–50 of 69 posts
Re: Is learning to program inherently hard?
#42Is learning to ride a unicycle hard? It is if you don't have inherently good balance. Is linguistics hard? It is if you don't have a good associative memory. Is math hard? Is carving a wooden bowl on a lathe hard? Is pro-Hockey hard? Is sculpture hard? Metal working? Philosophy? Music? The percentages of people with specific inherent skill sets will vary widely in society, so 'hard' is best defined as 'requiring a sk…
So, depending on how you approach computer science, you may find that those same skills have prepared you for linguistics, or vice versa. Either way, I highly recommend learning linguistics; it is a fascinating discipline.
Re: Is learning to program inherently hard?
#43I've said it before, and I'll say it again. In my experience, the problems that students have ultimately fall into one of two categories: 1. Learning to think algorithmically; 2. Abstraction. What do I mean by these? By "thinking algorithmically," I really mean "taking a large problem and breaking it up into an ordered series of steps or sub-problems." This is surprisingly hard for a lot of people, in part because th…
by indenting four spaces in
Re: Is learning to program inherently hard?
#44I've said it before, and I'll say it again. In my experience, the problems that students have ultimately fall into one of two categories: 1. Learning to think algorithmically; 2. Abstraction. What do I mean by these? By "thinking algorithmically," I really mean "taking a large problem and breaking it up into an ordered series of steps or sub-problems." This is surprisingly hard for a lot of people, in part because th…
You can simulate by indenting four spaces in
always
wondered
how that workedRe: Is learning to program inherently hard?
#45Re: Is learning to program inherently hard?
#46Programming is hard, period. Knuth has noted that its so difficult for him that when he is programming he can't teach courses, and he's among the best programmers in history. Jon Skeet wrote a blog on the topic: http://msmvps.com/blogs/jon_skeet/archive/2009/01/29/program... Jon Skeet is right. Programming is hard, except the most trivial tasks. And anything that is not trivial is probably broken. But we're OK with t…
Perhaps programming is so hard ... that teaching it is easy.
If programming is so hard that an older programmer has little teacher younger programmers, then everyone is equal when trying to the mountain.
Charging a machine-gun nest with only bayonet is incredibly hard. Learning all you can learn in attempting this is fairly easy...
Probably not true but worth tossing around in your mind.
Re: Is learning to program inherently hard?
#47Earlier quoted context omitted.
I would be useless as a mechanic. 90% of being a good mechanic, just as 90% of being a good programmer or a good doctor, is debugging. If you're a good debugger, you can damn well do anything .
As a mechanic, you also need good grip strength and not be afraid to bloody your knuckles.
Re: Is learning to program inherently hard?
#48Earlier quoted context omitted.
I think the essential difference is that practicing the guitar involves doing the same thing over and over until you get it right/fast, whereas practicing programming involves doing different things.
I would think to a guitarist, what we do when programming is "all the same". Just like we think guitar practice is all the same. No, the guitarist would say, there's real differences between flamenco, jazz, prog rock, ... If you support the 10K hours argument, some things are willingly done and others less so. I make coin with programming, yet people pay to see guitarists.
But obviously some guitar practice is more involved. It's something I think about a lot actually, as when I need a break from programming first thing I do is pick up my guitar. My musical goal is to be able to improvise on the guitar using jazz theory. To do that you need to internalize abstractions like scales/modes and chord progressions. You need to be able to transpose the same abstraction/pattern to different notes (on the most basic level this would just mean sliding further up the neck and using the same shape for fingering), and you need to be able to 'search' your options (some chords can substitute for other chords, which might then allow a whole new path of music) on the fly.
In programming you don't need to wrangle all these abstractions in a strictly timed performance, and there's no physical component to the challenge. But still, I often think about the similarities. I guess playing jazz guitar, while complex, can still be kept within a manageable scope of permutations and ultimately 'mastered'. But with programming you can't tame the complexity, you just get good at dodging it.
Re: Is learning to program inherently hard?
#49Programming is like most things in life: hard if you have no affinity for it, much easier (but not necessarily easy) if you do. I see programming to have a lot of parallels with being a combination mechanic and automotive engineer. A mechanic fixes cars, diagnoses problems, tunes a car and so on. It's really a lot like (code) reading, testing, debugging and maintenance--all key programming skills. An automotive engin…
My old CompSci lecturer answered the question this way. In most fields of engineering, mechanical, electrical, chemical you can design knowing you can build with certain tolerances in mind. In software engineering you have zero tolerance.
Re: Is learning to program inherently hard?
#50I've said it before, and I'll say it again. In my experience, the problems that students have ultimately fall into one of two categories: 1. Learning to think algorithmically; 2. Abstraction. What do I mean by these? By "thinking algorithmically," I really mean "taking a large problem and breaking it up into an ordered series of steps or sub-problems." This is surprisingly hard for a lot of people, in part because th…
I know that personally I enjoy conversing at least specific level of detail that includes only the subset of things that are relevant, while my wife will enumerate all the elements in a set even if there is a perfectly good description or name for that set.
I really just want to tap people on the shoulder and ask them, "excuse me, how do you think that thing you're doing works?". Unfortunately I haven't found a setting where that is socially or professionally appropriate, and includes people that would give interesting replies.
Conversely I know just enough about cars to be dangerous, I'm sure there's a mechanic out there that would find my explanation of the workings of an engine interesting.