What’s that? No code today? 😞
Yes I’m afraid so! Switching gears a bit and throwing out a short post around my thoughts regarding blogging. What’s it good for? What are some of the things I’ve learned?
Without further ado…
Why bother blogging? It’s a good question! I can’t answer for anyone other than myself, but for me, the below are a few of the reasons I feel blogging can be a useful exercise.
As a programmer I don’t get much of a chance to utilize my writing skills. Being able to communicate clearly using the written word is a valuable skill. Blogging allows me to get away from writing code and get back to writing some English.
As the saying goes use it or lose it… I do find it can be a struggle to compose coherent sentences if I haven’t done any writing for awhile. So keeping an irregular 😉 blogging schedule helps out in the writing department.
Enhanced understanding and depth / retention of knowledge
I feel when it comes to programming it is often possible to get by with a partial or surface level understanding of a concept or piece of code. Sometimes you don’t even realize your lack of understanding until attempting to explain it. This is an area where blogging about something really helps. If you need to explain a concept or piece of code in English, the process of doing so causes one to think more deeply, and thus gain a greater understanding of the underlying concept or code.
This is no secret and many studies have proven the learning by teaching concept.
Provides a personalized reference guide
If like me, you enjoy exploring technologies you don’t use in your day job, having a blog is a great way of providing a personal reference guide for those technologies. I often don’t touch a programming language I’ve blogged about for weeks or months and it is great to be able to refresh my memory via some of the blog posts I’ve written.
This can be invaluable if you’ve got some little personal projects out in the wild… I’ve recently been slightly burned by this myself where a web site I created with Ruby on Rails is acting up. My memory of the code is pretty hazy… a blog to refresh my memory would be helpful… maybe my struggles to get things back on track will be a topic for a future blog!
As programmer’s we’ve all benefited from the efforts of others in the programming community. Whether that’s from a blog post, a stack overflow thread, or some other source. Having a blog and posting your own content is a way to give back to the community.
Although I haven’t made any effort to drive traffic to this blog, some traffic does inevitably trickle in, sometimes along with some positive feedback. It feels great to give back to the community and also to know you’ve helped someone else out along their programming journey.
Gives me some web presence
I’m not a big social media person (ok I’m not at all a social media person). So seeing how I’ve never Tweeted or posted on Facebook, I feel having a blog gives me at least a minimal (and hopefully positive) web presence.
When starting off with blogging, one of the first things to decide is whether to use one of the existing blogging sites such as Medium or GitHub Pages or go with your own domain and hosting via something like Amazon S3.
For me, having the extra control of a self-hosting option makes sense. A little more work is required to set things up but it’s pretty simple with something like Jekyll and Amazon S3 or something similar.
It’s possible that an existing platform like Medium may drive extra viewers to your posts. So if eyeballs is your priority that is something to consider. A site like Medium already has a built in active audience and community unlike when you post to a custom URL.
With experience comes knowledge, and this is true of my blogging experience as well. A few things I’ve learned along the way…
Choose a Domain name wisely
As a result I ended up creating a new website on a new domain (this one) and using a redirect to flow any traffic hitting my old Meteor URL here.
So the lesson I learned is being too specific is probably not a good thing. You of course don’t want to be too general either, but restricting yourself to a specific language or framework is going to make things akward if you want to blog on subjects outside of that language or framework.
Some of my Meteor specific posts ended up being pretty long… the longest being nearly 2000 lines. Long posts are a great way to get burned out on blogging and are a bit of a nightmare to edit and review. I usually run thru a post at least three times to edit grammar, re-arrange sections and ensure the code works. Doing this on a 2000 line post takes forever! I now try to keep posts to ~350 lines and split things up if they start to get bigger… thus the 7 part Elixir Twitter Scraper series. Multiple small posts are much easier to deal with than a couple of super long posts… and are probably easier to consume as well… it’s a win, win!
Static site generators are for the most part great but do have drawbacks
I use Jekyll for this blog and it is pretty great. Deployment is easy to something like Amazon S3. Using a static site does have some drawbacks however, as there is a limited amount of flexibility. You can’t just add a database table and some extra functionality willy nilly like would be possible if going with a Ruby on Rails or a Phoenix site.
This can be problematic if you want to add mailing lists, commenting systems etc. You may find yourself stuck with third party options or plug-ins that might not be ideal for one reason or another. Speaking of which…
There are no great options for a commenting system with a static site
Related to the last point, there is no great option that I have found for providing a commenting system with a static site. I am currently using Disqus but am not super happy with it.
Although easy to set-up, there are a number of issues that I won’t go into that make Disqus unattractive. One issue I will bring up is the inability to import comments. When I switched domains, I lost all the comments from my previous articles. Although Disqus allows you to export comments, they have no facility to allow you to re-import these comments should you, like me, move your articles to a new domain. This makes me question why they even have an export option. It’s pretty annoying to have lost the comments as in many cases they contained some good information.
In any case if anyone has suggestions for a good static site commenting solution, please feel free to reach out!
So those are some of my thoughts on blogging, if you’re thinking of starting up a blog, I encourage you to do so, it’s been a positive experience for me. If you do start a blog hopefully you’ll find some of the above informative helpful!
Thanks for reading and I hope you enjoyed the post!