4 ms·
The weirdest thing about this 'learn to code' movement is the strange naivety that 'coding' is something that can just be picked up in a year or so, and then it
by increment_i 13y ago
The weirdest thing about this 'learn to code' movement is the strange naivety that 'coding' is something that can just be picked up in a year or so, and then it's a skill like dicing onions or changing an oil filter. I mean, I guess it can be in a sense, but my own experience has been quite different.
First I wanted to build iOS apps, so I learned enough C to take on Objective-C. Time to learn the Cocoa frameworks. Published an app. I should learn web development. Grokked HTML, CSS, some JS. Wait things can be done easier with jQuery? Learned some 'o' that. None of this means anything without some passable design skills. Time to learn photoshop, illustrator, or some open source alternative. Oh crap, I need to deploy this! And what's this 'Git' everyone's going on about? Wait a minute, I don't understand anything that's going on with anything! Time to dig deep into the underbelly of Unix. I should get with the times! Need to learn some front end frameworks. Angular looks amazing, here I go! Hmmm, are mobile apps the way of the future? I'm not sure. Maybe I should leverage this using the web skills I already know! Time to get up to speed with PhoneGap, Cordova, or AppGyver...
And this is just practical stuff. Nevermind the math, algorithmic, and hardware domains that I'm sure break into a million parts like the 'coding' endeavour I mentioned above.
- muhuk 13y agoI've had a similar kind of experience. In fact, after years, it's still ongoing. I'm not against the 'learn to code' movement at all. But because it's easier to take someone from 0 to 1 than to make a 1 into a 10, all these new courses seem like they'll do not much more than creating a few more newbies. I don't have the answer myself, but I'd totally like to support if there was a program that's aiming the latter case.
- 10098 13y agoI think beginners should stop following trends and focus on building a solid foundation. I know that can sound ridiculous if you need to get a job, but you'll be doing yourself a favor. I mean, it's ok to learn enough to become a hireable code monkey (even though it's more difficult than it sounds) and earn something to support yourself, but i think it's way more important to learn core skills instead of frameworks that will inevitably become obsolete in a few years' time.
- increment_i 13y agoThis isn't about frameworks but I suppose what you've said is true. I guess there's no reason to frighten newcomers with the truth of just how far down the rabbit hole goes...
- Joeri 13y agoI completely agree. Everyone who learns programming should start with something practical, ruby on rails, angular, whatever, but then go down the stack instead of sideways. Don't add more and more frameworks, learn what's beneath the framework. Learn what every layer in the system does, right down to the level of individual transistors on the cpu. There should be no magic anymore. If every part of the system is understandable (in theory) then any problem with it is solveable. Also, most frameworks become variations on a theme, and almost nothing is truly novel. That last part is what made me almost quit programming, upon the realization that the industry was not on a long march of progression, but on a cycle of reinvention, where each generation rediscovers the knowledge of previous generations in different flavors, especially in software. If more people learned the fundamentals they could discern between that which is new and that which is novel and spend their time accordingly. The industry as a whole would be better off.
- leoedin 13y agoI think I would have struggled to find any motivation to keep going when I was starting out if I was just building command line scripts. Frameworks can hide the confusing stuff and let you build functional things quickly, which is often great for motivation. I do mostly agree with you though. The more directions I approach software development from (different languages, frameworks, platforms), the more understanding I have of the different layers. If you approach a project knowing that you could write the whole thing from scratch, but choose not to, when limitations inevitably bubble up in the framework you're using it's a lot easier to work around them than if you're just copying and pasting stuff from tutorials without even understanding what the framework is trying to do. Generally, though, programming skills are developed through practice, and practice requires motivation. It's hard to maintain motivation when you're constantly fighting the kinds of errors that frameworks completely abstract.
- adrianN 13y agoI think the "learn to code" movement doesn't really mean to turn everybody into a software engineer. The same way we teach maths and writing to everybody not because we want them to become mathematician and writers. Learning to code doesn't mean learning a dozen hip frameworks to pump out apps for the appstore. It means learning how to decompose problems into very simple parts and how to write down instructions for solving these simple parts so precisely that even a dumb machine understands. Being precise and having the ability to tackle complicated tasks are useful in other contexts too. Learning to code teaches how to think in an unusual way. Furthermore it's nice to know at least in principle how the things that you use every day work. Everbody should know how an internal combustion engine works. Not in sufficient detail to be able to build one, but well enough to explain to their children when they ask. Because maybe their children will want to build engines someday. This is why people should learn how to code. It's not necessary that they learn how to build shiny things, they should learn the very basics.