What are those start up skills?
What are those start up skills?
Understanding the problem
Stating one's assumptions
Verifying one's assumptions
Selecting a data structure appropriate for the problem
Selecting or describing an algorithm appropriate for the problem
Selecting test cases appropriate for the problem
Writing the code
Verifying the correctness of the code
Understanding & communicating the time & space complexity of your solution
N.B. IMO, the best programming language for technical interviews is Python. It provides many built-in data structures and methods that make one's solutions brief and eliminate the need to write a lot of boilerplate code.
>It provides many built-in data structures and methods that make one's solutions brief and eliminate the need to write a lot of boilerplate code.
Could you name some? the most important / handy in your opinion?
vector/list
dictionary/hashmap/hash table
queue
priority queue
heap
Methods/Algorithms:
min/max
insert/delete
contains key
list comprehension
N.B. I've done most of my interviews in C and watching me code has been referred as "watching paint dry" because of all of the boilerplate code that I have to write.
C# has all of this + LINQ (very handy list comprehension?)
Java probably too + it has streams
Idk about other
Many do. However, ease of use is an issue.
Some interviews don't allow you to look up the names of types & methods nor use IDEs that provide pop-up lists of types & method names.
You have to everything in a basic editor w/o IDE support.
Those two algorithms are the workhorses of graph algorithms.
Advanced graph algorithms include Dijkstra's algorithm, Minimum Spanning Tree, Strongly Connected Components, among others.
In addition, dynamic programming (DP) also shows up as a more advanced algorithm/technique in high-level interviews.