I want to start writing a technical blog (related to computer science and development), but almost every topic I think of has been written upon by someone, probably better that what/how I would have written it.
Blogging should be less about immediately building an audience and more about gaining a greater individual understanding for the topics you blog about. You might also find that with each post, you learn something new about writing, style, etc and will grow embarrassed about your original posts. You will learn how to communicate better, write better and gain a greater understanding of your own opinions by blogging even if no one ever reads it.
For those interested, i wrote a blog post on this exact topic[1] about a year ago.
The best inspiration comes from the development work you are doing for work or a hobby project.
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.
Previously I had a blog where I wrote about any issues I ran across while developing, or anything that required a decent amount of research to solve. I would regularly reference it, and other people found it useful (based on the traffic I received).
It was a wordpress website that I ran 5-10 years ago, and I just got tired of maintaining it. I've been looking at spinning up something similar using Jekyll and github pages.
I went through a similar transition. There is much less friction editing a quick post in markdown with Jekyll than with the heavy wordpress UI, much happier with that setup.
I tried going down your path and blogged only about stuff that's arcane or interesting tech wise, and it did nothing but cause me writer's block and turn me off blogging.
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.
This is good advice. I too have a personal blog that I mostly neglect. This past week we "cut the cord" on our cable TV service at home and the process has inspired me to blog. I've been composing blog posts "in my head" for the past few days and I take this as a good sign about my future intentions.
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.
Very much this. I find how-to guides to be a very good type of topic to blog about: 1) It serves as documentation for yourself to get back to later on (it has come in useful for myself many times to look back at my blog on how I set up something), 2) It serves as a good guide for others and is how you build your audience. Almost any how-to guide out there misses some information. Not everyone ran into the same issues. Your guide will have some info others who have written similar ones have missed. Similarly, you won't be covering some issues that the next person will write about. Someone googling around setting up their raspberry pi or CentOS server about the exact same issue you had, will find your article (and not any other because other guides didn't mention it), and save hours of time because of your guide. (I have comments on my blog telling me this, despite writing about topics that have hundreds of guides out there about)
Everything has been written about multiple times, don't worry about it.
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.
I wouldn't worry about whether someone else has written about a topic.
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.
This is kinda similar problem to the advice given of "Build Something" given to new programmers. For a long time, I thought that meant "Build Something completely new and fascinating" and I would spend days trying to find something to build, see examples of it already present and give up. Recently I have realized it doesn't really matter. Sublime text had the first release in 2008, a time when I would have said Text Editor market is saturated. Visual Studio Code was released even more recently, and still gained sufficient market share. Now will you write the next Sublime text? Probably not, but that doesn't mean writing a new text editor, music player, heck even a todo app is a bad endeavor to learn. And it'll be really hard to write sublime without writing a notepad clone.
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.
> but almost every topic I think of has been written upon by someone, probably better that what/how I would have written it
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.
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.
Stack Overflow diving for otherwise poorly understood concepts can be a good starting place.
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.
There are articles about really interesting subjects, but I can't get through them because of the way they're written. Conversely, there are articles about not very interesting subjects that I devour because they're well written. Don't worry about what others write about, just pick subjects you enjoy and keep writing and practicing. Those are the things that show.
It's better to write about stuff that you've just learnt. Fixed a tricky bug, learnt about a new API, found a useful library? Write about it.
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.
I don't think it's mandatory to write about novel or innovative things. It's your blog, you can write what you want.
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.
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
I'd take a subject that busy engineers would be interested in knowing more about but don't have the time it take to investigate it. I.e. going in depth about how the chrome debugger work in javascript to analyze performance. I remember reading a blog post about it and a few weeks later it really helped me.
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.
If you're working with new stuff at work, documenting edge cases is always interesting. For example my blog was the only resource on the web for a lot of Oracle point-in-time recovery techniques when they rolled out that technology. I was just implementing it for a customer and documenting DR scenarios and testing them. I wasn't even really doing it to blog, more like advanced note taking in case I needed it in the future, also the knowledge that an audience would be looking makes you take care, not make assumptions about pre-existing knowledge. In other words it improves your technical writing skills.
If you're just starting a blog/technical publication, there's nothing wrong with casting a wide focus and writing about many barely related topics. As you get some articles written/published, you'll learn more about what you're good at, what you enjoy and what brings the most useful traffic.
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.
Think of yourself going on a journey, a journey into the technical world. Where you talk about your development skills, your technical tact, your debt and how you go about them each and every day. Writing down your inner turmoil, thoughts, moments of brilliance, or moments of despair and frustration is one of the most valuable things you can share with someone. Along with tips, hacks, and tricks of course. It also forms valuable research for yourself because it enables you to capture your raw thoughts when in the moment. Digestible in bite-size pieces for yourself and the world to see.
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 :)
For open source or generic computer science topics, I think it is indeed difficult to come up with much in the way of useful new or interesting content.
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.
Just reply to HN threads. After a while, you'll have plenty of material you can remix into blog posts. You may also have some opinions that you need to express.
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.
> I want to start writing a technical blog (related to computer science and development)
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.
Read good books and observe closely. Also, read up some popular blogs. This will hopefully serve as a good input.
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 :)
Don't write because you want to write. Write because you care.
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.
What are you interested in? What are you working on? What do you want other people to know? Write about that.
> 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.
Hey, check out all videos on youtube about doing pushups!
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.
Write about https://mokens.io. This is a new technical tool that enables regular people to design and create their own cryptocollectibles. I can give you any/all the data you need to write about this.
Cryptocollectibles is a new field that is growing and incubating and not much has been written about it.
You've got to first start by finding something that you're interested in. As long as you're interested in something then you should be able to find a sub-area which hasn't been discussed quite as much as you'd like or discussed in a manner that you like.
Write for yourself to help learn a skill and improve your ability to write future articles.
For lots of people (including me), writing is hard.
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.
You could always pick something you don't know much about but are interested in, then blog about your learning process. Chances are you'll present it in a way that helps someone else learn it, who either appreciates your presentation style, or couldn't find answers to issues they faced on their learning path.
The most important thing I ever got from blogging is that it helped me learn topics. One of the best ways to learn something is to teach it, and that is more or less what a technical blog is. You're trying to teach your readers something.
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.
write about the requirements of your side-project, why you started it? what would be the use of it etc.
Blog about every feature that you develop and how to use it.
This will help in documentation when your prototype is ready and you might be able to attract audience who are interested in your prototype and might help you with beta testing/refine the features. You can also get early feedback without finished product.
For technical posts look at your commit log and pick the one that you think is most complex and describe it. It is possible that it may not be to the level of your satisfaction and you can refine it in second pass until you think it is ready to go. Idea is that is is easier to refine than writing from scratch. my 2 cents!
When I'm trying to solve a technical problem and have to cobble together a solution from two or more piece of content found in Google, that's a signal that there's room in the marketplace for a single, SEO-optimized piece on solving that particular problem.
Just write articles that you would find interesting to read--don't worry about the subject. I like reading technical articles that have lots of illustrative figures and modest amounts of interactivity, so that's how I write.
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/