Skip to content

Instantly share code, notes, and snippets.

@alexandre
Last active August 29, 2015 14:16
Show Gist options
  • Select an option

  • Save alexandre/e42a752d38c52f3a477c to your computer and use it in GitHub Desktop.

Select an option

Save alexandre/e42a752d38c52f3a477c to your computer and use it in GitHub Desktop.
learning how to be a better programmer

What are the minimum set of required computer science skills for a web developer who does not have a CS degree to be a good programmer?

The absolute minimum probably would be learning about the basic data structures:

  • Hash map: if you only learn one, this is the one you should learn.
  • Lists: linked single vs double, head node vs head-less and also array lists. Learn how they relate to stacks and queues.
  • Binary search tree/Quad tree/Oct tree: learn why they are important, and how they are maintained balanced.
  • Trie: if you have extra time, these are very important for string searching.
  • Graphs/Networks: these are more specialized, but I wouldn't consider a programmer as advanced unless they were very comfortable with these.

And the basic algorithms:

  • Sort: quick, merge, and heap for O(n*log n), radix and count for O(n).
  • Select: find the k-th largest element in an array in O(n).
  • Binary search: in conjunction with sort and search trees.
  • Breath and depth first search: your typical recursion-like algorithms, one with a stack and one with a queue structure.
  • Dynamic programming: from search algorithms, these are the next step in complexity. But they are so powerful that I would almost call them a must.
  • Path search/network flow: these are advanced topics, paired with graphs and networks from above.

If you wanna read the complete question:

http://www.quora.com/What-are-the-minimum-set-of-required-computer-science-skills-for-a-web-developer-who-does-not-have-a-CS-degree-to-be-a-good-programmer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment