Category: Writing
Subscribe via
RSS
.
Goodbye Disqus, hello reply by email
This is a natural follow-up to last weekās āI donāt want a large audienceā.
Iāve long been contemplating moving further away from using Disqus. I switched to Disqus back in 2014 when I abandoned my WordPress blog for Jekyll-based Octopress. Disqus seemed like a great choice- lean, customizable, ad-free, and most importantly, allowed dynamic comments for a statically generated site (since this site is just a bunch of generated HTML pages).
The reason for the switch is two-part.
I donāt really have the emotional bandwidth to follow along with Disqus as a company as they revisit their values, change policies, or even just grow as a business. I think I may have been grandfathered into an ad-free plan (although thatās unclear - I have network-wide ad-blocking, and I didnāt bother enough to check if there are ads in the comments). And in principle, I canāt really fault Disqus for introducing ads for unpaid comment tiers, especially without seeing their balance sheet. Maybe the free comments took up much-needed server capacity, and it could be that paid subscriptions werenāt offsetting the costs enough. Or it could be that the company just got greedy, which wouldnāt be too surprising to me either.
But more importantly, I want to see what my blog would look like with less public interaction features.
Outside of tutorials (which I rarely write these days), Iām not entirely sure how valuable the comments are to my readers. In fact, I think sometimes comments can be detrimental to the readerās enjoyment. Humans are a pack animal, and subconsciously we tend to favor things favored by others. So seeing a ā100 commentsā heading might make you think the post is popular for a reason, while seeing āBe the first to leave a commentā would make you consider if the piece is worth reading.
This is the same reason I donāt really like ālikesā and other low effort ways of engaging with content. Mostly because Iād rather have said content stand on its own. Just because something is popular, doesnāt really mean itās good and needs to become more popular. And in part because itās hard for me to resist wanting to chase likes, and I donāt want to spend my time doing that.
Anywho, I exported Disqus comments (which in turn already contained comments I exported from WordPress back in 2014), and I embedded those read-only comments into the existing pages. I wanted to preserve the discourse - especially on the tutorials and more widely discussed posts, and the read-only comments work great for that. Hereās a live example: Prius Adventures, a year later. If you want to do something like this yourself, hereās the commit in question, but I think this might be too niche of a topic to warrant a step-by-step guide.
I replaced the comment functionality with a āļø Reply by email button which you can find at the bottom of this post. Yeah, that button simply opens your email client and pre-fills my address and the email title. Thatās a private email, that only I will read, that I wonāt post publicly, and others wonāt see. But we might have a great conversation, which is better. Why donāt you give it a shot, and tell me if this message resonates with you?
Iām not severing my site from the rest of the Internet here, no. Ever since I learned about Webmentions, I eventually want to add Webmention support to my site at some point. But I might only filter it down to Webmentions from long-form posts on other sites, rather than comments or likes. Itās definitely a no on likes for me. Follow along and see what Iāll do.
P.S: Late addition right before hitting the publish button. Iāve just stumbled upon āWhy Comment Sections suck - re:I want to comment on your blog postā from Kamiās Corner (thank you, winther blog postroll for aiding my blog discovery efforts). Thereās a nugget inside that summarizes my core desire more eloquently:
When you want to make a response you have to either email the person or write a response post. That small barrier to entry cuts out most idiots. Because you have to actually care about what you have to say to sit down and write an email or to make an entire response post. You have to put in some effort.
Iām excited to see what the future of my blog will look like with the new functionality.
I don't want a large audience
Iāve had this blog for 13 years now. I started it as a way to publish my programming journey, as I was learning C, Python, and tools like the command line or Vim. Since then, Iāve matured, both as a software engineer and as a person. Different things interest me these days. Iāve been managing engineers for some time and have things to say that I havenāt yet shared. Iāve also gotten into personal finance, traveled and lived out of my car for a year, and Iām even starting to enjoy engaging in the AI discourse. In the past couple of months, Iāve moved further towards subjective opinion pieces, which I enjoy greatly.
While my blog was never huge, I enjoyed my few thousand monthly users, most through organic search. This was primarily driven by the tutorial-like nature of my writing. Even when I would talk about my experience traveling the US in a Prius, Iād turn the article into a tutorial with step-by-step guides and tips.
After taking a little over a year of a break from writing, Iām back at it again. It was really the time afforded to me by my paternity leave that reminded me how much I like writing, and how much I enjoy others connecting with my writing. And now I donāt particularly care about wide viewership; I am more interested in the discourse, in the community.
A friend of mine, Patrick, started a newsletter after retiring. He sent a thought piece on AI to a humble private mailing list of 20 people. I think I was the only person who responded, but weāve had some fantastic conversations. In fact, Patrick inspired me to write about AI, and even to pivot a small part of my role at Google to be defined by driving responsible AI adoption.
Since then, Iāve learned of new blog discovery mechanisms through communities like IndieWeb. I discovered my personal favorites like the winther blog or the uncountable thoughts. I even found some local San Diego bloggers on the chain, like Anthony Ciccarello, gRegor Morrill, or Joe Crawford. Itās been exciting to explore this new world of interconnected blogs.
Itās super engaging being able to connect with fellow bloggers. I can respond to their writing over email, get a thoughtful message, or even see a response to something I wrote on their own blog. Iām enjoying the quality local discourse and happy to be following local organic free-range fair trade blogs.
Seven years of Mastering Vim
Oh, how the time flies. I published the first edition of Mastering Vim in 2018. Since then, it has been translated to Japanese and received its second edition.
In 2021, I wrote about how much money publishing Mastering Vim has earned, and I think nowās the perfect time to get an update.
Mastering Vim was never meant to become a bestseller, but it did fairly well given the fact that I havenāt done much promotional work and havenāt been particularly active in Vim space since then.
For the first edition of the book, I receive 16% royalties. For the second edition, I negotiated a step-up based on publisherās net receipts (over the lifetime of the book): it starts as low as 16% and climbs as high as 25% once the publisher nets Ā£40,000 from my book.
Hereās year over year sales and revenue data, you can see it to be predictable and steady:
Year Copies Revenue 2018 284* $363* 2019 533 $1,433 2020 548 $1,533 2021 458 $1,752 2022 386 $1,403 2023 279 $1,112 2024 381 $1,206 * Mastering Vim was published in Q4 2018.
On average, I earn about $5 for every print book sold, and a bit over $2 for every ebook sold.
In addition to book sales, I also receive a portion of translation fees (for the Japanese translation), as well as subscriptions to the publisherās service (something I do not promote nor care about).
Book sales Translation fees Subscriptions $8,803 $1,669 $572 In the past seven years, Mastering Vim has sold close to 3,000 copies (not including the Japanese edition, which I have no visibility into). This has grossed slightly over $11,000 in total revenue. While this amount is definitely not enough to live off the royalty income, I have truly enjoyed learning more about the domain and becoming a subject matter expert throughout the writing process. Having a published book feels like a legacy artifact that I can be proud of. Of course, the quarterly royalty statements are a nice bonus as well.
If youād like to see the book for yourself, Mastering Vim can be picked up on Amazon.
Second Edition of Mastering Vim
I havenāt posted on my blog in a while. Besides life getting in the way, most of the stack the site was built on has become obsolete and out of date. I couldnāt really do much without a major refresh, which I finally managed to complete a few days ago.
Now, for a belated announcement: I published the second edition of Mastering Vim (a little over 9 months ago)!
This edition features new (charming) illustrations, updated and improved code examples, and teaches you how to use Vim9script. Iāve also removed about 30 pages of unnecessary content from the first editionāIām getting better at writing, after all! I believe the second edition of Mastering Vim is a fantastic introduction to Vim.
Iām also pleased to mention that this edition has been thoroughly edited by Christian Brabandt, a fitting successor as the lead of the Vim project after the passing of Bram Moolenaar, the original creator of Vim, in 2023.
If that sounds interesting, consider picking it up on Amazon (unfortunately your local bookstore is unlikely to stock one).
Journaling for work-life balance
When writing about snippets at Google earlier this week, I omitted a fairly important bit: how lists and journaling help me create distance between work and life. This became especially relevant in the pandemic, as I had to work with my therapist on being able to mentally disconnect.
I wrote about my strained relationship with ToDo lists before: all the way back in 2014. Back then I focused on moving away from a monolithic ToDo list, and focusing on just a few major things Iād like to accomplish each day. I continued to do this, but with some changes to my philosophy.
Iām back to keeping a ToDo list, but itās a bit more complex than a single list I used to keep. I split things I care about by days, weeks, and months, and I review these lists regularly.
Last year I learned about bullet journaling, often shortened to āBuJoā. Akin to artisan coffee and avocado toast, this hipster friendly and highly marketable approach has a solid foundation. At its core bullet journaling consists of two parts. First is a consistent and simple notation for tasks, notes, and events: some simple guidelines on how to document what happened, what will happen, and what you need to remember. Second part is a rule set on organizing these lists: daily and monthly notes, custom logs, and so on.
I rigorously keep daily notes about work, meeting annotations, records of important thoughts and ideas, and things I need to do (or have already done). This helps me leave work at work ā or more precisely leave work in a journal. Once itās closed - Iām done for the day. Everything I need to think about is written down, and thereās no need for my mind to wonder back.
Some weeks I omit note taking, and the contrast in my well-being is jarring. My mind wonders back to the events of the week, and I even have trouble sleeping some days. And no one wants to dream about work ā Iām sure as hell not paid enough for that.
Another technique I picked up from the bullet journal keeps me from getting overwhelmed and keeping focus. BuJo advocates for regular migration of ToDo items ā meaning that you should be crossing out and rewriting the same thing over and over again, day by day, week by week. At some point it becomes either to either do something about those ToDos, or choose not to do them altogether. Either way, itās a huge weight off my shoulders.
And this is where the aforementioned snippets come in. At the end of the week, all I have to do is go through the weekly set of notes, and transcribe noteworthy bullet points. Thatās the time I take to look back at my week, migrate tasks I choose to revisit at a later date, or cross off tasks I choose not to do.
How I write
I donāt blog consistently, and Iām still struggling to find my voice. I find writing difficult for many reasons, especially when it comes to identifying topics worth writing about. I want to bring a combination of passion, expertise, and a fresh perspective into a topic ā which makes finding a theme to cover challenging. To top it all off, English is my third language. Getting the content to flow well is difficult, and I donāt always have the ear for it.
In contrast, I find it straightforward to write once I know what to write about. In part due to the volume of writing I have to do for work: as a technical lead at Google I routinely use extensive design documents to communicate my ideas. I also wrote a book once.
I found a set of techniques that work well for me. I donāt know if these techniques help me write higher quality material ā youāll be the judge of that. But these techniques help me express ideas from my head and onto paper. Hopefully in a digestible and entertaining format.
I never took journalism 101. Like with many things in live, I found my own way of doing things: why take an easy path, when a difficult one could work just as well?
I break down writing process into a set of distinct steps. I start with some preliminary research, write an outline, do my in-depth research, write a wine draft, turn that into a coffee draft, and finally proofread the result. I try to take breaks and get some distance from whatever Iām working on in between these steps.
Preliminary research
This is a step zero, although it might not apply to everything I write about. This is a breadth-first, āopen as many tabs as computer can handleā type of research. Thereās no in-depth reading at this point, and only high level information is consumed.
I picked up this approach from my wife, who is an indisputable queen of online research. I find it tempting to dig into the first source I find. Stopping myself from digging too deep helps me understand the information landscape.
For instance, when writing about financial independence in Cote dāIvoire (a topic I know nothing about) my preliminary research consisted of: a brief review of countryās history, a list of major geopolitical events, investment landscape, and identifying trustworthy sources which could tell me more about currency stability or tax situation.
Iāve also looked for existing sources on the subject, but there wasnāt any.
Outline
This post started with an outline. An outline is crucial to pacing and identifying areas of focus. Chapter summaries in a book, outlining headings in technical documents, or putting together a bulleted list for a blog post ā you name it.
Outline only needs to make sense to you, and you donāt have to use complete sentences. I started with the following outline for this post:
- I write a lot
- Quantity doesnāt mean quality
- I donāt publish most things I write
- A lot of practice with technical docs
- Outline
- Wine draft
- Coffee draft
An outline is not final, and it evolves as I write. For instance, by the time I wrote the bulk of this post, an outline evolved ā something was removed, and a whole lot of things were added:
- I write a lot
- Double down on how bad I am at writing
- Quantity doesnāt mean quality
I donāt publish most things I write- A lot of practice with technical docs
- Double down on how bad I am at writing
- Preliminary research
- Write an outline (youāre here now!)
- In-depth research
- Write wine draft
- Write coffee draft
- Proofread the result
I like to keep an outline on the screen as I write, as it reminds me to write in context. I often jot down a brief outline when I have ideas about writing something: this way I donāt have to start from scratch when I sit down to write.
In-depth research
This is where I actually read through dozens of tabs I opened during the preliminary research. This is where I spend the most of my time for topics I donāt feel particularly comfortable with.
I make a point to time box research tasks. Itās easy to go down a rabbit hole when researching a topic, and thereās always more to learn the more you understand the subject. Putting a time limit on each research topic helps me stay on track.
Wine draft
Step 4 out of 6: this is when I start writing.
I found it near impossible to write without separating creative stream of conciousness from the editing process. The āwine draftā is the first attempt at filling in the blanks. The grammar can be all wrong, and the sentences donāt always have to make sense. Itās not necessary for the content to flow or read nicely.
This is where the outline really helps, because writing top to bottom is generally very difficult. Filling in the blanks under the outline however is much easier. I often find myself jumping between different headings and writing a little bit here and there under each heading.
Prioritizing cadence during this step helps, as a stable writing rhythm helps me enter the state of flow. To stay in the flow, I have a wine draft authoring rule: no sentence-level editing. Moving paragraphs or headings around is fine, but changing sentences is generally not.
Thatās the goal - get as much content out as possible, no matter how much the language rules get abused. I find it easier to edit down a boatload of content, rather than struggle to come up with the missing pieces when editing.
This is the stage when I decide if the content is not worth publishing ā many of my wine drafts never see the light of day.
I find accompanying wine mandatory, but whiskey or tea works in a pinch.
Coffee draft
After the wine draft is complete, I take a break. Often couple of hours is enough to create a distance between me and the text. A coffee draft requires more focus and attention. This is when the messy draft takes shape and becomes (hopefully) readable. You tell me.
I make my way down, sentence by sentence, turning ramblings of a madman into a coherent narrative. I rearrange sentences, correct syntactic and grammatical errors, and liberally remove what doesnāt contribute to the narrative. If the wine draft is particularly incoherent, I simply rewrite each paragraph one by one.
This is when I add illustrations if need be. A coffee draft is nearly the final result, barring typos and minor mistakes.
Coffee helps here, but, unlike with a wine draft, is not required.
Proofreading
The final step involves good old proofreading (unless you have a proofreader: it was great having one when working with a publisher).
I try to proofread in a different software suite, or with different fonts and colors: it helps create further distance between the content and I. For instance, I write this post in Vim using Markdown, but I proofread by reading the final preview using my blogās visual theme.
It often helps to read things out loud too: anything you can do to change up the way you perceive the text.
And finally itās ready to be published: ta-da! This method hasnāt failed me yet, be it for writing Mastering Vim, technical design docs at Google, or blog posts like this one. Fingers crossed itāll continue working well for me.
- I write a lot
How much does writing a book earn?
I write about Vim ā a modal text editor ā a lot. In fact, in early 2018 I was approached by Packt Publishing ā what Iāve later learned to be a āquantity over qualityā publishing house. Over the next 6 to 9 months I wrote a 300-page āMastering Vimā.
It was a stressful endeavour, with a publisher rushing to meet internal deadlines and eventually sending an unfinished draft to print. There were many highlights too, like actually cranking out 300 pages of material, or getting to work with Bram Moolenaar ā the creator of Vim himself. Now that a few years have passed and the book is at its 3rd edition, complete, and re-released ā Iām a lot more happy with the result.
I can write a whole other essay about my experience working with the publisher, but thatās a horror story for another time.
I didnāt write to make money, but itās nice seeing a couple of hundred dollars trickling in every quarter. Putting together spreadhseets is my favorite past time, so hereās a breakdown of my earnings from the time I wrote a book with Packt.
As of April 2021, the English version of my book has 14 reviews on Amazon averaging at 5 stars (thatās more than I would hope for), which likely helps keep the sales at a somewhat of a steady level.
I was signed into a default ā16% of net receiptsā contract, with a $2,000 advance given out to me. The advance was split into 5 milestone-based installments: the first preliminary draft, 6 preliminary drafts, the remaining preliminary drafts, the final drafts, and the publication. Although I didnāt urgently need the money, and the publisher may have just sent it as a bulk $2,000 payment after the publication.
Eventually I received a PDF for the first quarter of my book being sold⦠And here are the financials for Q4 2018:
Print # Print $ E-books # E-books $ 10 $55.50 274 $307.70 A whopping 363 dollars and 20 cents in royalties! I didnāt really think anyone would be interested to read the book, so seeing 284 copies sold I was pretty ecstatic!
Selling printed books seems to pay $5.55 per copy, while e-books only bring me $1.12.
Now I didnāt see any of that money, since I would have to āpay backā the advance. I know itās called āthe advanceā, and I knew that I wonāt be getting that first check in the mail ā but it sucked a bit nonetheless.
After that I received some great news ā my book was going to get translated to Japanese! During my last trip to Tokyo I made some friends who were interested in Vim as much as I was, and one of them - Masafumi Okura - decided to translate āMastering Vimā into his native language. The legend found close to three dozen mistakes in my book too, and is solely responsible for the third edition of Mastering Vim!
Turns out the translation rights are expensive, and Iām getting my cut as well ā $1,586.26! Thatās more than the first quarter of sales!
Packt advertised my book for a few months or so, but they seemed to have quickly lost interest. I received my first 5 star review on Amazon though, which was great! I spent the next month refreshing Amazon reviews daily, after realizing that to be a path to acquiring a mental illness.
2019 came, and here are my next 4 quarterly statements:
Quarter Print # Print $ E-books # E-books $ 2019 Q1 29 $141.89 202 $337.49 2019 Q2 15 $77.53 71 $194.26 2019 Q3 19 $100.09 57 $207.68 2019 Q4 23 $118.55 117 $255.17 I sold 86 print books and 447 e-books in 2019. You can see the higher numbers correspond to seasonal sales. Notice the prices for Q3 and Q4. E-books sold in Q3 pay me as much as $3.64 per copy, while in Q1 itās a meager $1.67 per book. Print edition payout stays much more consistent.
Altogether, I earned $1432.66 from my first full year of selling āMastering Vimā.
Here are my 2020 earnings:
Quarter Print # Print $ E-books # E-books $ 2020 Q1 26 $131.61 112 $414.12 2020 Q2 22 $106.67 77 $379.61 2020 Q3 26 $141.17 74 $325.97 2020 Q4 45 $236.69 166 $458.07 Thatās $1,533.38, a $100 more than in 2019. The patterns seem rather predictable, with Q2 and Q3 being slow, and Q1 and Q4 displaying a noticeable spike.
Finally, Packt offers service subscriptions ā I believe the subscription is for the courses they offer, but I canāt say for sure. Payout per subscription is small, and Iāve earned $158.10 over the 9 quarters since publishing āMastering Vimā.
Across $3,329.24 in book sales, $1,586.26 in translation fees, and $158.10 in subscriptions, this adds up to $5,073.60 over the 2+ years the book has been in print. Looks like it can make for a decent supplemental income if you write enough books, but Iām saying that based on a sample size of one.
Throughout this time, my earnings per copy average at $5.16 for a print, and $1.93 for an e-book (using weighted averages for quarterly sales).
And hereās the last number in this post ā this one purely for fun. Based on the 16% royalty rate, Packt probably earned $31,710 from āMastering Vimā so far.
Writing for fun
Iāve had this blog since 2012, and Iām only now getting close to my 100th post. All because Iām a perfectionist, which sure as hell didnāt make me a better writer.
I love writing, and I feel like Iām getting better after every piece I write - be it publishing blog posts, journaling, countless design docs, navigating email politics, or writing a book. I write a lot, about many different topics - if Iām interested in the topic for at least a few hours - you can bet Iāll write about it.
Then how come this blog barely gets one post per month?
I meticulously research and edit, generously discard drafts, and it often takes me days strung across weeks to put something together. Something that I feel is worthy of being displayed next to my name. Perfectionism at its core, attached to hobbyist web content.
I struggled with this when writing Mastering Vim too - the first edition was rushed out by the publisher long before it was ready, with various errors and inconsistencies in it, and a few downright unfinished bits. It took over a year of me avoiding even thinking about the book and two more editions to become comfortable with merely sharing that I published a book.
And all of this sucks the joy out of writing. Iām not a for-profit writer. Itās not part of my career path, and I obviously didnāt go to school for it (not that I went to school for anything else). And it sure as hell shouldnāt be grueling to have to come up with what to write.
This blog has a rather modest following - it brings in around 3,000 readers a month, with a few regulars sprinkled here and there (honestly - I would love to meet at least one of you weirdos someday). I donāt target a particular market niche, I donāt have a content or SEO strategy, and I opportunistically monetize to cover the website running costs.
Whatās crazy is that nearly half of that traffic is organic search for a quick note I jotted down back in 2013! I could spend weeks putting together a literary love child and not even get a fraction of attention this back of the napkin screenshot received.
Back in 2012 I used this blog as a way to categorize my discoveries about developing software, and later what Iāve learned about working with people. Over the years I gradually expanded to travel (including that time I lived in my car for a year), and general things I like - like keyboards or tabletop role playing games.
Iām putting this together to remind myself that I love writing and why I started this blog. That not every piece of content requires hours of research, or even have a clear audience in mind for that matter.
I wouldnāt have blinked an eye flooding this blog with unfiltered thoughts, perspectives, and experiences if it wasnāt attached to my real world persona. Itās easy to throw out something I perceive as āunworthyā anonymously. Itās mortifying to publish such a piece at my-first-name-last-name-dot-com.
So here it is, the first post I wrote purely for fun! Iām still taking a light editing pass on it, and drastically cutting it down in size - Iām not a savage! But unlike in my usual writing, thereās no clear value Iām providing or a skill Iām trying to teach - and thatās a huge step for me. Feels good!
My book has been published!
Over the past six to nine months Iāve been working on a book - Mastering Vim. Mastering Vim is a passion project which is meant to take the reader (you) from zero to a hero (future you): from knowing nothing about Vim, to becoming a power user. I cover many of Vimās mysterious commands, philosophy behind the beloved editor, configuration tips, a plethora of community created plugins, as well as creating your own plugins.
Mastering Vim was written with support from Packt Publishing and was kindly reviewed by Bram Moolenaar (website) - the creator of Vim. Many people made this book possible, including VimConf Japan crew, who kindly hosted me earlier this year. Thank you to everyone for making Mastering Vim happen!
Give it a read and let me know what you think, Mastering Vim is available on Amazon!
P.S: This post, like many others, is written in Vim.
750 words a day
Iāve had increased interest in writing throughout this year. In addition to being a pleasant and fulfilling activity, it shown a number of benefits in my everyday life and career:
- Composing emails became faster and easier. When you have to reply to a couple of dozen emails a day, speed and attention to details matters. Writing more taught me to write more concise emails which are easy to read.
- Writing a lot isnāt a problem anymore. If I have to write documentation, comment code, or just put together a very long email - Iām not put off by the idea. Iām excited about it.
- Typing speed went up. I already touch type, and constant writing practice increases the acquired speed. Fast typing makes life easier, speeding up mundane tasks, freeing up brain power for more costly activities.
- Itās easy to keep a condensed work log to highlight the issues of the day. Tough programming issues, āEureka!ā moments, meeting notes - this historical data saved me hours or even days of repeating my mistakes.
A while ago, Iāve heard of a thing called ā750 wordsā, a site built around a challenge to write 750 words a day in order to improve writing skills and unleash creativity. This looked like a great idea, and I decided to give it a shot. I prefer to keep my personal entries offline, and I decided not to use the provided service, but to keep a set of plain text files on my local machine. Which worked out just fine. Itās all just text after all.
I lasted for 10 days in a row, which I am proud of (filling up approximately 3 pages a day was no easy task for me). I started of with silly entries about not knowing what to write about, and finished with a piece of a fiction story. Thatās a considerable improvement.
By the end of the challenge I was mentally exhausted. But it taught me a very important lesson: the more you write, the better you become. And thatās one of the main reasons I keep crafting new entries for this blog.
This happened half a year ago, I just never got around to writing about it. I will go ahead and start another 750 words spree today. Maybe this time Iāll be able to make it last for the whole month.
Why should you learn to touch type?
I have a confession to make. Up until recently I did not know how to touch type. I would do what most people around me did: push the keys however which way I felt; make a typo; look down at the keyboard to find the letter I mistyped; repeat the whole process. I would put out up to 50 words per minute with this method, with an embarrassing error rate (which usually went up if I was showing something to someone). I am now terrified to think about those times.
It wasnāt until I stumbled upon Steve Yeggeās article āProgrammingās Dirtiest Little Secretā, that I fully understood the implications of not developing proper typing technique.
Picture the following: programmer Clara is working in a small software company. Clara doesnāt use any fancy IDEs nor extendible editors like emacs or vim. Clara uses Windowsā default āNotepadā program to write and edit her source code. She is defending herself by saying that she doesnāt need any advanced features, and that she knows every keyword she needs to use by heart. She spends hours tediously searching for the files on her computer, opening them in Notepad, holding down arrow keys to get to whichever chunk of code she needs to edit (or even worse - lifts her hands off a keyboard and uses a mouse to navigate the file). Her editor only goes back one step with the āundoā operation⦠But Clara has good memory and she can re-type the code she erased.
What do you think of Clara? You might say that she is wasting her time and she should learn herself a robust editor. And of course, you will be right.
One day, Claraās company hired a new tech lead - Jane. Jane noticed that Clara is very slow at accomplishing tasks assigned to her. So Jane showed Clara how to save a lot of time by using an advanced editor she uses. Suddenly Clara discovered a whole new world in front of her: it became much easier to read the code with parts of it highlighted, and the new text editor showed her when she would make a typo or a big error - even before Clara compiled the code. And Clara didnāt even have to re-invent the code she deleted, she could just travel down the undo tree back to the time when she erased the code: all of a sudden it felt like she had access to a time machine! Jane even told her that there are plugins which can write some code for Clara! How amazing is that? It took a while for Clara to learn how to use the new editor, but after a few months, Clara became almost as fast at doing her job as Jane. Maybe Clara even received a promotion from doing so many things in a short period of time.
If you donāt know how to touch type - you are Clara. You are wasting your time. You look ridiculous to your colleagues when you stare down at your keyboard while typing. Interviewers secretly laugh at you when you make five errors in a four-letter word. You are frustrated by even the remote possibility of having to write more than you absolutely have to.
Writing is a big part of the job as a software engineer. You write code, documentation, ask questions. Most importantly, you have to communicate with your colleagues and users. Most of this interaction is written: itās a great form of communication for the job - written notes can be saved and searched through later. As a software engineer, you bring value to your company and its users. And due to the arcane nature of the craft, communication becomes crucial. You can be the smartest programmer in the world and you can write the best piece of software out there, but no one will know about it unless you communicate why is it so great, what it does, and how to use it.
By learning how to type properly, you turn a keyboard into an extension of your hand. All you have to do in order to type - is just think of words and sentences. Your muscle memory does the rest.
I now type somewhere between 60 and 80 words per minute with what I find to be a low error rate - and I have been touch typing now for little over a month. If you care for your craft, you have no excuse for not mastering a proper typing technique.
Writing for the sake of writing
This is my first article out of what I hope will be many. I started this blog in 2012 and Iāve never written a single biased entry: just dry technical manuals, tutorials, and guides. This has lead to a number of page views from programmers in distress, but getting a certain amount of views was never the goal of this blog. To be honest, I am not even sure if I had a goal in mind. Everyone had a blog, and I thought so should I. I was hoping it will assist me in getting a job I will enjoy by increasing my online presence (and it may have). Maybe I was out for some online reputation and (knowing myself) fame. Of course, none of this happened.
What did happen, is that I created a collection of technical notes which no one cares about until they have a problem with something they are working on. And after the issue is resolved they close the page and never open it again, as one would do with a countless number of other programming blogs and tutorial collections.
Where am I leading with this?
Lately I have been (multiple times) hit with realization that software engineering is less about writing perfect (or any, for that matter) code, and is more about management and people skills. The very people skills most software engineers lack due to choice of profession (or maybe the other way). I spent some years reading books and articles on how to optimize, refactor, and design code for which any programmer would be praised and renowned for. I have even made some progress in reaching this āmagic goalā.
Donāt get me wrong, writing readable and reusable programs is an essential part of the job, but it is only one scale on which a professional programmerās performance is measured. And itās a relatively small scale, in comparison to others.
As a professional, you have your skill of assessing priorities, productivity, time management, patience, an active learning process, and of course, the above mentioned communication skills. This post is about just that: transmitting ideas and concepts to readers.
I am not very good at human interaction. I am an introvert. Even worse, and as many of my colleagues do, I mumble something or smile awkwardly when passing someone in a hallway. What is the social protocol for such an event anyway? Whatever it is, I donāt think I am doing it right.
Itās hard to evaluate my verbal communication skills. Maybe people have hard time understanding the points I am trying to bring across in conversation. Being a foreigner, some people probably find it challenging to understand every word I say. In addition, with my tendency to slur words when I am tired or excited - itās probably annoying to talk to me sometimes.
I can say with confidence that my writing skills suck. I spend by far more time than I should composing emails. I write a paragraph and then I delete it. Writing is a big challenge for me. I am quite sure this article is very hard to read. And I have a very strong feeling no one will read this article. Except for maybe, my wife - who is a fantastic writer and will point out every mistake Iāve made. This text will have to be revised many times before it becomes even slightly readable.
I started looking around for ways to improve the way I communicate my thoughts. I found a large number of articles, rules, and techniques which supposedly should instantly make you a better writer. This of course might be true if you are a professional writer or a student majoring in literature. I am neither. I stumbled upon a great article by Jeff Atwood: āHow to write without writingā. Reading it gave me the push I needed to get over the embarrassment of the inevitable failure from writing poorly. And I know I am writing poorly, Iāve read the stuff I wrote.
You donāt expect yourself to wake up one day and write awesome code, do you? No, you wake up, go to work, fail, and maybe after months and years of practice you become better at putting together pieces of code. The same rule applies to writing. Write a lot and often, and read what smart people write. Try to be even better than them. Fail. Repeat.
This is why I am starting to write less technical entries. Abstract topics will let me hone my writing skills. All I have to do is just stick to some sort of a writing schedule. Iāll come up with things to write about, I am a pretty loud person.
P.S: My recently acquired touch typing skills have come in handy in composing this. I would have previously never had the patience to finish the wall of text I am looking at right now. Go learn to type faster.