For those interested, i wrote a blog post on this exact topic[1] about a year ago.
1: https://blog.benroux.me/untold-benefits-of-a-software-blog/
When you start something new or run in to an issue doing something create an article.
Detail what you are doing and what documentation your are following. Outline the steps, pitfalls/potential pitfalls and how to overcome them.
Almost everything we do whether something new or doing something new detailing the steps and providing tips to complete it or improve it is going to help someone coming down the same path after you.
So take inspiration from your own work.
If you use a framework or language that's a good topic to dump all the knowledge you come across for others following in your footsteps.
Every topic has been written about, but there is always new versions of everything so detailing the steps again and including anything missing from the docs will be helpful to people.
Learn to write for yourself first. If you set up Raspian on a Raspberry Pi over the weekend, write about it! If you popped a CentOS install disk and set up a server, write about that. It doesn't matter if there's 10000 blog posts about the same exact thing, you can turn even mundane topics interesting as long as you have a good writing style- and that's what you're going to be exercising by blogging.
I have thoughts on Xfinity's value, YouTube TV's ad policies, Hulu's DVR restrictions, Roku's awesome interface - all good useful resources for those researching the same process.
In contrast, some weekends I'll sit down (without an idea) to compose a new blog post and frequently hit a wall.
If your blog is the first place where a reader runs into a particular information or insight, they will find it valuable, even if chronologically, someone else wrote about it first.
There are like three people in the world who have original ideas (the only example I can think of right now is Robin Hanson), but the number of people with successful blogs is much higher.
Worry about being the best written explanation.
For instance patio11 has gathered a huge blog audience, and he didn't do that by writing about things no one else had written about, or knowing more then everyone else.
But his writing is fucking amazing, and that's why I can read 20 pages of his writing while being barely able to make it through 3 paragraphs of other authors.
My main point here is, even if you are writing about the most mundane topic, in CS there is bound to be something, a different command line flag, a different point of view, something old rediscovered etc. just by the virtue of writing on it. Will it happen on your first attempt? Probably not.
You can start to write about the most mundane or the most esoteric thing. Only with practice would you find a niche, and there eventually will be some gems.
That's a defeatist attitude that will sap your energy and make sure your blog is short lived.
Now, I definitely understand the sentiment, because there are a lot of smart folks out there writing on the internet. However, it simply isn't true that you don't have anything to say, even on a topic that has been written about over and over again.
What I'd suggest is writing about something that you are passionate about and willing to investigate. And I'd suggest primarily writing for yourself and your understanding rather than to be a famous blogger or find a job (those might be byproducts, but they're unlikely, whereas gaining knowledge is pretty much guaranteed).
The topic could be a problem domain (real estate tech, fintech) or a specific technology (AWS RDS, Google cloud spanner) or even development techniques (TDD, mob programming).
Pointing to other interesting posts and riffing on them is a great way to get started, but do be prepared to spend some time writing original content. Don't feel you have to find your perfect topic immediately, you can wander a bit.
Source: I've been blogging since 2003.
Quantum computing understandable for simple tech people (not quantum physicists). There is so much noise (as in SNR) on the internet about this topic, and I think I have a reasonable grasp of it, but I don't have a big audience nor the time to write it all down. A good source on that would be great.
Machine learning: where are we and does it hold any promise for future work, or is it a dead end beyond optimizing what we're already doing with it? Neural networks sounded like "oh, with enough compute power, we can simulate a brain right?" but so far the models show no level of true understanding whatsoever (to the best of my knowledge).
------
While writing answers on the IT Security StackExchange website, I often find that answers of mine which I found dull and uninteresting (they logically follow from basic knowledge) are popular in terms of views and votes. Usually it's somewhat predictable, but I'm regularly surprised by what people find interesting and useful. One example was about receiving email without a "to" field ('how did it end up in my inbox?'), which I thought was a niche question (only people who run their own mail server would have that, I thought, and they know SMTP right?), but 80 upvotes tell a different story.
And like other commenters said: it's not so much about what topic you choose, but about how well you can explain it. Of course pageviews is your quality of writing multiplied by the general interest level (bad quality but huge interest might still get you a lot of views), but most of the time there turn out to be a lot of people interested if you only explain it well, so the quality matters more than the topic.
If you want to write about what you know, do it. Even if someone else has written about it, you may write about it differently. Maybe your "voice" will reach people that didn't like another blog post about the same subject.
If you decide, as saluki suggested to write about something you don't know; do as he suggest and provide details and references. This could be more interactive, if people are trying to learn along with you.
The key is to write -- both on schedule and as well as you can. Adhering to a schedule means people can easily follow along and know when you are posting. The more you write, the better you get.
I wish there were more good blogs about testing, refactoring and teamwork on Rails projects. Not idealized forms of it, but talking about real refactors.
If you manage to bridge the gap between the real world and theory, that is wonderful. Show me how in a 100k LOC Rails app that's 10 years old how to refactor my User class to obey SRP and I'll follow your blog for life.
It'll cement the knowledge in your mind, and perhaps you'll have insights that others haven't had. If you're aiming to write about stuff no-one's ever written before, you'll never get around to actually writing anything.
Agree with the write for yourself mindset.
I am kind of doing the same thing on my blog https://flaviocopes.com where I write every single day (personal challenge) about some particular thing related to Web programming, and I mainly write for me, because I don't have a good long term memory and every time I need to use X I reference what I learned n months ago about it. That's much better than searching again and again "that post" you remember that clarified the thing for you.
Turns out this is useful for other people too, as I can see in the positive feedback I get.
After some time I started rewriting old posts to improve them / add more things I learned, as your writing style evolves.
So, my advice is, just start and stick to it.
Spark is a niche technology and there isn't a lot of competition. I rank #1 on Google searches for common searches like "spark null", "testing spark", and "spark udf". I haven't done any SEO - I just write what I need to teach my coworkers and Google has picked up my articles.
I'd look for a rapidly growing technology that's relatively new. That'll give you good opportunities to write blogs that rank #1 on Google without doing any SEO.
I am writing all my new posts on a new domain (https://www.mungingdata.com/) and it's harder to get traffic. So Medium might be a good place for you to start.
Import your content into Medium (aka "republishing") and you can keep your new blog and still get the popularity boost from your existing Medium blog: https://ryanbattles.com/post/reposting-content
You could write about new programming languages or new algorithms that just came out. Anything with nice animation is a plus. (I.e. to illustrate the algorithm)
Another thing that I find interesting is interviewing great people in the field. Often, there are questions I wish I could ask them that most other interviewers don't because they're not technical enough.
You can write about weird bugs that you encountered, how you fixed them and what lessons you learned.
At this point, you'll be better served by building a publishing habit than picking the mythical perfect niche. But, if you're concerned, in my experience, all the good niches either have huge amounts of competition or they're so incredibly bleeding edge that they're risky to learn about.
I'd rather see an article describing, in detail and with passion, your particular [esoteric computer configuration], than the most requested topic in this thread. If you don't want to write about X, then no matter how desired or profitable it would be to do so, it's probably not going to be a great article.
My advice would be to write what enthuses and interests you. And if nothing in that domain is something you feel should be written, then maybe consider finding a different outlet for your creative energy. Nobody's forcing you to start a tech blog :)
Do you use any proprietary or closed source products? Many (not all) of those have poor quality, perfunctory documentation, and if you work with them a long time you'll development knowledge by means of experimentation, reverse engineering and support tickets.
Try blogging some of that, or develop it into some alternative documentation, book, or presentation. Become a well-known independent expert.
Also: if you want to be more original, pick more original topics. Write about newer products, current tech-relevant events (any event is tech-relevant if you can see the relevance). Go to meetups and write about them. Do something (it'll be unique enough just because you're doing it) then write about that experience.
Why?
> but almost every topic I think of has been written upon by someone, probably better that what/how I would have written it.
So?
If you want to write the most authoritative blog post on some technical topic, why? Why be the best? Why that topic?
Write what you want to write about. In a year or two you can look back and revise/delete your old posts if you want. Do you think your favorite blogger's first post was amazing? Probably not.
Further, read up popular questions on Stack Overflow within your area of competence and offer your perspective. This will do two things a)- give you confidence that you're writing something for which audience exists b)- improve your understanding of issues as well as you write.
Please take this with a grain of salt since I'm not a good writer myself nor have a popular blog :)
That is, when you're trying to pick a topic, don't look for a topic that hasn't been written about. Look for a topic that you want to write about. Write about that.
Yeah, try to say something different than what everybody else has said. Yeah, try to say it different than everybody else has said it. But mainly, if you don't care about the topic, don't bother writing about it.
> but almost every topic I think of has been written upon by someone
That same logic applies to almost everything, including most creations, products, items, professions, jobs, and certainly most business ideas too. What is truly unique and original? Not much. Some of the best ideas are simply new takes on existing things.
How hard it can be to do a pushup? But everyone has his own style of video and maybe you don't like/understand 8 in 10 then 9th is not that good and 10th is something you like.
With CS stuff like programming, maybe your approach will be understandable for people more that what is already written. Maybe you will pick up some detail that others skipped.
Cryptocollectibles is a new field that is growing and incubating and not much has been written about it.
I'm genuinely curious, I would probably read something about it. They seem useless for the commonplace at surface value.
Write for yourself to help learn a skill and improve your ability to write future articles.
The people that wrote the better version of your article probably weren't great writers from the start. My advice would be to just start writing. You will get better and you will find along the way what you want to write about or maybe you will find you don't want to write at all.
Find a topic you want to learn (or understand at a much deeper level) and blog about it.
Any pointers on how to start blogging about a side-project? I've been working on a prototype, but it isn't quite operational yet. I'd like to start laying the groundwork, but I'm having trouble distilling my thoughts into actual blog posts.
>For technical posts look at your commit log and pick the one that you think is most complex and describe it
Thanks so much. This is exactly the kind of entrypoint I was looking for.
Once you've gotten into the habit of writing, you can move toward whatever interests you most.