I Wrote More than 90 Articles on 2021: Here is What I Learned

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 🔀

--

--

--

I’m a senior software engineer specialized in declarative designs. S.O.L.I.D. and agile methodologies fan. Maximilianocontieri.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Idles споделиха ново видео, гледайте „Crawl!“

Insert Header and Footer to Word using Java

10 Fundamentals About mysql training london You Didn’t Learn in School

Django: At Scale in Production

Multi-processing Image Evolution In Python

Surviving the interview

VPN Site-to-Site between Azure and Google Cloud Platform. Part 1

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Maximiliano Contieri

Maximiliano Contieri

I’m a senior software engineer specialized in declarative designs. S.O.L.I.D. and agile methodologies fan. Maximilianocontieri.com

More from Medium

Code Smell 105 — Comedian Methods

Open-Closed Principle is nothing about the code

Why should we use Clean Architecture?

Stop Playing Code Golf At Work