

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.

Only straight line code with copy paste for reuseĪble to break up problem into multiple functionsĪble to come up with reusable functions/objects that solve the overall problem Understands and is able to setup automated functional, load/performance and UI tests Has written automated unit tests and comes up with good unit test cases for the code that is being written Thinks that all testing is the job of the tester
#Motrix computer system how to
Knows how to build the system from the command lineĬan setup a script to build the basic systemĬan setup a script to build the system and also documentation, installers, generate release notes and tag the code in source control Knows how to branch and merge, use patches setup repository properties etc. Proficient in using CVS and SVN features. 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… Understands how networks work, understanding of network protocols and socket level programming. user mode, multi-threading, synchronization primitives and how they’re implemented, able to read assembly code. Some knowledge of virtual memory and paging. Understands what assembly code is and how things work at the hardware level. Tree, Graph, simple greedy and divide and conquer algorithms, is able to understand the relevance of the levels of this matrix.Īble to recognize and code dynamic programming solutions, good knowledge of graph algorithms, good knowledge of numerical computation algorithms, able to identify NP problems etc.ĭoesn’t know what a compiler, linker or interpreter isīasic understanding of compilers, linker and interpreters. Unable to find the average of numbers in an array (It’s hard to believe but I’ve interviewed such candidates)īasic sorting, searching and data structure traversal and retrieval algorithms Knowledge of advanced data structures like B-trees, binomial and fibonacci heaps, AVL/Red Black trees, Splay Trees, Skip Lists, tries etc. Knows space and time tradeoffs of the basic data structures, Arrays vs LinkedLists, Able to explain how hashtables can be implemented and can handle collisions, Priority queues and ways to implement them etc. Level n implies that you also know everything from theĭoesn’t know the difference between Array and LinkedListĪble to explain and use Arrays, LinkedLists, Dictionaries etc in practical programming tasks Note that the knowledge for each level is cumulative being at
