top | item 31293627

(no title)

88j88 | 3 years ago

IF you are stuck with "what" to program, in the mean-time before you figure out what project you would like to start or participate, go to one of the code ranking sites (leetcode, hackerrank) and get good.

Ultimately, this is all you really need to get a job- get good at these problems. Being able to solve them and explain them to an interviewer. Even if you never plan to get a job, it will force you to learn all of the basics that you should at least know about if you plan a career in software development.

As examples, here are some notes I received recently from Amazon and Meta that they send after your initial phone screen with a recruiter:

Amazon tech screen: ------

Technical Prep:

Our technical questions will test your ability to solve a technical problem. If you are rusty, you should study up on:

Trees (binary/red black trees/N-ary trees, tree symetric (inverse image), tree traversal, sorting trees, prefix tree, radix tree) hash maps, stacks/queues/heap/priority que link lists/reverse link lists (space vs time) recursion/recursive strings binary search Arrays - 2d/3d graphs/graph traversal Big O notation

Meta tech screen: -----------------

Tips/Things to Know: Your initial interview will last approximately 45 minutes. Most people study 1-2 weeks and practice on a coding competition website beforehand (Ex. Medium difficulty problems on a site like Leetcode or HackerRank). Discuss initial ideas and solutions with your interviewer, which will help you to clarify any ambiguity in the problems. Take hints from your interviewer to showcase your thought process and problem-solving ability. Generally, avoid solutions with lots of edge cases or huge if/else if/else blocks. Deciding between iteration and recursion is always an important step. Talk about different algorithms and algorithmic techniques (sorting, divide-and-conquer, dynamic programming/memorization, recursion). Your interviewer may hint that you’re heading in the wrong direction if you move towards one that’s not optimal. Think about data structures, particularly the ones used most often (Array, Stack/Queue, Hashset/Hashmap/Hashtable/Dictionary, Tree/Binary Tree, Heap, Graph, Bloom Filter, etc.) Don’t worry about rote memorization such as runtimes or API/native calls. It's good to know how to figure out approximate runtimes on the fly but the code you write is more important (call out optimizations at the end). You will be asked about o Memory constraints on the complexity of the algorithm you are writing (and its running time - O(N^2) to O(N) etc. Please prepare any questions you have before the interview and also be prepared to answer why you are interested in Facebook.

discuss

order

aireo|3 years ago

@88j88, this is fascinating. Thank you. I've heard several people mention these sites, so I'll check it out and start solving those problems. Thank you for sharing information -- it's very helpful.