3 ms·
My most unrewarding educational experiences felt like I was being fire hosed solutions to problems I didn't have. This is a big challenge in the early stages of
by greghendershott 11y ago
My most unrewarding educational experiences felt like I was being fire hosed solutions to problems I didn't have. This is a big challenge in the early stages of learning any subject.
Interestingly, experienced software developers benefit from barely-learning about many solutions to problems they don't have, yet. What I mean is a style of skimming stuff like API documentation. You don't really learn it. You can't recall details. But you can recognize its applicability. Someday a problem tickles your memory, and you know roughly where to go looking for the details. And of course then you're really motivated to learn it, for real. You have an immediate need.
- kornish 11y agoYes!! Strongly agree. Your comment hints on why breadth of shallow knowledge (in web development) is so important: it's hard to apply somebody else's solution to a "solved problem" (e.g. email validation) when you don't know that solution exists in the first place. Often times, in software, gaining knowledge of the existence of a solution is about as useful as gaining knowledge of the application of that solution. The reason is that solutions to many software-related problems - be they data structures or form validation - often come with documentation, and figuring out how to apply the solution is relatively easy. Knowing that the solution is there to be applied prevents you from reinventing the wheel.
- QuercusMax 11y agoThis is a great point. I enjoy reading about various languages and paradigms even if I don't have a particular problem I need to solve, just to see what's out there. But without a concrete problem I'm actually trying to solve, I never go very far into actually applying these techniques at the time I learn about them. Similarly, I've never found tutorial-style docs helpful, at least not the type where they walk you through solving some toy problem. But if I'm actually trying to solve something, I'll use the tutorial examples to crib from while implementing my actual solution. I've read about Goroutines and channels, but never implemented anything with them (my experience with go consists of writing a BF interpreyer). But it looks like I'm going to have to work with a library in C++ that uses the same principles, and having that vague background knowledge helps a great deal. Interestingly, I personally find that if there's an external motivator for solving these toy problems (for example, in a class or job interview situation), I don't have this same motivation difficulty. But if it's purely for my own amusement, I'm way too lazy.
- Natanael_L 11y agoI think of this as building mental / intellectual toolboxes. Carpenters and mechanics, etc, like having tons of tools even if they know most won't really get any serious use, because suddenly that one tool might just save the day. The same thing definitely applies to computers, the more techniques and tools you know and the better you are at finding applicable tools, the faster you can solve whatever problems that you might encounter.
- tumbling_stone 11y agoPrecisely. I had been struggling to find the right balance between studying something deep enough that I can draw on this knowledge when needed but not going so deep that I get bored and nothing comes out of it.
- epalmer 11y agogreghendershott Thanks for putting into words how I and many around me solve problems with code. I have a few associates that need a new approach to learning to solve problems with a specific problem. I think this article and the comments here on hacker new will form the basis of a conversation and hopefully some ah-ha moments after I create a headache for them.
- tomaskafka 11y ago> being fire hosed solutions to problems I didn't have Thanks! That's the most condensed description of a problem with current education system so far! :)