During the past 2 months of my new role, Iโve been learning to program in a new language and a drastically different way of approaching coding solutions just to function. One of my favorite aspects of this field is the built-in life-long learning, but like other #beginners I still often find it extremely challenging to find time to devote to continued learning, whether for work or personal projects/interests.
So that got me wondering how you all approach finding time to learn new programming languages, frameworks/methodologies, disciplines (UX, UI, Design, Product), or other skills. The DEV community always has a wealth of insight and I bet many of us would benefit from what's shared.
Top comments (38)
I killed my TV and spend my time reading, studying, and working on my hobbies. After dinner, I'm studying what I think is awesome. On weekends, I'll commit a good portion of the day to studying. I then try to start a long term project that combines all the skills I want to master and begin to put it to use. Even if it's a single commit, it's progress.
I'm happy to say that I'm rarely able to sit down and enjoy TV when I'm by myself, except for sometimes having something I like on in the background. I still enjoy a good show with company, but in my alone time I actually prefer learning something new or reading for enjoyment. Wasn't always like that.
Hmm that's a good tip, thanks. I currently barely watch any TV. But I can definitely look for other areas/hobbies to make a little leaner.
2 hours on weekdays after work, or 5+ on weekend just building what I think is really cool and fun. Right now I'm studying Elixir and Phoenix. When I'm not doing that, I pick up any freelance work I can get and consider that "study time" as well.
About how long do you study a day this way?
I try to find at least 30 min a day to sharpen. In a thick book, taking notes and doing exercises, that is about 20 pages a day. It's enough to hello world a new hack.
Start "tricking yourself" at first... say, I'll read for 15 minutes... sometimes it's 15 min, sometimes that becomes hours.
Mornings. I work at home, so when I wake I start the teakettle and settle into my recliner with a laptop. The first thirty minutes are for email, social media, and just getting the brain fluid sufficiently caffeinated so it can conduct thought.
Then I break for a shower, and after that I make a second pot of tea and start studying - at least an hour of reading programming blogs, Safari Books Online, or watching videos from Coursera or Pluralsight or other providers, before I switch to my office chair and begin the work day in earnest. One hour a day is the target, sometimes more, sometimes less, and often I'll take a whole day on a weekend to deep dive into a topic.
Same for me. Early mornings are key to a good start to learning. I've realized that staying in bed for those extra 30 seconds always ends up turning into a late start, which in turn throws me off for the rest of the day.
Thanks so much for sharing, your method sounds potentially ideal for my current situation. I'll try a modification of it for 2 weeks and see how it goes (maybe write an article about the experiment). I'm in the process of moving and it has shifted my work schedule earlier (6:30-7am ish arrival time earlier) and the office is dead quiet then. I could use hitting the gym or a 30 minute walk around the neighborhood as my break. One question though, just how big is this teapot I need to know for experiment replication science ๐?
Two cups! Two cups is ideal because after it runs out, I'll make a different kind of tea for the next serving. Today, for example, I began with a black Chinese Yunnan for the wakey-wakey phase, and now am drinking a mountain-grown Taiwanese Oolong for the study phase; for the first hour of the work phase it'll be something completely different.
Check out: Pragmatic Thinking and Learning
It is a crazy good book that provides strategy and practical suggestions on how to optimize your learning, with a focus on dev.
pragprog.com/book/ahptl/pragmatic-...
Thanks for the rec. I'll get my paws on it and report back :).
How do you add the banner image to your blog post?
@dev3l :D
In the editor you add "cover_image: " anywhere between the ------s.
Then click the black (top right-ish) "Upload Image" button and select the image you want to use from your computer.
It'll give you a link you can copy/paste next to "cover_image:" and save post
Holy crap! Thank you for the in-depth explaination and images!!! Wish I could give you more than +1
You're super welcome, happy to help. Took me a bit to figure it out too and I wished for images the entire time lol.
I'm a little bit worried about the "YOU MUST NOT ENJOY ANYTHING BUT DEV!" attitude in some of these comments. Seriously, have a hobby, kick back of an evening. Netflix and chill, as the kids say.
I've been at this a couple of decades and still find new things to learn. My employer (like any decent employer) encourages staff to spend some time learning new things, both by reading, online courses, and so on. I usually end up using the techniques I've learnt in a new side-project, which sometimes end up being used in work.
And sure, I often do get excited by some new thing and spend hours of my own time working on it too - but nothing like all the time. Aside from anything else, I end up tired and nothing hurts my productivity and enjoyment of life in general like being tired.
There's a balance to be made. So don't sacrifice your life to thinking you need to learn all the time. You really don't, and if you do then you'll either burn out, become the world's most boring person, or quite possibly both.
Morning rituals is my answer to making time. If I have accomplished something as a first thing in my day, I feel I should do more. That drives me to cut down all unnecessary activities - TV, mindless browsing etc. How to determine what is unnecessary? That is where structured approach comes in.
We all have same amount of time. When I studied the successful, I found that they have structured approach to what they do. They also contextualize whatever they learn to their situation.
There are two structures that help me learn continuously.
First is having a structured approach to learning. I follow Consume, Produce, Engage model to learn. I have written earlier in dev.to about it.
Even on the consume side, there are challenges. Then again, you should have a structured approach to discover, comprehend, and make sense out of what you consume.
The second one is morning rituals. Whatever time you wake up, the first 60 min determines how that day goes. I ensure that I do one of the three in the SDL model -- consume, produce, or engage. That way, I have either learned something, or reinforced something I learned.
Good luck.
Bookmarked, and will Consume. Thanks.
Weekends are exclusively spent on learning something new. During the week, it's mostly in the evening, I try to spend half an hour after dinner. Otherwise, if it's a bit slower at work, I just spend an entire morning on whatever I want to learn. I can't do it to often, but I like to think of it as a win-win situation for me and my employer that I am able to set that kind of time.
I like the brevity of the half an hour after dinner idea, I'm going to try that thanks!
I use to read about new technologies I want to learn during my dialy coffee break. But that 15 minutes aren't enought, so when I have a free weekend and my partner doesn't want to go out, it's time to get the keyboard and work in a learning project.
That sounds balanced :). I currently need a weekend from my weekend, as they as filled up with social plans, running a nonprofit, hackathons, and other adventures. Chatting with you inspires me to try scheduling in time for a personal project/or software reading in every two weeks though.
One of things that help with learning is to find something that is related to problems you have at work. E.g. if you feel that team work is not organized enough or you feel tensions - read about software, management, and people topics. If you use a tool (framework, library, whatever) at work look how it works inside or learn some advanced applications of it. Alternatively you might find how your tool set compares to alternatives. Indulge your curiosity once in a while.
Besides having motivation at hand this means you can dedicate small portion of your day job time to learning. It does not take long to read architecture overview page of a new database server or do several coding katas. If you feel pressed by deadline, peers, boss so you feel like you cannot digress even a little then that should be changed first. Change attitude, talk to boss, switch job. Most effect at work goes from solving right problems not from working hard round a clock. It's easier said than done, but still true for any intellectual work.
Learning something completely new does take time (like it was for me learning Haskell) so probably it is possible on weekends when there are no distractions.
I learn when I'm working on a task. When you work on a task you basically solving tons of problems (some are easy some are not) at some point you come to a problem that you don't know how to solve (that is most often an indicator that you lack some knowledge). Now you have two courses of action:
So giving preference to 2nd option you will learn new things every day (even without dedicated time for learning) and develop solid problem solving skills. The only reason to choose 1 should be when you are in rush (i.e. deadline, etc). But that should be rare.
Naturally a question may arise "What about learning new technologies?". Well lets first consider couple of things from my experience:
So if you foresee that technology X is smth. you really gonna need in near future and that there will be no time to learn it by doing (i.e. using approach I described above) then it totally makes sense to invest your time and learn it. But keep in mind that if you spent N months learning smth. that you never gonna use it is a waste of time. (unless you really enjoyed learning that)
For me it's always been a motivation issue. I've always loved learning, but before programming it was very much a scattered, unorganized process. Now that I've found programming and absolutely love it, it's much easier to want to spend time improving.
This also means pruning my time doing the other things I want to do, though. I'm playing less video games and having less unstructured fun time in general for the sake of learning. So far it's pretty rewarding. When I first stopped playing games, it was more of a punishment; now, I take a moment and think about whether it's worth it. And sometimes the answer is yes, I should play a video game! More often than not though it's "how cool would it be to learn xyz?"