22 ms·
Caltech's CS interview prep course
- moneywoes 5y agoCould anyone kindly provide the materials associated with the course? Thank you!
- deleted 5y ago[deleted]
- im_down_w_otp 5y agoAre there other major economic sectors which have circled the wagons around making job applicants do remedial coursework as live performance art?
- darkstar999 5y agoActuary?
- TrackerFF 5y agoI feel that it's mostly a certain part of the tech scene. FAANG companies, startups, and those cargo-culting those. I've actually been to dev. interviews that were 1-2 interviews long, almost zero technical questions. Now, those places were in now way "prestigious", or paying $250k starting salaries. Just your garden variety F500 companies / gov. agencies / non-tech companies. Also, my experience with "traditional" engineering companies have been similar, 1/10th duration of tech interviews, some fundamental questions related to your trade, then mostly questions on personality, you experience, etc. The closest I've been to tech, was finance. It's very much a predictable process - you know what kind of questions you'll be asked, what the next round will include, and all that...but still not anywhere near the rigor of prestigious or trendy tech firms.
- barry-cotter 5y agoNo. Normal economic sectors without decades long explosive growth have some kind of licensing system to keep people out so that insiders make more money. Merely being able to teach, engineer or reason about the law taking into account precedent is not sufficient to get a license for it. In some cases this probably has some attached quality control implications but we know education degrees have no effect on teacher effectiveness[1] so there’s at least one case where that’s pure rent seeking, where the insiders benefit and everyone else pays. [1] It's easier to pick a good teacher than to train one: Familiar and new results on the correlates of teacher effectiveness https://www.sciencedirect.com/science/article/abs/pii/S0272775710001755 https://www.sciencedirect.com/science/article/abs/pii/S02727...
- mattkrause 5y agoI wonder how many “engineering” jobs actually require PE. Biotech is an another counterexample to this: there’s no licensing requirement (though many jobs do require a masters or PhD) and the interviews also (mostly) aren’t quiz show lunacy. You usually talk about your past work and answer questions about how you’d approach new problems; no one makes you (say) sketch crystal structures on the board or recite the Krebs Cycle.
- barry-cotter 5y agoYou can get into software engineering completely self taught or after a (3-12 month) boot camp. If biotech was that open they’d have similar interviews checking for basic familiarity with the field. Must have a Master’s at minimum is very different from must pass an interview as a minimum hiring filter.
- analog31 5y agoDepends on the field. Even the PE requires you to work in the field before you take the full licensing exam, meaning there is work for non-licensed "engineers in training." Some fields like electrical and mechanical allow an "industrial exemption" if you work for a company that makes things rather than offering engineering services to clients. An engineer is someone who might say "no" to releasing a product that might fail and cause injury or economic damage. I'm not sure what that would correspond to in the software world, where everything fails.
- zizee 5y agoThis is largely a result of low barriers to entry into the profession. You do not need to have a qualification from an accredited institution to be a practicing software engineer/programmer/developer. Unlike doctors, lawyers, dentists, civil engineers... So you have a well paying profession, hot demand, good working conditions, and no external framework to ensure a base level of competence. Of course people will try and game the system (wittingly or otherwise). IMO this is a good thing. It allows people from all walks of life to get into the industry, and has helped it to grow more rapidly. But it does introduce a big issue, that its very difficult to know if someone is an expert, or just trying to fool you (and perhaps themselves) into thinking they know what they are talking about.
- SmellTheGlove 5y agoNah it’s still broken. Using lawyers as an example because that was my past career, 3-4 years of law school also doesn’t teach many practical skills. In fact, most of us took what amounts to a semester long course just to prep for the bar exam. And even then, you still don’t know anything! As I shifted into tech, the hiring process didn’t surprise me but for the wrong reason. All I learned was software engineers put up with similar bullshit to lawyers! All that said I don’t know how to fix any of it easily. Maybe no one else does either, and so here we remain.
- learc83 5y agoThe difference being that lawyers generally need to pass the bar exam once. You need to brush up on your leetcode every few years.
- porcoda 5y agoI've noticed that people here paint the whole industry with a broad brush that reflects what a handful of giant companies and companies imitating them do. I've been on both sides of the interviewing table at a few places and it's never been the whiteboarding dystopia that everyone talks about here. The last job I took had a long interview process, and at the end of the day someone spoke up and said "oh yeah, we probably should ask you some code question", which I blew since I was exhausted and it was an obscure C++ thing. They laughed it off and I still work there. HN is a poor barometer for the broader tech industry - everything from hiring practices, tech choices, etc. HN has a tendency to make it sound like all the world acts and smells like a giant tech company or a startup. There are a TON of companies that are not like those.
- deleted 5y ago[deleted]
- dvt 5y agoIf you don't think modern interviewing practices are a problem, this should be proof enough. Not only do we have an entire programming book sub-genre dedicated to this nonsense, but now we're also wasting class time on memorizing sorting algorithms. Fantastic. Of course, we're going to see the inevitable arguments that "40% of the people I interview lie on resumes" or "I interviewed this guy once, and he couldn't even write one line of code"—let me pre-empt that by saying if you ever get to that stage, your screening process must absolutely suck and it's still your fault. I've interviewed dozens of people and never had that experience, because I check OSS contributions, professional history, published material, and ask for code samples before I even engage with a candidate in a technical discussion. It's not rocket science. I've told at least 5 or 6 companies that wanted to white-board me to suck it. It's honestly insulting that I'm forced to white-board when I have two books with my name on them (published by Apress), contributions to Golang (small commits, but they still got me in the AUTHORS file), and OSS projects with hundreds of stars on GitHub.
- santiagobasulto 5y agoI agree with you; the whole interview process is broken. But looking at the bright sight, teaching young people how to “work the system” is not a bad thing. Again, we should fix interview. But in the meantime, a class specializes on “how to beat the man”, looks like a fun class where you can learn more than just CS.
- barry-cotter 5y ago> I've interviewed dozens of people and never had that experience, because I check OSS contributions, professional history, and ask for code samples before I even engage with a candidate in a technical discussion. How are you supposed to hire 50,000 people a year with a process like that? It seems unlikely there are much more than 100,000 people with significant OSS contributions in total. Published material isn’t going to be much more than that if it b even gets that high. And most people who are good at programming will have nothing for either. If you’re not going to spend at least ten, more likely 20 hours calling up references your going to be fishing from a pretty narrow pool there.
- 5y ago
- wsh 5y agoOther than the course outline, is there any substantive content available? I saw only a link to the first problem set, and even that requires a Caltech login.
- johnnyo 5y agoAny way to access the assignments without a Caltech login?
- avl999 5y agoThis is absolutely embarrassing for the industry.
- VirusNewbie 5y agoWhy is it not embarrassing for Caltech’s admission department and algorithms courses?
- someelephant 5y agoI'd argue it's pragmatic
- avl999 5y agoI agree it is embarrassing for Caltech as well. They are one of the biggest engineering schools in North America not Greendale Community College, this kind of class is beneath them. No major research university should be offering a course like this.
- thaw13579 5y agoThe Caltech course on algorithms is probably focused more on mathematical proofs of correctness and runtime bounds, rather than the implementation details required to pass coding interviews
- VirusNewbie 5y agoIf someone cannot code an algorithm they certainly don’t understand it.
- anaheim_ducks2 5y agoSeriously, who teaches this course, the "Cracking the Coding Interview" author?
- turbinerneiter 5y agoNo clue if this is even remotely true, but here is what I think: the most successful companies can basically pick and chose from a really large set of applicants. Given this luxury, the can, in essence, filter by any kind of metric they want and still get loads of suitable people. I short: if you have a million applications you can sort by GPA and still have a hundred people to chose from. Sorting by GPA means you will overlook lots of raw talent, but who cares, there is still enough real talent in your funnel as well. For me, someone hiring for a way smaller and poorer company, this is actually good. These processes overlook lots of great people, which we can snag up. This observation is based on the behavior of big companies in Germany (think carmakers and similar), not sure how well it translates to the silicon valley situation, but seems similar.
- xiii1408 5y agoYeah, I'd say this is exactly what's going on at big tech companies. Add to that the need for an interview process that is very standardized for (1) scalability in a large company and (2) legal protection against discrimination (at least nominally), and it makes a load of sense.
- wombat-man 5y agoI feel that the interview format heavily already favors new grads who just spent an entire year or more focused on algorithms courses and learning a lot of the theory you might get pop quizzed on.
- fermentation 5y agoSometime around my Junior year of college my goals shifted from "I'm here because I want to learn" to "I'm here because I want a job". I was surprised to find that doing well at learning (getting As) not only wasn't good enough for an entry level job, it wasn't even really correlated. The more time I spent on coursework the less time I had to grind through interview questions. I wonder if there are any other industries like this.
- analog31 5y agoSymphonic musician. The first stage is nailing a blind audition, perfectly.
- fortran77 5y agoNot anymore! Blind auditions are now a thing of the past: https://www.nytimes.com/2020/07/16/arts/music/blind-auditions-orchestras-race.html https://www.nytimes.com/2020/07/16/arts/music/blind-audition... However, since you can't choose your parents or where you were born, there's little you can do to prepare for the Diversity, Inclusion, and Equity goals. (I could probably get a lift by changing my religion. People with the exact same ethnicity and appearance as me but of a different faith are considered "people of color" by most DEI committees) I started out wanting a career in music but quickly switched to a math major. While I still perform at amateur recitals, I'm glad I didn't try to prusue a professional career.
- gjm11 5y agoThat article is behind the NYT paywall but the bit of it I could see appears to be saying not that > blind auditions are now a thing of the past but that they should become a thing of the past, so that orchestras can ensure that their makeup (race, gender, etc.) matches that of "the communities they serve". There's a big difference between "one person writing in the New York Times thinks orchestras should stop doing blind auditions" and "blind auditions are now a thing of the past".
- 5y ago
- amznbyebyebye 5y agoSo wait you are smart enough to get into caltech, smart enough to graduate with a degree in CS. And yet the curriculum on its own does not do a good job enough on its own to prepare you for getting a job? Very hard to graduate with a decent GPA in CS at caltech and not be able to thrive as an entry level engineer. If you got B’s in caltech CS I’d make you an offer for 200k+ without blinking or even asking you anything. I have a small friend circle, I would say they’re all smarter than I am on raw problem solving and intellect capability. They came out with better degrees from better institutions. All have PhDs and yet they’re all facing delays when landing a job. There is something definitely broken. I think the industry has created this problem and the industry should fix it.
- VirusNewbie 5y agoIts possible that this is another sign interviewing for software jobs is broken, but it is equally possible that this shows the skills required to excel in high school and be accepted to college are easily gamed and Cal Tech isn’t exactly filled with the most intelligent problem solvers.
- gcheong 5y agoThe industry recreates the problem every so often with different variants. Previously it was the Microsoft/Google “thought problems” such as “Why are manhole covers round?” and “How would you estimate the number of gas stations in a city?”.
- onion2k 5y agoThet change when they realise the current method doesn't actually work. They're not recreating the problem; they're looking for a solution.
- gcheong 5y agoIn their quest to find a solution they simply recreate the problem with a slightly better approximation of an actual work sample evaluation. It’s like watching a Newtonian approximation algorithm.
- neonate 5y agohttps://archive.is/njEHH https://archive.is/njEHH
- Apocryphon 5y agoTech interview discussions always seem to run the same course and hit the same points, so I'll repeat one of mine: What's wrong with the idea of turning the standard Leetcode algorithms interview into a license that only needs to be completed once, or maybe once every 5-8 years, similar to what physicians must undergo? Much more efficient than having to retake it with every single company during an interview cycle.
- closeparen 5y ago“The standard” belies a lot of variation. Some interviewers want perfect code the first time on a whiteboard, some let you go back and forth with a compiler as much as you wish. Some interviews stick to relatively shallow algorithms knowledge like DFS, others will ask you two LC Hard questions in an hour. Sometimes it’s about whether you solved the problem, sometimes it’s about your thinking and collaboration during even a failed attempt. There are too many opinions and too little hard evidence to sort them out. It’s a challenging coordination problem.
- Apocryphon 5y agoYou're completely right, and this actually is another layer to the whiteboarding technical interviews are broken narrative: there are no objective standards, even if there is huge overlap in the content being interviewed from company to company (or even team to team). A very discouraging aspect about these interviews is that the rubric is completely hidden away from candidates and feedback is almost never provided. At least a licensure or certification test would be more transparent.
- majormajor 5y agoThere are no objective standards for the output of the software development process. It's a unique mishmash of building the blueprints and the final artifact at the same time. Not because we want to be a bunch of cowboys, but because the unique ability of it to be that flexible, and to be patched over time, means speed is possible in a way it just isn't in other fields, and the market has rewarded companies that move fast. So until that's changed, I find it hard to see how we could standardize developer hiring. My coworkers and I all wear a different amount of hats with varying competence. The number and variation of certs required would be rough! "I'm level 4 backend engineer with level 3 data design [streaming level 1, traditional ETL level 7], level 1 hacky frontend dev, and level 2 devops" - sheesh, now I'm spending my whole time keeping those up to date.
- TLadd 5y agoLast time I interviewed, I thought about how it probably would have benefitted me to take one less class a semester in college and just drill leetcode-style questions in that time. Given how almost all "prestigious" companies use these problems heavily for interviewing, it's likely to increase earnings more than any other course. I think what caltech is doing here makes a lot of sense and demonstrates an awareness of the realities of interviewing at companies a lot of their students will want to work at. College is also a better time to build up this skill than later when other responsibilities tend to pile up.
- Veserv 5y agoFor context, this is a CS11 class which is a catch-all small form factor elective (3 units, average class is 9 units, units are supposed to be that many hours per week) that is used to offer a dozen or so small topics that are not extensive enough to warrant a full class. In any given term they will usually offer various CS11s for learning new programming languages and a few other random topics with some being run by grad or undergrad students.
- relyks 5y agoI understand part of the point of posting this is to demonstrate the problems with the educational system for CS majors and the hiring practices of the industry, but what is the actual point of sharing it here if the resources aren't open for all of us?
- mkl95 5y agoMy career path in tech so far has been junior engineer -> mid level -> senior -> tech lead. As I've progressed through that path, I have had literally no opportunities of applying the stuff I've learnt on HackerRank, save for a couple of interviews. At this point I'm convinced that the focus of those interviews was entirely wrong. Once you pass those tests and get hired, you will be dealing with tons of legacy code riddled with dumb queries, questionable code quality, and very often the wrong stack for the problem at hand. I'd be OK with modern interviews if they reflected the job you will be doing to a reasonable degree. But knowing the state of the industry I feel that they fall somewhere between gatekeeping and a bait & switch scheme. If you haven't spent enough time practising those problems, you will look like an idiot. If you have spent enough time practising them, your expectations will be high, and you will feel scammed when you read the steaming shit your new employer wants you to improve.
- giantg2 5y agoI went to an internal job interview about 5 years into working for the company. They were asking me all sorts of textbook questions about defining stuff like polymorphism and explaining some sort algorithms. I bombed. Many of these terms and algorithms had never been used during my 5 years, and I forgot many since they hadn't been used since college. I wanted to ask the interviewer if they actually use these terms in meetings or used the algorithms, but I didn't. Since it was internal, I already knew the answers would be that they didn't, and I didn't want to appear confrontational. I was internal, a high performer on my team at the time, and you're going to ask me this useless stuff?
- sharpy 5y agoHaha. At some companies, they made the interviews tougher for internal candidates... Amazon used to require full loop, but last time I changed jobs there (I no longer wok there), all it took was conversations with some senior engineers, and somebody reviewing my work sample. And totally agree with the absurdity of the questions we ask in tech interviews. At least for my current employer, we use simplified versions of real problems we faced in the past, and place more emphasis on how they communicate, rather than just throwing some leetcode medium/hard problems, and let candidates self select based on how much prep work they put in.
- axpy906 5y agoThanks could not get main site to load. This should be at top.
- dang 5y agoThanks! I moved it to the top. (Just to conserve space there, I detached this comment from https://news.ycombinator.com/item?id=30492698 https://news.ycombinator.com/item?id=30492698 and marked it off topic.)
- tzs 5y agoI'm a bit confused. The course number on the page and in the URL is CS 11. But the Caltech course catalog lists CS 11 as "Computer Language Lab" [1] and the description is nothing like the CS 11 at the submitted URL. [1] https://catalog.caltech.edu/current/courses/department/CS/2021-22 https://catalog.caltech.edu/current/courses/department/CS/20...
- enjoyyourlife 5y agoIt seems to change topics depending on the term
- BurningFrog 5y agoIdea: Professional CS interviewers! I'm a good programmer, but not a good interviewer. That makes me pretty typical. I could spend a lot of time getting better at it, but I would only marginally improve, and it would take time out of the work I'm actually good at. This feels like a typical problem for division of labor to solve. Maybe it's already done in done form?
- avl999 5y agoYou would not "marginally improve", you would dramatically improve. That's the dirty secret of these interviews they are not that hard to get good at. There are at most a little over half a dozen data structures and about a dozen algorithmic technique patterns that show up in these interviews, once you do enough of those types of problem, you get better at it. I am willing to bet that spending an hour every day on leetcode you can probably be good enough to pass interviews at most companies in a month or two (assuming you had exposure to DS and Algorithms in college, if not add more time but the general idea applies). Maybe not Google but I would bet you'd be good enough to see double digit increasing in your onsite -> offer conversion percentage. Whether that would be worth it is a different question, the answer for many people who already have good jobs is no.
- paxys 5y agoNot sure what you mean. If your idea is some kind of technical interview training, a million services for that already exist.
- BurningFrog 5y agoI mean professional technical interviewers that companies hire to interview candidates for them. I know it's an unusual idea, but i didn't think it would cause such confusion.
- paxys 5y agoThis already happens to some extent with online screening software and such. Ultimately though no team is going to trust a fully third party assessment of a candidate that they'll have to work with day to day.
- ozzythecat 5y agoInterviewing is broken. When I was at Amazon, it became impossible to hire candidates, and generally the engineers we brought on board were non-US citizens. Typically they're Indians without U.S. residency status, often times U.S. college grads or often even transfers from Amazon's Indian offices. Not only did we pay below other FAANGs, but with these hires, we'd pay them at the low end of our own scale. What are they going to do? Quit? Ha! If they quit, they have to leave the country. So most of them just suck it up. Many of them had spouses and children. Quitting Amazon meant they'd have to uproot their entire family. A second order effect the entire industry on how to work around Amazon (and other big tech's) styling of interviewing. What amazes me are all the Youtube channels from Amazon engineers and other big tech companies with this "influencer" persona. At the end of the day, many of these kids at Amazon are doing shitty migration projects, shoveling legacy code around all day, and dealing with on-call hell. But we have this entire cult of working in big tech and going through all these gymnastics to get through pointless interviews. Perhaps Google, Netflix, etc. are much better places to work, but it boggles my mind anyone would invest so much energy in getting a job at Amazon. It's absolutely a shit place to work that doesn't treat people like human beings.
- avs733 5y ago>Interviewing is broken. Nothing you describe suggests to me that it was the interviewing that was broken, it sounds like the employment was broken.
- almost_usual 5y agoI’ve never worked at Amazon but this seems to be a common theme with interview candidates who work there. They talk about to burnout and stressful on-calls shifts. I’m not sure how this unfolds for Amazon in the long run.
- deltaonefour 5y agoThey're already having problems with hiring. I get pinged by one or two amazon recruiters DAILY. Literally, not even exaggerating here.
- 5y ago
- deltaonefour 5y agoI think the thing going on with interviews is that (most) of software engineering is actually pretty easy. Anyone can do the job outside of an interview session with the right experience. Note how I stressed the word (most). The interviews mostly serve to keep salaries high.
- Ancalagon 5y agoI mean I guess on a surface level this might be true if you only consider like developing small web features, but large and complex code bases and distributed architectures are not easy to work with imho. You can see that its actually pretty difficult because brand new junior devs can take upwards of 6 months to be useful, not to mention to occasional stand-in dev that sub contracts their job out, then when taken into a room and asked to read "their" code cant even understand what is going on. I graduated with a physics degree and I still remember how steep the programming learning curve felt when I took my first programming in C course despite having done some python work in the past. So I don't think the "most" qualifier is necessarily correct either.
- deltaonefour 5y ago>I took my first programming in C course despite having done some python work in the past. Most stuff isn't done in C anymore. C is waay less safe then python and that's despite type checking. Most jobs don't require C or C++. I would say because of this most programming jobs are easier now. >You can see that its actually pretty difficult because brand new junior devs can take upwards of 6 months to be useful, This means it's easy. 6 months is incredibly short. Mastery of anything usually requires a couple years.
- paxys 5y ago> The interviews mostly serve to keep salaries high. What incentive do tech companies have in keeping salaries high?
- deltaonefour 5y agoI guess think of it like religion. There's no logical reason behind religion... but it exists. It's more of a cultural phenomena then a strategic action. The people who believe in the religion can't differentiate between religion and truth. Hence if a huge number of people in a company believe it as truth, it becomes part of company policy. In addition to this, many occupations over time develop standardized testing and filters to keep supply low. Keeping supply low is a logical incentive but there's no one guy who set the policy to be this way with the purpose of creating a cartel. Much of this happens organically as cultural phenomena. Doctors and lawyers are good examples of this. Training to become either a doctor or a lawyer is actually quite excessive and there's no proof that the people who make it through these gateways are better performers. In fact, there's statistical proof that doctors in the US who go through one of the hardest filters ever to become a doctor are actually much less effective then their European counterparts. This indicates that the filters don't exist because they create more effective doctors. I think software is going through a similar process. It won't get encoded into government accreditation. But it will be used by elite companies to form the typical class based social hierarchy which is a cultural phenomena that forms across every single culture.
- syspec 5y agoThe link looks awesome, but is it just a listing? I couldn't find any of the content
- lumost 5y agoLC interviews are well past the curve of utility. 10 years ago, FB and others would do a simple fizzbuzz + lc easy/medium demonstrating that you had a good grasp of complexity, pointers, recursion, and iteration. I got a job or two by showing that I could DFS a binary search tree, count letter occurrences in a paragraph, or return the top k elements from two sorted lists. Then people learned to practice these simple coding questions, and employers had to up the anty. Now everyone wants an LC expert who can do an LC hard in under thirty minutes with perfect code and no hinting. I wouldn't be surprised if LC has to open a new category of problem difficulty based on current trend lines. At some point you really are hiring for a skill which is only applicable in interviews. Solving an LC hard in under 30 minutes has little bearing on whether a candidate could solve a novel research problem or difficult refactoring task in their day to day work.
- ngc248 5y agoExactly its like an arms race. It has become ridiculous, they want you to solve an LC hard and that too within 30 mins. And there are trending questions, for ex: if GOOG started asking segment tree questions, everyone starts asking that.
- deleted 5y ago[deleted]
- ModernMech 5y agoThis is a standard second semester Freshman year intro to programming curriculum. Most Universities have a class that looks exactly like this. I guess the only thing unique here is that when you're ready to graduate, you can take a class you already took 3 years earlier.
- catsarebetter 5y agoWait I'm confused what happened that this link sparked so much discussion about how interviews are broken?
- throwaway984393 5y agoTheir "problem solving" section is pure algorithm b.s. Developers rarely ever spend time on algorithms in the professional world, and if they do they aren't going off memory, they're googling "best algorithm for X" and adapting it. There's almost nothing on this page that relates to actual work at a company or the kinds of things employers should care about. It looks like it only exists to try to get you a job at a FAANG with a terrible interview process.
- yoyopa 5y agoall this jumping through hoop bullshit needs to stop. just take a genetic scan at birth, assign someone their lot in life, no more worries.
- beiller 5y agoIsn't this the sort of thing university is not meant for? In Canada we separate out college and university, and this would mayyybe make sense as a college level course maybe, since it is more geared towards trades. But this sort of thing just reeks of corporate involvement in university and education of future scientists. It's quite clear to me that this course is purely dictated by "interviewing style of the day" and is not really pushing forward the knowledge of humanity AT ALL. What is next? AWS console UI programming 101? That is not transferable knowledge is it...
- bootlooped 5y agoI don't think that my US college education pushed forward the knowledge of humanity at all. The least it could have done was prepare me for the professional world, but it didn't even do that very well.
- vishnugupta 5y agoI'm just dumbfounded that an university that has this: https://www.caltech.edu/about/legacy/awards-and-honors/nobel-laureates https://www.caltech.edu/about/legacy/awards-and-honors/nobel... ...also has to offer a whole course to prep for job interviews :-|