4 ms·
It sounds like the author became a programmer many times over, but kept slamming into his own expectations about what the process would be like. Learning any n
by mwfunk 13y ago
It sounds like the author became a programmer many times over, but kept slamming into his own expectations about what the process would be like.
Learning any new language is a process of continuously diminishing returns- it feels like you're moving along in leaps and bounds at first, as everything you learn is applicable to almost every program someone might write in that language, and things that looked like gibberish before start to make sense. Eventually you move past the basics and get into more specialized, esoteric, and less generally-applicable bits, and it feels like it's taking a lot more effort to learn much smaller and less widely applicable chunks of information.
This isn't even taking into account the fact that the more you learn about something, the more aware you become of how much you don't know. Two months in, you might feel less confident in your knowledge base than you did after the first month. It's just the nature of the game.
I really got the sense reading this that the author assumed that the learning process would always be linear (the ratio of effort to returns wouldn't decay as he got deeper into it), and that eventually he would reach an endpoint where he just knew everything and could build whatever he could imagine without continuing to struggle and flounder. It's not like that though. You're never done learning, you never reach a point where you can whip up nontrivial projects without at least a little bit of floundering, and you never reach a point where most real-world projects you take on don't involve learning yet more new stuff or periods of floundering and frustration and false starts while you wrestle with how to design and implement it.
It sounds like he would get to this point of diminishing returns and assume that this must be happening because he wasn't cut out to be a programmer, but really the problem was that he was assuming that things would get easier, not harder.
It doesn't help that he was so focused on web development as opposed to other types of programming- more than any other programming specialty, web development involves grab bags of seemingly random and unrelated technologies, some vastly overengineered, some comically underengineered, and none of which were really designed to be used together in the ways that people want to use them.
- verisimilidude 13y agoI had the same reaction, especially when I got to his paragraph about Sinatra (vs. Ruby on Rails). If Sinatra is more fun for him, more easy for him to understand, and more productive for him, why not use it to build things? It's possible to build very nice things on top of simple tools like Sinatra. To the author, I think you should give yourself a lot more credit.
- phantom_oracle 13y ago> "It doesn't help that he was so focused on web development as opposed to other types of programming- more than any other programming specialty, web development involves grab bags of seemingly random and unrelated technologies, some vastly overengineered, some comically underengineered, and none of which were really designed to be used together in the ways that people want to use them." Doesn't this lead to the simple fact that the way things are built in the browser is in 1 simple word: fucked? A lot of the passion-based fanboys have justified the existence of at least 5 different mindsets needed to flesh out a single application (eg. some web app using: Ruby with Rails, JavaScript, HTML + CSS and lets throw in the need to write a couple of bash scripts just for petes sake). I've long been contemplating having a single-language situation or at max 2 languages to flesh out web applications (why the fuck does CSS need to exist?). If a browser itself could be built on a core of using just one language (like C++) then I don't see why stuff that works in a browser can't be done with that same philosophy. So now I'll have to find myself a bomb shelter and spend the next 20 years writing a web-only language to solve the pain points of some dumb shit called JavaScript that is great because Node.js is great...
- zem 13y agoyou might like opa; at the very least it's worth a look. it bills itself as a "framework for javascript" but it's actually a language that lets you write frontend and back end code that mixes seamlessly http://opalang.org http://opalang.org
- GregBuchholz 13y ago>So now I'll have to find myself a bomb shelter and spend the next 20 years writing a web-only language Eliminate the entire browser and just start distributing x64 "apps" to raw hardware sandboxed virtual machines in Bochs or another emulator. That way people could have as much pixel level control for display purposes as they wanted. Ideally you'd also have some client side OCR so that we could copy and store text from these new websites. Some sites would want to have you download megabytes of "operating systems" before. But there'd be nothing stopping you from making a raw hardware Forth website 1000 times smaller than the next guy if you so desired http://www.ultratechnology.com/forth.htm http://www.ultratechnology.com/forth.htm You could bootstrap the whole thing by having bochs run in a asm.js setup, with the graphics frame buffer being spit out to a HTML5 canvas. http://bellard.org/jslinux/ http://bellard.org/jslinux/
- SomeCallMeTim 13y ago>You're never done learning, you never reach a point where you can whip up nontrivial projects without at least a little bit of floundering I agree that you're never done learning, but you shouldn't "flounder" forever. Somewhere between 4 and 10 years you should be done floundering. :) Sure you may need to check your API reference for specific function names and parameters, but there are very few aspects of my main languages that I don't just know without having to look them up at this point. And that experience translates even to languages you haven't spent a lot of time learning. With less than a dozen hours of JavaScript exposure, I understood the syntax of his "OMG!" examples. It does eventually get easier. It seems like he's giving up too soon, but he's also (seemingly) refusing to just ask questions. There must be forums where he could ask about syntax like that.
- ocfx 13y agoI wouldn't say its a process of continuously diminishing returns. If you use the same process your entire life it will be, but you can constantly be learning new programming paradigms, algorithms, frameworks, architecture, etc. Also the diminishing return idea is a matter of perspective. When there has been something small I'm struggling with for a long time and I finally get it, it's a huge deal to me. Maybe to someone else it might not seem like a lot, but the satisfaction is still there. I think its more the difference between truly loving programming and romanticizing your love for it.
- kenrikm 13y agoMy takeaway was that the OP could not grasp MVC which caused all the issues with learning the frameworks. Also I'm a firm believer that you can't really learn unless you want to make something. If you're not trying to build a game/website/app that you're excited about then you're not going to go far.
- oxplot 13y agoI strongly agree with this point and wrote something about it a while back http://blog.oxplot.com/transient-ideas-and-learning/ http://blog.oxplot.com/transient-ideas-and-learning/