Hello, Codeforces
Here is something I've been working on for a while now. It's still in beta, but I think it's in a good shape to share. I think it's relevant to CF community, but if not, sorry for the spam :)
I am an ex-Google software engineer, and I wrote down almost everything I know about interview preparation, and launched a small website. It is something of a preparation course and guide at the same time.
Here is what's inside:
- 40+ articles about everything from resume to algorithms to compensation.
- Selected leetcode problems with hints, solutions and such.
- Code examples and explanations of common algorithms and techniques.
- A place where you can track your interview preparation progress.
Please take a look and let me know what you think. Hopefully, you will find it useful in your own preparation!
Link: https://interviews.school/
P.S. I would appreciate any feedback. Feel free to point to any errors you will find. And what else can I add?
P.P.S I think some articles there will be relevant to people learning competitive programming as well. For example, you can check out articles on sorting, dynamic programming, heaps, and graphs.
Looks Nice.
There are lots of interview preparation websites, but the total number of problems on
sql
andoops
is very few. So someone who is weak in these topics doesn't have much option to practice. It would be great if you could have similar types of problems on your website (if possible). sql may includegiven description write query
which is verified against testcases, while oops may require given class and method definition, implement the same and then the implementation to be tested against hidden test to verify if user has achieved the required functionality.Hackerrank has ample amount of problems on sql.
I could count only 58 questions including very basic and standard 'hello world types' as well. Please let my know if I missed something ?
Which hackerrank are you using bruh, there are problems from easy to medium and hard level and not only "hello world types" and i think they are more than enough for interview preparation(other than theortical DBMS).
Leetcode has some SQL problems: https://leetcode.com/problemset/database/
In terms of OOP it's hard to really check it (I would suggest reviewing common patterns), and Leetcode problems under the following tag seem relevant: https://leetcode.com/tag/design/
Sir, 90% of the leetcode sql are locked for premium members, and I don't know about others, but for me personally, it is too costly. Regarding the design problem, it is good, but more focused towards dsa. I have hardly seen any design problem that exposes me a class, and asks to build another class inheriting from it and having given methods and parameters ? Questions like these require understanding of oops, while those in design tags rather are just solving dsa with a little to no oops involved at all.
Well, most of OOP skills come from the experience I guess.
Try to implement your own classes with inheritance/interfaces? Or read a good book like Effective Java.
You can also try to implement a small project. For example backend of a coffee shop or social network – you can use fake/mock databases, frontend and stuff for it to be easier.
Looks amazingly simple and easy to flow through. Will definitely try to follow the content given. Its not everyday you see a googler share guide us.
Thanks for this, but I wanna ask a question that
is String not so much important for Interview preparation?
I actually have an article about strings/parsing in my "to write" list :) Haven't finished it yet.
Here you go: https://interviews.school/strings
Everything is good, but here's one suggestion: move the 'dark mode button' to the rightmost side of the webpage as it is easier to see and also to understand what it actually does.
Thanks, I'll keep this in mind. I like the current location and most users seem to be okay with it too, but I can experiment.
I completely reworked the website recently, now it looks much better, and I also rewrote most of the articles to make them read better. Also now there are user accounts, and you can track problems and articles you have already completed and see your overall interview preparation progress.
Also, here are some articles that are relevant for the competitive programming. Problems there are from Leetcode and are generally easier than usual CP problems, but are still very good for the beginners to practice particular algorithms and techniques:
This is very helpful. Thank you.
Thanks a lot. I have used your website and it helped a lot.
Nice content and website works great as well.
I want to suggest one feature...
User shouldn't manually check the mark for solved problems, can you connect it with user's leetcode account so that it automatically checks the problems the user has already solved.
Not a big deal in not adding it.
Good suggestion, I thought about it before too. For now it looks not that easy to implement, and not really worth it – after all, clicking one button is not that hard, and you are practicing just for yourself, so there is no incentive for "cheating". But that for suggesting, I will definitely keep this in mind for the future features!
Nice Initiative and really the problems are well curated. UI is also quite good and easy to read.
I would suggest to add more content on "System Design" and Object oriented design. Also it would be great if the problems can be tagged with the company in which it is asked most.
Thanks
Hi, thanks! Glad that you liked it.
There is some information about system design here: https://interviews.school/systemdesign, but I maybe will add some more in the future. And maybe I will write more about OOP stuff/problems too, thanks for the suggestion!
I have no idea which problems are asked most by which company, so it's probably not gonna be implemented. You can see some statistics on this on Leetcode already :)
Highlighting Feature will add more readability and it will allow to highlight the important keynotes.
What exactly do you mean by this feature? So that users can have their own highlights?
Yes , it will enable all users to make highlights on notes that they can refer later for quick lookup. Thanks
That's actually interesting idea, thanks! I will keep this in mind for the future.
.
Yes, it's problem's integer code, or ID, and not the frequency. For example, problem https://leetcode.com/problems/base-7/ has number 504, and https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/ has number 1281.
Great Work !
Does it have geometry?
No, because interview questions don't have geometry (thanks god).
Very nice !! Good job
Where are you working rn ADJA
I am actually again at Google right now
Skimmed through, some thoughts from my recent interviewing experience that you may consider worth adding. Comments in italic
Most big companies (FB, Google, Amazon, Microsoft, others) have different levels for software engineers. Your level (and job location) determines the salary and stock band. You only mention this in passing on negotiation,
Generally counter-offers is the best leverage you can get during salary negotiation. Try to start interview loop with 2-3 companies at the same time. Your bank balance will thank you for that. No mention of parallel interviews
Depends on company, but usually algorithm/coding interviews are pass/fail. If you pass those, system design and behavioural are the ones that determine your level (and compensation band). No mentions on that.
Practice, practice, practice. There's a bunch of sites where you can do online practice interviews paying with either money (interviewing.io, etc.) or your time (pramp). Use those, especially for non-coding interviews as those are harder to practice on your own. Doing 5-10 practice interviews is also a great way to learn to deal with interview anxiety. You mentioned practice, but not places to do it
Thanks for a detailed comment!
Well, in my defence (esp. on 4) — I did say I only skimmed it.
Nice job on that site!
great work
Thanks!
Great Work, Is it an open-source product? will happy to contribute the C++ part, like some of the code tutorials are JAVA only.
Probably a bit late to the party, but i learned a great deal of sql from the formerly known website codefights, now under the name of codesignal. Check the arcade section, there you will find a lot of training problems for sql, python (actually for the normal questions you can pick any language)