Christian Toscano

Christian Toscano
GitHub
Things I learned in 2021 as a software developer

Things I learned in 2021 as a software developer

Aaaaaand it’s gone, bye bye 2021 👋, welcome to 2022! 🎉

If you have already read some of my posts you may know that I’m an Italian software developer who is working mostly with Ruby and Javascript. The year 2021 has been rough for me: I tried to learn from my mistakes and improve my skills, trying to keep up with the pace of the industry but during this year I've never been in the office and I must admit that while working from home is amazing I've also noticed it became harder for my brain to take time off from work. I tried to summarize these ideas/concepts in a bullet list of short phrases to be easy to remember.

Work-life balance

  • Working fewer hours makes you more productive more often than you think (and more than your boss will ever think)
  • Doing what you love for 40/h a week is not as pleasant as I thought while I was a Computer Science student. I would prefer to have more time to work in my side projects or read books.
  • Consistency is one the most important keyword to reach your goals in both personal and work life

Software Development

  • Follow the standards. Folks who just came out of university (college for our American friends) tend to re-invent the wheel by writing tons of script and over-engineered systems with custom architectures that work only on their computers but will steal weeks of the team time to find a way to deploy them. Of course, each system has different requirements and sometimes you really need to think different, but most of the time you don’t, and following the standards makes your life much easier. (not happened to me, look at the next point)
  • Write tests when your project is already or almost finished is a bad idea because writing all the tests at once will consume weeks of work and you will even need to make some changes to the project architecture. The best practice is to write tests every time you add a new feature or change the business rules. (this happened to a friend of mine and they are still stuck trying to make tests work in an ultra-customized React-Typescript environment)
  • Writing tests influence how you structure and organize your project. Your code should work but it also be easy to test. This is the main advantage of testing in my opinion.
  • Regular Expressions are damn useful and you will need to use them several times during your career
  • I’m much more productive with macOS than Windows, Linux stands in the middle, but it depends on your role and the tools you are using

Side projects

  • Organising tasks for your side-projects and your job is a totally different action. For your job you probably have 8 straight hours of continuous work which will consume most of your day, then you have a few hours to spend on your side projects while trying to not burnout and you usually have a house/family/other stuff to manage. My side-projects tasks tend to be very small, most of the time they take me one hour to be completed, so I can feel satisfied and do not give up the project after one week. This also means that the tech stack must prioritize simplicity and speed

Career/Job

  • Create relationships with your colleagues and boss are as important as your coding skills
  • Each company has a different culture, habits, processes, and people. You need to embrace the company spirit if you want to have a career in that company
  • Take notes of what your colleagues say during technical calls. Everything is important and will be useful at a later moment
  • Each one of us has different needs: I prefer professionalism over friendship with my colleagues, I know this is the opposite for my girlfriend who's working in the same field I can say that what is good for her is not for me
  • Reading a good book about software development, even if filled with abstract concepts, will be more useful in the long run than hundreds of online articles
  • Real-world business requires unexpected or unrelated fields of knowledge. For example, you are working in the social media business and somehow one day you will need to learn Bayesian Statistics, query parser theories, inverse geocoding coordinates, and other mathematical stuff

Tools/Curiosities

  • I learned that Instagram, Twitter, and Reddit are very useful places to learn about new tools, curiosities and stay up to date with technologies you like.
  • There are tons of useful sites that make our life easier as developers and are lifesavers while working on side projects. I’m talking about tools to:
    • make a wonderful screenshot of your homepage or your code
    • manage images, documents, pdf
    • to quickly create statistics of data
    • to host your hobby project for free!
    • etc.. etc... I could continue for hours. I think should write a blog post about these websites and tools I’ve saved in my bookmarks.

So, guys, I hope your 2021 has been as productive as it has been for me. Of course, it has been a weird year with an ongoing pandemic and many other social, technological changes in the world.

I hope you the best for the new year, see you soon!