I have come to a conclusion or realization that perhaps many developers I know including myself have a fanatical fascination with reading as many programming and technology blogs or listening to podcasts as humanly possible.

I sometimes wonder if this time would be much better spent in actual coding and doing, rather than the incessant thinking and perhaps wondering what the "other guy" is doing?

With a very large signal to noise ratio in most blogs and podcasts, is there real benefit in maintaining a huge and constant blog role.. or is this some primal fear or instinct to keep up the pace unless being left behind?

Can they simply be relegated to Google search and just-in-time learning?

Edit: (There are some amazing answers here and touch a philosophical nerve with me, if you are reading this for the first time, I recommend taking the time reading through the answers below)

+7  A: 

This and Coding Horror is about all I read. I prefer to spend that extra time doing. It has worked out pretty well for me, I read just enough to keep up on the current trends/technologies.

Jeremy Reagan
Yep...exactly the right amount.
Yes I think trying to keep up with current trends is precisely my problem, it's hard to know where that line ends.
Agree with you here. There is a point where reading blogs is helpful to keep in the loop, but the reality is that experience pays way more than listening to other people's rants and opinions.
Hey Xian, much of what you need to know will come out of necessity. This will guide your interests and ultimately what topics you research. I personally do enough to keep myself aware of new technologies and then really read stuff that is of interest to me or applicable to my experience.
@j0rd4n - I feel the same way, in fact already I see many of my blogs change over time as I shift focus whether that be from personal interest or work necessity.
I enjoy reading CodingHorror for entertainment, but I wouldn't consider it a true development/technical blog. I think it is important to read a couple of the better technical blogs from time to time.
+2  A: 

I think there must be some primal fear at work... I don't read that much about coding, and I'm doing well enough without. But as you said, that's subjective.

I'd write code first, read code second, and resort to blogs third.

+3  A: 

If there was one criticism that I have of myself (I wish it was just one) I would say I fall in the reading not doing category.

However with this question there is no black or white answer. You have hit the nail on the head by saying there a very large signal to noise ratio in most blogs. My advice is to try and strike a balance, you should know when someone is talking a load of crap. Just hit read and fire up the IDE.

John Nolan
True, one must employ a huge amount of filtering when reading blogs. I believe there is an even greater danger of many people accepting what they read at face value!!
+2  A: 

Some people write blogs simply to document what was done, sometimes without regard to audience. In many cases that turns out to be for the benefit of the community. Also it is not that hard to sort out the good from the bad most of the time. I myself am a coder, never wrote a line of blog - who knows, someday I will even if it is just so I don't forget what I did.

Otávio Décio
+5  A: 

You pretty much described me to the "T". I spend an exhorbinant amount of time time reading blogs, and listening to podcasts (all day while I'm coding at work). I typically learn enough this way to speak relatively intelligently about the technology and just enough to sit down and start messing around with. However I never learn enough until I actually start doing. If there's something that's becoming all the rave, then I try to find a project to work on where I can use the technology and REALLY learn it.

Whether or not the blog reading or the podcast reading is useful, it at least makes me feel like I'm TRYING to keep up.

Yes that's exactly it, I feel like I am fulfilling some urge to TRY and keep up. Perhaps this is the point many people stop generalising and starting specialising?
I've thought about the whole "specializing" thing, but I find programming such a fascinating field, I don't think I could ever "settle down" on one particular area.
+5  A: 

When it to comes to learning, reading and doing go hand in hand. I personally read blogs and listen to podcasts to form the big picture in mind and keep myself updated. Doing things makes me more confident and comfortable. (The difference between, I can do it and I did it, is all it is)

+3  A: 

I am currently not reading this.

I believe it is possible to think too much and not do too much, but the process of learning effectively is different for everyone. Some people can learn through reading, and others will only learn when it is moved from the abstract into the concrete.

Given the exponential expansion of sub-technologies that introduce themselves, there definitely is a primal fear that one will become obsolete, so the balance might be tipped in general towards more reading and not doing (after all, few of us are called upon to do during an interview).

That of course, leads to information overload, which will lessen productivity.

One of the tenets I've tried to abide by (which is definitely applicable here) is to produce more, consume less, in all that I do.

haaa currently not reading this.
Sara Chipps
+3  A: 

Programmers are people who like to learn new things. If we didn't we would not be in this profession. How many other fields reinvent themselves every few years? I've been doing this for almost 30 years. I've went from BASIC and Fortran (using punch cards) to C# and Java. With several stops in between. Most of us still "do" things, but maybe not as much as we would like to, There are only so many hours in day and we do have other demands on our time. If we can be doing them then hearing about someone else doing them is second best.

As for writing a blog or doing a podcast that takes it to the next level. If you think you know a subject try to explain it to someone else. You will quickly find out how much you do not know. Jeff and even Joel have commented many time on how "perceptive" his readers are when it comes to finding errors.

Jim C
+109  A: 

I'll quote Albert Einstein:

"Reading, after a certain age, diverts the mind too much from its creative pursuits. Any man who reads too much and uses his own brain too little falls into lazy habits of thinking."

I agree - the best way to learn is by doing.

Wrote a post about it a couple of weeks ago.

Gilad Naor
Great quote!! and I'm not sure if the irony was intentional but I got a chuckle out of it :)
i would read your post about it but i'm too busy thinking ;-)
Steven A. Lowe
Actually, that's a great post.. worth a read, it definitely strikes a cord with me.
Love the irony !
Martijn Laarman
Before you can do, you need to learn WHAT to do (or what you CAN do)... so, a certain bit of both is in order. The quote does not say reading is bad and one should only do. It says that after a certain amount of reading, one must actually put those hypotheses to the test.
Robert C. Barth
+36  A: 

My motto is: "read a little, develop a lot and ask everything" (to Google first, then to Stack Overflow).

Reading is essential, but the learning is much more permanent when you practice it, and when you need to learn. Then programming is both practice and creation of necessities, fullfilled by research.

Update: It seems that the following quote should answer this question.

"What I hear, I forget. What I see, I remember. What I do, I understand." - Confucius

Jader Dias
before Google I would suggest the software provider documentation.
call me Steve
@Steve probably Google indexed that documentation better than the sw provider.
Jader Dias
I used to work for a large computer corporation, name left out to protect the innocent but it was in the top 5 at the time, and we used to google all the error messages in our own products. Google did do a better job of indexing the documentation than our internal tools.
+12  A: 

I'd suggest reading "The 7 Habits of Highly Effective People", which talks about how to be "effective". Obviously you need a balance between doing and thinking, and unless you're independently wealthy, both are required. The benefits from keeping up with the industry can include

  • greater efficiency as you learn more about your field,
  • important contacts as you find knowledgeable people,
  • possibly making a name for yourself among companies seeking developers.

On the other hand, your current employer expects you to be productive, you probably should click-up this answer and get back to work!

Frank Ames
+1 for me being in a highly suggestible state. ;-)
+57  A: 

This is a false dichotomy. If you never read anything, then you have to think up all your new ideas by yourself, and will get behind on new tools, trends, developments, updates, etc. If you never code anything, then all of your knowledge will be academic ("book learning") and of little practical value.

Read as much as you can in the time you can afford; make good use of modern tools (Google Reader, for example) so you're not wasting time.

Code as much as you have to to earn a living, then code some more to learn what you need to learn, then code some more to learn what you want to learn.

Then turn off the computer and go outside. Remember to wear pants.

Steven A. Lowe
"If you never read anything, then you have to think up all your new ideas by yourself, and will get behind on new tools..." is an irrational fear. I believe important trends, updates etc will permeate into a developers life outside of daily blog reading.
@Xian: an interesting belief; perhaps it works for you. I work from home typically on one-man projects these days, so if i don't read about it on the web it is unlikely that, say, the grocery-store cashier is going to tell me about it ;-)
Steven A. Lowe
Pants--sage advice.
Jarred McCaffrey
Ditto on the pants advice..
Andrei Rinea
+1 Remember to go outside - get away from the computer!
Dead account
@Steven: You might not learn about computer science from the cashier, but you will learn what bothers him about the grocery-store system, and then you will know how to better please your clients.
Bruno Brant
@Bruno oddly enough, just the other day the grocery bagger was lecturing the fellow in front of me about test-driven development and domain-driven design. I took notes.
Steven A. Lowe
@Steven: I think that might be the destiny of us all, given time. I think I should go to work (practice) instead of spending time here (reading)... :)
Bruno Brant
+14  A: 

I've always understood learning and knowledge to come in two parts. There is the experience part of learning, which you develop understanding by doing things and experimenting. And then there is the theory part, where you learn by thinking about what you know, and reading distillations of what other people know, and develop understanding by analyzing those trains of thought.

These can cross pollinate. What you learn from experience you can think and read about later on to see what else you can learn or extrapolate; what you learn from theory you can apply to things you are working on. If you limit yourself to just experiential or theoretical learning, you are limiting what you are able to know. Experience alone may not teach you to even look for a better solution to the problem you have, even though someone may have posted an elegant solution to it on a blog you won't read.

Important point: People do not learn new things simply because they are afraid others know more than they do. For my part, I don't seek out new ideas just to remain competitive; I seek out new ideas because they make me better than I was before I found them.

To quote W. Edward Deming a couple of times: "Experience by itself teaches nothing." "Without theory, experience has no meaning. Without theory, one has no questions to ask. Hence, without theory, there is no learning."

two cents into the piggy bank

Ed Carrel
+2  A: 

I confess my New Year's resolution this year was "less meta, more do". I love discussing programming, thinking of new ways to approach problems, and reading books in the field. As much as I love it, it leaves me feeling unfulfilled as a developer.

Your reward for doing something is directly proportional to the effort you put into it. It takes a lot of concentration, hard work, to churn out code and also to be patient enough to realize that if you keep chugging away you will reach your destination.

I commited to read books only on the general topic of development, not to a specific technology. (i.e. Code Complete, Peopleware, Pragmatic Programmer) but not anything with a specific technology (i.e. jQuery, Silverlight, LINQ). Most of the specific topics I can find online, but the real thinkers, the real eye opening books, are not specific to one technology, and I feel those are worth reading.

Kyle B.
+11  A: 

I just happen to be one of those people that hate staying up-to-date. Don't get me wrong, I have no problem learning something new. In fact I'm great at it. But I only do it when a real need arises.

I'm also the sort of person who buys a new phone because the old one is broken, not because everyone has the new one.

All the latest tools, languages, libraries, whatever - they might contain time-saving features, but learning how to use them, particularly when they're young and not much information about them is available yet, can be a right pain and perhaps waste more time than is saved.

More in answer to the question, I see myself as that "other guy". I read documentation and build solutions. If the documentation is poor, I search for examples and tutorials, and from them deduce what the documentation ought to say. And then build solutions. I usually don't care how other people have solved my problem, because I'm confident in my ability to write clever code. (Check out how many Stack Overflow questions I've asked!)

But some people aren't as good at synthesising for themselves. Some people need to learn from others' mistakes, otherwise they will make the mistakes themselves. Some people just feel insecure about being "left behind". All I can say is that you can do too little reading, you can do too much reading, and you can read the wrong things. Try not to read simply because you don't want to miss out on anything - read stuff that helps you.

"only when a real need arises": This is especially true as software development technologies and tools come and go rapidly.
Dimitri C.
+7  A: 

I vote for 33% reading/listening, 66% doing. I think even running through a tutorial has limited use. I need to have a real problem to work with to really get me brain wrapped around a problem.

+3  A: 

Step 1: Learn.

Step 2: Practice.

Step 3: Profit.

+3  A: 

I keep three categories of programming links: to skim, to read, and to link.

As anyone who's ever tried to drink from the fire hose that is Scobleizer knows, it's easy to spend all of your time just reading up on the industry while steadily falling behind on your actual skills.

Links to skim are raw feeds. Look over each entry and decide whether or not to read the entry. I probably skim 3,000-4,000 articles a month.

Links to read get my undivided attention from the beginning until they become irrelevant or end. I start reading maybe 400-500 blog entries a month and maybe finish 100-150.

Articles to implement are invariably programming related and require some actual coding to grok in fullness. I mark about 20 articles a month to implement and actually get to about 7-10 of them. I should probably mark slightly fewer, but having a huge backlog means that I've usually got something super-relevant to toy around with when I have "implementation time."

While implementation is obviously the most effective means of retaining an article's contents, reading and skimming have their place, too. I read a blog post about implementing ZipSharp roughly three years before I needed to zip files in my own application. But, it stuck in my head that such a thing was available.

Fragments of what I have skimmed and read are constantly bubbling to the surface as they become relevant. As a busy, working developer, it's the closest I can come to being current in the industry.

+2  A: 

I think you need a little bit of both. Programming is the best way to learn to program. But to learn the newest technologies, methodologies, etc, you need to keep up by reading blogs, books, news sites, and other sources.

Jason Baker
+3  A: 

Imagine that the "learning optimum" is 1 hour reading for each 5 hours coding. i.e. a reading percentage of 1/6 (or 17%).

But we have to be essentially coding (and specifying, designing, testing, etc.) 8 or 8.5 hours in the office. You may do some reading related to the technology of the project you're working in, so let's say you did 0.5 hours of reading a day at the office. That makes a ratio of 0.5/8 (or 6%).

If you just read one hour at home (1/1 reading) then you get a daily total of 1.5/9 (or 17%).

This is the reason why at home I tend to spend more time reading. I feel that the coding part is well covered at work. So in the end I have more or less the proportion I want.

Daniel Daranas
+2  A: 

One should Read in order to Do. Task-directed study is the best kind. Even undirected reading should be eager for serendepity.

le dorfier
+3  A: 

It's important to strike a balance between "doing" and "reading" when it comes to programming.

You need to read in order to learn the proper way of doing something. Sure, you can reach some level of success purely by doing and learning from your own mistakes, but you need to read how others succeed in order to break your boundaries. If you don't read, you'll find yourself becoming THAT guy who refuses to learn new practices/methodologies and ultimately stagnates in their career.

On the flip side, too much reading without any doing will lead to a false sense of expertise. You'll think you know everything there is to know about ORM/Mocking/TDD but when it comes to writing even one program that effectively demonstrates the principles that you've learned, you'll find yourself at a loss.

Karthik Hariharan
+3  A: 

Real artists ship.

Yoni Roit
+8  A: 

When I was a green assistant professor still wet behind the ears, Randy Pausch (of Last Lecture fame) told me "never read anything unless you would be fired for not reading it". This advice is extreme even for a professor, but it did help me get control of my reading habits.

Now that I'm old and my beard is grey, I tell people that the more senior they are, the less time they should spend reading. If you're part of an organization you can rely on the people junior to you to tell you what to read. If you are the junior person you should be telling others what you are learning through your reading and blogs. By their reactions you may develop some ideas about whose blogs are worth reading and whose are not.

Also, even though 90% of the computer books published are crap, a lot of very good stuff is still published in books. The Pragmatic Programmers, Kent Beck, Brian Kernighan, and people of that ilk deserve a share of your reading time.

Norman Ramsey
I am also old, and if I had a beard, it too would be grey, and I believe that the path you advise contributes heavily to the process of fossilization. It's all too easy to rely only on what's worked in the past.
@CPerkins: This is why they give professors sabbaticals---every so often you have to rejuvenate yourself by immersing yourself in something new.
Norman Ramsey
Indeed so, and it's an excellent practice. Unfortunately, it doesn't seem to happen in software engineering. My colleagues who have taken sabbaticals tend to do something completely unconnected: building houses and schools, or kayaking, or trekking, that kind of thing. Rejuvenating without a doubt, but does nothing for their knowledge of the craft.
+2  A: 

I wouldn't eliminate all reading if staying abreast of industry topics keeps you informed, motivated and excited about your career. But try to keep it to a reasonable level.

Podcasts, on the other hand, are too time consuming. They're too distracting - I can't listen to a podcast and work at the same time. And, it takes much longer to get the information than it would be if the content were in written form. It's like retrieving data from an ancient reel-to-reel tape.

When you do read, try to split your reading time between programming material and domain knowledge. They are a lot of smart cookies in the programming world, but I'm amazed at how many fail to broaden their expertise beyond 1's and 0's.

Nick Hebb
+1  A: 

I think reading is important since, All work and no play, makes Jack a dull boy. And I thought it was Malcolm McClaren.

+3  A: 

It's a curve. When you start off, you'd read 50% of the time and try to apply that 50% of the time. As you progress professionally, you end up doing more and more while studying less and less, but it should never go to zero.

In fact, it's not about just "reading". Playing around with what's out there is as good, and sometimes we are lucky enough to do that on our jobs.

Andrei Taranchenko
+1  A: 

Assume your theory is correct. If correct, I have to read to know it, so it disproves your theory.

"Leading by Reading" and practice makes man perfect. Follow both.


Must be consensus that it is absolutely normal seek information already processed and that our sieve of experience necessary to give validity to it.


To me Programming is creating tools to help on topics.

Often there is a need for others to build the main tools. I would recommend to

  1. Read the tools providers documentation (or training) (MSDN/Oracle/etc.)
  2. if it fails (because after the noise level increase), look for other information (Google/etc.)
  3. ask others people (Stack Overflow/forums/etc.)
call me Steve
+2  A: 

Read -- read incessantly -- but only after you've spent a full day coding. Read when you're relaxed about just having achieved something substantive in your project.

It's just too easy to read blogs, read articles and listen to podcasts that seem like work. Let alone contributing to Stack Overflow. I would say your time should be 80 percent coding, 20 percent keeping up with the technology.

On the other extreme is the greybeard who never reads anything, has obsolete skills, still uses ancient tools like "vi" to write code, always codes in C no matter what the application because that's the only real programming language, etc. You don't want to be him either. But that guy is most probably not reading Stack Overflow.

Steve Gibson does not have a greybeard.
Peter Mortensen

Usually, we don't have any objective or goal set while reading a blog. I have observed many times that when I read blogs for a continuous interval of time, at the end of the day, I feel that nothing has been gained. I would suggest to read blogs only when you have a definite objective. I would suggest to read selective blogs and decide in advance on how much time to spend on blogs. I would rather prefer to do the below, then to read blogs:

  • Read someone else's code
  • Write Code - Create tools, utilities, open-source frameworks, etc.
  • Read articles with a clear objective in mind
  • Read technical books

In my opinion, we should not have more than 15 blogs in our RSS reader. Also one should not spend more than 30 minutes/day on reading blogs.

Anand Patel