Introduction
I can finally start blogging officially 🥳! From the afternoon of November 14th to today, it took me nearly three days to set up this blog platform. Although I could have just written technical blogs on CSDN, as a programmer 👩💻, I always felt the need to have a personal blog website. The process of building a personal blog website itself involves solving many problems, which is a great learning experience. 😊
Why Start Blogging?
The idea of starting a blog and building a personal blog website came to me quite suddenly on November 14th. That morning, I was working on some visualization tasks for my experimental code. While searching for solutions to visualize attention mechanisms, I stumbled upon a blogger’s answer. Visiting their homepage, I noticed a link to their academic personal website hosted on GitHub Pages.
As a GitHub enthusiast, discovering that GitHub Pages could be used to create personal websites immediately sparked my interest. Since I already use Git and GitHub for version control, I thought it would be a great opportunity to expand my knowledge by building something new based on what I already know.
Understanding Blogs
With this sudden impulse, I began exploring the idea of blogging and building a personal blog website. Blogs are not unfamiliar to me. During my daily experiments and coding, I often encounter various bugs. Besides asking colleagues, I frequently read blog posts for solutions. Based on my searches and experiences, I am familiar with common blogging platforms like CSDN and Blog Garden, with CSDN being the most prominent.
This initial understanding of blogs is based on my existing knowledge and experience. When I decide to do something, I aim to build a comprehensive understanding of it. So, I started searching for terms like “personal blog” and “technical blog” across browsers, Bilibili, WeChat, and other platforms. The content I found generally fell into two categories:
Purpose: Why should programmers blog? What are the benefits of blogging?
Practice: What platforms are available for blogging? How do you build a personal blog website?
Purpose
Why should programmers blog? What are the benefits? Here’s a Bilibili video I found insightful. Feel free to check it out, or read my summary below if you prefer not to watch the video.
I believe blogging is a win-win activity for programmers.
1️⃣ First, it serves as a record of bug fixes and a repository of learning notes, helping us quickly find solutions to recurring problems. Writing blogs also deepens our understanding of new knowledge, akin to the “Feynman Technique,” where teaching others reinforces our own learning. Seeing a collection of our own blog posts can also boost our sense of accomplishment and motivation.
2️⃣ Second, blogging allows us to share knowledge and help others, improving our writing and communication skills in the process. It can also connect us with like-minded individuals, enhance our visibility, and even bring unexpected opportunities.
3️⃣ Finally, our blogs and personal blog websites can be included in our resumes during job applications, showcasing our skills and knowledge comprehensively, which can increase our chances of landing offers.
In summary, blogging is highly beneficial for programmers, especially for students like me who have relatively more free time. Developing the habit of blogging and sticking to it could positively impact our future growth.
Practice
After discussing the purpose, let’s talk about the practical aspects of blogging—where and how to blog.
Currently, blogging platforms can be categorized into three types:
1️⃣ First, platforms like CSDN and Blog Garden are fully built and ready to use. These platforms come with pre-built writing systems, commenting systems, and layout styles. You just need to write and publish your blogs.
- Advantages: These platforms are beginner-friendly and require only basic Markdown knowledge. They also have good SEO (Search Engine Optimization), which helps your articles gain visibility and reach a wider audience. For example, many of the posts I find when searching for bug fixes are from CSDN.
- Disadvantages: The downside is the lack of customization and personalization. For programmers who enjoy challenges, these platforms might feel too “basic” and less exciting compared to building a personal blog website.
Here’s a good analysis of the pros and cons of different blogging platforms on Zhihu:
How to Start Writing Technical Blogs and Choose a Platform? - Zhihu
2️⃣ Second, platforms like GitHub Pages, Netlify, Vercel, and CF Pages are semi-built solutions. These platforms save you from setting up servers and buying domains, allowing you to focus on building your website.
For example, with GitHub Pages, you can create a repository named username.github.io and use static site generators like Jekyll (or alternatives like Hugo, Gatsby, Hexo, VuePress) to build your blog. The domain https://username.github.io becomes your blog’s URL.
- Advantages: This option is perfect for someone like me who enjoys a moderate level of customization. It offers a sense of ownership and personalization while being less time-consuming than starting from scratch.
- Disadvantages: However, unless you’re a well-known blogger, articles on your personal blog might not get much traffic, limiting exposure.
3️⃣ Third, you can build a blog entirely from scratch. This involves setting up servers, purchasing domains, and building the website yourself. While I haven’t tried this method, I understand the basics.
- Advantages: This option is ideal for programmers who love challenges. Starting from scratch offers the most learning opportunities and growth.
- Disadvantages: However, it requires significant time and effort, which might detract from the primary goal of blogging—writing. Like the second option, traffic might be limited.
Considering these options, I chose to write on both CSDN and my personal blog built with GitHub Pages. This way, I can gain visibility on CSDN while maintaining a personalized blog that feels uniquely mine.
What Will I Blog About?
As for the content of my blog, I don’t have a concrete plan yet. Although I tend to be a planner, I believe in keeping an open mind for certain things. Blogging is one of those things where I prefer to start first and figure out the direction as I go.
Currently, I plan to use my blog to record bug fixes, learning notes, and research paper summaries.
I believe the best way to sustain a new habit is to integrate it into your existing routine. By making blogging a natural part of my daily life, I hope to keep it going and eventually reap the rewards of my efforts.
Conclusion
Initially, I wanted to write about the technical challenges I faced while building my blog. However, this post turned into a reflection on blogging itself 😂. I’ll stop here for now and save the technical details for another time. My experiments and papers are still waiting for me 😭. Time to get back to work tomorrow~
See you next time~ 👋