From Zero to One Million Views

Seven guiding principles for writing technical posts

Daniel Godoy
Inspired Writer
9 min readJun 16, 2022

--

Photo by Daniel Cartin on Unsplash

One million views!

To be honest, I thought this magnitude of viewership was reserved for celebrities only. I cannot even say I had always dreamed about having this many views because I thought such a feat would be forever beyond my reach.

But here we are, 4 years later, celebrating this mind-boggling milestone.

In this post, I will tell you how I got this far through work, authenticity, and, of course, luck!

"Luck is what happens when preparation meets opportunity."

Seneca, Roman philosopher

You can look for opportunities, of course, but in my experience, it is usually the other way around: the opportunity finds YOU (and you may not even realize it at the time)! But, if you're prepared for it, you're gonna be in luck!

My journey began with…

A Single Post

"The journey of a thousand miles begins with a single step."

Lao Tzu, Chinese philosopher

Likewise, the journey of a million views begins with a single post :-)

As a data scientist and developer, I've been told several times: "you should write", or "you should blog". But, being a data scientist and developer, I must confess that I always preferred writing code instead. No surprises here, right?

So, what changed?

First, I procrastinated. Then, I procrastinated some more. But, at some point, I decided to give it a try, and finally wrote a blog post. And I liked it!

  • I liked the topic I was writing about (that's very important, by the way),
  • I liked the act of writing itself (it turns out, it's not so different from coding),
  • and I liked the thrill of getting feedback from readers all around the world (claps and views can be addictive).

Overcoming Procrastination

For me, procrastination kicks in whenever I am about to do something new or uncertain. Writing a blog post was surely something new, and the feedback was uncertain. So, what did I do?

I went to my comfort zone, set up camp there, and started coding!

Coding helps you organize your thoughts, and, better yet, it gives you instant feedback — if you're doing something in the wrong order, or if you forgot anything, your code won't run, or it will raise errors. As Richard Feynman put it:

“What I cannot create, I do not understand.”

Richard Feynman

BTW, I like this quote so much that I used it in all my books!

I chose a topic I wanted to dive deeper into, something I wanted to learn more details about it, something I wanted to truly understand.

So, I started coding it, fixing errors, debugging it, and understanding the inner workings of that topic through coding. It was familiar, it was interesting, and I was learning. Bye-bye procrastination!

Takeaway #1: Enjoying yourself is key!

If you're not curious about the topic you're writing about, if you're not enjoying yourself, procrastination is likely to take the best of you.

The Hero's Journey

Once your code is working, and you know exactly what each line of code is doing, you're halfway through! Now, you need to start writing (text, that is)!

To write is to tell a story.

So, which story are you telling?

The story of your learning process, from understanding the topic, to actually coding it. You already have the draft of that story in your head — you developed it in your head while coding. So, your job now is to dump it on paper (or screen).

During the coding part, it's very likely you had some issues:

  • maybe you misunderstood some aspect of the topic you're addressing, and had to go through multiple sources to get it right;
  • maybe whatever the language/framework you're using is poorly documented and you struggled a bit to get it working the way you want;
  • maybe your code looked fine the first time you ran it, but then you realized you overlooked some edge case.

Right? We have all been there — going through multiple answers on StackOverflow, at different stages of development, until we can put all the pieces together to finally make it work!

Takeaway #2: Overcoming obstacles IS the story!

Actually, any story is about overcoming obstacles. Take this very article: I am telling you the obstacles I had to overcome to actually write a blog post, starting with overcoming procrastination.

In fiction, that's the task of the hero. In technical posts, though, that's your task. Yes, YOU are the hero!

The fact that you had to overcome these obstacles, and that you're presenting the solutions you found in an organized fashion — the story — has immense value to your reader.

Just beware that, sometimes, it's easy to get lost in the details. It's important to clearly state each problem, and how you tackled them, but don't lose yourself in unimportant details. In most cases, you can safely skip over the failed attempts at trying to solve a problem (and trust me, there will always be many of those).

On the other hand, some details are commonly skipped over, but your readers may actually benefit a great deal if you take your time to take a closer look.

The best example I can think of is the "it's easy to see that…" sentence you'll find in every other technical paper, where the 17 intermediate steps that will get you from the initial state to the final one are simply ignored.

Oh, c'mon!

Maybe it's easy to see it if that's the topic you have been studying for years — but that's likely not the case for everybody else. So, try to put yourself in the shoes of your readers, and ask yourself: which (other) obstacles they may find that I wasn't aware of?

Takeaway #3: Challenge your assumptions — put yourself in the shoes of your readers, and look for hidden obstacles.

Just Write And Then…

“Keep writing.”

Johnny Writer

Not a real quote, I know, but I enjoy so much these silly quotes and jokes, that I include them in almost every piece I write. As I said in the first section, you should enjoy yourself, not only while coding but also while writing. So, here it is :-)

So, don't pretend to be someone you're not.

I like writing using an informal tone as if I were having a conversation with you, the reader. Sometimes I even put myself in your shoes and ask myself questions on your behalf, trying to guess what you would ask me if I were teaching you the topic.

I like making silly puns and jokes. That's my writing style, and that's what feels natural and enjoyable to me.

Takeaway #4: Use your own voice — writing should feel natural, don't pretend to be someone else.

Fortune Favors the Bold

Don't settle for the traditional or customary way of presenting a topic. Just because a given topic is always introduced in a certain way, and it is always followed by the same other topics, it does not mean it is the best way of presenting it!

Most of the time, something is the way it is simply because it has always been like that. It's easy and convenient to go with the flow, and do it like everybody else, right? Well, yes, it may be easy and convenient, but that's not necessarily the best!

Remember the story you developed in your head while coding? Think about what you learned, and most importantly, think about the order in which you learned every topic and sub-topic. Does this order resemble in any way what you'd find in a textbook? My money is on "no, it does not". So, why is it presented like that? Maybe it's just because it's easy and convenient?

Takeaway #5: Tell the story as YOU see it — challenge the status quo and don't be afraid to stand out from the pack.

Your readers will thank you :-)

Mine did. Let me quickly tell you about my most popular blog post:

It was published in November 2018, and it has over 550,000 views (as of June 2022).

The funny thing is, the topic is fairly basic, and maybe because it's fairly basic, it is completely overlooked, and it's not given the attention it deserves. So, there's a lot of hidden demand for it — but I did not know it beforehand!

I NEVER expected this post to reach half a MILLION views, and be cited over 40 times on Google Scholar (!). So, I've learned a valuable lesson here: no topic is too basic!

Takeaway #6: No topic is too basic — there's a lot of hidden demand for good foundational material.

But, if I didn't know it beforehand, why did I write it? That's why:

"I was looking for a blog post that would explain the concepts behind binary cross-entropy / log loss in a visually clear and concise manner, so I could show it to my students at Data Science Retreat. Since I could not find any that would fit my purpose, I took the task of writing it myself :-)"

By the way, quoting yourself feels weird!

On the flip side, I wrote a post that I was positive it would go big, and it flopped like no other (it's actually my least popular blog post).

It was published in November 2018 (I wrote it a few days after the binary cross-entropy post), but it has only 2,000 views (as of June 2022). I really thought the parallel between a Machine Learning workflow and cooking pizza would be interesting to lay people, but no one seems to care about this post :-)

Takeaway #7: Write about many topics — it will improve your chances of hitting jackpot, but don't overdo it!

But, please, don't get carried away: when I say "write about many topics", I don't mean chugging half-baked short articles every day: there are plenty of those already!

You can't tell a good story, one that's valuable to your readers, if you're in a hurry. It takes time to tell a good story— that's the cold hard truth.

So, I repeat myself: your readers will thank you if you take the proper time to tell them your story.

It's the Eye of the Tiger

"It's the thrill of the writing."

Made-up lyrics — how awesome is that? :-) Besides, that's not the only thrill you'll get. Once your post is published, it can either go BOOM or BUST. But, until you actually know which one it is, the sky is the limit.

Back in April 2018, after my post was accepted and published in Towards Data Science, I started refreshing my statistics page on Medium every minute, to see how many views it got:

I made a screenshot when it reached exactly 1,000 views! Image by author.

The fact that my first post was a big hit (from my perspective, that is) was thrilling, and it motivated me to write more. Maybe I wouldn't be here telling you this story if that first post was a flop — who knows?

By the way, despite reaching 1,000 views pretty fast, that post has only 18,000 views in total (as of June 2022). So, I thought it was a big hit, but, in the long run, it really wasn't.

You probably noticed that I'm still far from the 1,000,000 mark, considering the posts I've mentioned so far. That's because we're missing the runner-up:

This post was published in May 2019, and it has 312,000 views (as of June 2022). I received amazing feedback from my readers, and this post was the starting point of another journey, one that would lead me to self-publish my own series of books:

But that's another story!

And, in case you're counting, the remainder of the views (to get to one million) are scattered across a handful of other well-performing posts (40k, 20k, 12k, 11k, and 10k views), and many others that didn't make the 10,000 views mark (yet).

And that's the end of this story!

Wrapping Up

By sharing my own experience, I hope to have inspired you to start (or keep) writing posts about technical topics :-)

And, for easy reference, this is a summary of the takeaways:

#1: Enjoying yourself is key!

#2: Overcoming obstacles IS the story!

#3: Challenge your assumptions.

#4: Use your own voice.

#5: Tell the story as YOU see it!

#6: No topic is too basic.

#7: Write about many topics.

If you have any thoughts, comments, or questions, please leave a comment below or reach out through my bio.link page.

If you like my articles, please consider directly supporting my work by signing up for a Medium membership using my referral page. For every new user, I get a small commission from Medium :-)

--

--

Daniel Godoy
Inspired Writer

Data Scientist, developer, teacher and writer. Author of "Deep Learning with PyTorch Step-by-Step: A Beginner’s Guide" https://pytorchstepbystep.com