Leetcode has taught me that I'm a bad engineer
There&#x27;s an interesting sentiment shared amongst some of the comments both here and in the linked thread that leetcode is somehow a fundamental measure of social worth or quality.<p>Like, if you can complete leetcode, you&#x27;re <i>so</i> in the in-group, if something happened to Earth tomorrow and humanity suddenly had to migrate to space, you&#x27;d definitely be on the shortlist of people $company would select to join the new colony, because you&#x27;ve been trialed by fire, the results have been locked in, and your value and worth will never be questioned again.<p>At least that&#x27;s my take on the perspective I&#x27;m seeing.<p>Now, written out like that it almost seems like I&#x27;m belittling the view, but I&#x27;m caricaturizing it to call out an important distinction:<p>Ability to complete leetcode puzzles to acquire a job has absolutely no bearing on your *social inclusion* as a *person*, precisely because the initiative to mandate these tasks is coming from <i>HR departments</i>.<p>And what right does HR have to dictate whether you should feel socially included or not? For that matter, what right does a <i>workplace</i> have to tell you that you should feel small as a person?<p>Leetcode suffers from a sort of simplicity problem. The mental model of what leetcode implies (programming challenges) is virally straightforward to reason about both for programmers (compete! be the best! go to space one day!) and hiring managers (wow this tiny picket fence is the most effective thing I&#x27;ve ever been recognized for, I&#x27;ve made it!!). I mean that it&#x27;s virally straightforward because it has a simplicity that makes it &quot;click&quot; for everyone in 5 seconds, which makes it easy for it to scale&#x2F;spread like wildfire.<p>And in an industry where hiring is known-ungood and everyone is grasping at straws, you can kind of see why organizations everywhere (<i>especially</i> the well-known, large inefficient behemoths) have adopted this on a shoo-in basis: in those environments, its user experience is orders of magnitude better than what it replaced.<p>Here&#x27;s the rub though. That simplicity I mentioned? Other comments here have talked about how leetcode only challenges a specific mindset, that it&#x27;s extremely narrow. And indeed it is. It&#x27;s like an IQ test. But there&#x27;s something about it, a... single-minded, zen-like quality to it, like dance-pad or Tetris arcade games.<p>In a recent thread (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=29728892" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=29728892</a>) showcasing a multiplayer online Tetris game a lot of people marveled at how fast some players can play (the author of the site linked <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=MJDz4-pr9J4" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=MJDz4-pr9J4</a>, and my personal favorite (definitely watch the end) is <a href="https:&#x2F;&#x2F;youtube.com&#x2F;watch?v=lE_UHhqAd1c" rel="nofollow">https:&#x2F;&#x2F;youtube.com&#x2F;watch?v=lE_UHhqAd1c</a>). These people get good not solely because of inherent talent, but because there is a catnip-like attraction that draws <i>everyone</i> in, and these people just keep coming back.<p>I suspect the same is true for leetcode. People just do a Jon Skeet and keep coming back. Reminds me of &quot;the unreasonable effectiveness of showing up every day&quot; (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27833064" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27833064</a>).<p>However, I think that in that overwhelming one-dimensional simplicity of &quot;leetcode means X&quot;, these finer points are completely lost in translation and do not scale. Instead we&#x27;re left with &quot;&lt;blah&gt; passed leetcode and got a job&quot; and &quot;wow this is really hard&quot; and lots and <i>lots</i> of &quot;wow I feel terrible as a person&quot; - where that latter bit turns into what feels like an insurmountable Mr Everest because this is hard for a *lot* of people, including both those in your immediate social circle <i>and</i> the like-minded individuals who hang out on the same forums that you do.<p>If you&#x27;re <i>pushing</i> to complete these, IMHO the only context that makes sense is in an unexpected-interview-next-week sort of situation. Definitely immediate to short term. Generally speaking, if you&#x27;re aiming to work somewhere this sort of thing will be valued... it doesn&#x27;t really make sense to try and get your foot in the door of a marathon race by proving you can sprint, right?<p>That&#x27;s not to say that most large corporate environments actually give you work that requires a significant cross-section of this sort of skillset. In that regard leetcode is the grown-up version of &quot;I learned all this stuff in school that I&#x27;ll never use&quot;. In practice whatever real work you take on will generally be paced somewhat more sustainably and you&#x27;ll have ample time to familiarize yourself with the approaches a particular piece of code uses - if they&#x27;re not already in your mental toolbelt already.<p>The simplicity of leetcode lends toward what might be described as a &quot;false bigger picture&quot; that describes some sort of idyllic scene where you&#x27;re working on zen puzzles at work all day. You know that isn&#x27;t going to happen, but it can be so easy to develop a mindset that looks at the world through leetcode glasses and says, well, what if everything I do all day <i>does</i> reduce down to zen puzzle solving? Yay, I get to do this forever! (Protip for ADHD hyperfocusers: observe red flag. Red flag bad. Red flag signal imminent core burnout. Hate job. Stressed out all day. Depression.)<p>In reality, the competitive target that leetcode represents can be overwhelmingly easy to extrapolate into a whole occupation of its own.<p>The fact that leetcode gets people jobs is 100% orthogonal to the fact that some people get stymyingly good at it like with competitive arcade games.<p>There&#x27;s probably a notable separation&#x2F;distinction between people who do leetcode all day and people in Actually Interesting Positions.<p>For example, you might&#x27;ve heard of the Oroboros Quine (<a href="https:&#x2F;&#x2F;github.com&#x2F;mame&#x2F;quine-relay" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mame&#x2F;quine-relay</a>), a program that emits source code in over 128 programming languages in successive steps (as you run each program, it outputs code in the next one&#x27;s language) and when you finally reach the end you wind up with the original source. This person works at a Japanese company that maintains an online recipe dictionary&#x2F;service. Is this a major tech company? Nope. And that&#x27;s most likely the reason this person has the time to dedicate to this. They clearly have sane work-life balance. (Work isn&#x27;t life, it merely sustains it.)<p>There was a post on here recently about making a supersonic trebuchet (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=29408127" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=29408127</a>). The author made a point that he expresssly optimized for difficulty so he would be able to control for how much time the project took.<p>A very small pet-peeve of mine is when people say that they&#x27;re passionate about working in field X or Y, as though being passionate is a critical step to solving problems. It <i>can</i> be, *but <i>only</i> if you are not emotionally investing in what you are <i>not</i> capable of*. The problem with passionate investment is that it can be kind of blind, like blind faith or trust - it&#x27;s just, this is vaguely the right direction to go, put a moonshot amount of mental effort into it and have blind hope that something good WILL happen. (I&#x27;m reminded of a quote by a swimmer, who IIRC was asked how he won a marathon swim race. He said that he did not mentally spare any energy for the swim back.) While it is by definition pretty much impossible to have a proper cause-and-effect discussion about the efficacy of this approach, what <i>can</i> hold it back is being passionate about solving problems that you&#x27;re fundamentally not able to just *do*. Things where you go &quot;...wait that&#x27;s actually a really interesting problem&quot; and dwell on for hours or days or weeks because, deep down, to your brain it&#x27;s not a solved problem and instead a Very Good Question.<p>Folding back to leetcode, if you&#x27;re terminally stuck, firstly you need to both identify where you&#x27;re investing in what you&#x27;re not capable of, and figure out what that means. While just the first half of this sentence on paper, this step may end up being a multi-month (-year?) project. It may benefit from therapy&#x2F;assistance to help work through. With that done, you then need to figure out how to optimize for difficulty, possibly sourcing help to assist fighting stubbornness to solve problems the hardest possible way (&quot;if I learn to solve this I&#x27;ll be a better programmer!&quot; - no, stop bashing your head against the wall and look at all the <i>tomato sauce</i> you&#x27;ve already gotten all over the floor; you are fallible). Finally, remember that the Zen mindset&#x2F;simplicity of leetcode describes 0.01% of real work. Now have a hard think about what sorts of positions you really want.<p>If you&#x27;re saying &quot;I don&#x27;t know, something cool,&quot; then judging your abilities off of the back of leetcode is an especially significant liability, both for you (leetcode <i>cannot</i> provide authoritative direction about how you want to grow) and your employer (who cannot really discern any sense of what to expect from you as a person given leetcode&#x27;s incredibly narrow focus as a catalyst). Seriously narrow down what you want to do - not just in terms of what sorts of programming you want to do, but what kind of environment you want.<p>Welp, not really sure how to continue this from here so I&#x27;ll stop now. I think there&#x27;s a bit of projection and misinterpretation in places - I know I was envisioning a &quot;just left school&quot; stereotype at the end there - but hopefully parts of this are useful.