Practice questions here:
They ask questions like the ones listed on the site, and you have to work on them on a whiteboard. You can ask questions from the interviewer and small mistakes are okay, but to get into certain companies you have to master this style of question.
If you do a question a day you'll be in pretty good shape in a few months.
Ask /r/cscareerquestions for more info and read up on the process.
I feel you on that bro. These OA's are rough, and then this sub essentially just tells you "git gud."
I feel pretty not prepared for interviews as well, I can do easies, but probably not a medium unless I've seen it already. I'm going to try working through this list https://github.com/cl2333/Grokking-the-Coding-Interview-Patterns-for-Coding-Questions . The Blind 75 is also a good list to work through.
Try not to just pick random problems. Either work on a list of problems that is organized, or get LC premium and work through the list of the company you will be interviewing for next.
Don't look at the solution right away, give yourself 30-45 mins for problems depending on if you are still making progress or not. You need to be able to flounder your way through being unsure and then coming to a solution, as you would in a real interview.
The best experiences comes from actual interviews and OA's, followed by mock interviews (with a friend or through your school). Practicing on your own is required too, but it is really important to get experience with the process.
At least, that's what I'm telling myself. Good luck to us both. Still have ~9 months or so before graduation :)
Blind 75 is a good well-known list of very common DS&A questions that'll teach you to deal with almost all coding questions you may get. There's an updated Blind 50. You could also do the LeetCode top interview questions if you want to jump directly into the exact questions you may be asked. Also note that you may be asked the "how would you solve this in a different way?" and "what would you change about your solution if you had to run this in production?" questions so be prepared for those.
This is my opinion, take it with a grain of salt.
It's two steps:
I've been doing the leetcode algorithm problems for the last few weeks and really like the site. I also like geeksforgeeks and learnaroo.
I looked at hackerrank, but apparently your code needs to read all input from the command line and parse them accordingly, which is kind of a pain in the ass. With leetcode, the entry point is a function with predefined parameters, so you can focus on the algorithm instead of parsing inputs. (Hackerrank users: if I'm wrong about this, please correct me.)
https://leetcode.com/problems/find-winner-on-a-tic-tac-toe-game/
You could check the solution here
It's pretty funny (or sad) that these problems can be gamed, it's funnier still that an unemployed person is probably better at solving them then the average employed dev (due to these problems not being representative of the real world and having more time to practice) . And this is just an easy rank problem, medium or hard rank problems are fair game at some companies
Yea I am trying to find new jobs and theres often fucking leetcode too. Statistical ML is hardly asked or often asked after that stage and I personally have not made it that far cause I can’t solve the “maximum # of events in a given time period” type of problem like this: https://leetcode.com/discuss/interview-question/374846/Twitter-or-OA-2019-or-University-Career-Fair
However, not all DS jobs have leetcode. Some do take homes or presentations, but the one that did a presentation was not in industry it was in academia.
I was asked about logistic regression in an interview once, and the interviewer was a CS person probing my resume. He asked me what the output of logistic regression was and I said its the class probability and it seemed he didn’t agree even when I emphasized classification happened after the probability. Huge red flag. I blame sklearn model.predict() for perpetuating these misconceptions and then you look stupid for the right answer...
Same here, in my Google phone interview I got asked this question and was asked to solve it in a google doc: https://leetcode.com/problems/subsets/
Needless to say, I bombed the interview. Luckily I'll be more prepared next time.
Yep. One reason I abhor things like Leetcode, because while you might need to know what "time complexity" is, you don't need to know how to calculate the "Minimum Insertions to Balance a Parentheses String" (we have libraries for that).
One of the best interviews I had - even tho I didn't get the job! - was for a local hospital, where they had a fake broken API written in Node/Express, and they wanted me to talk through how I debugged it. They also wanted me to add another route (tho for what, I can't remember).
You know what I almost never do at my current job? Solve fancy algorithm problems.
You know what I do almost 100% of the time at my job? Debug stuff and add incremental features.
I would pull out your algorithms book (or find a pdf online if you didn't keep one from college) and make sure you are familiar with some of the more common ones. Or you could start here https://leetcode.com/discuss/general-discussion/494279/comprehensive-data-structure-and-algorithm-study-guide
There really isn't anything in 'leetcode' problems that you shouldn't find in any decent CS Algorithms book. Its understandable to be rusty or have gaps, but really its just computer science.
The question is indeed tricky, but is this really the sort of questions you're expecting?
In my career both being interviewed, and now as an engineer at a FAANG conducting interviews myself, I've never really seen (or use) this type of 'gotcha' questions.
The LeetCode (https://leetcode.com/) type of questions are more common, with a large part of the focus being on *how* you approach the problem and not just memorizing the algorithms to solve it (although that helps).
From experience, the true difficulty usually comes from knowing how to apply the right (general) knowledge, calming your nerves so you can think and code in front of another person, and marching your way out of a difficult situation step-by-step --- not technical text-book exam type questions you mention here.
I mean, sure --- if you are doing for a job that needs that kind of thinking, then I won't press on it. But I'm just wondering if you are focused on the right type of 'hard.'
First off, I'm surprised they have you writing unit tests. At my company, the dev who wrote the feature writes the tests, because writing a good test suite is harder than writing good code.
Second, I don't think you're in as shit of a situation as you think. I'd go to your boss and ask him for a performance improvement plan (PIP). Say what you said here: that you understand you're underperforming, and you want to do better, and you're willing to do whatever in the meantime.
However, if you feel that even with a PIP you'll get canned, you must remember that "it's okay." Tell that to yourself as you binge-eat Ben and Jerry's and binge-watch Bojack Horseman. The average dev gets fired or laid off 5 times in their lives. That's a ton. Getting fired is not a personal reflection of who you are as a person. If anything, you worked 20 hours a week while doing a major in three semesters! That's incredible! You have drive, you have gumption, YOU WILL SUCEED!
Ok, got a little sidetracked. If your primary goal is to become better at interview-testing programming for the backend, then I suggest brushing up with this: (https://github.com/jwasham/coding-interview-university). Using Python or Java start at Algorithmic Notation and go until Design Patterns.
LeetCode (https://leetcode.com/) is where FB sources their interview questions, so I suggest doing those, too. It's ok to struggle and look up answers at first, but make sure to try and learn to implement the solutions by yourself eventually.
You memorize the patterns and understand how to alter the pattern for a solution. You don't memorize every solution.
In reality, you should memorize the 20 or so common patterns (DFS, BFS, Binary Search, HashMap through an array....).
For example, you memorize Binary Search, and for a problem like this: https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/ you realize how you alter binary search to get that solution.
Just as a warning, I got burned by memorizing these instead of learning how to derive them.
I got a question during my interview that could be answered through a binary search like algorithm (https://leetcode.com/problems/search-a-2d-matrix-ii/description/). I knew the intuition as to why binary search was O(logN)
, but I couldn't extend it to the 2-d binary search, which had a time complexity of O((MN)^(log4(3)))
.
I did badly on that interview since I couldn't determine the complexity after coming up with the algorithm. If, instead of memorizing the binary search complexity, I had learned the underlying way to derive it (master theorem), then I could've figured it out.
This: https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
This one by the same person updated to 50qs over 5 weeks: https://techinterviewhandbook.org/best-practice-questions/
If you're failing interviews and don't know why that's a big problem.
You should always know why you failed an interview.
My guess is that your fundamentals are not memorized. In order to do well Leetcode, you must memorize the fundamentals. Once the fundamentals are memorized, Leetcode becomes pattern matching to the fundamental template then understanding the small changes to the template.
To learn DS&A, take the Coursera Princeton Algorithms I && II and memorize every DS&A. Use flashcards. For example, you should be able to automatically type out KMP algorithm, graph BFS, topological sort graph, tree DFS, quick sort, merge sort etc....
Do not proceed with below until ALL the DS&A are memorized from I && II.
Once those are memorized, you then choose 1 DS&A and only focus on that.
Here is an example. Backtracking template. :
Once you memorize those templates, you then do only Backtracking problems. Do up to 50 backtracking until you get it. You will find backtracking problems are solved using those templates. Once you get backtracking, you will find you can do Dynamic Programming. Most Dynamic Programming problems are simply backtracking problems with memorization.
Here is another example. Binary Search template :
Once you memorize that template, only do Binary Search problems. Do up to 50 binary search until you get it.
Rinse and repeat for all other major DS&A.
Lastly, do lots of interview practice. A few weeks ago Interviewing.io offered packages where you could do 35? peer interviews and 5 'professional' interviews for only ~$550. That was a great deal.
Start solving problems on LeetCode. 800 problems is enough to clear an Amazon, Microsoft, or Apple interview. 1200 is enough to clear Google or Facebook.
Referrals help for Google/Facebook. You can beg for referrals from Blind. Blind is also good for general software engineering career advice.
SWEs from non-traditional backgrounds are welcome. However, if you are from a bootcamp people will look down on you. I think this has more to do with the aggressive and annoying marketing of bootcamps than with the actual quality of bootcamp grads though.
Prepare for interviews using leetcode and apply for higher paying jobs. For the $180k+ salaries it's normally best to try and get into one of the FAANG (Facebook, Amazon, Apple, Netflix, Google) companies, but there are many others that pay well too.
Goodluck!
Hey so of you'd like to learn programming and you can get online through whatever you're currently using then you can try and just prep for coding position right now. Although maybe that's a bit crazy...idk!
The main prep I used was two sources:
You can download the textbook for free if you search for it at b-ok.org
You can also probably find any other computer science textbooks on that site if you want to study a topic more thoroughly. I'd be happy to talk to my professors and give you specific textbook recommendations.
Since you don't have your own PC download all textbook PDFs and upload them to a Google Drive account for easy reference so all you work and studying can be done from any browser wherever you go.
Probably a crazy idea but I figured I'd just throw it out there. I know Microsoft also has some offices out in India so maybe that's worth investigating at some point. If they're interested in you for real they'll definitely pay for your transportation for an on-site interview eventually. And relocation costs, etc.
I have a lot of programming experience from my side projects, which range from writing GUIs to codecs, and also I do a lot of CTFs.
To practice for the interviews themselves, I used LeetCode and Daily Coding Problem. I got the Plus subscription for DCP. It probably helped the most, I saw a lot of Google interview questions on there and doing one problem a day helped cement things without being too overwhelming.
Hope that helps!
One of my friend interviewed in 17 companies, got failed in all these companies, and then he cracked Amazon.
You need to keep trying and fail. You shouldn't fear the interviews. Give them, in the beginning, you will fail in most of the interviews. But, you will be getting the experience. After sometime, there will be repetition of questions.
And keep practicing. Solve top 100 questions on leetcode. That should cover 90% of the interviews. (https://leetcode.com/problemset/top-interview-questions/)
Best of luck. Feel free to reach me in case of any doubt.
Nothing crazy tbh. I looked at most problems on the Amazon list but didn’t solve them all. I got lucky that way. I've only ever solved 20 LC problems (1 hard, 7 med, 12 easy), with a 19.2% acceptance rate.
Welcome to UT! For working on your coding fundamentals and practicing for interviews I recommend working on through problems on leetcode and reading through the book Cracking the Coding Interview.
I'm interviewing for Lead/Senior positions with 12+ years and currently in a Staff position at an F500. I've gotten asked leetcode questions so far in 4 of the 6 interviews I've done. BT and BFS questions. 1 min/max heap. Which I reviewed beforehand, but afterwards, I found the questions on leetcode (I hadn't done those). I didn't do too well. All for backend development. A few system design questions (which is what I'd mostly expect). It's really fucking lame.
I'm pretty sure they were going off of this list: https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
How often does anyone even implement hard leetcodes from scratch like they'd want tested anyway? It just makes no sense.
If I wanted to build a hash table from scratch or something, I'd look up how to do it the right way, instead of hoping I could do it by memory. And even then, there is an implementation out there that has done it as well or better. But that is at least a useful problem you might want to do in the real world or something for some incredibly specific reason.
Meanwhile, look at this hard leetcode problem: https://leetcode.com/problems/find-the-closest-palindrome/
Given an integer n, find the closest integer (not including itself), which is a palindrome.
The 'closest' is defined as absolute difference minimized between two integers.
Example 1: Input: "123" Output: "121"
I mean. FFS. What a useless logic puzzle. It actually feels insulting to be presented something like that. lol
Blind 75: A curated list of 75 leetcode problems that basically covers all patterns you'll see in technical interviews. https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
https://leetcode.com/discuss/interview-question/731453/Citadel-SWE-Intern-OA-(Summer-2021)
It's been posted publicly already. It's not really reverse engineering as most people would use the term, though it isn't an inaccurate description. Iirc it had a nice DP solution. Maybe they have a different exam now though, I did it a month ago.
I passed all test cases and didn't hear back, that's how it goes haha.
There are some interview questions that test an interviewee "how good are you at memorizing problems".
Such include leetcode questions like Cherry pick up, Maximal Rectangle, etc.
https://leetcode.com/articles/cherry-pickup/
Imagine having never seen this problem and told to complete in under twenty minutes. This is the current hiring process at major tech firms.
Some people get super easy problems. Some get totally screwed over. It is a dumb process.
You ideally want to learn the fundamentals of programming rather than the syntax of one particular language - although many people would start with Python as it's quite easy to grasp.
Codecademy has a pretty good interface with quite a beginner-friendly atmosphere, that includes Python. /r/learnprogramming has a comprehensive wiki that could help further - once you've grasped the basics of programming I'd try and aim towards specific problems or projects, there are sites like Leetcode that give you a specific problem to solve, some are beginner-friendly, others are aimed more towards experienced programmers studying for a coding interview. After that, if you aren't interested in professional training or even degree-level study, I'd have a look at getting involved with open-source projects and begin to build up a portfolio. You can look at this page on GitHub, which links projects that the maintainers think are good for beginners.
Practicing https://leetcode.com/problemset/all/ medium and hard will help immensely for pretty much any coding interview. There might also be questions about common data structures and algorithms. Be able to discuss different approaches to a problem and what the tradeoffs are.
The thing is with reviewing, a mistake I made before when I was trying to prep was I spent way too long making sure I knew the knitty gritty details like the Time and Space Complexities for every single sorring and data structure algorithm. This is just way too inefficient to do unless you made flashcards and had a lot more time to prepare. So I just did a quick review, implemented a few data structures and algorithms and started solving problems. Make sure you don’t waste too much time on that.
Right so, after common data structures, if you’re not solid on it, you probably want to make sure you understand Dynamic Programming and possibly Greedy Algorithms.
For Dynamic programming, it would be ideal to know the steps of how to get to solutions: starting from finding the Recurrence Relation (pattern that repeats itself) to the Top-Down Memoized solution, to the bottom-up iterative solution. I just read a couple of Medium articles on it and a couple of Youtube videos (there are a ton of both) and started cracking.
There was a really helpful Leetcode Forum discussion here that talked about problems and how to solve them.
It sounds like alot but, do at least one problem and one article a day (more if you’re into it) and youll be surprised how far youve come a month in.
Hackerrank descriptions are horrible and the editorials even more so.
Try to practice on other sites like Leetcode or BinarySearch.
They are way better and are reviewed and tested by other people before being published.
If you want to practice Java specific exercises have a look at Mooc.fi course.
Te tiro la posta y anota:
Deja de ver tutoriales no sirven para nada
Aprende git
Hace proyectos con algun framework pedido por el mercado y subi TODO a github
https://leetcode.com/ practica hasta que te sangren los ojos
Create un Linkedin y cv copados, en Linkedin agrega a todos los recruiters que puedas minimo 500+
Aplica a todo por mas que te pidan experiencia y empeza a hacer entrevistas que son muy parecidas a los de leetcode, cuando pasas la entrevista tecnica generalmente tenes otra con el teach leader y ahi le contas tus proyectos.
I got a version of 3D trapping rain water and sliding window maximum for Akuna. Two hard DP questions. I’ve done 300 LC I know what a hard question is lmao
I detest those array questions where you have to find some pattern/trick in the numbers to get the solution. I find that I usually get something working for a bunch of cases, then just get slaughtered trying to account for all the edge cases. For example, even an easy question like this gives me a lot of trouble.
Coming in 2nd place, I hate array questions that involve a lot of index manipulation and handling of 1 off errors. For example this. I actually figured out how to do it pretty quickly, but getting a working solution took hours b/c I'm absolutely terrible at visualizing how the indexes move and accounting for 1 off errors and edge cases.
Do you really want to work with someone who can't code a leetcode easy that they just coded the day before?
This is what a leetcode easy looks like: https://leetcode.com/problems/search-insert-position/description/ . If you look this up, then code it from scratch, then can't do that again the day after....uh....did you really understand?
The whiteboard interview is flawed and stuff but it's not THAT flawed. If you can't do leetcode easy ,like this guy states, then it's time to put in the practice until you can.
There is no way this person is going to succeed in the challenge you describe if they cannot do leetcode easy. It just doesn't make any sense. In phone screen these days you have coderpad which is not very much different from an IDE just study in it.
To go off of what u/therealjohnfreeman said, here are some resources for any CS major/ anyone interested in a career in tech.
Hope this helps!
The Blind 75 or Amazon Interview Questions or good places to train yourself. At the very least, look at and try to understand solutions posted in the discuss section so that you have an idea how to solve that specific problem. There's nothing wrong with looking up the solution so long as you make an attempt to really understand and apply it.
It's also a good idea to look at Amazon's Interview prep website, and prepare an answer for all of the behavioral questions.
​
Sidenote: SDE Interns always get a 45 min interview, the 30 min interview is for New Grads.
Good luck!
Have you seen Blind 75? It's a curated list of leetcode questions from a tech lead at Facebook. I also recommend looking at Pramp if you want to practice interviewing.
One of the best ways to learn a new language is to solve exercises and typical code interview questions with the new language. I highly recommend you just start solving problems at i.e., https://leetcode.com/problemset/all/. If you are familiar with coding, basic math and some algorithms from college, you may have an idea how to solve the problems, and what remains then is googling how to do them in Java. This will also get you accustomed to typical programming tests.
I might've suggested something else of you wanted to learn full stack Java development with typical project work, but in your case I think this is a really good approach.
Either way, good luck!
I'll just throw this in since I'm at the end of my interviewing stages to address a few comments.
My guess is practice on LeetCode is more helpful for interviews.
If you can handle all medium level problems, you'll be able to answer most of the interview questions for sure.
One of my classmates got a full time position at Microsoft, she said she's done about 150 problems
If you haven't heard about LeetCode, it's a good chance to take a look.
> I wonder how long I'd have to study programming to really be able to apply.
That isn't enough. You need to know more than just programming, you need to know software engineering; data structures, algorithms, vocabulary, design patterns, a bit of systems design, and software engineering concepts like OOD and agile. And you need to be able to communicate these concepts to colleagues.
Took me maybe 4 years (I have no degree, but did go to some school before the debt got too much)
If you're serious:
I recently appeared for coding round of a company that was offers 6.5LPA according to Glassdoor. The test was done on Zoom with 60-70 candidates, you had to share your screen and turn on your web cam.
Problem1 (1 point): Given an array of integers where each element lies between 1 and 10 (inclusive). Sort them in place in O(n) time.
Problem2 (2 points): Rotate a 2D array by 90 degrees in clockwise direction. Do it in place. You can try this here: https://leetcode.com/problems/rotate-image/
Problem3 (3 points): Dont remember the statement but I solved it in O(N) space and time using prefix sum.
I did problem 1 and 3 but there were guys who finished all 3 within 15-20 minutes. So pretty sure I am eliminated.
> Reverse a linked list type or CP story problems?
Usually CP stories.
There are lots of hiring challenges on Hackerearth, just try taking a few of those. Even if they reqire experience you can just do it for practice and get a feel of the kind of problems usually asked.
Mods can we sticky the Blind 75 onto the sidebar or maybe add a post on "where to begin with Leetcode if you're studying for interviews?"
I think it totally depends the company and just some luck with little mistakes or not. Just keep applying and doing https://leetcode.com or a site like https://thedailybyte.dev. You can’t let a mistake get you down. It’s literally just a mistake. Keep pushing forward with job applications and keep practicing till you know it like the back of your hand.
do you know much about big O Notation? Like how Linear Search runs in O(n) and how binary search run in O(logn)? If you don't I would recommend googling concepts like > binary search
> merge sort
> quick sort
> linked lists
>stacks
>queues
>trees and binary search trees
> hash table
> graphs and depth first search and breadth first search
> heaps
For those concepts, I would recommend learning how to use Java, C++ , or python instead of javascript while studying.
After knowing about those topics, I personally recommend practicing interview questions here: > https://leetcode.com/problemset/all
start with easy quesions then work your way up to medium then hard
As for creating a resume, I would ask the people of r/cscareerquestions for help. Every Saturday and Tuesday, they have a Resume Advice Thread.
While learning about the concepts I listed and practicing questions in my link, I would devote an hour or 2 a day to use react to build a project(s) that will catch eyes for your resume
Check this: https://leetcode.com/discuss/interview-experience/507039/google-l4-bangalore-dec-2019-reject
Edit: Definitely try Hard LC tagged questions on graphs, probability, and trees. In my experience I got 3 hards and one medium. I can't disclose specifics as I signed a NDA.
I did this interview a few weeks ago and got through to the final stage, which I'm just waiting for the result of now. For the stage you're at, I got something similar to this: https://leetcode.com/problems/same-tree/description/ which wasn't too bad. You'll be using an online shared code editor which won't have any ability to actually run the code, so don't worry too much about having code that builds and passes any specific tests like the hackerrank (obviously though the code you write should still be syntactically correct), it's more just for them to see can you come up with a solution to the problem. You'll be expected to know the time complexity of the solution you come up with so make sure you know your big O notation.
I will say if you're not one for doing leetcode questions knowing common data structures and algorithms is a must regardless of leetcode or not.
Other than that the rest of the time was dedicated to behavioural questions, I can't remember exactly what I was asked but as long as you have answers prepared that apply to the leadership principles you should be grand.
> What does that mean?
It has specific meaning in this context and if you're on this sub I'm pretty sure you know exactly what it is: https://en.wikipedia.org/wiki/Dynamic_programming#Computer_programming
Alternatively: https://leetcode.com/tag/dynamic-programming/
The forums on leetcode.com are full of interview advice and people pairing up to hold free mock interviews for each other. It's also not a bad place to brush up on typical coding exercises presented during hiring screeners.
1 and 2: - try with easy problems on leetcode.com
3:- you can become software developer, game developer, os driver developer(since u pickedup C++), data scientist ..etc
good luck on your journey
Leetcode is a really good resource. You'll most likely be asked a coding question of some sort, whether on a whiteboard or on a computer. Be sure to practice your algorithms and know what data structures to use for certain situations. Tip: hash tables (or an object in Javascript) are really handy in most algorithms.
You'll also likely have to demonstrate system/software design. For example, a streaming service like Netflix might ask you how you would handle show metadata and how you'd go about recommending similar shows based off the metadata. They would expect a high level overview, not a nitty gritty answer.
For a frontend-specific role like you're hoping for, they'll likely ask about ajax and websockets too.
And mostly importantly, show interest and passion for the role and be friendly to the people interviewing you. Culture fit is extremely important.
Just did a phone screen today. Got asked this question.
https://leetcode.com/problems/integer-to-english-words/#/description
I haven't done it on leetcode, I ended up getting the solution, but took me 50 minutes. Was for a mid level role at a big startup > 10bn valuation, not unicorn.
That said Leetcode is very overblown in this sub and only necessary for the top paying jobs. Average paying jobs sometimes also asks these, but they're a minority.
It does suck, but at least it has a straightforward way to prep. Thank god we're past the "how many golfballs fit in a bus?" stage of bullshit in interviews.
For those getting started, blind 75 is an excellent list of questions to practice.
Being in the industry for several years now, I would argue that the shortage isn't in devs as a whole, but people and students who are quality software developers/engineers. There are a lot of CS graduates, but few of them are able to perform on the job.
From checking out interviews for other companies, the Fizzbuzz question still applies:
At least one out of every applicant is unable to talk or do this question during the interview process. There has been a huge influx of people going into CS, but I would argue many of those students go into CS without knowing the actual logic that goes behind creating software.
So, if you are interested in computer science, or software engineering, go into it with an actual desire to get into the field because you genuinely like the field. You will be doing this for a solid chunk of your life, and the work will be mentally tough.
Additionally, I would say most UofT and Waterloo grads do not stay in Canada. I think Waterloo shells out a lot of Facebook new graduates, and UofT also sends a solid number of new grads to other big tech companies on the west coast of the US.
I feel like most people focus on using leetcode and/or hackerrank to prep for programming interviews. Granted, those only focus on actually implementing, so if you need to work on the verbally explaining part you might need to find a classmate or friend to practice with.
Mostly basic Python and SQL
making an interactive dashboard website showcasing some statistics (maybe covid in your area) will help get an interview and leetcode.com should help with the interviews
leetcode is a website where you can take interview-ish questions and see how you performed and how to critically think through the questions to properly/efficiently answer them.
LeetCode has a list that goes by Top Interview Questions. I've seen exactly same questions being asked for full time positions (less common) as well as internships (more common). Definitely check it out. Link: https://leetcode.com/problemset/top-interview-questions/
Also, Cracking the coding interview book by Gayle Mcdowell, this book definitely helps in building problem solving skills on top of your data structure and algorithms knowledge (a prerequisite)
In my experience, big companies don't standardize their interviews. It's often up to the hiring manager to do it however he wants. At my company, we often talk about how we interview, and borrow ideas from each other. But, we each have our own different style. I've never asked a leetcode question, although some of my friends have.
That said, the number of people who can't seem to provide an answer to what seem to be easy questions, is concerning.
A lot of what we do is whiteboard solutions. If you can't come up with the brute force solution to the two sums problem, or something similar, that is concerning. You shouldn't need practice or training to get that if you're ready to be a coder.
leetcode has a 'design' section. codewars has an 'OOP' tag.
​
https://leetcode.com/tag/design/
​
I've done a lot of these they are pretty fun. Design Twitter is a good one.
>> a warmup question that should take 10min
For those of us familiar with array dfs 10 min is reasonable however it is a leetcode medium with a 35% accept rate.
> Vejo que muitos falam do leetcode, aqui no BR é assim ?
Muito raro, OP. Teve apenas duas empresas não gringas que me pediram questão de algoritmos(buser e luizalabs), e eram apenas bemmm triviais de manipular array ou strings.
Pra júnior não vão te pedir nada muito complexo eu acho, geralmente take home assigment ou quiz. A entrevista geralmente teórica e experiências.
Não se estresse com leetcode, até as questões "easy" são bem difíceis tem que ter conhecimento de algoritmos, estruturas de dados e acima de tudo praticar um pouco todo dia( eu: 42 easy, 21 medium, 0 hard).
>Esse livro cracking the code Interview é suficiente ou ele só mais do mesmo ?
Ele é excelente pra te dar uma base, se você tiver travando muito em alguma estrutura especifica(arvore, lista encadeada, grafo). Mas você ainda vai ter que praticar.
edit: https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
I found Blind curated 75 to be representative of the frequently asked problems (by FAANG)on LC.
So that list can be on your plan at the end especially to verify that you have covered commonly asked problems: https://leetcode.com/list/xoqag3yj/
https://leetcode.com/list/xoqag3yj/ - these will be the most helpful for you.
Before that, if its too advanced, start with mostly easy qs on varying topics, or if you got money buy CTCI (tough read imo) and/or AlgoExpert was nice bcz they had videos and go from basics to hard questions.
No shortcut for practice.
I saw this leetcode discussion about last year's problems: https://leetcode.com/discuss/interview-question/817321/duolingo-software-engineer-intern-2021-hackerrank
I never heard that FANG companies prefer one DP over another.
You can use what DP approach you are comfortable with.
The more important thing is the explanation of your solution.
You can practice iterative dp on buy and sell series of puzzles.
https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
Also for understanding it, I think it's not that much different than the recursive one.
You have to figure out the key variables for the current state dp[i], dp[i][j] and afterwards decide the recursive step or the transitions to a previous already calculated states.
I think the best way to think about it is by assumption.
To figure out the transitions you assume that the previous states are already calculated, and you only care about the current one.
In recursion for example you are sure that you have them because you will recalculate it if they are not yet calculated.
In iterative approach you are going bottom up, and you have to be sure to calculate all the states even if they are not used in the future.
Also the base case is more complicated in iterative approach for example for 2D dp solutions.
But I think you can get used to the patterns if you practice it.
I had the same question for https://leetcode.com/problems/minimum-difficulty-of-a-job-schedule/
the top down is a lot easier to make sense of and this is a common amzn problem
hope someone answers
You might wanna go through this
https://leetcode.com/discuss/general-discussion/665604/important-and-useful
AFAIK,amazon prefers candidates with good leadership qualities,so make sure you sound like a good leader.
Good luck!
For LC, start by taking your algorithms course as early as you can and try some of these out https://leetcode.com/explore/interview/card/top-interview-questions-easy/ as you learn about different data types and algorithms.
If you’re brand new and don’t know much about data structure or algorithms, I’d suggest starting with https://leetcode.com/explore/learn
Work though the different topics and make note of which topics you struggle with and focus on those.
If you can do every single question on this site you can pass any interview!!! The interviews are less about how many languages you know more about if you can come up with best solution. Tbh the major didn’t do a single bit in helping me get a job, I mostly self study on this site. https://leetcode.com/.
As for getting that interview, just “create” some random project that might sound interesting. As long as you can explain what you did youre good to go. Interviewers will never check for code. Thats how i ended up getting a job at the big 4
So this really depends on the kind of company that you're interviewing for.
For BigN and unicorns:
For other companies:
Usually small tech companies or non-tech companies will have a more "informal" technical interview process. They might ask algorithms questions, or they might ask you the in and outs of various frameworks and languages on your resume, or how you did your side projects. For these kinds of questions, in addition to practicing leetcode, review what you've done on your resume and be comfortable talking about it.
There is no shame in practicing for technical interviews
Grinding leetcode questions and reading CTCI does not make you a "hack" or a "charlatan" as others might say, it's a normal and accepted part of the CS interview process.
I did it, my friends who work at BigN companies did it, Google literally recommends that you do this. It's totally normal (and for the record, my friends and I are doing fine in the tech industry, even though we needed to practice for our interviews).
Source: Work at BigN company, do interviews for BigN company, have friends who work at BigN companies, have friends who do interviews for BigN companies, have friends/co-workers who do university recruiting for BigN companies.
Useful links:
https://en.wikipedia.org/wiki/Library_Genesis
/r/cscareerquestions (CS career advice subreddit)
The best way to get good at programming is to practice. Ideally 8 hours a day, while being paid, and mentored by an experienced tech lead.
So, the goal is really about (1) do things to pass an interview (2) have the fundamentals so can fake it long enough to figure out what you're doing.
Working backwards from there, if you have a stats background, learn Python / SQL and become a data analyst. Your prep looks like a blog with ~5 posts about small data questions, each of which has a graphic.
If you haven't studied much math, then look at the job postings in your area. I expect you'll find either a bunch of front-end work (JS / PHP), or a bunch of CMS-management. CMS-management is probably the easier thing to fake.
Your interview will sound like:
> I've worked on a bunch of different CMSs. They each have their advantages and disadvantages. The real questions are 'who are the users' and 'what do they need?' Once we had that pinned down, it was pretty easy to find a plugin that did what we needed.
You'll want to convey 'I can talk to people, ask sane questions, and respond politely to emails.'
Spend your 2 months going to meetups / linux user groups. You'll also want to practice coding problems, as those come up in interviews. Remaining time would be spent on whatever skills get mentioned the most in job ads.
3blue1brown music. nice!
Edit: Also, the problem in that video is this, on leetcode if anyone is wondering: https://leetcode.com/problems/trapping-rain-water/description/
This is bullshit, some top companies definitely do. I’ve had interviews asking questions including regular expression matching and that was just for an internship. This problem would’ve been extremely hard to solve without practice.
Practice coding interview problems and you'll be fine. One of the best devs on my team has a PhD in chemistry and was using python for his research. Our team builds web applications.
If you have a solid base and have proof of passion (github!) it shouldn't be too difficult to get an entry level (or higher) python job.
Do this list of 170 LC divided by patterns.
https://seanprashad.com/leetcode-patterns/
Go through this link (free) to identify patterns and invest time by ROI - https://algo.monster/problems/stats
If you lack basics, go through this link to identify video lectures for studying basics - https://leetcode.com/discuss/general-discussion/494279/comprehensive-data-structure-and-algorithm-study-guide
Glad to hear you are taking it so positively! Rough interviews happen to everyone (even experienced folks fail interviews miserably now and again), and how you react and take it going forward is huge.
Especially since you're just coming out of school I figure it is worth mentioning - don't stress too much about cramming to know everything. Interviews are about gauging where you're at. It's expected that someone coming out of school will have areas they don't fully understand and will need to be taught. Whenever I'm doing interviews/hiring I always put more preference on people who I'd enjoy working with and can learn over someone who knows everything when they come in the door.
Also, if you are going to be going into more in-person interviews I'd recommend practicing with this format. Grab a friend and trade off asking each other questions, have ready responses for the "draw me a project you're working on" and expect to answer questions about the details. Be okay with saying, "I'm not sure, but here's my best guess. Tell me more!".
For paper coding problems, leetcode or project euler can be a good way to practice, just keep in mind the skill ceiling is crazy high for these types of things (for your level I'd focus on ones marked "easy" or maybe "medium"). Focus especially on saying your thought process out loud - these problems are more about understanding how you problem solve rather than if you can get the "correct" answer.
Good luck! You've got this!
>https://leetcode.com/problems/letter-combinations-of-a-phone-number/
​
this guy covers it pretty thoroughly here
https://youtu.be/nNGSZdx6F3M?list=PLujIAthk\_iiO7r03Rl4pUnjFpdHjdjDwy&t=168
Not worth it. Just go through blind 75 list https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions and you will be bueno for most interviews. Make sure to really struggle through them without looking at answers tho
The same way every other company hires professionals?
Asking questions that actually relate to the day to day job.
I've never once needed to know how to sort list by hand, never mind the odd constraints they throw at you to make the problem harder. Even looking at an easy problem, it's still impractical.
Leetcode just tests the mechanics of programing, not your skill level. Take driving for example. Yes you do need to know how to turn on the car, put it in gear, ease of the brake, etc...
But knowing how to do those doesn't make you a good driver. You need other skills that use the mechanics to be a good driver. Spacial awareness, predicting what the traffic around you is looking to do, and planing how you will navigate the traffic. That's what makes someone a good driver.
Now how about programing? How about asking questions on how to write reliable, maintainable, and scalable code? Asking questions on things like how to write a service so that it can be easily mocked, then asking to write unit tests on it. What belongs in a service vs a repository. Basics of dependency injection.
If you're applying for a low level position like writing a compiler, than yeah, some leet code type questions make sense. Look at how most apps, not just googles, actually need to function. They dont' need you to know how to traverse a BST in a vast majority of positions.
Make hiring IT work in Singapore a nightmare by introducing Leetcode & see the bloodbath ensues.
…Or not: we still measure people by their paper qualifications, never mind if they can't code for nuts (I had PTSD having university project work for an idiot who only managed to graduate in IT, only to find him working in a bakery later on because that's his passion, the degree is just to please his parent's desires).
lol dw, perfectly normal question. FAANG is an acronym referring to some of the biggest/most well-paying tech companies (Facebook, Apple, Amazon, Netflix, Google). A lot of people also associate other big companies like Microsoft with the acronym as well.
Leetcode refers to a website where people do questions to train for software engineering interviews. Questions are divided into 3 levels: easy, medium, and hard. Most FAANG companies tend to ask Medium level questions, with Hard level questions showing up frequently as well.
Yep, the IT sector is infested with them, because this country is about the bottom line, greed and $.
If that meant hiring candidates who went to the upstairs 3-day Java university in Hyderabad, so be it. Even if they established their reputation as always answering "yes I know how to do this" no matter what they're asked, generally lying and trying to do their job by googling while smiling obsequiously and obfuscating their work.
Trump's H1B visa reform changed some of that, so it's way better than it used to be.
Also, most everyone who matters knows this, and that you get what you pay for.
In the meantime, while you're looking, polish up at leetcode.com and try to become worth the salary you are asking for.
Sorry, but your assertion is ridiculous, and /u/xMelvinSmileyx is right. A 5 year old can code. A 5 year old cannot be a software engineer.
People have this ridiculous notion that if you know basic logical if statements and for loops you know how to code, but this is not the case. Basic conditional statements in coding is something anyone can do, including a 5 year old. But it takes years of learning and knowledge to be a software engineer; learning the development stacks, learning core fundamental computer science skills and concepts, etc. There's a reason why people study 4 years to get a degree in computer science.
If you're so confident in coding, here's a challenge for you : go to https://leetcode.com/ and solve a medium problem. Hell, solve an easy problem. You will quickly understand the difference between an amateur and an SDE.
Edit : > And look what CIG require from designers:
You linked the job description for Systems Designer. The responsibilities for the job is literally designing features, not in terms of gameplay design but in terms of the software design.
Do companies really expect you to solve LC hards in a 30-45 minute session?
I got this one in an interview recently and I talked out loud and explained what I was thinking on how it might be solved.
I wasn't actually able to solve in in the allotted time, but I still got an offer. Though to be absolutely fair, all the other interviews I had with them were LC easy/medium and I did very well on those.
This type of question I can code from scratch. However, some leetcode easy's I can't do it without looking at a solution first such as:
https://leetcode.com/problems/valid-palindrome/description/
https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree
But everyone is right. I'm going to put the practice in till I can code them, without looking at a solution.
/u/clutchdump it's probably
> Given an array of integers, find out whether there are two distinct indices i and j in the array such that the difference between nums[i] and nums[j] is at most t and the difference between i and j is at most k.
https://leetcode.com/problems/contains-duplicate-iii/.
https://discuss.leetcode.com/topic/15174/java-solution-with-treeset
Chill. Hackerrank and other sites like it (leetcode ect) test for your ability to solve interview questions. They do not test how to solve real world problems on large scale applications. These sites are a product of a flawed interview system that tends to test more on how much you practiced these problems than your actual knowledge. Look at this link for instance. My advice is to simply play the game and practice these questions as much as you can. It is not a direct reflection of your programming skill if you cannot answer a lot of these questions. Practice practice practice and it will get easier.
It depends. Did you use it as an opportunity to solve “Maximize Distance to Closest Person”? If so you took advantage of the situation and gave interviewer real life advice based on a real world situation and it should help you for sure.
For LC you can just grind the top 50 amazon problems
Make sure you study for the behavioral portion as well (that's what I think got me in). Have 4-6 stories that will touch on almost all of the Amazon leadership principles. They when you get asked a question, use those stories. I saw someone say that interviewers want you to hit leadership principles and that is it.
Take it one at a time, if you are struggling with DFS concepts then address that first before you move on to LC questions. DFS is simply a graph traversal algorithm or basically a way for us to travel or go to each vertex in a graph. All we do is have a stack which initially contains the starting vertex and an optional visited set if we want to keep track of the vertices we have added. From there we pop off the first element from the stack and then add all of its neighbours. Due to the nature of a stack (first in, last out), we will visit all our vertices by depth (easiest way to process this is if you are doing DFS on a tree then say for example this would happen)
1
/ \
2 3
/ \ / \
4 5 6 7
So a DFS traversal here would be 1 -> 2 -> 4, so you can see that we are going all the way down until we no longer can. Here's an explore card from Leetcode that might help you https://leetcode.com/explore/learn/card/graph/619/depth-first-search-in-graph/ and also this video https://www.youtube.com/watch?v=pcKY4hjDrxk that talks about DFS and another graph traversal algorithm BFS
EDIT: accidentally said stack is first in first out instead of first in last out lol
https://leetcode.com/problemset/all/?difficulty=EASY&page=1
This site is great for typical interview questions, you’ll start to notice patterns in the type of questions asked too which you’ll be able to apply to new questions you might get asked. If your stuck on any or want to check your solutions too I found a channel called ‘neetcode’ to be good
Do leetcode. Try the leetcode daily algorithms it's new. If you can't solve the question in like 20-30 mins watch a YouTube video on the problem. https://leetcode.com/study-plan/ Do algorithms 1. You will start to be able to pass. Don't give up. :)
I think sites like https://www.codingame.com https://leetcode.com might help you.
codingame is a gamified version of coding to solve problems. It's fun and will help you understand the basics of programming and problem solving.
Leetcode is more about optimization and interview questions.
if you don't have personal projects you want to work on then these sites can help and you can also chat with other people who can teach you a lot.
If you're coding to automate tasks rather than problem solving then I suggest learning some scripting language to do stuff like downloading a webpage and getting all images from it, moving certain files and deleting the rest, creating Excel sheets from some data.