Bookmark this category
Bookmark: http://rss.slashdot.org/~r/Slashdot/slashdot/~3/mkaN1WKdlfM/Why-Coder-Pay-Isnt-Proportional-To-Productivity Jon Ippolito’s notes: the best programmers do not write 10x as many lines of code; nor do they work 10x as many hours. Programmers are most effective when they avoid writing code. An über-programmer, Cook explains, is likely to be someone who stares quietly into space and then says ‘Hmm. I think I’ve seen something like this before.’
You can find more of Jon Ippolito’s bookmarks at – http://delicious.com/1000_people

“Someone who is 10x more productive than his colleagues is likely to leave, either to work with other very talented programmers or to start his own business.”
I’m excited to see how well this observation pans out after I leave Maine and head to California.
I also have regular moments of staring out into space, thinking about a project or specific problem, and thinking “Hmm, I’ve seen this before.” Realizing that a solution for a given situation has already been found is very convenient. However, it’s also important to understand that with many situations, multiple solutions exist, each with there own merits, benefits, and downsides. A simple example of this is “What data structure should I use?” when working in C++, Java, or other high-level languages.
A single-dimension array is quick for insertion and deletion, but slow to search and not memory efficient. A linked-list is very memory efficient, quick for insertion, but very slow for searching and deletion. A hashed array is quick for insertion and deletion, and quick for searching and deletion, but may not always been memory efficient. Which to choose is based on the specific dimensions and requirements of the situation, and shows the wide variety of conceptual possibilities available. The majority of the time, it’s best to fall back on methods of proven success, unless the luxury of time and a lack of accountability is available to experiment.
As far as coding goes, keeping up to date with the given industry, be it web development, desktop application programming, mobile apps, as well as hardware developments for those industries; will help any programmer. In addition, studying and using a wide variety of programming languages, particularly C++, Java, Python, Lisp, and ML, trying a wide range of paradigms such as MVC, working on real-world projects with enforced deadlines instead of only academic experiments, and finally, reading and constantly studying design patterns. When applying for a job as a programming, a majority of the interview questions will be about design patterns, and often asked by co-workers in addition to management.
Also worth mentioning is the 80/20 rule, which states that 80% of the time, users only execute 20% of a given collection of code. So, focus on that 20%!
Also, I hate the notion of wanting to be a “lazy programmer,” since it’s misinterpreted so often as an encouragement of genuine laziness instead of the more precise notion of “being more efficient.” Being a “lazy programmer” is actually about studying and using design patterns, using coding frameworks, following DRY and KISS, and spending a lot time planning, sketching, visualizing, and conceptualizing possible paths to take before even typing a single line of code.