Great article, and very true in my experience. One of my favorite, unexpected benefits of blogging is it's like a time-machine/memory dump for your brain.
Here's what I mean. When you're thinking about a problem, you struggle, and struggle, then find some insight. When you go to sleep that insight might be gone. So you write it down, ideally in the shortest, most vivid language that can recreate the idea in your head: I serialize my mental RAM into words, and at a later date, reload that information into my head.
If I wrote well, the deserialization is fast (few minutes) and my head is back into the mental state when I "got it". Then I can continue working, add some new insights, then serialize that new state back into words (a follow-up post, or adding to the original).
Over time, you develop some deep insights which are the result of several "me"s collaborating on the problem. I know that college-me understood class XYZ really well, and because he wrote down some insights, 10-years-after-college me can reload that memory very quickly, and maybe add something new. It's like having a perfect tutor (you, when you got it) jump into your head and bring you up to speed. I don't remember vector calculus very well, but I can deserialize my notes and in a few minutes be 80-90% up to speed.
This was a hugely unexpected benefit to blogging which I hadn't even considered. And incidentally, if you write in a way that deserializes well for you, it will likely be useful for many other people too.
tl;dr: create a standard library of thought snippets so you can #include "vectorcalculus.h"
One of my favorite, unexpected benefits of blogging is it's like a time-machine/memory dump for your brain.
I've had this experience too, albeit not in a coding sense. I will say, however, that I use Devonthink Pro according to Steven Berlin Johnson's scheme: http://www.stevenberlinjohnson.com/movabletype/archives/0002... to archive my own posts, as well as other quotes, writing, and so forth, and DTP's "see also" algorithms often find material I wrote years ago but that's relevant to what I'm doing now. It helps me get to this: "Over time, you develop some deep insights which are the result of several "me"s collaborating on the problem."
Really interesting. I use Notational Velocity to keep track of text snippets, but it doesn't have the "see also" feature. I imagine it could be very useful.
I agree with you wholeheartedly about the benefit of this, it's much more than anyone might think beforehand.
I do a very similar thing, although not to a blog. I have a file (notes.txt) in my home directory. Any problem or thought gets cat'ed to the file ( cat >> notes.txt ) and I type my thoughts along with a few keywords. A simple grep finds any of it.
It is extremely useful once you've built up a body of knowledge. Mine is almost 10,000 lines now.
N.B. If using bash or similar, "set -C" to prevent overwrites with a mistyped > instead of >> (which can be overridden with >| if you need to).
thoughts.txt - random musings about life
ideas.txt - startup ideas, etc.
quotes.txt - favorite quotes
feelgood.txt - events / activities I really enjoyed [good to see what makes you happy in the moment]
If I hadn't blogged personally 10 years ago, I'd not have been approached to write a book for Apress. Without that book I wouldn't have launched the professional blog that was my main source of income for several years (more than the book was!). Without that professional blog, I wouldn't have got the podcasting gigs or launched the weekly newsletter which has now turned into 5 profitable newsletters and has just helped me become co-chair of an O'Reilly conference.
This is not to brag but to show the "chains" that can happen by putting yourself out there. It's totally unpredictable but increasing your "luck surface area" has amazing outcomes. Also, consider Jeff Atwood, a similar chain arises.
Thank you for the newsletters Peter, your success is well deserved! Just this morning, reading the latest JS weekly, I thought what a great service you are doing for the community.
I have had a similar more modest luck vector. The blogging got me selected for Google Summer of Code and opened doors for conferences, which lead to a book for Pearson.
When I blogged, I was popular but felt like a scammer. When I stopped blogging, I wasn't popular but made some pretty nifty stuff. I'm not saying it's like that for everyone, but I'd rather be building stuff than become yet another talking head on a soapbox.
I think I know what you mean. I titled my latest blog post "Stop Using Single Point Estimates" but almost immediately regretted it. The tone was too rigid and link-baity. What I really wanted to say was, "Hey, point estimates are fine, but do you realize that you may be missing an opportunity by not using range estimates?" Really I just wanted to show people a different way of thinking about something. But it can be easy to pander to the up-votes.
But mostly I stay true to myself and use my blog to educate, which is truly rewarding. My favorite post is "Roadmap for Learning Rails" because it genuinely helps people and that's a wonderful feeling.
So I think if you are blogging and start feeling like a "scammer", step back and re-examine your goals. Instead of viewing it as primarily for self-promotion or making money, view it as contributing to the community and participating in the joy of education and sharing. Also, I'm realizing that the blog posts I feel the best about aren't opinionated as much as informative and helpful.
Joel Spolsky (I think) wrote a good article about why he adopts a stance in his blogging even though he knows it's always got exceptions to it. Can't find it for the life of me though.
There is something to be said about presenting a clear message. It's easier to follow the flow and a critical reader should be able to take the point an author is making without blindly accepting the conclusion.
For my blog, posts are generally spun out of something that has been helpful in my own work and warrants a write up.
For instance, my recent post on optimising Django's SQL query generation was a collection of useful tools and approaches.
Seen in this light, a couple of the benefits are: the sharing of useful knowledge, and exploring things I encounter in daily development in more detail. As well as building things, it's nice to be able to work on my written communication.
Maybe every professional should hone their writing skills, but blogging is not the ideal exercise. Typical pop blogs spew out thoughts with regularity, even when the writers haven't thought about the subject carefully, they write just to write, to make the blog look up to date. That's ok as a writing exercise but it's not in the interest of readers who's attention they'll inevitably try to attract.
You can blog out many quality posts if you have some big yet narrow theme to write about. But most people don't. If you want to keep a diary of thoughts, it will work much better as badly edited short braindumps, not writing exercises.
If enough professionals blogged, it wouldn't be a good way to improve your career and make professional connections, since there would be a multitude of terrible blogs and it would drag down the current reputation of blogging, which isn't so hot already.
That's why every professional should treat the separate aspects of blogging like writing exercises, attention whoring or leaving braindumps, as separate aspects.
In the book I discuss at length about how to keep your blog up, but Joel's advice is pretty spot on. It really comes down to treating blogging like a business and scheduling time to write:
* 2-4 hours a week need to be booked for this marketing activity.
* Use the pomodoro technique during those hours to help keep you focused and more productive.
* Give your blog a clear focus and "reason for being", whether it's a niche blog (e.g., CoffeScript Inside) or a more general one (e.g., stfu's adventures in web development). Answer the question "why should readers care?".
* Keep a list of headlines you intend to write about in the future in an ideas.txt file or Google Docs.
* Get your blog popular (and perhaps profitable). Part of the reason why I focus so much on getting bloggers to attract traffic (and then benefit from it) in my book, is because when you start seeing traffic spikes and perhaps even getting some extra benefits (money, freebies, etc), you'll get addicted to that feeling and you'll be more inclined to keep up with blogging.
My biggest problem (coming from the same route as the gp, with multiple failed attempts) is exactly
"Keep a list of headlines you intend to write about in the future in an ideas.txt file or Google Docs."
I consider myself able to express my thoughts in a manner that is 'good enough'. I actually like writing. But why oh why should I (seeing it as a business is hard at the start for me. It's like I'd imagine bootstrapping a startup is, on the smallest of scales)? And - well - what about?
For all the interesting things on this planet the net has good resources. Talking about my own tiny life seems like a bigger version of twittering 'Just went to the toilet'. Who cares if I tried and failed to solve problem NN of Project Euler in Clojure?
Why would I blog, instead of (if we're taking the benefits of writing as a given) doing a journal for me alone?
No, honestly (and I thought obviously, but the text medium is limiting) I don't. But my interests are limited. My knowledge ('share'!) as well. If I learn Clojure and there are tons of blogs about Clojure, using Clojure, learning Clojure, Clojure in the real world.... why another one?
I work with C#/.Net in my day-time. There's probably _nothing_ tech related to that stuff that isn't covered better by reading a very limited number of blogs and following people like Eric Lippert on SO (yes, this time I'm serious).
I guess this distills down to the feeling of having nothing of global value to contribute, at which point I don't see why it should be published at all (vs. journal). A good part of my thoughts might be related to rules in society for me. In my world, shouting out chit-chat/smalltalk and whatever comes to ones mind is not clever and certainly not well-received. But - that's exactly my feeling towards writing a blog (no offense intended - I'm talking about my own issues starting my own blog. Works for you? Great).
I do this and it helps immensely. Whenever I come across some time for blogging, I never have to come up with a topic; I already have dozens waiting for me.
It also helps me filter the good ideas from the bad. I don't normally blog on an idea right away; I add it to this list. Some article ideas sound really good at the time but after a few weeks I realize they aren't so good.
I've been blogging since before it was called a blog and get about 30k visits per month, but i can never seem to make any money or get HN front page. I guess my blog is more of a developer resource type of blog that isn't very exciting. Though I try to post more interesting opinion articles from time to time, nobody seems to notice. Whaaaa!
-Set a schedule. 2x a week. Pick a couple days. stick to it. it's like working out. set aside time for it and make it happen.
-Make a focus/theme for it. Don't make it "stfu's daily ramblings" - pick a theme, then try to write about it. You can still have a broad range of topics, but if you tie it back to a theme, you stay consistent.
-Blogging helps me articulate what i'm thinking. I've tried journaling, but it doesn't work as well for me. Blogging has been one of the most productive things I've done in my own life and has helped me to go out and create different things that I wouldn't have if I weren't blogging.
My advice is make it something fun to do every now and then rather than a job.
If you don't feel like blogging then absolutely don't. (Forcing it results in crap articles)
Don't go setting any schedule or minimum number of posts per month or anything, that will just make it feel like a chore.
I would try and let the focus develop over time, it will probably mirror the way your general interests in life focus over time. And don't worry if you write a post every now and then that doesn't rigidly fit that focus.
Don't push for it. My employer gives me 8 hours per day to do productive stuff, and my family demands a chunk of my free time. In fact I don't put blogging in that same category as "things I have to do". For me it is an alternative to drinking or watching tv. A chance to wind down, unload some thoughts etc.
Ahh I see you use reading and writing articles and conference papers as alternatives. I think if doing those things were part of my life I wouldn't feel like blogging nearly as much.
Why blog if you already have an audience for the same thing through other channels? How would you feel about giving up those other channels, and putting all that content on your blog instead? (I am not suggesting that, but the question might make you think about whether blogging is for you, or whether you could maybe divide the content up into the different channels). Actually, blogging is a lot less formal. When I was a student I had to write papers on the same topics I now blog about, but all the formality made it a drag, finding references, worrying about unwittingly plagiarizing something, making sure it is of "academic quality" (i.e. only facts, no opinions) just really messed up my flow, and made it a total drag. Blogs can be quite liberating from that.
I find this article to be spot on, especially for professionals in very technical careers.
Specifically, the bit about improving your writing skills is very pertinent. Most technical professionals would benefit quite a bit by learning how to communicate with those outside of their profession, i.e. a large portion of the people who might read your blog.
I, for one, keep writing a blog with essentially no readers for more or less this reason.
I've had blogs before, and having no readers is a little bit depressing for me. It REALLY doesn't seem worthwhile when no one is reading it. The few times I managed to get a link to stick on reddit's r/programming, the blog posts were mostly ignored, then buried and on one I was flamed because people didn't understand it.
Having no readers is a bit of an over-statement. I have some friends who read it occasionally and ask about specific topics, and a few random people who probably glance at it once or twice a week.
Point is, blog's are useful even if only a few people are reading it, because it's just important as a tool for you as for other people.
Might I recommend adding the link to your HN profile's "about" section? It may be of interest to some folks here (at least, I don't think I've been able to go very long without seeing people here talk about economics).
I tried blogging once, but what put me off was the amount work and time it took to make it look good. You've got to format it so that it's readable to persons other than yourself. You need to provide links to relevant/related sites (which sometimes you have search for it because you didn't bookmark it, which you didn't think you needed to because you didn't know you were going to use it in your blog). Embedding stuff is such a pain in my experience. If it's a video, you got to get the size right, the default is always either too big or too small. And I have yet to find a hassle-free way to embed code, especially from the free blogging sites. With images, you need to resize them so that there's a small one inside the post itself, which links to the bigger one when clicked. All that time spent on making it look good is better used to actually do my work, in my opinion.
Good aesthetics has been on my mind too. I started one on a Wordpress site and after a few posts, my interest fizzled because I wanted to make better looking posts. When I spend all day trying to make some pages look good at work, I don't really want to do the same thing at home.
I've been trying to think of ways around this, and one might just be to embrace minimalism more. Keep it simple so as to keep creating content. That is what's of value, right?
Going further down the timeline, I want to try to improve that minimalist site, but this desire can't eclipse the desire to keep recording the meaningful thoughts I've had.
If it's only thought-recording, then it's fine. But the reason I wanted to blog in the first place was to make a kind of online notebook where code snippets, useful videos/audio, progress history etc. are online and easily searchable. Kind of an personal online reference, but accessible by the public. It's just too much work. It's a good idea for a startup though - User friendly online notebook.
Those are probably skills you want to get better at anyway, right? Even if "your code speaks for itself", I. Your career you're going to need to write (or at least contribute to) documentation, specs, requirements, proposals, pitches, business plans, here's a _lot_ of writing tasks that are really just "part of the job", hell - you're going to have to write a few versions of your cv and matching cover letters.
Maybe "actually doing work" by blogging is more of a skillset increasing (and caree advancing) exercise than it seems at first...
Using one of the free themes available on Posterous, Tumblr, etc. as a starting point can give you a good head start on looks and readability. I can't claim to have solved your other problems, but for embedding code, I've used Github gists, and added some CSS to my blog's template to make the gists fit in as much as possible. It took some manual work up front, but after that it's mostly a matter of copying and pasting the embed code for the gist. I'm using Posterous, for what it's worth.
A good post but it misses the single biggest reason I blog - to share knowledge. I want to share what I've learned and for others to do the same so that we all can become improved.
Thanks. I think you may have overlooked this part, "The number one reason to blog for many people, is the desire to share their knowledge and teach others."
Ah so I did. That's under the bullet point "Blogging can help you reach and teach a wide audience" and I missed it. Now I have to be honest, by the end I was reading the bold headlines and skimming the text. Oops. :)
Most of these benefits can be achieved from being a contributor to popular forums or support sites (StackOverflow etc). I think blogs suffer way too much fragmentation, are too difficult to find and require a lot of effort just to keep people coming back. However if your contributions are in a popular, well visited place they'll get more exposure and things like karma make it easier for users to access how valuable your contributions are.
Between RSS and Twitter, people generally find their way to interesting material. You just can't expect every single thing you write to garner attention. If you're writing for your own edification as much as for others, that's not a big deal anyway.
>If you're writing for your own edification as much as for others
Agreed. I know a few people who do this but the article focused on professionals. There's little point spending time writing stuff which doesn't get attention if your sole motivation is professional advancement.
So how does this fit in with a job at a corporation that would not appreciate public broadcasts of the details of what (or heck, even what) you are working on?
Check out HR to see if there is a business conduct guideline or blogging/social media policy. As an IBMer I can't disclose too much information on my blogs, either. But it does still leave me with plenty of disclosable information to blog about.
Personally, I blog because writing helps me think. But as it turns out it's also a marvelous lead generation tool, and just generally a brilliant way to put my name out there and make sure people remember me when they're thinking "Hmm, where could I find a crazy coder right now?"
Not to mention the rush of adrenaline when a post sticks and starts raking in traffic. Very addicting.
i've been thinking about starting a blog for sometime. There seems to be a lot of ways to achieve this.. I'm a developer but not sure if i want to host/administer my own instance of word press.. aside from working 50-60 hours, i spend 10 hours a week on personal projects, so not a lot of spare time.. what's a good streamlined way to start a blog quickly, but still have good flexibility in it's appearance?
A few years ago, I hacked an existing blog tool so it suited me, and I recently started a Tumblr blog.
Tumblr makes it very easy to jump right in. There are hundreds of themes, I found a decent enough one within a few minutes.
I recommend going the Tumblr way first, mainly to get over the inertia of setting a blog up. This is the biggest hurdle that stops you. Get into the habit of writing a blog first, then later you can choose another tool that you prefer once you have developed your own blogging style and you know your likes and dislikes a bit better.
I highly recommend going with hosting your own WordPress. The setup is painless and allows you to quickly get your blog up and running. There are tons of themes to choose from that you can use as a foundation to get the appearance you desire. The plugin system also works great and allows you to easily add various features to your blog.
I have used WordPress for a non-technical blog for over 3 years now without any issues. I've also been thinking about starting a technical blog and have been looking into using Drupal for it.
If you're hosting your own WordPress (or any other solution, actually), you really should be keeping an eye for any updates. WP is a popular hacker target, even waiting a day after an announcement can be enough to get hacked. Thanks to Muprhy's law, such an announcement will definitely come when you're on vacation somewhere.
That's, of course, assuming that such an announcement is made in the first place. Last year the timthumb bug was being exploited and not all theme download sites bothered to alert the users that the themes were vulnerable.
Definitely. If you log in to your WP blog at least once a day, it informs you about any updates and lets you apply the update with the click of a button.
Ah, I remember reading about the timthumb bug at work and checking right away when I got home if my site was vulnerable to it (which it wasn't).
No problem, I have mine on shared hosting at HostGator [http://www.hostgator.com/shared.shtml]. I'm currently using the Business Plan since I need the SSL for another site I run, but their Baby Plan is plenty good at $10/month. Plus, it always helps to have your own web server available in case you want to host any other sites.
The blog I built for myself is backed by a Makefile and a bash script. New entires are individual files on the filesystem, and running "make" compiles it all together into usable form. It took no time at all to setup and hosting static files is a breeze, all while still being fairly flexible and easy to maintain going forward.
You won't have the some degree of flexibility provided by WordPress, but good old Blogger is a solid choice if you don't want to deal with the hassle of hosting your own thing.
Here's what I mean. When you're thinking about a problem, you struggle, and struggle, then find some insight. When you go to sleep that insight might be gone. So you write it down, ideally in the shortest, most vivid language that can recreate the idea in your head: I serialize my mental RAM into words, and at a later date, reload that information into my head.
If I wrote well, the deserialization is fast (few minutes) and my head is back into the mental state when I "got it". Then I can continue working, add some new insights, then serialize that new state back into words (a follow-up post, or adding to the original).
Over time, you develop some deep insights which are the result of several "me"s collaborating on the problem. I know that college-me understood class XYZ really well, and because he wrote down some insights, 10-years-after-college me can reload that memory very quickly, and maybe add something new. It's like having a perfect tutor (you, when you got it) jump into your head and bring you up to speed. I don't remember vector calculus very well, but I can deserialize my notes and in a few minutes be 80-90% up to speed.
This was a hugely unexpected benefit to blogging which I hadn't even considered. And incidentally, if you write in a way that deserializes well for you, it will likely be useful for many other people too.
tl;dr: create a standard library of thought snippets so you can #include "vectorcalculus.h"