Seems he has a new book out (I haven’t read it): https://link.springer.com/book/10.1007/978-3-032-07453-9
https://link.springer.com/book/10.1007/978-3-031-61794-2
Additionally, there is a nice set of problems that go along with the book:
Competitive Programmer's Handbook (2017) [pdf] - https://news.ycombinator.com/item?id=17605395 - July 2018 (14 comments)
Competitive Programmer's Handbook (2017) [pdf] - https://news.ycombinator.com/item?id=16952222 - April 2018 (121 comments)
A Competitive Programmer's Handbook - https://news.ycombinator.com/item?id=14115826 - April 2017 (157 comments)
Competitive programmers handbook - https://news.ycombinator.com/item?id=13762408 - March 2017 (2 comments)
1739802959 | Competitive Programmer's Handbook [pdf] | https://cses.fi/book/book.pdf | https://news.ycombinator.com/item?id=43079410 | 0 comments
1749209436 | Competitive Coder's Handbook [pdf] | https://cses.fi/book/book.pdf | https://news.ycombinator.com/item?id=44199775 | 0 comments
I’ve been looking for some coding puzzles to make my head hurt a bit. Somehow I can’t get into Leetcode and problems from the interview prep sites. Maybe this tome will land a bit better since it has an aim other than getting a job where you probably won’t use the stuff anyway.
Thanks again.
I did, nevertheless, learn quite a bit from it. Would recommend to everyone. It's well written.
I guess what I meant is that if you've read stuff like Cracking The Coding Interview and taken an undergrad algorithms/data structure course - that's sufficient knowledge for Leetcode style problem.
The additional stuff in TCPH was fun to read/learn, but I never used it to solve any of those problems.
A note: In my last round of interviewing, I read Beyond Cracking the Coding Interview (the sequel), and the tips it gives for technical coding problems were great - much better than the original book. I can't say it helped getting a job, because the job I did get had its interview just before I read that book.
Also, how did you coordinate practice and having a day-job?
That’s all out of the window now. If we are really in “do we even read the code?” territory, then this is just a hobby to do for fun, and doesn’t matter for any real world work. But even if we read the code, but most code is written by prompting and iterating with agents, I don’t know if this will be helpful at all.
In 5 to 10 years, we'll see what kind of engineer is produced from pure LLM steering without years of hand coding experience. Even many of the more experienced ones would have some of this skill atrophied.
Let's take a hypothetical where we really do all stop reading or writing code, because the models and tooling get good enough. In that scenario I would still argue for this of thing. Studying algorithms gives you a lot of insight and a powerful way of thinking. This class of problems is ultimately about how aspects of software work, so having some familiarity with famous algorithms is part of computer literacy. I'm not saying that you need to be an expert, but struggling to solve a few hard algorithm problems teaches a lot.
Closedsource, credentialism and gatekeeping is my new stance.
No other profession is as eager to make themselves obsolete as those who build software.
Maybe they think the world runs on meritocracy. Anyway looks like now they are seeing what happens when there are no gates at all and anyone can do what you do.
It's a good thing that "interpret people's comments charitably" is one of the top guidelines on this forum then
It’s like competitive knitting, or competitive architecture.
This focus on the inane is what has really damaged this industries perception in engineering IMO.
Why would influence perception in any way being an unrelated very niche hobby?
or you can look at other form of competitive programming, like heuristic contest, that would teach you how to use baseline, run tests, adapt strategies based on given data
no one consider a time limited contest (hours to maybe days) same as engineering job, they do this for the fun of it
What is concerning, however, is when the competitors of these sports decide that their sport should become a filter for things adjacent to said sport.
The rationale is usually something like: "Competitive programming might not be a robust predictor for job performance, but most competitive programmers I know are also good developers, thus we must use competitive programming as a qualifying factor for hiring new developers." and weight it heavily compared to other signals.
Nothing is wrong with that. Think of it as intellectual exercise. Fair enough, real world software development involves other factors.
Ive been relearning a ton that either over-reliance on llms caused me to forget, or just lost due to time.
Its been extremely fun. I really missed the feeling of thinking really hard and arriving at a solution.
I hope we dont lose this desire as a species.
I really think the rise of LLMs has demonstrated quite well that most people don't care. Only a minority of us have ever had this desire.
Even if that child doesn’t have as much raw talent, the desire itself (paired with extra years of experience —- especially when the brain is at its most malleable) will drive success in a way the pursuit of money alone never can.
You and the author care about software craftsmanship, which is wonderful. But might need to remain a hobby...
I think people care about the problems they have to handle. Not having to deal with a problem eliminates the incentive of training to fix the problem, because you don't waste time on problems that don't happen.
People also stopped caring about what machine code was generated by compilers. In the past people had to roll out asm to get things to work. Not anymore. With llms it's the same way.
When it is bad they either rewrite their source code or write assembly.
A tool do a job good enough that people don't have to do the job by hand does not mean people stop caring about the quality of the job.
Nothing new under the sun.
LLMs aren't comparable to anything thats come before, in my opinion. We had much more time to adapt and integrate with original forms of computing, as well as many other technologies from centuries past.
Sure you can use llms responsible and perhaps in a rewarding way (that isnt just related to making money), but very very few people are making that effort or even know how to.
Its more likely people use them irresponsibly like we do cars. Walk half a mile... nah I'll drive. Now we have endemic diabetes.
Machines have removed our need to work, this stunts our body, and the solution is synthetic work (gym).
AI removes our need to work with our minds (at least partly), this stunts our mind, and the solution is synthetic mind-work.
Sure it will take some time to get used to. But we will get used to it.
It's trending down because researchers found a magic pill (well, peptide) that was clinically proven enough to become over-the counter. This trending down started in 2023. 40 years of policy barely did anything (partially because it never fixed the systems, but I digress).
So are we just going to pray in 40 years someone finds a solution to brainrot?