I Wrote More than 90 Articles on 2021: Here is What I Learned
This article summarizes my experience as a writer during the pandemic year 2021
3 min readDec 31, 2021
Below you will find lots of resources and tools and my method and tips for heavy writing.
My Background
- I have a degree in computer science. ๐จ๐ฝโ๐ฌ
- I use the scientific method and Occamโs razor.
- I have researched for 30 years both in the academic and industrial fields.
- I donโt have the absolute truth.
- I try to support my opinions with evidence. ๐
- They are my opinions and are very subject to change.
My tools and secret sauces
- I Have a (very) long list of draft articles.
- I often skip the waiting queue and write about some inspirational source (and cite it).
- I use a different template in all my series.
- For example, I have an empty Code Smell template.
- I write Everywhere ๐บ๏ธ
- I proofread all my articles with HemingwayApp, Grammarly, and Google Translate (all free) ๐ก
- I parse the markdown in my articles and convert them to HTML to republish on many platforms at once.
- I heavily use the canonical URL tag to avoid search penalties. ๐
- I Follow very interesting people on Twitter and blogging platforms. โจ
- I take a new course every week, usually on a subject that is far away from my comfort zone.
- I add many references and quotes to my articles.
Time management
- I read a lot of articles early in the morning and bookmark them during the day. ๐
- I use Trello, Inoreader, Pocket, and Obsidian.
- I Use The Pomodoro technique to focus when writing. ๐
- I avoid perfection. I publish them when they are ready.
- Then I make corrections with other peopleโs comments. Even after months.
- I Garden my articles.
Dealing with Criticism
- I have different opinions than many other developers.
- Software Design is a creative activity.
- My articles are suggestions and not rigid rules.
- I try to have smart discussions.
- I have zero tolerance for hate speech and unprofessional comments.
- I never feed the troll.
Common Criticism
- I get the same comments over and over again, so these are the common critics I get and my opinions.
Readability
I need to see the complete code in a sheet
- If you need to see long methods/scripts to understand your solution, thatโs fine.
- I prefer to have small/reusable/testable functions.
The code in your articles is not Compiling/Working/has errors
- I try to add code samples for clarity.
- Most of the code snippets work.
- Some of them are pseudo-code for educational purposes. ๐จโ๐ซ
- I have used 25+ different languages in my articles.
- I am not an expert in ANY of these languages.
- Languages are accidental, Software design is essential.
I Have a trick in *INSERT LANGUAGE* to improve the code.
- Most of the articles are language independent.
- The solutions try to avoid language perks and cleverness.
Your solution is not performant/optimal
- I write about backend business software. ๐ฅ๏ธ
- This is the domain Iโve been working on.
- I am aware that some tasks require more performant solutions (for example DApps).
- I will always choose long descriptive names over smart performance optimizations.
- First, make the code right. โ๏ธ
- Then, optimize it only if you have strong evidence.
- Complexity is not enough evidence.
- You need a real benchmark in real use case scenarios. ๐
- If I need to sort 20 elements in a collection, I will always choose bubble sort because it is easier to read.
Premature optimization is the root of all evil. ๐
Helpers, DTOs, Singletons, Nulls, Setters, Metaprogramming, Castings, Comments are standard. ๐
- I write a lot on these anti-patterns with the reasons why I think we should avoid them.
- You can keep thinking they are good and thatโs fine.
- My arguments against them are in all articles.
- I reply polite comments about them.
A 15 lines long method is not โlongโ
- IMHO, a 6 lines method is too long
- You can always break them using refactorings. ๐ ๏ธ
- You donโt need to see the big picture and the details at the same time. ๐ณ
- Trust your implementation and write good tests.
Your solutions have too many indirections
- Coupling is our worst enemy. ๐
- We need to avoid direct relationships.
You have too many rules and constraints
- There is just one rule.
- Always follow the bijection ๐