3 ms·
The main thing that makes learning how to code difficult is the sheer amount of technologies you need to learn before you feel like you can make real progress.
by vinceguidry 10y ago
The main thing that makes learning how to code difficult is the sheer amount of technologies you need to learn before you feel like you can make real progress. Each individual technology isn't by itself particularly difficult, with a few exceptions; (looking at you git) but also aren't particularly useful by themselves.
You either have to be willing to learn a simpler stack and pick up skills gradually, or deal with the intense frustration of drinking from the firehose right out the gate.
When I was in high school, I went from doing BASIC to elementary web stuff to trying to learn C++. (I didn't have practically anybody who knew how to code to guide me) I gave up and didn't go back to coding for some ten years, sticking to just being a power user.
If I were trying to teach someone to code nowadays, I wouldn't really know where to begin. People want instant gratification without the frustration. You can't have both. I've had limited success, but only after finally convincing them that they have to be patient.
- owenwil 10y agoI absolutely concurr. The hardest thing for me has simply been connecting the dots. Suddenly needing to understand Git, or how to configure Apache, just to learn PHP. THere are so many bits that aren't explained to you, all the while you're jumping into the deep end with a language. It's hard to hang in there, but it's worth it – however many don't.
- vinceguidry 10y agoWhat we really need is sandbox dev environments. A one-click installer that does everything you need to get a stack up and running and ready for code. But it's way way way too complicated. Something like that wants to be a standard, but won't be robust enough to actually solve the problems a standard solves. I'm excited for functional package managers for this reason. It will give us a framework for describing machine state that's actually useful enough to give us real-world one-click install.
- duncanawoods 10y agoA one-click installer sounds great but creating it is not the hard bit, its choosing what goes into it. Its not just the Cambrian explosion of JS frameworks and plugins but the whole stack of external dependencies from databases, monitoring, build, testing and deploy. There have been lots of attempts that pick a stack e.g. Angular-seed for the MEAN stack but they make so many questionable choices that they don't have any longevity. At one point it might have looked sensible but now Mongo is out of favour and React has the ascendancy. Maybe it needs an organisation like a Linux distribution, e.g. Ubuntu For Web, that chooses a complete end to end stack, develops missing glue, maintains forks when necessary and gives some sort of maintenance guarantee for LTS releases and supports upgrade paths.
- rorykoehler 10y agoJS is a mess. Even though there are standards they are implemented in such a way that it is virtually impossible to keep up with for a non-seasoned dev. The tools we use change quicker than ever, major changes all the time breaking everything that came before, tutorials out of date the week after they are written, new syntax that is widely used but not official meaning we have to transpile everything. Everything mentioned is just another obstacle in the way for a new dev to get started coding. By the time they've setup their dev environment most will have lost all their enthusiasm.
- bigger_cheese 10y agoI think the problem is trying to teach 'a technology' if you want to teach someone to code treat it like math - teach algorithms. I'm talking about the basics Conditional statements, Iteration and Boolean logic. Hell you don't even need a programming language - you could teach someone to code by drawing flow charts on a blackboard. "if statements" and "For loops" those are the tools everything is built on. Want to teach someone to code start there not with a "Python tutorial".