<story><title>Absolute truths I unlearned as junior developer (2019)</title><url>https://monicalent.com/blog/2019/06/03/absolute-truths-unlearned-as-junior-developer/</url></story><parent_chain><item><author>jehlakj</author><text>For me, it was that I thought that being a good programmer was that I write clean code with enough abstraction and indirection to make it future proof.&lt;p&gt;Boy I was wrong. Unless you’re doing the same thing you’ve done for years, you can’t tell the future. And just when your unnecessary abstraction is wrong, this the reason why we’re talking about tech debt in the first place. Because nobody wants to touch it.&lt;p&gt;Unfortunately, I didn’t have anyone to tell me this for the longest time. It wasn’t until I had to fix a bug for something I wrote in the past, and I couldn’t figure out just what I wrote.&lt;p&gt;Now I try to write dumb and simple (yet sensible) code until there’s a good reason for abstractions. I have nothing to prove at this point in my career.</text></item></parent_chain><comment><author>wruza</author><text>Probably unpopular&amp;#x2F;heretic sub-opinion: if given a chance to change the past, I’d rather NOT read books like TAOUP and other books on the same shelf. Or at least wouldn’t take them close to the heart. Because instead of collecting my own experience and fitting it to my projects, I’ve invested heavily in these patterns and rules and “gems” and built something in me that I now have to destroy with advanced therapy (not kidding). Last few weeks I said screw it (as a self-forced experiment, because I get anxious without structure, abstractions, etc) and began to write “just code” without any pre-principles, only using programming methodics as an extreme measure. It’s like I’ve never felt better than that. Like walking new streets after you’ve been paralyzed for years. I write f--king code like I’m 15, it is easy and simple, time to deploy &amp;#x2F; market &amp;#x2F; test ideas is several times less. My boss gets happily confused being not sure what’s left for the next week, I hear it in his voice. I still have huge respect to Fathers like ESR, but… just make sure this knowledge makes &lt;i&gt;you&lt;/i&gt; any good, okay?&lt;p&gt;I don’t think I’ll stop this experiment any soon. Maybe will reassess everything in a year or so.</text></comment>
<story><title>Absolute truths I unlearned as junior developer (2019)</title><url>https://monicalent.com/blog/2019/06/03/absolute-truths-unlearned-as-junior-developer/</url></story><parent_chain><item><author>jehlakj</author><text>For me, it was that I thought that being a good programmer was that I write clean code with enough abstraction and indirection to make it future proof.&lt;p&gt;Boy I was wrong. Unless you’re doing the same thing you’ve done for years, you can’t tell the future. And just when your unnecessary abstraction is wrong, this the reason why we’re talking about tech debt in the first place. Because nobody wants to touch it.&lt;p&gt;Unfortunately, I didn’t have anyone to tell me this for the longest time. It wasn’t until I had to fix a bug for something I wrote in the past, and I couldn’t figure out just what I wrote.&lt;p&gt;Now I try to write dumb and simple (yet sensible) code until there’s a good reason for abstractions. I have nothing to prove at this point in my career.</text></item></parent_chain><comment><author>didibus</author><text>There&amp;#x27;s a level beyond that where you actually figure out how to write good abstractions. It&amp;#x27;s likely you thought you were making good abstractions and useful indirections, but you weren&amp;#x27;t, hence the problem. Concrete code with little indirection will be better than badly thought out abstractions that are incorrectly designed with unnecessary layers and indirections. That said, good ones, that are well done and thought out are worth their salt and can result in huge force multipliers for future runway.</text></comment>