Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do I prepare for an interview for AMZ/GOOG/APL/FB?
113 points by creek567 on Jan 11, 2018 | hide | past | favorite | 65 comments
Hi there,

I have a CS degree and I've been working as a software dev for about 2 years now for a smaller company doing backend stuff. I want to make the switch and get a job at one of the BIG 4 tech companies (Amazon, Apple, Google or FB).

Before I start applying I want to make sure I'm ready for the technical interview since I've heard the interviews are intense and I need several months to prepare for it. I'm up for the challenge and I want to do it, but I'm not sure where to start.

Where and how should I start getting ready for a technical interview? How much time would I need to be sufficiently prepared for one?

Thanks!

EDIT: Feel free to share links to Github repos, checklists and study plans, they are very helpful too!




I've worked at Microsoft, Adobe, and Twitter over the past few years. I've also received offers from (or interviewed with) Google, FB, Dropbox, Uber, etc. I would recommend:

https://www.pramp.com - 1 hr online interviews where you interview someone and they interview you back. Go through ~20 of these to get really comfortable solving problems while talking through them. They also give you the optimal solution at the end. This will prepare you really well for the initial technical phone screenings.

https://leetcode.com/ - collection of 700+ interview coding challenges. You should be able to solve any random medium difficulty question within 15 minutes if you want a shot at the companies you listed. Keep doing a couple of these per day till you get really good.

"Elements of Programming Interviews" or "Cracking the Coding Interview" - Read through either one of these to get an overview of the interview process and what companies expect.

Polish your resume - This is only important to get the interview. Once you are interviewing onsite the resume doesn't matter much. Here is mine to give you an example. http://joshcockrell.com/joshua_cockrell_resume.pdf Feel free to send me yours if you want some feedback.


This sounds like a great advice!

Any specific tips on getting the most out of Leetcode?

For example. Should I do the questions on paper first, then the editor? Should I have multiple solutions to each (n2 and nlogn) if it exists?

How do you guard against just memorizing the questions? I feel like if i can't do a problem and look at the solution, then going back to it later will be useless since I already have memorized the answer but not the methodology to solve it.

Thanks!


> How do you guard against just memorizing the questions?

I don't think you need to worry about this. A simple search for "binary search" shows 20 different questions. If you can't do the 1st bst problem and you look at the solution then that's okay! You have 19 more to try it on. Even if you do all 20 then come back in a month and try them again. There's no way you're going to be able to memorize that many variants. And that's just 2% of their entire set of questions.

To really answer your question, I prefer to just hit the "random problem" button and see if I can solve it in 15 minutes with an optimal solution. If I struggle, then I just go read the solution (to understand how I should have solved it) and try a couple related problems to make sure I'm not just memorizing it and I actually understand the methodology behind solving it.

Good luck!


This is how I used solutions manuals to ace calc 1 and 2 in college. I went through every problem in the book at least twice. Some people say 'don't read the solutions' but it worked for me, going back and testing myself to make sure I "got it" was the key.


I've read "cracking the coding interview" over Christmas. One of the suggestions it had was to write the code on paper. Then write that exact code into your computer. Only when you've fully written it in, fix the errors.


A theremin controlled Atari Punk?? That's fucking cool!! Did you do a write up about the project? If so, I'd love to read it.


I disagree with most of the advice here. There's only one thing you need to be able to do: buy the "Elements of Programming Interviews" and be able to solve any problem in it within 30 minutes. Cracking the Coding Interview's questions are way too easy. If you buy the book and study those questions you're just going to be disappointed that the questions you actually get are much harder.


A couple of years ago I was in your position.

I went through the whole process with Google and Amazon, just to get rejected at the end. I prepared by cramming Cracking the code interview in 2 weeks and reading classic algorithms books; it wasn't enough to meet the bar (anecdotally I remember Google being much harder than Amazon).

Fast forward another couple of years and I got contacted by Microsoft and Amazon recruiters, went through and got offers from both companies. Recently I also got approached by a Google recruiter but I politely declined since I recently started a new position.

What changed in those couple of years?

This time around I prepared by solving problems in leetcode and other platforms a longer time. For about 2 months I spent almost all my free time writing code out of the office.

But that's only half of the story. I noticed that as you apply to more senior roles, the interviews focus more on behaviour and experience rather than hardcore programming. I would say that the weight of these factors was between 2x and 2.5x this time around.

Finally, I myself changed during that time. I adopted an 'abundance mindset', where opportunities are plentiful instead of single chances that we can't let get away. Now I see interviews as two way streets where companies need you as much as you need them. Lastly, when I go to an interview I don't see it as 'I practiced x days for this interview', but as 'I have 10 years professional experience, if that didn't prepared me for this job, no amount of cramming in a few days will'. That doesn't even touch the

So my advice is to just relax, do your best and don't get discourage if you are rejected. If your goal is to break in one of the big 4, continue accruing experience and improving yourself and try next time, it will just get better.

P.S.: In my comment I don't mention luck, but personally I think that it also plays a huge role in getting a job. One time recruiters from a company got in touch with me; two years later they wouldn't even read my CV for the same position. Get to the right position at the right time, and the right set of people can be the difference between an offer or none. It's hard to come to terms with the idea than something other than yourself can dictate your future, but the sooner you do it, it will save you a lot of grief.


Right yeah, I see this preparation as longer term and not something I can do in 2 weeks. Since I already have a job I enjoy, I'm not in a time or cash crunch so I can take my time.

I hope that it takes me 3~4 months to be prepared, but I guess I never plan on stopping practicing (doing LeetCode questions for example). I realize that interviewing is a skill that needs to be kept sharp throughout ones career, so even if I get rejected on the first try, I'll keep practicing and keep applying!

Thanks for the advice!


If you don't mind me asking, if you already have a job you enjoy, what's driving you to the FAANG companies? I know there are a ton of valid answers to this question but I'm curious anyway!


Don't mind it at all. I work remotely so I really enjoy my current job, but this is why I'm thinking about going for FAANG:

1) My current company is a startup so things can go sour rather quickly. I want to keep my interviewing skills sharp in case I need to switch jobs.

2) FAANG is great for a career advancement. I'll learn a ton working for the best tech companies in the world and working with extremely smart people. Interesting technical problems and also upwards mobility later on. Also applying to any other job after that will be much easier as smaller companies don't screen nearly as hard as the big ones for their software positions.

3) Great for networking. You meet tons of other smart people who know tons of other smart people. In the Bay Area when you say you've worked for Google doors open much easier and you gain other people's respect much faster.

4) Lastly, FAANG companies will pay more than what I'm currently making.


I currently work at Google and have received offers from Facebook and Amazon. I don't have a CS degree.

Interview Cake should be your first stop - the questions are the closest to what you'll actually see in a tech giant interview, so the effort to reward ratio is good.

LeetCode is your bread and butter. With any remaining time, grind these problems.

Cracking the Coding Interview is both too easy and too difficult, very few questions hit the sweet spot. Read the section on behavioral questions though. Elements of Programming Interviews is too challenging, I'd skip it.

Optimize for number of problems solved, which means coding in the site's online text editor. I wouldn't code in your own personal text editor because you do want to avoid autocomplete. If you feel like you need practice actually writing on a whiteboard, you can do that a few days before the onsite.


Hey there, Cotter from Interview Cake here. I'd love to get your permission to use a snippet of this as a testimonial on the site. Shoot me an email at cotter@interviewcake.com when you get a chance :)


Prepping for these interviews is much like studying for the SATs - it's not about measuring how smart / talented you are, but how good you are at taking these tests. I say this as a primer only because rejection sucks, but knowing that it's not a dig on you personally, that it's more of a numbers game, can help you stay positive through this whole process.

I've heard a lot of success with this method:

1. Start with https://www.firecode.io/ - it's a gentler intro than most of these resources.

2. Once you can manage FireCode, move onto LeetCode as others have suggested. More specifically, the ones that have been flagged as interview problems. If you can get through the Hard ones in 30-45 min, you're good.

3. Once you feel confident in steps 1 and 2, use https://interviewing.io to take a bunch of mock interviews. The interviewers are generally from these companies, so if you do well, you'll automatically skip the phone interview and land right in the main interview space. And if you don't, no worries, you're getting practice in an interview setting, and not just in answering problems.

3b. As a supplement to #3, Google and Facebook actually hold info sessions on their interview process. My friends used those and landed at both places, respectively. They both said the info sessions were pivotal for them.

The average time my friends spent on this process was roughly 90 hours total. So if you worked on this full time for 2+ weeks, you should be prepared, or 2-3 months if you did a little bit every night while working your current job.

Best of luck!


Thanks this is great advice! > The average time my friends spent on this process was roughly 90 hours total

That seems much shorter than I had expected, considering there's so many questions on Leetcode. Do you recommend focussing only on the marked interview questions on LeetCode or start at the beginning and work my way up to the hardest?


I personally go from easy to hard, but for less time focus on the marked ones


Do you have a referral for interviewing.io? They're in closed beta rn.


Focusing on a limited set of resources in a way that exercises your problem-solving skills would be the key. Here is one plan:

1) Select a category such as "stacks and queues" from the Cracking coding interview (CCI) book and read all the questions. This will give you a sense of the type of questions being asked.

2) Sign up for the algorithms 1 and 2 courses (https://www.coursera.org/learn/algorithms-part1, https://www.coursera.org/learn/algorithms-part2) in the audit mode(free). Pick the correct modules such as "stacks" and "queues" and watch all the videos.

3) Come back to the questions in the book CCI and try to solve the problems yourself. If you get stuck, look at the solutions for hints but still try to do them yourself.

4) Do the same for all major topics such as strings, linked lists, recursion etc.

Unfortunately, you are not going to remember all of you've learned. You need spaced-repetition so repeat the above method 2-3 times for each topic.

Once you have the foundation, you will be able to tackle the harder questions that you may find somewhere else or in the interview.


Investigate each company individually to determine whether or not you even want to spend the time. Each one is very different with a different culture and different pros and cons. Wanting to work for one of the big 4 doesn't mean any of them.


Beats me, I've been rejected by all 4, along with Microsoft and Netflix :) My only advice would be to take a refresher course on Data structures and algorithms (Coursera, et. al.,) and just practice doing programming problems. I've used Crack the Coding interview and some online coding sites (topcoder, etc.) which has definitely helped improve my interview performance. I'm a lot more confident nowadays, at least :)


10 years old but probably still worth a read:

https://steve-yegge.blogspot.co.uk/2008/03/get-that-job-at-g...


Do a lot of practice problems. There are plenty in the book "Cracking the Coding Interview" Use the tools you'll be expected to use for an interview with one of the top 4 companies (i.e. internet text pad, pen and paper, whiteboard) Do several problems every day and you'll be ready in a few months. Make it your 9-5 and you can be ready in a few weeks.

It's all about practice! Good luck!

Also, if you can get in touch with a recruiter at those companies, they'll give you tons of helpful tips (mostly just how to practice and what to practice)


Thanks! I was contacted by a recruiter couple years ago and they sent me the practice list, but it seemed super generic and intimidating so I never replied back.

I've heard really good things about CTCI so I'll pick that up. Having a Github checklist and a study plan would be super useful (I'm sure there's other people asking this question). I wonder if something like this exists already?



YES!


And the Parent ended up getting a job at Amazon which was a nice ending


Don't neglect the non-coding parts of the interview, as well. Be pleasant and friendly, be engaging, smile and laugh, tell stories of past projects, show real interest in the work.


First, I don't know what attracts you to the BIG 4 tech companies and it would be nice for you to share more context and perhaps share a bigger overall picture. For example, are you excited about their backend and scalability or the amount of data they have? Do you think they can offer more money? I can share some my journey (graduated in 2012 with CS undergrad) and hopefully this can help you (or other HN readers) make better/more informed decisions. My primary motivation for picking and switching jobs is money.

To get my first job as a software dev, I prepared by doing algorithms (using cracking the coding interview book). You really don't need any other resource, I did every the problem in the book at least 5 times. The most important lesson I learned here is to constantly redo problems you struggle with until you know it like the back of your hands.

In my first job I realized that I like building tools that people use so I focused on learning front end development.

The next job was a front end developer and to prepare I just refreshed my algorithms using the same book and basic JavaScript knowledge. I negotiated hard because I had nothing to lose (the worst case scenario was sticking to my current job) and ended up with 200k total comp.

I recently interviewed for front-end roles and I've noticed a shift from algorithms to practical tasks (building x app). Out of the 9 onsites I did, I don't remember doing any complex algorithms, but instead there were alot of hands-on coding to make sure I can code up challenges on the spot. For front end engineers, I think algorithms is no longer a point of focus. I don't think there are any practice resources that focuses on front end development, but my friend is building https://jsstation.com to address this.

Dropbox, Amazon, Facebook offered separate interview tracks for front-end development and generic software engineering.

I ended up receiving a few offers and I was quite surprised by the numbers. The top 3 are all between 250k - 310k total compensation packages, the lowest base among them was 180k and the highest base was 210k. I'm quite surprised at the big difference between what Glassdoor shows and what my friends and I are making, perhaps someone here could shed some light.

I think you graduated 4 years after me, I hope you find some value here. Good Luck!


Did all of these offers come from one of Seattle, SF, or NYC?


Sf


https://www.interviewcake.com

I met Parker at MicroConf a couple years ago and was really impressed with Interview Cake.

I can't speak firsthand but it might be exactly what you're looking for...


I received an offer from one of these companies not too long ago - here's my two cents on the subject:

• I was reached out to, rather than applying for a job. In the past I'd tried applying for jobs at some of the companies but didn't hear back - so I focused on going as far as I can without a job somewhere like this. Start a blog, create some great side projects that receive some attention, etc - eventually companies might start approaching you (and even if not, your resume will look more appealing, and you've grown/learnt a lot which is helpful for any job you're in).

• There's a lot of resources out there on interview type programming questions. Yeah, they're helpful, and you should do them - even if just to learn more and become a better developer. There's much more to the interviews than a binary yes/no whether you solved the question or not though: being able to share your thought process, quick thinking, showing creativity and good intuition etc are all just as important.

• Experience, great social skills, and in depth knowledge is worth more than a few days cramming for a coding interview. It shows during the interview process (especially architecture or cultural interviews). I think interviewers are looking for those things as much as they're looking for someone that's smart and can solve a few tough questions on the spot.

Summing that up - focus on being a better developer, learning more, and becoming an expert at what you do. Don't make your end goal a job at one of those companies. If you don't get a job at one straight a way, it's no big deal - who knows, in a few years you might, and if you didn't, you learnt a lot which will help you anywhere you are.


Also, I highly recommend the book "Elements of Programming Interviews".


Yeah, this book is actually more helpful than CTCI


We need university curriculum for these. BSc/MSc in Technical Interviewing and all doors are open!


To be honest this should be a required course for most CS programs!

Way more useful than other theoretical classes that were required but only probably needed in grad school.

Software engineers (myself included) have this deep resentment for technical interviews, but they are part of a software developer life and the more comfortable we get doing them, the better off we are in long term!


I disagree.

From my point of view University should be entirely about learning academic material for the sake of self improvement. To become a more enlightened and educated individual.

Having a "Technical Interview" course isn't about furthering student's knowledge, but about furthering student's future finical gains. I believe strongly that any improvement of a student's position in the labor market should be a secondary effect, and not a primary concern, of a University.

I think that if Universities start competing on student's success in the labor market post graduation then the centuries long tradition of improving student's knowledge will suffer.


You can have it both ways. Maybe you don’t get college credit for learning how to interview, but a college could offer a free seminar on interviewing well in the evening or something.

Colleges very much care how well their graduates do in the workforce, as it’s a key way they’re measured. It’s a tough balance to mix mind-expanding academia and direct preparedness though.


The same way you prepare for any job for a single specific company. Read everything the company has published so you can convince them you buy into whatever their vision is. Don't propose any ideas or theories or preferences for anything that deviates from it. Learn their every product and how they all work and discuss the details in the interview so they know you "get it" and are already familiar with everything.

Aside from this, getting accepted is merely about convincing your interviewers that you have what they're looking for. Build a rapport, be confident, don't be nervous, be funny if possible, but don't come off as arrogant or annoying. Most companies prefer experience over technical mastery, so don't focus on explaining technical details - though obviously you should fully explain it when they do get technical. Answers you give should touch on every topic that the subject would typically involve, with as little detail as possible, and if they ask more specific questions, dive into it. You have to show a broad understanding as well as minute attention to detail. While not being too serious. Don't voice any negative opinions, nor any preferences.

Obviously ambition is important to you, so definitely get some books on management and business so you can rise up in the ranks quicker. Being able to speak to the business side will endear you to managers and executives, and if you can impress them in an interview you're basically a shoe-in, because politics. Yay for big companies.

Big companies generally think all they need to do is follow trends in order to lower costs and increase productivity, so study up on every modern trend that tech companies latch on to. Big data/machine learning/automation have been in vogue for a while, as is obviously agile methods, devops processes, product lifecycles, etc.

At the end of all this you may realize, hey, this sounds like I have to support ideas or practices that I don't agree with. And that's because you're trying to work for a company, rather than trying to work for yourself. Eventually you may realize you'll be a lot happier not trying to get hired by a specific company, and simply try to be hired by the people who value who you are, rather than who they want you to be.


Id also read the last annual report and any interims and also read anything about the companies and their competitors in the broadsheet newspaper you prefer - you do of course read a broadsheet newspaper?


Facebook recruiter (and people I know who worked there) literally tell you to buy and study “cracking the coding interview.” I did buy the book but I’ve never moved forward with the interview because I really didn’t like to commute south when did it for a year and I like pairing too much.

Cracking the Coding Interview: 189 Programming Questions and Solutions

https://www.amazon.com/dp/0984782850/ref=cm_sw_r_cp_api_OiRw...


When I was contacted by a Google recruiter a while ago, he also sent me a PDF copy of Cracking the Coding Interview and said I should use it to prepare.

The actual questions I got at the interview were nothing like what was in the book. They weren't questions like "how does algorithm X work?" but "how would you model/implement as system that does X?".

So, shrug. My one data point says that this book is a mostly useless distraction.


Try "Cracking the Coding Interview" by Gayle Laakmann McDowell. There's some pretty good coverage of what you might find in an interview. I think what struck me is the author has worked for at least three of the companies you listed, but never seemed to stay at any of them for very long - it makes you wonder if working for the big four is really all it's cracked up to be (pardon the pun)!

Google has also created some interview videos you can pick up on YouTube. They are (obviously) staged, but are quite interesting and informative.

Good luck!


There is a Discord started by a small group on Twitch who have streamed mock interviews (mostly last summer): https://discord.gg/ndFR4RF

Example: https://www.youtube.com/watch?v=tdmXDjXz26c


From my perspective, I'd try walking before you run. You need to get the interview first.

Although you hear of Google hiring thousands of developers a year, and those that do get hired having a 5% chance of success or whatever, that doesn't mean that Google are guaranteed to offer you an interview. I've applied a handful of times, and despite having a Computer Science degree, startup, and small/large agency experience I've never managed to get past the application stage at Google or Microsoft. Microsoft and Amazon contacted me in the past, but neither actually resulted in an interview. Google rejected me within days of applying on both occasions I applied.

With that in mind I would recommend that you follow a loose curriculum, and just focus on becoming the best developer you can be. I'm currently working through John Washam's repo on getting a job at one of the big four, and it was good enough to get him through the door at Amazon.

https://github.com/jwasham/coding-interview-university

In general I think it's a good idea to rethink what your aims as a developer are every now and then, regardless of what company you want to work for. Recently, I was a senior .NET developer at a large agency working for big-name clients, but I often felt like I wasn't a "proper developer" because I worked on the .NET stack, and because for the past few years I've felt complacent in a senior-level role. To combat this, I started learning some new languages on the side, and eventually moved to a new job where I've switched from being the go-to guy for .NET to the goes-to guy for working on a Linux stack, and I hope that over the next few years I'll pick up enough knowledge that I can throw an application in again and not get immediately rejected.


What sort of languages/stuff did you work out to move out of feeling that way with .NET? I've been working with .NET for 2ish years and have been feeling the same.


I've been lucky enough to join a company that is largely agnostic. The devs here seem to be mostly Ruby and JavaScript, but a bit of Python too. I've not done much dev yet outside of a few bug fixes, but simply being out of my element has helped considerably.

My only gripe with C# and .NET is that it's tied to Windows, a fact that immediately locks you down to a single tech stack. Sure, you could write any mainstream language on Windows, but no one does because the language and frameworks aren't optimised for Windows. You're writing code as good as what's written by others on the Linux stack, and your development environment is largely as good as what everyone else is using, but you feel isolated.

For me, it's this perception that leads people to think less of .NET at a platform. You're the guy that drove a Ford to a Volkswagen convention, and even though your car is as good (and in some ways better) than what everyone else has, you'll still feel like an imposter.

In terms of getting over that feeling, I don't think any particular language will help you get over it. My knowledge of JavaScript is alright, so I'm picking up Node/Express at the moment. For the past few months I've been working through Django too, so my ultimate aim is to be in a position where I no longer feel limited by a different language or platform.


Thanks so much for the reply!

I guess my other question would be how did you end up at your latest job?

I always find that - for non .NET jobs they are mostly looking for Sr. level folks for jobs. Any advice on transitioning?


I think it was mainly luck, because I've noticed this on both sides. Senior roles are extremely hard to fill because there aren't enough experienced developers looking for full-time roles. In the UK you often reach a certain earning threshold and your options are:

1. Push the salary limits where you can, but accept a full-time role with limited progression, limited pay, but less stress.

2. Be a lead developer, and ultimately move away from code and into management.

3. Go contracting, because you'll earn 2x what you earn as a salaried employee.

Having been on the other side and having to look for a senior-level candidate to join a team, I'd say that you could probably still send a speculative application, and essentially explain that while you're not the finished article they're looking for, you're interested in the company and you're actively looking to learn. For my interviews, I essentially went in with full honesty. I said that my main experience is C#, but that I'm looking to move away from web development on the Windows stack and am looking to give something new a try to build my skills as a developer. Some companies will appreciate your honesty, and some won't, but I'd argue that the companies that are merely looking to fill a defined role won't offer you the progression you're after anyway.

It's still early days where I am at the moment, and there's every chance that things might not work out, but so far I've been enjoying being the newbie again. For me, it's been less about moving to a new stack, and more about getting over that imposter syndrome of being a one-stack man. If it all goes to shit, and I get made redundant/sacked, at the very least I can go back to my old stack, and that alone takes a good bit of stress off of me.


I've passed a good few of these interviews. The other advice is good. I just wanted to add that the thing that always gets me is that by the 4th or 5th hour in the on site interview, I start getting tired and start slipping up. You don't really often get a great break in the process. The jet lag from flying to the onsite is also a killer.


Besides all the tips you already got I also recommend pramp, I tried it a couple months ago and had a good experience.

https://www.pramp.com/

Besides the coding part you should also think about your non-coding interviews. There will be interviews where you'll be asked about troubleshooting and technology in general. I don't have a good source for that but you should think about that side that is just as important as your coding interviews.


The Facebook interview process was a bit of a joke. Writing code without being able to evaluate and test it is for people just out of school, but that's what they gave for an editor (which didn't have emacs keybindings either IIRC, just some generic code sharing site). Sometimes people with experience do things differently and have learned to USE the computer and not do everything in their heads. Age and skillism to the extreme. I suspect they just want coder drones.


The horror of no emacs key bindings.


When it's built in your muscle memeory and you're a bit 'stressed during an interview', yes it's difficult to write code without your normal set of movement shortcuts and having to adapts to an alternate interface language.

Yes, it's annoying, especially for old timers like me that really know their tools.



And the Parent ended up getting a job at Amazon which was a nice ending


https://us.teamblind.com/article/sharing-my-offer-numbers-fr... provides some insights into how to go about interviewing with top tech companies, preparation, offer info etc.




I failed sys design interview at FB and it doesn't look these GitHub repos about sys design helps that much. Could you tell me what book should I read to get better at it?


Leetcode is the site I used.to practice coding for an interview.


For my last round of interviews, I chucked Crack the coding interview and used www.leetcode.com and http://highscalability.com/. Some of the better companies also have a culture-fit round, whatever that means. That's very important, so prepare for it. Google around for what sort of questions they ask.

Good luck!


I have never heard of leetcode. Mind expanding more on the process? Did you just do practice problems? Is there any reading around each question? Does it offer the optimal solution etc?


> Does it offer the optimal solution etc

This is one of the drawbacks; No, it does not. The judge has a timer so you have to write code that is reasonable in runtime and space, but nothing telling you if the answer is the most optimal one possible.

IMO, the ideal way to use it is to get a subscription, and then use the best feature: sort by company. At first glance, you'll notice that facebook asks very different problems than google. Once you select a problem, try solving it, and then make sure you click through to the forums and read the highly voted discussions. In many cases, I didn't find a more optimal solution, but picked up a lot of python tricks that made the solution elegant, etc.


leetcode is similar to the hackerrank website, it's a set of about 700 programming problems where one can enter a solution in almost any programming language applicable (there are some SQL queries). There is also a discussion forum for each question. Occasionally there is more writing by the problem creator with alternate solutions listed. I've found a few companies use the hackerrank for initial programming tests, I kind of dislike hackerrank because alot of the hackerrank tests rely on stdio input equivalent in each language which in some languages I never use in real life, i.e. I never use the Java command line prompt except for fooling around on hackerrank and some of the questions on hackerrank are ridiculously obtuse - I've skipped to the discussion and find that is the number one upvoted type of comment more than once.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: