background preloader

Programming philosophy

Facebook Twitter

Programming Achievements: How to Level Up as a Developer [jasonrudolph.com] Published on Tuesday, August 09, 2011 in better How does a good developer become a great developer? Forget greatness for a moment: How does a decent developer become a good developer? There is no definitive path from Step 1 to Step n. Heck, it's not even clear what Step n is. And as logically-minded developer types, the lack of a well-defined route can make for a daunting journey from novice to master. I've spent a fair bit of time over the last few years bumping up against this conundrum.

What Does Success Look Like? I do my best work when I have a goal with clear, measurable criteria for success. But how do you measure whether you've attained the rank of "really good developer? " Much like the goal of wanting to run a 5-minute mile, we can start by looking at where we are as a programmer versus where we want to be. We've all had specific experiences that clearly advanced our skills as developers. And what better way to get started with Step 1 than to crowdsource it?

Achievements Notes. Programmer Competency Matrix. Untitled. ------------------------------------------- T h e T a o O f P r o g r a m m i n g ------------------------------------------- T r a n s l a t e d B y G e o f f r e y J a m e s - 1 - --------------------------------- T a b l e o f C o n t e n t s --------------------------------- Book 1 -- The Silent Void Book 2 -- The Ancient Masters Book 3 -- Design Book 4 -- Coding Book 5 -- Maintenance Book 6 -- Management Book 7 -- Corporate Wisdom Book 8 -- Hardware and Software Book 9 -- Epilogue - 2 - T h e S i l e n t V o i d B o o k O n e ----------------------------------------------------------------------- Thus spake the master programmer: "When you have learned to snatch the error code from the trap frame, it will be time for you to leave.

" ---------------------------------------------------------------------- 1.1 Something mysterious is formed, born in the silent void. Waiting alone and unmoving, it is at once still and yet in constant motion. It is the source of all programs. New programming slang - Programming. A question recently posted on stackoverflow.com asked for people to submit programming terms that they or their team have coined and have come into regular use in their own circles. Below are the most popular answers Yoda Conditions The act of using if (constant == variable) instead of natural if (variable == constant),; for example, if (4 == foo). Because it is like "if it is the blue – this is the sky" or "if that is tall – this is a man.

" Pokémon Exception Handling When you catch all the exceptions and then you try somehow to analyze them. try{ //code }catch ( Exception ex){ if( ex instanceof SubException){ //code }else if(ex instanceof SubSubException){ //code }else{ //code } } Discuss an example here Egyptian brackets This is the style of brackets, when an opening bracket is placed at the end of this line: if (a == b) { printf("hello"); } Why do we call this style "Egyptian brackets?

" Different types of bug reports Stringly Typed It is a riff on strongly-typed. Other types of errors. How to be a Programmer: A Short, Comprehensive, and Personal Summary. Debugging is the cornerstone of being a programmer. The first meaning of the verb to debug is to remove errors, but the meaning that really matters is to see into the execution of a program by examining it.

A programmer that cannot debug effectively is blind. Idealists that think design, or analysis, or complexity theory, or whatnot, are more fundamental are not working programmers. The working programmer does not live in an ideal world. Debugging is about the running of programs, not programs themselves. To get visibility into the execution of a program you must be able to execute the code and observe something about it. The common ways of looking into the ‘innards’ of an executing program can be categorized as: Using a debugging tool, Printlining --- Making a temporary modification to the program, typically adding lines that print information out, and Logging --- Creating a permanent window into the programs execution in the form of a log.

How to Debug by Splitting the Problem Space. Top 6 List of Programming Top 10 Lists. Dijkstra Archive: A Short Introduction to the Art of Programming (EWD 316), Chapter 9. 9. The problem of eight queens The problem is to make a program generating all configurations of eight queens on a chess board of 8 * 8 squares, such that no queen can take any of the others.

This means that in the configurations sought no two queens may be on the same row, on the same column or on the same diagonal. We don't have an operator generating all these configurations: this operator is exactly what we have to make. Now a (very general!) Way to attack such a problem is as follows. With the aid of the generator (3) for the elements of set B, the elements of set B can then be generated in turn; they will be subjected to the decision criterion (2) which decides whether they have to be skipped or handed over, thus generating elements of set A. Three remarks are in order. 1) If the whole approach makes sense, set B is not identical to set A and as it must contain set A as a (true) subset, it must be larger. Note. But now we have found set B! So that is not too attractive. Arg:= ... Signs that you're a bad programmer - Software Engineering Tips.

Why was this written? Most of these faults were discovered the hard way by the author himself, either because he committed them himself or saw them in the work of others. This paper is not meant for grading programmers, it was intended to be read by programmers who trust their ability to judge when something is a sign of bad practice, and when it's a consequence of special circumstances. This paper was written to force its author to think, and published because he thinks you lot would probably get a kick out of it, too. 1. Inability to reason about code Reasoning about code means being able to follow the execution path ("running the program in your head") while knowing what the goal of the code is. Symptoms Remedies To get over this deficiency a programmer can practice by using the IDE's own debugger as an aide, if it has the ability to step through the code one line at a time. 2.

Object Oriented Programming is an example of a language model, as is Functional or Declarative programming. 3. 4. The Tao Of Programming. Translated by Geoffrey James Transcribed by Duke Hillard Transmitted by Anupam Trivedi, Sajitha Tampi, and Meghshyam Jagannath Re-html-ized and edited by Kragen Sittler Last modified 1996-04-10 or earlier Table of Contents Book 1 - The Silent Void Thus spake the master programmer: ``When you have learned to snatch the error code from the trap frame, it will be time for you to leave.'' Something mysterious is formed, born in the silent void. If the Tao is great, then the operating system is great. The Tao of Programming flows far away and returns on the wind of morning. The Tao gave birth to machine language. The assembler gave birth to the compiler. Each language has its purpose, however humble. But do not program in COBOL if you can avoid it. In the beginning was the Tao. Programmers that do not comprehend the Tao are always running out of time and space for their programs.

How could it be otherwise? The wise programmer is told about Tao and follows it. The highest sounds are hardest to hear.