top | item 14637859

Ask HN: What's your process for learning?

222 points| mysterpaul | 8 years ago

I'm interested in seeing if anyone has a process they use to help with learning.

- Do you focus on one topic/book/course/project/article at a time, or split your time between multiple things?

- Do you use any tools to track your resources, todos, notes, or goals?

- Are there any pain points you have while learning, or are there any tools you wish existed?

96 comments

order
[+] danielvf|8 years ago|reply
The biggest test of what I've learned about learning was the day I had to learn embedded programming in twenty four hours.

A customer called me at 5 pm. They had a possible six figure hardware sale, but a key aspect of their hardware was too slow, their only embedded software/hardware guy was no longer working there, and they had to have the new code in 24 hours for a demo.

The software component to be sped up was three cores running handwritten assembly, and had been optimized by several people over four years.

The total of my embedded software experience was fooling around with an Arduino. I'd never written assembler before and never see this processor or its family before.

This was going to be good.

I wrote down the problem, and did the math to find out what the solution would have to look like.

It's hugely important to define the problem, and constrain the solution as much as possible. Nailing these down is probably the single most important "trick" problem solving.

With the problem defined, and the solution constrained, I printed the entire processor manual, and read/scanned it through in one sitting. I then went back over the memory and instruction timing sections, since that was going to be the hardest part.

I at least, learn much better by first scanning through a paper book on a subject. This lets you get the big picture all in your head at once, and see how things connect. Unlike just reading an overview, you also get to see the hard details that make up the way the system works. Then go back through later for the sections that matter for the problem you are working on.

I hooked up the customers hardware to the computer, flashed code the existing code to it, then changed the code to turn a status LED off. This was just to verify that I had the code to hardware toolchain working.

I've learned to bite off a small piece at a time, and then build up, rather than trying to solve everything at one go. The first code I ran on the processor just changed a status LED. This let me focus on as small of a chunk as possible, and deal with getting the new IDE configured, etc, without having to worry about the whole class of problems that would come from running my new algo.

I know I need X amount of sleep to solve problems. Even with a crazy deadline, knew I'd do still come out ahead. I went to bed at my usual time.

When I woke up, I knew how to solve the problem. The solution was similar to drawing a diagonal line on a computer screen - which is a really easy problem.

I've found that you can think in your sleep. Maybe this is just me again, but I've learned that as long as I clearly layout a problem, solution, and tools before I sleep, I wake up with the answer. I don't even wonder anymore if it's going to happen. Perhaps this is just the result of a lot of experience, but it never fails. If I'm stuck on something during the day, I just take a shower or a nap and know the answer afterwords.

Because the algorithm was going to be the most important part of this, I coded a JavaScript/HTML 5 canvas visualizer that gave me a live slider for the input variable and showed me a single view the output over many thousands of time steps. The JavaScript version of the algo worked great.

In optimization, the algorithm usually matters far more than anything else. It wasn't that I was the king of assembly language programmers, it was just that I was doing an entirely different thing than the previous programmers had been optimizing. I started with "what would the ideal solution to this problem be", and they started with "let's translate a hardware concept to software".

The second biggest trick to working with a new problem is visualization. I've learned that I can hugely increase my speed of understanding by building tools to visualize the problem and what my code is doing to solve it. For example in the recent, awesome, Halite programming competition, I built a tool that would let me output annotated html5 game maps and documents from within my code. Here's an example visualization output, straight from source code http://braino.org/thoughts/halite_the_simple_way.html OODA loops really do matter, and really are constrained by how much you can see how fast.

After breakfast, I worked out the assembly instructions I'd need, tracking the timing and register values on graph paper. I read up carefully in the docs on each instruction I'd need.

By lunch time I had a paper version that should work, and by 3pm I had it running in the product and had learned how to use an oscilloscope. The customer picked up the hardware and got the sale. The new version used one core instead of three and was measurably, literally ten thousand times improved.

I was now a carded member of the Real Programmers Society.

[+] xbili|8 years ago|reply
"I've found that you can think in your sleep. Maybe this is just me again, but I've learned that as long as I clearly layout a problem, solution, and tools before I sleep, I wake up with the answer."

- This is something that occurs to me too, which is why I always scribble the hardest problem I have at hand before I sleep every night. Does wonders. :)

[+] WheelsAtLarge|8 years ago|reply
This is a great way to solve problems and it's something to be proud of but you get very superficial hit and miss knowledge this way. My previous job was to solve problems in very diverse subjects all in IT but it required research and quick solutions. After a while you get good at defining the problem and doing the research to solve the problem but as you move on to something else you never get a deep understanding and knowledge on the subject and quickly forget what you learned. To me, that's not long term learning.

Problem solving is a great way to learn quickly but make sure you stay around the subject to understand and acquire knowledge for the long term.

[+] npsimons|8 years ago|reply
I want to thank you for this - it is not only instructive, but I find it very inspiring.
[+] mikegerwitz|8 years ago|reply
My learning falls into a couple main categories: formal study for the sciences (be it math, programming, crypto, etc); and broad research for advocacy and activism. Both of these involve keeping up with current events, the latter moreso than the former; the former can be especially time-sensitive.

I don't have the time to put these in any coherent order, so I'll just list some:

- Bookmarks. I find much of my information online. I make aggressive use of tags, and I found that organizing them into folders is too difficult and a waste of time (unless grouping them for a project/talk temporarily); the tree structure doesn't lend itself well to a graph of concepts. I have ~10k bookmarks. I keep them; you never know when they'll come in handy, even if only for trivia. Figuring out what tags are appropriate forces me to extract key material.

- Maintain a reading list/backlog. I have short, medium, and long-term lists. Go through them on occasion and re-order them by interest/importance. Remove ones you know you won't have time for.

- Learn to speed read. I find it difficult on a screen, but easy on paper.

- Hands-on experience: if you're programming, go hack on your favorite project, look at bug reports, or write your own. Struggle through problems before you give up and look online.

- My time is split between many things. I use Org mode to organize my thoughts and agenda. Sometimes I can do the entire project in Org mode (e.g. https://mikegerwitz.com/projects/sapsf/tree/slides.org, but I left my time tracking private). It also integrates with my mail client (Gnus), where I live a good chunk of my life outside of work.

- While I read many articles and blogs and stuff online, for any in-depth material, I buy the book or print the paper and read offline. I have a system with 5 different color pens that I use to aggressively mark up and underline (blue general concepts, red a problem, green a solution, purple a technical detail, black misc.). I have a Bamboo tablet, but I still prefer paper.

- As I mentioned in another one of my comments (and as adamnemecek mentioned), read a book multiple times (http://pne.people.si.umich.edu/PDF/howtoread.pdf). It not only helps with absorbing the information and selecting what is important to you for further study (which is important given limited time), but also helps if you can't often finish books; after a few iterations, you'll have a good idea on all of the concepts and know _what information exists_ and _where to find it later_ when you actually need it. Discovery is the most important (thus my bookmarks)---material is always there to reference.

- I don't have time to watch videos---I prefer transcripts, which I can also search through. If I do need to watch a video (either because it explains a concept better or because there is no alternative), I watch it at 2--2.5x and slow down when I get to something I'm having trouble keeping up with. Some people talk slowly even at 2x. :x

- Get rid of distractions. One of the best things I did was create an agenda in Org mode, because once I complete a daily task (e.g. reading news sites; checking mail; checking GNU Social), I _stop_ and move onto another task. No peering at my e-mail or news sites 20 times while I'm doing another task.

- Similar to the previous: I only work on personal things at night. I have a family, and I want to spend time with them---I feel guilty if I work during the day when the kids want to play, and all the noise is a distraction; it breaks flow constantly. Wait until a calm point.

- Iterate over your system. Everything I do has evolved over the course of many years. The learning curve for some tools will slow you down, but can be very rewarding. The iterative process can slow you down. But that's not always the point: a good system can have returns in the long run, but it also _reduces stress_; you want to enjoy learning, enjoy the tasks you're doing, and not have to worry about other things. This might involve writing scripts, too.

I have more things, but that'll have to do for now.

[+] baseh|8 years ago|reply
This is a great list. As OP is possibly interested in tools as well, here are some of the tools I use for some of them in this list.

1. bookmarks: pinboard.in / chrome plugin, add bookmark - add any relevant tags

2. backlog: todoist.com with tagging

3. speed read: beelinereader.com / found this to be useful but didnt use that often

4. reading offline: kindle

5. watching videos faster: video speed controller from chrome store

[+] adamnemecek|8 years ago|reply
For books, you have to generally read them like 5 times. The first pass might take me like an hour, it's mostly to establish a general mental framework for what's in the book (actually try to read the table of content, and like familiarize yourself with the words you might not know). On the second pass, you will actually try to read the book and retain like 20% of what you read. On the next one try the next 30%.

This approach has the advantage that it lets you decide what's important. I also like to believe that it establishes better connections between the single ideas.

I would say that goals are counterproductive until you are somewhat comfortable but not when starting out. Like yeah sure, you should make some progress but you are in an uncharted territory, the best thing you can do is to walk around a bit and make sure you stay engaged.

If you move to a new city, you probably walk around the neighborhood for a bit, then to the neighborhood next to yours etc etc.

[+] mikegerwitz|8 years ago|reply
This was on HN quite some time ago:

http://pne.people.si.umich.edu/PDF/howtoread.pdf

I find it valuable for another reason: I'm always constrained for time, so I might not get through an entire book. If that book is deeply technical, it discourages me from continuing, because I have to take the time to re-skim what was read previously.

I somewhat recently started trying the above method. With multiple iterations through the book, I can get an idea of the information and at the very least know where it find it and that it exists. Depending on the iteration, I'll have some notes to fall back on, or have some important concepts underlined.

[+] tigershark|8 years ago|reply
It is extremely inefficient to just read a book 5 times, it is like throwing mud to the wall hoping that it sticks. It's much more effective to focus on each topic and try to remember and repeat the informations just read. Having a general mental framework on the book on the other hand is very helpful.
[+] 1001101|8 years ago|reply
I do a bit of a twist on this : I get as many books on the same subject as I can and read them all at least once. I typically find that each one has valuable nuggets, one really clicks with my brain, and all contribute to scaffolding a solid internal representation.
[+] kowdermeister|8 years ago|reply
> The first pass might take me like an hour

How do you fast read it? It's more like skimming it rather than actually understanding it. It would be frustrating for me, I'm more like a perfectionist who hates to leave behind not understood paragraphs. The idea is neat though, I lean the same way, but it's not true how I read books.

[+] Joeri|8 years ago|reply
I almost always only learn things that I can immediately apply afterwards, because otherwise I find I don't retain enough useful knowledge that I have to go through the same learning resources again by the time I need the knowledge.

I have two learning modes. When I first come across a new topic, e.g. hadoop, I will go broad and skim as many learning materials as I can to get an idea of the lay of the land. Once I feel confident I have a handle on the major parts and technologies involved, I'll switch to the second learning mode and work through the subjects / technologies one by one by searching online for "best way to learn X", figuring out what the common denominator is, and then working my way through that while taking notes in onenote.

The note-taking is crucial for retention as well as keeping track of salient points (it's all in a onenote notebook, so I can find something relevant again even if I don't recall the particular book it was in).

What I wish existed was a sort of wikipedia for learning, keeping track of every subject / technology and giving a reference to the best learning materials in a crowd-sourced way. Right now learning sites focus on their own content, but it's not always the best, and it is not crowd-sourced. The best hits for learning resources are usually stackoverflow or quora links, but neither are the right format for such a thing.

[+] majewsky|8 years ago|reply
> I almost always only learn things that I can immediately apply afterwards, because otherwise I find I don't retain enough useful knowledge that I have to go through the same learning resources again by the time I need the knowledge.

This. A friend of mine (senior sysadmin on a different team) has ranted about how his boss put tasks like "Learn Docker" in his list of goals for the year. First, such a task is hilariously underdefined. Second, if you're not going to apply the knowledge, it will be forgotten within a few weeks, and time spent studying it will be wasted.

[+] gregw134|8 years ago|reply
We definitely need a well designed website or search engine for learning materials. I've wanted an algorithmic way to figure out the most useful websites to learn a topic. Perhaps if you had data on which websites users bookmarked, you could cluster websites by topic and also figure out which sites are bookmarked by beginners and which sites are bookmarked by experts. Of course a simple crowd-sourced upvoting system might work just as well.
[+] dpedu|8 years ago|reply
>What I wish existed was a sort of wikipedia for learning

I write (private) wiki pages for myself when learning a new tool or tech. However, I think the process of taking in information and rewriting it in my own words is more valuable than the wiki pages themselves. Plus it's a handy way to store relevant links and brush up on a topic if I don't engage with it for awhile.

[+] dizzystar|8 years ago|reply
I think the question is a tad ambiguous. Are you talking about learning from scratch or building on what you already know?

The common thread in both is mastering the foundations. I know this is controversial, but I believe in book learning before playing whack-a-mole around the internet, simply because you aren't at the point where you can differentiate the signal from the noise.

After the foundations, I learn on a need-to-know basis, which is generally more applicative: if you are trying something that's never been done before, then the perspective is top-down instead of bottom-up.

I don't use notes, todos, online tracking, or whatever goal-oriented resources people are using. I don't see learning as a goal-oriented exercise so much as an accidental accumulation of knowledge. Knowledge gained best from a genuine interest in the subject at hand, which often leads into a genuine struggle to learn some topic, either because it is genuinely difficult or it something you find boring but necessary to learn to continue.

I'm an autodidact, and really, the best advice I can give is learn yourself first. Be absolutely honest with yourself about your interests, your limitations, and the answers, via a long journey of trial and error, will eventually come to you. The fact is, we aren't all able to fit into a mold, and no matter how much advice you read... advice reading is pretty much worthless without a grounding on failure.

[+] cher14|8 years ago|reply
I made a tool to help making notes while studying. Aim was to make something which allows you to:

Add text and images quickly, so you can type along with a lecture, or by copying and pasting text, html or pdf from documents you are reading. At the same time it must be easy to add and scale images.

Tidy up and restructure your note. Just typing your notes is not enough. You also need to think about it, and restructuring or tidying up your notes is a great way to do that. The tool you use should not make you redo or rewrite the notes completely. It should just be click and dragging without messing up the formatting.

Show structure in multiple ways (colors, sizes, shapes, connections etc). Making notes in a text editor is limited. You need something that does not just scroll up and down, but also left and right. Something that looks more like a diagram or a mindmap, to which you can also add connections, labels, arrows, and colors. Having notes that look more like infographics helps me alot to remember or retrieve what is in them.

Have overview and detail in the same map without to much clutter. I myself like having notes on a topic in one document, but it must still be easy to show the structure and the details.

I am pretty pleased about how all this works in Breakdown Notes (my project). If you would like to check it out I suggest you take a look at an example map about english grammar: https://www.breakdown-notes.com/makemap/load/grammar

[+] dna_polymerase|8 years ago|reply
You sneaky little b____d using an ASK HN for advertising :P. This actually looks useful. I'll give it a try sometime.
[+] GregBuchholz|8 years ago|reply
[+] fokinsean|8 years ago|reply
But what's the best way to learn how to learn?
[+] tchaffee|8 years ago|reply
I took the course. I thought it was excellent and it took less than a week for me to complete it working very part time on it. I was already using some of the suggested techniques, which was reassuring, and I learned some new ones. My progress with learning a new language and memorizing things in general has noticeably improved.
[+] jvanloov|8 years ago|reply
Doing.

I pick a project that interests me at some point; currently "I'd like to have an internet music player that sits on my cupboard and doesn't require my tablet".

Then:

  * decide on platform (CC3200, because it has wifi, enough processing power, 
    and I happened to have one)
  * build something that decodes an MP3 stream (investigate, pick Helix as the decoder,
    make it run on the CC)
  * think about hardware (DAC, amplifier)
  * think about enclosure (wood, how to do front panel)
I knew next to nothing about many of these things when I started, and I'm making lots of mistakes along the way, and I won't become an expert in any of these things, but the overall goal/"target" provides a guide to decide what to learn next. A search engine then helps me find the resources I need.

For tracking my progress, I've started to use Emacs org mode.

[+] photonios|8 years ago|reply
Came here to say this. Couldn't have said it better.
[+] goshx|8 years ago|reply
I usually focus on one goal at a time and dedicate all the time I have available to it.

The key is that I must have something I want to accomplish as a reason to learn something new. For instance, if I just decide to learn a new programming language, I will lose interest very quickly. But if I decide I wan't to create a new app, I can then use that same programming language for the job and I will consume every information I can in order to make it happen. Usually using google and youtube to find the resources. I start from the basic I need to start and go on from there.

I've used that method to learn new programming languages, surf fishing, technical analysis/investments in the stock market, grow plants, electronics, cooking, etc.

TLDR; focusing on a project makes it easier to learn as you need the information in order to make it happen

[+] andyjohnson0|8 years ago|reply
That's what I do too: make something to learn something. Currently writing an android app to learn Kotlin.
[+] jasode|8 years ago|reply
>Do you focus on one topic/book/course/project/article at a time, or split your time between multiple things?

For me, I deliberately split across multiple topics/books because my brain has different thresholds of concentration depending on time of day. The early mornings are best for more challenging subjects (e.g. math, deep learning algorithms, etc). At night, it's easier to read softer topics like history and politics. I think it's important to pay attention to your brain's energy levels and when/how it gets distracted. With that knowledge, you optimize your learning schedule around that.

>- Do you use any tools to track your resources, todos, notes, or goals?

Since learning time is finite, I think it's a important to put together a little curriculum of all the topics you want to learn. Prioritize them.

>Are there any pain points you have while learning

Another piece of advice that nobody ever seems to emphasize (but I wish I had known early in life) is that there are topics that will be a waste of time to learn. In my case, I regret I spent hours on PowerBuilder, IBM DB2, and DOS batch scripting with VBScript. It doesn't mean those skills are bad for others but a little research would have made me realize there were other more important skills to spend precious hours on. (Time spent learning X is time not spent on learning Y.) The tldr is that people will often evangelize things for you to learn that you really don't need to learn. They have good intentions with their advice but they don't know the complete picture of your life's goals.

[+] jamestimmins|8 years ago|reply
Do you have a heuristic for determining what is/isn't worth learning? I personally try to learn the lowest level things I can, as I know that will have broad applicability.
[+] ellius|8 years ago|reply
I read whatever interests me until it doesn't interest me any more, and I quit reading things that don't interest me. I don't say that to be flip—it's actually what I do, and it has allowed me to consume an enormous amount of material over the years. The only trick to this method is not to confuse difficulty with boredom. There are times when I learn to code, for example, or when I read about obscure financial wizardry or mathematics, where my mind drifts and it feels like boredom. But the reality is just that it's hard. Sometimes when things are hard you do have to change your track until you've developed prerequisite knowledge to come back to it. Just make sure in those instances not to decide the thing was boring because you couldn't handle it on the first go.
[+] themodelplumber|8 years ago|reply
> focus

For casual learning, I split my time across various subjects and do whatever feels interesting. For serious learning like a certification, I set goals based on e.g. time spent studying.

> Tools

I use plain text files, either a single file or a folder full of them. I try to develop a sort of learning system for the subject in question.

> Pain points

I was too reliant on outside sources before and did not spend enough time creating "my own" knowledge through hypothesis, testing, measuring, etc. Nowadays I realize I have very little need for most of my books; it's more fun to see what I can come up with on my own.

I also wrote up a "learning ladder" that ranks various forms of study; for example before opening a book or a browser tab on a topic I will check to see if there's a short YouTube video available. After that I might look for an ELI5 on Reddit. Then eventually you get to books.

While that may seem obvious, it represents my taking responsibility for my own learning and I am a more motivated person because I created the ladder by myself and continually work on it. I have hundreds of these systems in areas from learning to fitness to work operations to finances, etc. When I go on vacation it's the #1 "book" I enjoy reading and pondering (I save all the .md files to Dropbox for reading on my phone).

[+] sghiassy|8 years ago|reply
I'm surprised nobody has mentioned Anki cards. It's a scientifically proven method to learn any topic through spaced repetition.

Any time you find some thing you want to learn - add a card to Anki. Anki will make sure you never forget and truly understand the topic.

I highly recommend AnkiApp: https://www.ankiapp.com

Or: https://apps.ankiweb.net

[+] danielbigham|8 years ago|reply
I work in the field of natural language understanding and in the last few years I've figured out how to use that very advantageously wrt learning.

Here's the approach I use:

- Every time you come across a new term or concept, you create a new "notebook"/document. That's right, one notebook per concept. The title of the notebook is the name of the concept.

- You create a summary for the concept using bullet points. What you're trying to maximize with this set of bullet points is the speed at which, in the future, you can re-read them and achieve a similar brain state to what you had when you originally learned the concept.

- You can then obviously have extended notes below that where you go into more detail.

- Then, crucially, you create something akin to a regex that will allow you to quickly and unambiguously look the concept up in the future. If you just learned what a rectified linear unit is, your pattern might simply be:

rlu | (rectified linear unit)

- You then have a hotkey on your computer -- I use Ctrl-Q, that brings up a text box where you can type the name of the concept you want to bring up (ex. "rlu"). When you press ENTER, it doesn't give you search results if there's an exact match, but instead directly opens the document and makes it instantly viewable / editable.

- As your concept graph starts to grow, you have links within your notebooks to related concepts as they're referenced.

- Each time you read an article that is important to your understanding of a concept, you quickly open up that notebook and add that article, and perhaps one or two bullet points that contain the key things you learned that expanded your sense of that concept.

- This same system can be used for more than learning text book information. You can use it if your a project manager to keep tabs on the millions of things you have to juggle, you can have notebooks for people, for lists, and you can have "regexes" for "programs"/scripts, for web pages, for files/directories, etc, etc.

- More general than "regexes" are context free grammars. In this context what that means is the ability to have named "subroutines" for your regexes. For example, if you end up using RLU as a sub-part of a lot of other notebook regexes, then you might define $rlu to be a short form for (rlu | (rectified linear unit)).

[+] hypertexthero|8 years ago|reply
Work on projects that you are passionate about. Work together with peers, get help when you are stuck and help when they are stuck. Be playful, do not be afraid of making mistakes and do not focus on perfection.

I warmly recommend Pragmatic Thinking and Learning by Andy Hunt and Alex Martelli’s lecture “Good Enough is Good Enough!” from EuroPython 2013: https://www.youtube.com/watch?v=gHG9FRSlPxw

More notes on learning: https://www.simongriffee.com/what/learning/

[+] edanm|8 years ago|reply
Depends on what I'm trying to learn, but for things like Math and other technical topics, I'll try to find textbooks/video lectures, go through them, while adding them to Anki.

If you don't use Anki - you really, really should. I'd be lost without it - it's one of the greatest life-hacks I have. Without it, I don't really feel like I've learned something "for life", only just for a moment.

Also, reading multiple textbooks on the same topic is in general much better than just reading one, preferably in slightly increasing complexity.

[+] whiteandnerdy|8 years ago|reply
Totally agree on Anki. It's not just for language learning (although it's great for that - I use it for Japanese). I also have a deck for those day-to-day random facts I used to just keep forgetting - family birthdays, proportions for French press coffee, etc.

Gwern calculated the total time spent reviewing the average card is 2 mins across your lifespan (https://www.gwern.net/Spaced%20 repetition) - so anything worth ~3mins investment to learn can go in Anki and you'll never forget it. It's magic.

[+] nikivi|8 years ago|reply
I actually started using a search engine I built for choosing what and how to learn things.

https://learn-anything.xyz/

As for learning I usually mind map concepts I thought were interesting and then review the mind maps and create flash cards. It depends on the content however.

If it is something actionable like learning a programming language, I try to use the knowledge straightaway and build things. :)

[+] du_bing|8 years ago|reply
This is great project, thanks for sharing!
[+] neovive|8 years ago|reply
It depends a lot on the topic. For coding/tech, I find working through an "organized collection" of video tutorials by rewriting the code locally and taking notes along the way, works very well. It's time-consuming, but I tend to retain more concepts after watching, listening and practicing, since it engages more senses (vision, sound and touch).

Prior to learning a new topic, I try to make mind/concept map of the material based on my initial understanding from reading articles or browsing books, docs and examples. It also helps to have an end goal or project in mind to connect concepts to actual outcomes. You can also try explaining what you just learned to a non-technical person; forcing you to "make sense" of a concept while converting to non-technical jargon.

Overall, it just takes time. After years as an autodidact, I haven't found many short cuts around hard work. There are many great techniques out there--some will work for you and others won't--but consistent practice is usually the underlying theme.

[+] munificent|8 years ago|reply
1. Read a little until I'm itching to try to apply what I know.

2. Try it.

3. Reflect on what went wrong.

4. Go to 1.

[+] lojack|8 years ago|reply
Usually, when learning something, I have a project to work on to apply my knowledge to. I find that I'll start by searching for some good resources. This is typically books, blogs, subreddits, screencasts, awesome-X, etc. Then I'll spend an hour or two a day learning from whatever resource I'm using, and spend the rest of my time working on the project, applying what I've learned.

Sometimes I don't have a project to work on, but I'm interested in something. For these things I'll push to use on new projects at my company, and will read a book or two about them prior to convincing people its a good idea. This isn't always ideal because the knowledge doesn't really stick without applying it to projects, but it scratches my itch to a certain extent.