I do sometimes feel that it's not the optimal way of learning things. I try to find the balance between random-walking and systematized learning, but one thing I'm sure of, it's that the optimum is not on the side of formal education, at least not for me.
After trying, again and again, to force and fit myself into 'the System' of traditional, formalized learning I discovered that it is almost impossible for me, and it always have been. Learning what I'm told to learn for sake of tests and exams just repells me, causing almost physical pain. So I'm not trying to force myself anymore, I decided to do what I have to do with minimum effort, and spend the rest of the time learning what I want, the way I want, and allowing myself time for rabbit-holing and procrastinating.
Of course that isn't without it's own pitfalls. That lacking area might need a bunch of pre-requisite knowledge you also don't have and would do if you had adopted a traditional approach early on. It also may lead you further into the rabbit hole if you don't put a stop to it somewhere along the way and turn back to the original problem.
Right now I feel that you have to be able to mix and match the approaches. Reserve some time for just-in-time and rabbit holes, but also remember to reserve some time for fundamentals too, in order to prepare for future lessons. So it is important to do a bit of studying about the subject in order to understand if that's the right fit or not for you.
Actually, I think the real drive for any kind of learning is about the same for anyone: curiosity.
My rabbit-holing doesn't always resemble your approach; I often end up reading a book on a topic I'm just interested in, without a particular project or feeling of lacking knowledge. However, I try to transition myself into more JIT-learning/pull-learning style, so that I learn things at the same time I try to get something useful&interesting done. This mindshift is probably mostly due to HN (and we're looping back to rabbit-holing :)) - especially the prevailing emphasis on 'shipping the damn thing'.
 - http://edweissman.com/53640595
Tests and exams are there to ensure you have done the hard non-fun-stuff as well as the fun-stuff and to "prove" you have understood, not just regurgitating half-comprehended factoids. You are advocating the equivalent of a educational junk food diet, the only thing you'll absorb is the superficially interesting and the crap.
Serendipity has its place but if it is your principal approach then you are delusional.
New favorite word.
- Master degree (as in, formal title; it may come in handy)
- Access to expensive/difficult to get equipment - for all those
crazy ideas of mine that involve e.g. a piece of custom hardware
- Access to people who know some particular area inside out
- All the smart people who study at the university - there won't be
any other chance to meet so many amazing people and maybe Build
Something Amazing with them, and then keep contact for the future.
- Cheaper tickets for public transport.
I'd argue that you ARE there for knowledge just not the kind that universities tend to say they give you.
Rather it's the kind of knowledge that the University system was supposed to give you before they all turned into job training, especially telling is "Access to people who know some particular area inside out". That's what university is supposed to be about.
Of course cheap bus is nice too.
I know a qualified BSc mechanical engineer who works in a supermarket for wage scraps.
For example I don't consider myself an especially intelligent person (on the right side of average I hope), however I know people who are very intelligent and can talk at length with authority on a vast number of topics and are seemingly able to absorb and retain information instantly. Also I am exposed to forums like HN which are full of smart people.
So naturally whenever a conversation or thread comes up where I feel that I don't have anything to contribute but I know it sounds fascinating I can't help but to try and learn everything I can about it so I can weigh in next time, which in turn leads to finding gaps in my prerequisite knowledge of the subject (and interesting offshoot subjects). Which of course leads to having 12 tabs open.
This is why I think it is better to pick a few subjects that you decide you will learn in some detail and buy books on the subject.
The great thing about books is that they follow a linear progression and most importantly they end.
The problem with HN is that you can read every article on the front page along with a bunch of wikipedia, but the next day there will just be more.
That's the usual case, but I've found myself a few times sitting in a university library reading books in a Wikipedia-esque way. Read a few chapters of one, find an interesting footnote, grab the book it references off the shelf and follow up on that, and soon there's a pile of 15 books on my desk...
But not for other kinds of books like Novels, tutorials.
If somebody is reading a Reference book, then they are reading it the way you describe.
But if you are learning something/trying to get enough information for the moment you must know what information to neglect else the 'rabbit hole' problem is inevitable.
There is so much stuff written by COD/WoW obsessed teenagers that basically just regurgitates marketing points along with weird theories about how things actually work.
Luckily a rudimentary CS education does help sort the wheat from the chaff here.
The question is merely the quality of the distraction - if there is something such as 'distract better', perhaps we should be exploring that. Sadly, my general experience has been that the vast majority of distracted time yields negligible gain compared to concentrated pursuit of a field.
Serendipity, yes, but I find I'm far more prone to serendipity when I'm concentrated than when I'm not. Firm believer that you always find what you're looking for - and the more concretely you know what you're looking for, the faster you'll find it.
But he was: 1) already a tenured professor at the time; and 2) had a sabbatical year in the middle as well. So he was able to choose to delay one kind of productivity to follow this other rabbit hole instead, and ultimately probably end up more productive as a result. The normal productive solution, of course, would've been to just muddle through with whatever typesetting system his publisher was using, and stay focused on the book.
Perl was invented because of some form of rabit holing. Actually productive rabit holing can make a good business.
This is also referred to as Yak Shaving.
By the way, what is the solution for Yak shaving? Seth Godin's advice is "don't go to home depot", but in his metaphor this was a necessity to get the job done. Is the idea to give up on the task or at least postpone it, or to try and find a different way to get the job done?
Most recently, my intent to look into writing a compiler frontend for LLVM led me to install a dozen new modes in emacs, explore OCaml and Go, download the source code for several major projects with the intent of examining their garbage collection strategies and roughly 60 new papers in my "To Read" folder.
I was once helping out a relative of mine. Who was doing some freelance project in electronics. As a deliverable we had to ship some soldered boards in four days. We didn't quite have a organized working shop. The first night we worked it was a disaster. Nothing was in place, and we spent great deal of time solving confusions and finding scattered tools. Then the next day we spent all the day getting organized and finished the entire job the very next day. Getting organized helps.
But I noticed a strange thing during that project. As we were soldering, I realized apart from talking to each other about some topic intermittently. We never really got distracted and got off our seats and we were never distracted. We only took food and rest room breaks nothing more. How did that happen, I did simple analysis:
1. We were not spoiled by choice. Like in software where there are gazillion things and standards to choose from.
2. Focused task, Solder, pick components, debug, multimeter.
3. No such thing like a browser to distract.
4. Ability to measure goals. Something that is difficult to do in software.
5. Doing and exploring new things have a little higher barrier to entry. Thereby you don't shift tasks until you complete the current one completely.
6. Information available is to the point and not like software where every other blog has a hello,world program posted. Thereby doing something new requires iterations of focussed reading, implementing, testing.
Many of our problems will resolve automatically with some quality standardization in our industry.
We still quarrel about Text editors, things like syntax highlighting. Most technology communities should by now figure out that if you are releasing something cool, you also need to take care of the tooling.
And that's how JSODA came into existence, https://github.com/williamw520/jsoda
But I'm still longing at popping the stack two levels up back to the original idea.
On the other hand, everyone's definition of "boring" is different, and we should each be true to our own, regardless of anyone else's opinion.
I'm a lot productive today because of the many things I got introduced when falling through many 'rabit holes'.
But there happens to a be balance that needs to be stuck. And in many peoples cases rabit holes keep expanding to bottom less pits.
any suggestions? i like CS/engineering but i feel like these days people are looking for the next app or the next crappy product, and i can't be bother to want to spend time making one. i want to do something helpful for the world using my technical/computing expertise. college is a joke, mainly party and bullshit.
My suggestion is to pick a general field you're interested in (e.g. CS), get a good survey of different specialities in it (like AI, machine learning, databases, compilers...etc) and choose the one you like best. You'll probably find it much easier to focus your curiosity on one speciality within CS, and it will probably be easier to do something interesting and non-trivial within some speciality like this.
Coincidentally, this is exactly where college is great--it gives you a nice structured overview of a bunch of different fields within your chosen subject and also lets you dive more deeply into whatever interests you most. College also gives you the general background needed to learn about the more specialized material--you're forced to learn more about subjects like math and EE than you would learn by yourself, which will help you in doing something non-trivial.
You're on the right track asking questions of people who are already working. Keep doing that, and ask your professors, too. My personal story is that I majored in mathematics, programmed as a hobby, and became a professional programmer almost by accident. My math background has been a major plus in getting jobs where I work with scientists and mathematicians, not because they need me to do math (it actually doesn't come up much) but because math is a common language that lets them communicate with me easier than they could communicate with the average programmer. Skills in applied math, computer science, and practical software development will get you in the door in a lot of interesting jobs. My last three jobs could be roughly summed up as scientific computing, mildly distributed systems programming, and finance.
I would suggest you pick a field you're interested in that requires a lot of computing power and find out if there is a career for someone with CS expertise in that field. Possibly pick up another major -- applied math would be an excellent idea if you have no particular field in mind. But even if you stick with CS, it's an excellent field for someone who hasn't figured out what kind of work you want to do in the long term. If you were getting a law degree and had doubts about being a lawyer, you'd be in a much worse situation :-)
Yes, I stole that from Donald Knuth.
It takes discipline to apply what you've discovered during an intellectual deep dive. Discipline, by its very nature, is a learned behavior. And it can be very hard to learn for the easily distracted ultra-curious types that tend to make up most of the "smart" population.
Take it as a challenge, learn then apply, learn then apply. I frequently find that I've learned something down a rabbit hole someplace that, when I apply it, impresses many of my co-workers. When all I think I'm doing is regurgitating some fact.
Note: don't forget that other people may have gone down different rabbit holes and have an entirely different set of apply-potential knowledge just waiting to make the world better.
The essay cites Hamming, "I notice that if you have the door to your office closed, you get more work done today and tomorrow, and you are more productive than most. But 10 years later somehow you don't know quite know what problems are worth working on."
This reminds me of a quote by Rab Butler (British Chancellor of the Exchequer, 1951—1955) "It is more important to be generous than to be efficient — that is what I learned at the Treasury." It's about more or less the same thing: generosity of either your time or support gets you involved with other people and their concerns, and that is very important to making contributions of real importance.
However, one thing. Hard problems are FUN. Double for hard problems that have some bearing on current work, even if it isn't critically important to the immediate moment. So I think it is important to allow for a certain amount of productive distractions.
I would also add one more thing. These rabbit holes can be good for another reason when running a business: they keep you on your toes regarding to what you need to do to succeed and sometimes the solutions are important ones to pursue as a business strategy.
What do you think of trello and task based applications in this case?
I have noticed that most of these tasks relate to web-browsing and have experimented with just turning off my wireless while I am working. This usually means that when I need to do something "unproductive", I need to make a little bit of an extra effort to get online, which is generally enough to think to myself, "Hey, I should really get back to coding..."
Rabbit holes are basically unproductive-on-current-task lines of research (working on something, seeing something shiny on wikipedia, ...). Yak shaving is setting up a really long critical path for the current task (wanting to install a package, it not being available, building a new physical machine to host a virtualization environment to install a new OS to install the packages...)
On the other hand, if I've been intensely working on a project, I can often times feel as though I'm burning out; I have trouble finding further breakthroughs and I lack inspiration to push a project forward.
I certainly feel that I can get stuck in either environment, so often times it is about being able to know when to transition before reaching that fatigue. Like others have mentioned, making lists to prioritize my tasks often times will help me manage this. Staring at a list that has nothing crossed off is a very effective deterrent from internet use.
Feynman was at mostly at Caltech, of course, although he attended MIT as an undergrad and was at Cornell and Los Alamos for a time. Presumably the quote came from his Caltech years.
Jane Curtain: "Ms. Litella, that's rabbit holding, not rabbit holing..."
In all seriousness, if you don't allow yourself to go down a few rabbit holes and be "unproductive", you'll sell yourself short in the future. The place where "rabbit holing" is dangerous is in meetings where what should be a quick & efficient get-together gets drawn out into a debate over meaningless details.
My pinboard solution is intentionally low-tech. A yellow pad of note paper I can take with me anywhere. First page is the things I want to accomPlish for the week. Following pages are things I learn or want to add to the list. On Friday I make a new to do page, consolidating and removing previous pages.
I keep the pad on my desk in front of me. I can look at without opening my computer or phone. This usually preempts frivolity.
> Errata: Feynman had a career at Caltech, not MIT.
Obviously you haven't read any of Feynman's great books about his life! Get at it, quick!
I can't claim to be an expert at this but I recently watched these vids thesecretweapon.org and coupled with what I already know from GTD and the Pomodoro technique its going well.
Ultimately when you see the various things you need to do on a list, your intuitive mind automatically prioritises certain things over others. That's how you can reduce yak shaving and bikeshedding; by attacking tasks with shorter 'dependency chains' and higher urgency.
The great thing about a teacher is that they can find cycles in such graphs of related topics. They can use your attention to detail to steer you back on topic. Reading up on the trigonometric identities leads you to hyperbolic functions which leads you to holomorphic functions which leads you to linear algebra which leads you to a simple proof of trigonometric identities. It's a great thing if you figure something like this on your own.
There are other strategies to following the graph around. In fact, there's a topic called "computational strategies", which is fairly popular stuff if you're into supercomputing. Then on the other hand there are organizational measures like Time-Division Multiplexing, prioritizing, QoS, etc.. It's all been worked out, we really make computers in our own image. They can teach us a lot about ourselves.
I can equate reading up on new things (e.g. following HN closely every day) to juggling. Every time I read something new and interesting there's a new topic up in the air. It's there for some time until I've made my peace with it and integrated it into my consciousness.
I find that in my brain there's a certain amount of resource that I can dedicate to this sort of juggling, after which I gradually start getting tired, and "burnt out on news". At this point I start doing some fairly mechanical tasks. It often involves cleaning my flat, sports, shopping. Those are things which in some way tick boxes and they are a change for me which is the next step in the cycle. (Compare this to hanging out with friends or watching a movie or listening to music, which are passive tasks that do not advance the cycle for me.) After doing some of this practical stuff, I usually slow down reading up new stuff, forget about HN or whatever I was parsing, get caught up in real life. At this point I save all links, close it all off, and shelve it away. One thing that helps is that I have a structured database of resources (ok, just some dirs in dirs in dirs) where I save notes or webpages. This helps a lot to offload me from the burden of feeling I HAVE to read those articles. It's good because in the end most of this "catching up" that I do on HN is just to cross-reference topics and get new ideas; if two files are in the same dir (e.g. an "Parsers" dir) then I will end up looking at them two at the same time the next time I am working with parsers.
I have never been on a drinking binge, but externally - and as a voluntary social worker I've been a lot around people who have had strong problems with alcoholism - such a "research cycle" is very similar to a drinking binge. It starts with one sip, just let me look at the headlines on HN. Then I start taking shot after shot of reading the articles. Then I do it so much that I forget about everything. I'm in the zone. I'm in the flow. The world does not exist, I am GOD, the clarity is amazing. Escapism at its very best. At some point the high becomes tiring and I am unable to keep up. I get real-lifed. I start sobering up. By moving into doing something constructive I completely mitigate the crash.
So the cycle is start -> get infected -> totally binge out until you can't go further -> sober up -> do real life stuff -> back to start.
Of course, that's just one of the layers of my life, but it's a fairly well defined one at this point.
The cool thing is that, unlike sucking on the juice, this actually gets me to places. Maybe we should teach alcoholics Agda as rehab: http://i.imgur.com/njf59.png