You Don't Need to be Leetcode King ??
If there's one thing that grinds my gears, it's hearing all the talk that solving algorithms is IMPERATIVE to succeed both in the interview round and in the tech industry.
Well, yes.
And, no.
Let me explain something to you guys: Speed does not equal intelligence.
Think about it: when was the last time your boss gave you a timed code puzzle to solve, just for funsies? Did your code solution even make it into the company repo? (Maybe if you work at Meta or TikTok, or some other social platform).
In the vast majority of cases, the answer is a resounding HECK no.
Now, hang on a minute, bootcamp grads. I am definitely not saying neglect learning about algorithms entirely. Don't just ignore them completely. Having some knowledge of them is important, and at the same time, not as important as you think.
Here's what I've discovered in the last 365 days, and it's a big kicker:
You'll need algorithm knowledge more to get in the door than to actually use day-to-day, behind the desk.
Now, I've never manned a technical interview, but I have been interviewed a few times and my first impression of being quizzed on algorithms was a measure on my intelligence. Whether I was right or not, I have to admit, as a total newbie in the tech world, it was more than a little intimidating.
There was a lotttt of "see how quickly you can solve this". Or, "You have twenty minutes to solve x, y, and z."
Verrry rarely did I ever hear the words "take your time".
Consequently, I got wrapped up the first few months in speed over quality and thought process. Problem solving is the core of every algorithm puzzle, and it took me ages to get that into my head.
So while I don't sit well with the type of tech companies who use algorithm-solving ability as the grading rubric to judge whether or not a candidate is capable or good for the job, I do want to tell all the job seekers reading this that not all companies operate on that elite level, and developing a general knowledge of how they work regardless is going to get you far, even when you don't even feel like it will.
Simple trick: start at start.
I went to Google before a technical round and I would type "Common algorithms for beginners" in the search bar. Go do it. See what comes up. Then work through at your own pace and get along as far as you can on each one. I worked through my code editor as well and utilized Chrome's Dev Console to test my solutions.
Extra tip: please don't pull all nighters trying to do them all in one fell swoop. You're not gonna remember how you solved any of them a week from now (tried that, believe me).
Also...wanna know a secret?
Unless you're trying to work at Meta or Apple or a company along those lines, I can tell you from experience that difficulty level of an algorithm says nothing about how smart you are. If you can solve super tricky ones, that's great! But I started at the bottom, worked through pretty much nothing but beginner level algos, and I still got a job.
So, to warp: if you love Leetcode and AlgoExpert AND working through all of those are really working well for you, keep doing it.
If you can't get past Level 1, that's okay. Because wanna hear another secret?
I never made it past Level 1 on AlgoExpert. What worked for me: I kept reviewing the ones that I did solve, and used Google to build on that knowledge. And it got me to where I am now.
So stop telling yourself you don't have what it takes because you're not Level 10.
You can do this.
Software, data science, and machine learning
1 年I saw an absurd complication of a fairly straight forward (and not difficult) algo problem in an online assessment recently. The basic problem was, given an array of unique integers, take the target value as the first item, and then find all the pairs of values in the subsequent items that sum to the target. Not hard at all. (Hint: use a hash table. O(n) time.) But then they had a convoluted method to mangle the output, *including at least one step not in the instructions*, meaning none of the test cases would pass and you'd have to try to infer the missing step(s) from comparing the expected output with yours (if the cases are not locked, of course). By the time I got through figuring that out and began to implement the complete mangling, the assessment timed out on me. How ridiculous -- taking a problem one is not likely to encounter in a job (ok, a variation of it may come up as an optimization problem), as it is, and then take it into such an absurd level (some NSFW metaphors come to mind) that one would *never* see in the real world. And be expected to solve it in ideally under 10 minutes. Meaning if otherwise, no matter what you offer, whatever your experience or level of skill, you are basically to them roadkill.
DevOps/Support Engineer ? JavaScript/TypeScript, Python, React, Node.js, MySQL, SQL Server, Microsoft Azure ? Automating and solving problems and tasks for everyone, everywhere
1 年I plan to start doing them a little more frequently this year. Like you said, nothing else to it other than to start.
Data Engineer | SQL, Python, Microsoft Azure, Databricks | I Bridge Data to Real World Business Solutions | Marine Corps Veteran
2 年Great article Marie. I mainly use CodingBat for Java and Python practice. I recently started exploring Leet Code for SQL. We'll see how it goes.