More Engineering Advice

Source: https://fredwu.me/blog/2020-05-03-tips-for-becoming-a-better-software-developer/

The tips are categorized into two main areas: mindset and technical

Mindset

  • Have a growth mindset - Intelligence can be developed. We can get smarter through hard work, the use of effective strategies, and help from others when needed.

  • Try to see the big picture - Learn to be able to shift between a detail or specific task on hand and back to the big picture. Build context, try to see beyond your immediate goal to the broader implications.

  • Recognize the Dunning–Kruger Effect. Overly confident people are often the most incompetent while humble unsure people can often be much more capable. Understanding this principle can be essential to overcoming impostor syndrome and recognizing confidence can be misplaced.

  • Speed vs Quality - Internalising the need for speed and the need for quality should always be on our mind. Pursuing only quality or only speed will significantly limit your problem-solving capability as well as your career progression.

Technical

  • Don't impulsively rewrite systems - Rewriting a codebase from scratch is rarely the answer even though you might think it is. Learn to be surgical and precise in your approach.

  • Code Quality Matters - Strive to do more than just write functional code. You want to push yourself to write "idiomatic" (matching the language and framework) code, follow best practices, and write code that is elegant and simple for other engineers to understand.

  • Read As Much Code As Possible - Read high-quality open-source code or code on projects internally where you work and build broad exposure to established patterns and conventions.

  • Tech Stack Diversity is Always a Good Thing - No matter whether you are in a highly specialized field or a generalist, having exposure to different tech stacks and paradigms is always a good thing - it widens your field of vision and increases the boundary of your technical understanding.

Last updated