2021年/01月/19日

首页回退

能力矩阵

原文

只摘取高段位的能力

Knowledge of advanced data structures like B-trees, binomial and fibonacci heaps, AVL/Red Black trees, Splay Trees, Skip Lists, tries etc.
Able to recognize and code dynamic programming solutions, good knowledge of graph algorithms, good knowledge of numerical computation algorithms, able to identify NP problems etc.
Understands the entire programming stack, hardware (CPU + Memory + Cache + Interrupts + microcode), binary code, assembly, static and dynamic linking, compilation, interpretation, JIT compilation, garbage collection, heap, stack, memory addressing...
Knowledge of distributed VCS systems. Has tried out Bzr/Mercurial/Darcs/Git

Can setup a script to build the system and also documentation, installers, generate release notes and tag the code in source control

Understands and is able to setup automated functional, load/performance and UI tests
Use of appropriate data structures and algorithms and comes up with generic/object-oriented code that encapsulate aspects of the problem that are subject to change.
Able to visualize and design complex systems with multiple product lines and integrations with external systems. Also should be able to design operations support systems like monitoring, reporting, fail overs etc.
Able to understand and communicate thoughts/design/ideas/specs in a unambiguous manner and adjusts communication as per the context
Has written custom macros
Author of framework
Has written and published reusable code
Can do basic database administration, performance optimization, index optimization, write advanced select queries, able to replace cursor usage with relational sql, understands how data is stored internally, understands how indexes are stored internally, understands how databases can be mirrored, replicated etc. Understands how the two phase commit works.
Domain expert. Has designed and implemented several products/solutions in the domain. Well versed with standard terms, protocols used in the domain.
Has actually written tools and scripts, added bonus if they've been published.
Has implemented multiple big features in the codebase and can easily visualize the changes required for most features or bug fixes.
Has played with the previews and has actually built something with it and as a bonus shared that with everyone else
Has written tools to enhance or provide information on platform internals. For e.g. disassemblers, decompilers, debuggers etc.
Structure and Interpretation of Computer Programs, Concepts Techniques, Models of Computer Programming, Art of Computer Programming, Database systems , by C. J Date, Thinking Forth, Little Schemer
Maintains a blog in which personal insights and thoughts on programming are shared