Software engineering topics I changed my mind on
I predict the following changes:<p>1) Typed languages are worse, and you want people with high levels of competence.<p>2) Java actually IS terrible. You win very little by designing for incompetent coworkers. Plan for competence, and hire appropriately. Small elite teams beat large incompetent teams every time. See #1.<p>3) Thinking through scalability upfront matters in many systems. Not all systems. Many systems.<p>4) SOLID is one way to do things, and not always the right one. OO isn&#x27;t always the right one either.<p>5) YAGNI is more complex... you shouldn&#x27;t build what you don&#x27;t need yet, but you should architect for reasonable changes to requirements. Scope out all possible features early in the system design, create an architecture that supports them, and then implement the minimum viable system which can be easily incrementally refactored into that architecture.<p>6) There are ways to interview well. When you figure them out, you&#x27;ll notice they give you a competitive advantage (while sharing them doesn&#x27;t make the industry more efficient as a whole, and makes them less effective, so if you&#x27;re smart, you&#x27;ll keep them to yourself).