Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Elements of programming interviewsAdnan Aziz

    Elements of programming interviews

    Adnan Aziz · 2017

    "Elements of Programming Interviews (EPI) aims to help engineers interviewing for software development positions. The primary focus of EPI is data structures, algorithms, system design, and problem solving. The material is largely presented through questions."--Introduction.

    ProgrammingComputer Science
    Open LibraryAmazon
    Stats for nerds
    36recommend
    59mentions
    57people
    2013–2024years
    63% recommend32% neutral5% critical

    Mentions per year

    2013201520172019202120232024

    What Hacker News says

    1. tmoertelApr 2024
      While some interview problems rely on knowing a trick (and I would argue that these are poorly chosen problems that reveal little about candidates except whether they know the trick), most problems can be solved with a good understanding of computer science and engineering fundamentals. It requires practice, however, to learn how to break a problem into its components, come up with solutions for the components, and then weave them into an overall solution.

      Like you, I'd been in the industry for more than a decade. Solving interview problems is very different from professional work. So, you'll probably need to practice your interview-problem-solving skills. I know I did.

      What I did was put a whiteboard on my wall and solved problems on it. I solved the problems blind, drawing them randomly from a book (Elements of Programming Interviews was my primary source). I video recorded myself and reviewed the recordings to help me refine my spoken thought stream and to learn to avoid stumbles and long stretches of silence. I then practiced in this way for a month, on and off, until I became good at it.

      Best of luck!

      thread
    2. derwikiNov 2023
      I know this has been discussed in the past (e.g. https://news.ycombinator.com/item?id=21153175) but I'm curious if the guidance is still the same.

      Standard advice seems to be:

      1. Leetcode: maybe not grind it, but a) check if the companies you're interviewing at have tagged questions, b) review many questions and solutions and c) solve a few yourself from scratch

      2. Cracking the Coding Interview: the "classic"; I see that Gayle also has a bunch of HackerRank affiliated videos on Youtube now.

      3. Elements of Programming Interviews: similar to (2) but more thorough

      Outside of those, I've also:

      1. Interviewing.io: "realistic" practice interviews

      2. ChatGPT: practice recruiter screen/behavorial questions, e.g. generate sample questions like "tell me about a time you overcame a technical issue", help refine a "standard set" of responses

      3. Project Euler: I know it's similar to Leetcode, but I always enjoyed this more and it feels like it prepares in the same way

      What else would you recommend?

      thread
    3. sn9Jun 2022
      Have you taken an algorithms course?

      Working through Skiena's Algorithm Design Manual [0] would be a good start and/or watching his lecture series on Youtube [1].

      Other great books include Elements of Programming Interviews [2] which comes in Java, C++, and Python flavors.

      It can help to focus on a smaller subset of Leetcode problems to learn the tricks that underlie most of them. Neetcode [3] is a good collection of those problems on which you could focus your time and efforts.

      I don't think it's realistic to expect to do well on Leetcode without practicing the above skills to some degree, so I wouldn't be hard on yourself if it's been years since you even looked at the material.

      [0] https://www.amazon.com/Algorithm-Design-Manual-Computer-Scie...

      [1] https://www.youtube.com/watch?v=dphSwq5jP1A&list=PLOtl7M3yp-...

      [2] https://elementsofprogramminginterviews.com/

      [3] https://neetcode.io/

      thread
    4. evercastJan 2022
      I don't see this mentioned by other commenters so let me provide another perspective. Namely, I think OP is doing it wrong.

      OP claims to have done 400+ LC problems over a couple of months. Let me say it out loud here: this is simply crazy. It strikes me as an attempt to not learn how to tackle these challenges, but to actually brute-force through them. To anyone preparing for an interview: don't do this! Grab a book like Elements of Programming Interviews (EPI), maybe follow some online courses on programming puzzle patterns, and then start grinding LC. Maybe interleave grinding with learning? Your end goal should be to develop deep understanding of what you are doing, not memorise the solutions.

      Also, while going through LeetCode, it is very important to realise that the problem classification there is a bit wild at times. Don't stress that you cannot solve a medium sometimes as they are mislabeled. I did mediums that could be hards, hards that could be mediums, and hards that were just impossibly hard. Typically a very hard problem is not something you should expect in an interview setting as most interviers* don't expect you to implement KMP on the spot. Doesn't hurt to know it and impress the interviewer with knowledge, but if you think memorising KMP is the way, you're mistaken.

      * - there is still luck involved and you can have a crazy interviewer. It can happen, so just accept it and move on. Don't treat it as a personal defeat.

      Source: I grinded and I had offers from most of FAANG letters.

      thread
    5. wombat-manJan 2022
      Leetcode is ok. My issue with it is some of the prompts are kind of confusing. Some of the solutions are often crowd sourced. Someone will probably post a solution in your language of choice, but there's not always a good explanation.

      I much prefer the book Elements of Programming Interviews. It has an accompanying git repo with tests that you can debug in if you really need to. The solutions usually discuss a couple possible approaches. Following their study guide, I learned about Java data structures that I don't normally use and saw a good variety of problems. Ended up getting a job I was shooting for.

      Ultimately though, it's not so different from leet code, although I think it is a more effective use of time. I think it is a good idea to do some practice just so you are ready for this type of question.

      thread
    6. cawDec 2021
      I read Elements of Programming Interviews rather than do LC questions online. That book has a few flavors for popular languages—-just level up on the language you know best, don’t try to learn a new one.

      I spent about a month covering the book, and then grokking the systems design.

      It’s not so much the knowledge as the familiarity with the interview format and expectations (ask clarifying questions, explain your reasoning). The company I ended up joining had an opportunity for a mock phone screen interview, which I took advantage of. It was roughly a LC easy but covered the format and gave me some feedback on how I conducted myself.

      thread

    Related

    Cover of Cracking The Coding Interview
    2010–2026

    Cracking The Coding Interview

    Gayle Laakmann McDowell
    178 recommend · 553
    Cover of Elements of programming interviews in Python
    2018–2025

    Elements of programming interviews in Python

    Adnan Aziz
    4 recommend · 7
    Cover of Programming interviews exposed
    2008–2021

    Programming interviews exposed

    John Mongan
    29 recommend · 46
    Cover of Algorithms for interviews
    2011–2020

    Algorithms for interviews

    Adnan Aziz
    4 recommend · 6
    Cover of The Elements of Computing Systems
    2008–2026

    The Elements of Computing Systems

    Noam Nisan
    204 recommend · 344
    Cover of The Pragmatic Programmer
    2007–2026

    The Pragmatic Programmer

    Andy Hunt
    353 recommend · 700
    Cover of Elements of programming
    2009–2026

    Elements of programming

    Alexander A. Stepanov
    31 recommend · 58
    Cover of Concepts, techniques, and models of computer programming
    2007–2026

    Concepts, techniques, and models of computer programming

    Peter Van Roy
    70 recommend · 133