Which contents, data, and concepts should a professional programmer know by heart?

Quora Feeds

Active Member
John L. Miller


As a software engineer, you should have the properties of the main algorithms and data structures memorized. You should know enough about them that when you have a problem to solve, candidate algorithms and data structures come to mind. Then you can look up the specifics.

You don’t need to memorize the actual algorithms, but you should remember better / worse, rough order of memory consumed and related algorithms. For example you should know hash tables are typically O(1) for lookup and insertion, that binary trees are O(logN) for most operations, that sort is O(N log(N)) and that quicksort is usually the best.

Given this perspective, I’d recommend you know at a minimum:

  • How to use multi-dimensional arrays
  • Lists, maps, multi-maps, hash tables
  • trees, tries
  • sorting and classification
  • Singly and doubly linked lists
  • Queues and stacks
  • recursion, iteration

I’m sure there’s more, but this is a reasonable start.



See Questions On Quora

Continue reading...
 

Similar threads

Top