Live data from Hacker News

A guide to learning algorithms through LeetCode

github.com

211–220 of 222 posts

Re: A guide to learning algorithms through LeetCode

#211

It's becoming obvious to me that my time is better spent learning to solve these riddles rather than actually becoming a better developer. I have a job search coming up at the end of the year and whilst I've managed to largely avoid companies that ask this type of question, I believe it's seriously constraining my career. I can't speak for everyone but the whiteboard interview has prevented me from leaving jobs earli…

I was working on a “startup”/kinda just unemployed for two years. I studied leetcode hard, and got hired into a 300k a year job at FAANG. I know nothing about testing, git, software process, roll outs, dev ops, etc. I barely know how to do software engineering. What an idiotic hiring process.

Let me ask you this: Do you think you are doing OK, or even great, comparing to your peers at your company? If yes, then I would say the hiring process is more smart than idiotic.

Re: A guide to learning algorithms through LeetCode

#212

Earlier quoted context omitted.

Being on other side of the interviews like this , trust me most interviewers know that . The logic being if you can pick up leetcode in few months you can pick up most things on the job fast. Understand that interviewers are first and foremost are looking for ability to learn and understand complex topics , it is not all that important which specific topic it is. nobody really knows what you will be working on by the…

N = 1 but here we go. Let's look at the CS bachelor/master offered at the Vrije Universiteit Amsterdam [0]. The truth is probably somewhere in the middle and I understand that university programs are heterogeneous. So let's look at my university experience and use your post as a checklist, for funzies! :D Functional programming: covered Dev tooling: covered to some extent through electives where you'd teach it yourse…

Firstly, thank you for sharing :)

Yours is above the par learning experience than most fresh graduates I have encountered. When we hire in Eupope I would very interested to try and convince some of your juniors to join!

> The startups I've been at had about 100K lines of code for their complete product. In other words, a lot of companies don't have a 1M+ codebase.

Most large companies who are also large employers sadly do have such complexity. In a startup it may not a single repo at 100k+, however overall 100+k lines for the product is very low for Saas product over two-three years it easily goes beyond.

My N=1 in a startup: we went from one monolithic 300-400k+ L repo to a ton of repos with each one perhaps lot of time [1], Smaller repos does not mean complexity goes away, developers need to still document, read and understand how it works. It applies also when you use libraries or third party services, while number of lines have become less, you need a lot more domain understanding.

> be able to grok a explain analyse and fine tune a 500GB dB: No. We did learn SQL though and how to model relationships with UML and entity diagrams.

The reality is that most jobs are not developing new apps from scratch, it is lot more likely to work on older codebase that has its fair share of kinks.

That means I am going to throw you deep end into large sized DB. Schema perhaps has evolved over time as product vision keeps changing, a dozen 'architects' have messed about it. In a typical job, you will be fixing bugs more than developing new features, handling tech debt - it doesn't matter stupid mistakes were made before, you still to work with/around those mistakes as someone will have to work with yours.

Even on theoretical level NoSQL is not well taught in universities. Purpose built dbs for graphing, Time Series, KV , document DBs, search indices are all important to really understand. Each has solutions to specific problem set and come with their limitations. In a typical basic storage stack there is going to probably be something like Redis|PostgreSQL|ElasticSearch: all of them solve more than one type of storage problem in more than one way.

This isn't to say the that is it all bad. Education is evolving , universities are more open to longer internships, while most don't think software engineering (not CS) should be treated as vocational course, there are positive trends. Alternative learning avenues have opened up like Coding Schools and Bootcamps who do lot better job at focusing on job skills.

[1] https://news.ycombinator.com/item?id=18442941 This is infamous post, and of course the extreme example, but you get the idea.

Re: A guide to learning algorithms through LeetCode

#213

It's becoming obvious to me that my time is better spent learning to solve these riddles rather than actually becoming a better developer. I have a job search coming up at the end of the year and whilst I've managed to largely avoid companies that ask this type of question, I believe it's seriously constraining my career. I can't speak for everyone but the whiteboard interview has prevented me from leaving jobs earli…

According to the believers it is an unbiased way of predicting whether people are capable for the job. Google has done a lot of tests and these style of interviews predict job performance best [1]. Assuming this is true then to me it means that universities and work experience are too heterogeneous as a measure of job performance. In my experience that is true. Not sure how well the argument holds up if everyone is s…

> [1] clement mihailescu says it on his YT channel somewhere in a vid.

The "co-founder and CEO of AlgoExpert, a website that helps Software Engineers prepare for technical interviews." argues that algorithmic / technical interviews are the best predictors for future job performance?

Well color me shocked.

Re: A guide to learning algorithms through LeetCode

#214

It's becoming obvious to me that my time is better spent learning to solve these riddles rather than actually becoming a better developer. I have a job search coming up at the end of the year and whilst I've managed to largely avoid companies that ask this type of question, I believe it's seriously constraining my career. I can't speak for everyone but the whiteboard interview has prevented me from leaving jobs earli…

For a good developer, those whiteboard problems should not be hard. In my experience, the people who are better at those “riddles” are learning and adapting more quickly.

Re: A guide to learning algorithms through LeetCode

#215

Earlier quoted context omitted.

N = 1 but here we go. Let's look at the CS bachelor/master offered at the Vrije Universiteit Amsterdam [0]. The truth is probably somewhere in the middle and I understand that university programs are heterogeneous. So let's look at my university experience and use your post as a checklist, for funzies! :D Functional programming: covered Dev tooling: covered to some extent through electives where you'd teach it yourse…

Firstly, thank you for sharing :) Yours is above the par learning experience than most fresh graduates I have encountered. When we hire in Eupope I would very interested to try and convince some of your juniors to join! > The startups I've been at had about 100K lines of code for their complete product. In other words, a lot of companies don't have a 1M+ codebase. Most large companies who are also large employers sad…

Ha! I remember the source you mention [1]. 25 million lines, haha. Man-made software mountains :)

Thanks for reading my comment by the way. I wish I had more time so I could write succinctly. If you're ever in the position to hire people from my uni send me an email if you'd like some introductions to professors and what not.

> Alternative learning avenues have opened up like Coding Schools and Bootcamps who do lot better job at focusing on job skills.

Ah, got you there! ;-) *

* Probably not, but it's fun to imagine that I did for a second.

My first job out of CS was being a web development instructor. You might think I wasn't qualified, since I never touched NodeJS in my life and wasn't super familiar with JavaScript. I told them this but my teaching skills were really good so they gave me a unique challenge.

My challenge: make one NodeJS app in one month. I pried a bit what they wanted me to showcase, and they'd be happy with a custom blog that had user login, CRUD on blog posts and user registration.

In that month I made:

- A voting app for the game Werewolf of Miller's Hollow / Maffia

- An online sentiment analysis app based on my bachelor thesis

- A simple CMS designed to list all the hackathons in The Netherlands (though you could also retrofit it into a job board or party calendar)

- A blog app with the extra feature of adding markdown to it (what they actually wanted)

When I showed all this to them they asked me: you learned this in a month?! The thing is, I think most of us CS grads would have. And I think a lot people with a master in CS wouldn't be surprised that I created 4 apps within a month instead of the blog app only.

It's all function calls, for loops, if-statements and variables in the end. Sure, JS has closures, but we had compilers in class, so understanding on a high level the JS engine internals work, it isn't that hard. The same goes for callbacks, promises and all the other fun JS stuff that makes JS quite unique. *

* I use the debugger a lot when I learn a new language. I do think this is a super power since not many programmers seem to do it, but it gives a lot more context. It's the only way how I was capable of getting a foothold to understand X86-64 in binary and malware analysis. I'm pretty bad at simulating code in my mind, but now that I've seen it 1000's of times in debuggers, I'm a lot better at it.

Moreover, even in 2017, the resources available to self-teach how to do it were available and I self-taught everything via the official NodeJS documentation, code school and random YouTube tutorials.

So, in my case, I've seen both sides. Ironically, I became one of the best JS teachers by virtue of my CS education (and my upbringing, had to teach family members a lot of stuff). I know what coding schools teach, IMO the CS education I had was superior to that. Maybe not in time effectiveness though, but of those 6 years I spent on it, I'd say that 1.5 years was super useful, 1.5 was useful and the other 3 years is where I got C's anyway and did other things to enrich my life (such as a course on Buddhism) :)

Re: A guide to learning algorithms through LeetCode

#216

16+ years of experience and won several awards and designed multiple highly scalable systems in retail. Still cannot get into faang. These coding interviews gate keeping me..

9 years of experience, used LeetCode for preparation for two months (solved around 200 mostly medium problems) and got an offer from FAANG. Coding challenges at FB and G are not that hard nowadays.

Re: A guide to learning algorithms through LeetCode

#217

It's becoming obvious to me that my time is better spent learning to solve these riddles rather than actually becoming a better developer. I have a job search coming up at the end of the year and whilst I've managed to largely avoid companies that ask this type of question, I believe it's seriously constraining my career. I can't speak for everyone but the whiteboard interview has prevented me from leaving jobs earli…

One could, I suppose, split the cost by doing the exercises in a language you are still learning.

Unfortunately, Leetcode only has one of the two languages I'd like to learn, and the one I'm probably less likely to find a job doing.

Re: A guide to learning algorithms through LeetCode

#218

Earlier quoted context omitted.

Firstly, thank you for sharing :) Yours is above the par learning experience than most fresh graduates I have encountered. When we hire in Eupope I would very interested to try and convince some of your juniors to join! > The startups I've been at had about 100K lines of code for their complete product. In other words, a lot of companies don't have a 1M+ codebase. Most large companies who are also large employers sad…

Ha! I remember the source you mention [1]. 25 million lines, haha. Man-made software mountains :) Thanks for reading my comment by the way. I wish I had more time so I could write succinctly. If you're ever in the position to hire people from my uni send me an email if you'd like some introductions to professors and what not. > Alternative learning avenues have opened up like Coding Schools and Bootcamps who do lot b…

You mention CS education is not efficient way to learn to be a developer, the other problem it is expensive, maybe Europe is different it is certainly a major factor US and many other countries.

As you point out your strong background in CS helps a lot, which is why tech interviews want to filter by that skill, it is however not essential to be a good developer.

To be a good mechanic you don't need to know engineering, knowing engineering certainly helps and give you an edge over someone starting the same time as you, but not much for senior skilled hiring. I would rather have my car serviced by experienced high school dropout mechanic than MIT graduate out of college.

Personally, I have a background in electrical engineering, I started hiring tech startup right out of uni, neither knowing tech or hiring. It is been 7-8 years and we are now 150+ strong. My brother has PhD in CS and multiple post-docs, studied in top universities and now teaches at one. Between the two of us, you would hire me any day to build a real application. If both of us started careers as developers at the same time perhaps he may have become a better developer, however today my experience would count lot more than foundation knowledge his education will bring.

tldr: The background in CS helps early on as fresh grad, but it should not be a factor for senior hires, that is problem in FAANG hiring.

Re: A guide to learning algorithms through LeetCode

#219

Earlier quoted context omitted.

Ha! I remember the source you mention [1]. 25 million lines, haha. Man-made software mountains :) Thanks for reading my comment by the way. I wish I had more time so I could write succinctly. If you're ever in the position to hire people from my uni send me an email if you'd like some introductions to professors and what not. > Alternative learning avenues have opened up like Coding Schools and Bootcamps who do lot b…

You mention CS education is not efficient way to learn to be a developer, the other problem it is expensive , maybe Europe is different it is certainly a major factor US and many other countries. As you point out your strong background in CS helps a lot , which is why tech interviews want to filter by that skill, it is however not essential to be a good developer. To be a good mechanic you don't need to know engineer…

In The Netherlands the only expensive thing about it is opportunity cost, which is as amazing as it gets. Now, it's a bit worse though. 8 years ago, I received about 3000 euro's. My education was 1900, my travel was free (also sponsored) so the rest was for books and living on my own. I decided to stay at home and take a longer commute. 1100 euro's for books is more than enough in most cases. I know that this is in stark contrast to the US. And from my point of view (which is biased), I find the US to be in an unfortunate situation.

I agree with everything you said. Perhaps it might be interesting to remark that I feel this picture changes in the startup landscape were things aren't always that complicated, but where the people that hire you do seem to hold you to the same standards. This is why I'm always wary about the title of "senior" at a startup.

Re: A guide to learning algorithms through LeetCode

#220
post #122

Earlier quoted context omitted.

> You're either naturally adept enough to do well, or ... I'm personally very wary of using algorithms questions as a proxy for how "adept" someone is at software engineering . If I were running a business, I'd personally want to make sure people could manage technical debt and build decoupled systems. I have had multiple positions at FAANG companies, and despite being "adept" according to these algorithms questions…

Why do you suppose these hires aren’t good at learning engineering best practices? I see comments like yours here all the time. Is it some kind of arrogance, perhaps amplified by a false signal sent by getting hired off leet code questions in the first place?

> Why do you suppose these hires aren’t good at learning engineering best practices?

I guess what I was trying to convey is different: being good at algorithms doesn't give much of a signal (positive or negative) about other things I think really matter more on the whole.

(Of course, having enough people being aware of algorithms subtleties is important ... everyone, not so much)

Post reply on HN