4 ms·
I agree. I've been coding for decades,but it's a handful of years that made the vast majority of difference. That's not to say you don't learn some things ever
by waterlesscloud 12y ago
I agree. I've been coding for decades,but it's a handful of years that made the vast majority of difference. That's not to say you don't learn some things every year, but the major progress is concentrated in a few years (and they aren't all at the start!)
- SixSigma 12y agoAs also someone who started coding at 13 and now mid-40s, mine too has been quantum evolution. Usually from needing a particular technology for a project and then learning it or just a didactic itch I scratched. Novel coding techniques distract you from solving the problem and exploring the novel for its own sake is a common pitfall in the programming world. 10 Solve problems with tools you know 20 Learn new tools 30 GOTO 10
- hirsin 12y ago15 Find known tools to be insufficient That's always been a big driver for my learning. If I could do the job with the tools I already know, my drive to learn new tools is somewhat diminished.
- ibebrett 12y agoits hard if you don't have the context to know this though. you may never think what you are using is insufficient if you don't get out of your comfort zone.
- hirsin 12y agoTrue, if I'm never challenged in my work then I never find reason to get new tools. Hopefully we're working on things that do challenge us and do expose us to the weaknesses in our tools - and force us to say "There's got to be a better way, how does everyone else do this?"
- SixSigma 12y agoI think my little bit of pseudo basic was to extreme. I meant there is a temptation when faced with a problem you know already how to solve to do it with novel tools on the client's time. Like "I should do this in Forth, how hard could it be"
- ibebrett 12y agoyes, and no. i still think that without exploring you are not going to find things way out of your comfort zone. sometimes its not "weakness" in your tools that should inspire you. you can write perfectly great stuff with imperative languages, but at some point you may want to try a pure functional language to get a perspective shift. its more so to see if there may be a better way, or a different way to do things. i am very glad i took two courses in haskell, despite the fact that i don't ever use it for work, just because it has changed the way i think about certain things and given names to concepts i only had a vague notion of before.
- bbcbasic 12y agoI disagree. I am glad I took some spare time to learn RoR coming from a .NET background. I had no problems to solve in RoR that I couldn't solve in .NET. I just explored it and learned about different ways of doing things. I am sure it has made my .NET programming better too. Also learning some RoR has got me also using Linux and Git. I learned a bit about Nginx etc. I went to some interesting RoR meetups. I gained a lot from it. So I encourage programmers to learn other languages and techniques, for the sake of it! -- 10. Learn another programming language / framework tool 20. Have fun with it 30. Realize you can now solve problems you previously couldn't 40. Profit
- SixSigma 12y agoThere is some confusion, you are agreeing with me. I mean don't try solving novel problems in your day job with novel tools and techniques. Use known tools to solve problems. Lean new tools when not solving problems.
- bbcbasic 12y agoOK i misunderstood you, but I don't see how you can avoid learning new tools when solving problems. You must often hit the point where you think "surely there is a better way to do this, lets research it" - then find new tools, spike them and then use them? No? However what I think you are getting at maybe is people who think stuff like "Node.js - that sounds funky, oh.. Hadoop - thats hip at the moment how can we use that?" perhaps for fun, or to enhance their CV. That is dangerous. You end up with completely the wrong tool for the job!
- SixSigma 12y agoYes, that's what I mean. Software is all about building tools. I mean like "I know, I'll do this client job in Lisp, I've never tried that" which is probably a bit of an extreme example but I have learned similar by experience :)
- dragonwriter 12y ago10 Solve problems with tools you know 20 Learn new tools 30 GOTO 10 Sure, but since learning new tools more than superficially means solving problems with them, that is equivalent to: 10 Solve problems with tools you know 20 Solve problems with tools you don't yet know 30 GOTO 10 And learning new tools -- programming languages specifically here -- often involves learning new techniques, that while not necessarily as natural and popular with your current language, can be applied there, which its good to have in your pocket for when the techniques that are most popular/natural with your current languages aren't great for solving a problem you run into. There are good reasons that the The Pragmatic Programmer includes the recommendation to learn a new language every year.