Hi HN -<p>Being a software programmer requires a life of constant learning. What strategies do you use to support and enable this?<p>Do you deliberately budget xHours each week? Are you taking online classes regularly (through MOOCs or universities)? Do you meet up with friends and colleagues to puzzle through and play with new frameworks and ideas? Do you regularly go to conferences? Do you use side projects as a way to explore and learn? Or maybe you take a less deliberate approach, and just learn as you need to? Or do you do something else entirely?<p>I'm sure everyone has a different mix of strategies that works for them, and I'd really appreciate hearing some of them as I develop my own ways to effectively stay current.<p>Thanks!<p>In peace,
Mike<p>PS - Also, perhaps equally helpful would be strategies you tried that didn't work for you!
Hi Mike,<p>This is my first post here so I will try to fit to how things work here.<p>François Rabelais wrote this sentence: “Science without conscience is the soul's perdition.”<p>The aim of a programmer is to deeply learn how things work and to be able to learn it fast. In my opinion, the best way to reach this point is to FACE the problem BEFORE possessing the appropriate knowledge.<p>This approach allows you to get way more knowledge from the course/guide/whitepaper because it will answer to many sub-questions had in mind. Many hackers use this method to learn tremendously complex things.
60-90 minutes of my own time every morning focused on deep diving into ever more complex problems.<p>90 minutes of my employers time focused on going deeper into a topic that I'm working on.<p>I get breadth through a combination of: hn/reddit, talking to friends, talking to co-workers, reading books, and listening online courses/podcasts during my commute.<p>IMO far too many people spend their valuable learning time on breadth instead of depth. e.g. There are plenty of day job mid level Java devs who are learning Go via writing a side project. What a waste. They could be becoming senior level Java developers instead.<p>I suspect part of the problem is the desire to mix side project time, marketing time, and learning time.
At this point in my life, there is not much strategic effort involved in getting myself to learn things. I think this is true for many people who spend most of their time engaged in intellectual activity.<p>It was once the case that various commitments, emotional states, and competing interests (consuming cheap entertainment like computer games, TV shows, etc.) reduced my efficacy here, but for reasons unknown to me I find these much less distracting than I did when I was younger. Sorry I can't be more helpful in this regard.<p>As I've gotten older, I would say the only conscious effort I've made is to educate myself more deeply on subjects of personal interest instead of constantly exposing myself to humanity's knowledge base at large. Sadly, there is too little time in a life to know everything. Better to have a deep understanding of what you find fascinating than superficial knowledge on a broad variety of subjects. (Of course, if you can manage both, more power to you.)
I don't budget time, but I have always had personal projects going and they are always teaching me something. I start projects that are just out of my reach, that I clearly do not have the knowledge to complete yet and chip away at them bit by bit, learning until I can implement my vision.
I am still working on being consistent on my learning but the one thing that I find very discouraging. My study schedule is very errant due to my varied external commitments and inevitably I end up having long gaps in my study. When I get back, I find that what ever I have picked up two months ago are again new to me :(<p>So one of the biggest stumbling blocks in independent learning is to actually retain what you have already learnt over a period of time. I am in the process of putting anki ( spaced repetition memory training program) to the task but I am not sure of the effectiveness yet.<p>Of course, I would be very happy to know if anyone has faced this issue and solved it!
Hi Mike!<p>I use some of those methods. I am an open source conference goer, casual MOOC and YouTube how-to addict. My big one though is side projects and contract work. Short contracts are a great opportunity for implementing something fairly new to me, though not for the first time learning something and playing with it. More like a second step in the learning process.