I have always wanted to be a writer. I think secretly us all reader-folk have that ambition. The joy of getting across your thoughts to another person without ever having met them is enormous.
Most of my writing time these days is spent over email, chat or my not-so-frequent blog posts. I tend to do a lot of research while writing, and it takes up a lot of time. As such, my writing output tends to be diminutive compared to what I'd like.
However, if you'll go through my blog posts and emails, I write a lot about trivial things. Things that many people have already written about. Things that have probably been discussed to death, and where I have very little chance of actually coming up with something new.
Should I still go ahead and write about it?
This question has been bugging me for a while, especially as a blogger. I mostly write on technical topics these days. For instance, I have given talks on [Software Development], [UX Design], and even [Bitcoin]. I am nowhere close to being an authority on any of these things. Even in my specialized field of Web Development, there are so many things that I'm only barely aware about. So many things I am yet to even form my own opinions about. Topics I don't even know exist.
When I go and read an article about Software Development from Joel Spolsky, or an article on Security by Bruce Schneier, or something on Startups by Paul Graham, or tptacek on Hacker News; I instantly sit back and take notice: I know their credentials and the fact that they are speaking authoritatively on the topic. However, what can I, a meager undergrad with almost zero experience, write on such topics. Why should I even try, when there are people hundreds of time better who understand these things a thousand times better than me.
In retrospect, this sounds quite similar to the Imposter Syndrome; and I'm not sure if this is exactly the same thing. I don't get a feeling that I'm a fraud. I totally understand my own capabilities and successes, but the mere fact that there are people far better at what I'm doing is enough to dis-hearten me.
I've given this a lot of thought. A really good summary of my response is in the following answer by James Erwin, author of Rome Sweet Rome in a reddit AMA to a question asking for writer advice:
And if you're going to write, write what you want to write. The odds against any creator are insane. If you're going to devote months of your time, don't let it be for an idea you think will sell. Odds are it won't. Write something you want to write, or need to write. Write for yourself before anyone else. I'd rather read someone who is excited and passionate about what they want to say than someone who's obviously trying to say what they think I want to hear.
I write, despite all these doubts, for the following reasons:
- Self-learning. A blog is an excellent way to keep track of your self-learning. Its amazing to come back a few years later and see the things you were struggling with before. Its equally amazing to do a trivial google search for an issue you face and find your own blog post or stackoverflow answer on the same.
- Sharing Knowledge. Yes, there are people who might know it better, but that shouldn't mean I should keep my knowledge to myself. That would go against all the values that I stand for.
- Network Effect: Not in the strictest sense of the word, but my friend Shashank recently brought this up. I have a circle of people who know me and would vouch for my credentials. For the same reason, they are more likely to trust me as source, instead of a third person who they have no knowledge of.
- I love writing. The mere process of putting words down is enchanting for me.
The next question that rises is: "What should I write about?". Ruling out things I have no clue about, that still leaves a large number of topics I can cover. I am interested in UX Design, Hackers, Computer Security, Software Development, rationalism, skepticism, Free and Open Source movements, Political activism, Technocracy with a passing interest in several other fields such as cosmology and geek culture.
I am not going to pick one every day and write about something new. I don't want to write something rubbish just for the sake of writing it. I ultimately want to write because I have something to say. It doesn't have to be unique or ground-breaking. What matters is that I want to write about it.
A few days back someone contacted me on facebook asking me advice on getting started with web development. I get a lot of these queries, mostly over facebook, email, and quora. Our conversation went back and forth with me suggesting resources, and he getting exceedingly confused over whether he should use codecademy or udacity, or coursera or something else.
I have devoted a lot of time in my life to teaching people the nuances of these things. I have mentored many people, and acutely know the issues a beginner faces. In turn, I had an amazing mentor who taught me the importance of always learning things.
All of this lead me to realize one fact: I have been writing a lot about Software Development. Unfortunately, a lot of it is in private emails and chat. And I wanna write more about it, on a public medium.
So, I'm announcing the next thing I'm working on: a book called The Joy of Software Development. A few obligatory links:
- The source code is available on GitHub.
- Its licensed under the CC-by-SA 4.0 license.
- The canonical url for the site is https://josd.captnemo.in/
- Its hosted on the excellent GitBook platform, which automatically publishes each version as epub, mobi, and pdf as well.
- Who the target audience for the book is.
- You can file an issue for critique on GitHub
As expected, all the development, writing, and discussion on the book will be in the public, mostly on GitHub. I am writing this book, because I feel it needs to be written. I don't expect it to be published, but that won't stop me from writing it.
Artur Siekielski recently came across it, and wrote the following:
The book you're writing looks very good! It's filling a niche as I don't think there are any modern books that focus on "bird's eye view", and I see it would be helpful for many programmers to refresh knowledge.
That gave me a bit of validation, as the only person who'd read it so far were my close friends.
If you wanna support its development, you can do one of the following:
- Poke me on twitter or email and let me know you want to read it
- Subscribe to the mailing list (I'll send out updates there)
- Watch or Star the repo on GitHub.
- Donate on Gratipay
- See the CONTRIBUTING file on github for contributing to the text.
Asking for Donations might sound weird to some. I don't really need the money, but I think I'd get an additional sense of responsibility towards finishing it if people start giving me money. I will be donating the entire proceedings to EFF.