Programming
Things You Should Never Do, Part I - Joel on Software
a cardinal, fundamental law of programming:
It’s harder to read code than to write it.
This is why code reuse is so hard. This is why everybody on your team has a different function they like to use for splitting strings into arrays of strings. They write their own function because it's easier and more fun than figuring out how the old function works.
As a corollary of this axiom, you can ask almost any programmer today about the code they are working on. "It's a big hairy mess," they will tell you. "I'd like nothing better than to throw it out and start over."
Things You Should Never Do, Part I - Joel on Software
a cardinal, fundamental law of programming:
It’s harder to read code than to write it.
This is why code reuse is so hard. This is why everybody on your team has a different function they like to use for splitting strings into arrays of strings. They write their own function because it's easier and more fun than figuring out how the old function works.
As a corollary of this axiom, you can ask almost any programmer today about the code they are working on. "It's a big hairy mess," they will tell you. "I'd like nothing better than to throw it out and start over."
Learn Python The Hard Way, 2nd Edition — Learn Python The Hard Way, 2nd Edition
emphasizes precision, attention to detail, and persistence by requiring you to type each exercise (no copy-paste!) and make it run, as well as to read up on outside topics and to return to exercises and ideas that you don't understand, and understand them.
At the end of LPTHW, you'll know the basics of coding, and be ready to move on to more challenging books. Or at least you'll have tried something new.
Learn Python The Hard Way, 2nd Edition — Learn Python The Hard Way, 2nd Edition
emphasizes precision, attention to detail, and persistence by requiring you to type each exercise (no copy-paste!) and make it run, as well as to read up on outside topics and to return to exercises and ideas that you don't understand, and understand them.
At the end of LPTHW, you'll know the basics of coding, and be ready to move on to more challenging books. Or at least you'll have tried something new.
John Resig - Redefining the Introduction to Computer Science
The environment is built around a two-panel view: The left being an Ace editor and the right being a canvas.
All of the user’s code is written using JavaScript and uses Processing.js to generate all the graphics.
All code is executed in real-time. Not only is the code re-run but the code that you change is live dynamically injected into the runtime — this gives you the ability to change variables, colors, or even functions on the fly without the program ever restarting.
Workshops teach programming with offline, playful approach (Wired UK)
The course is designed to help creative people visualise what's going on inside a computer by touching and physically moving items around. This helps to demystify computing and let people realise that "everything a computer does is either very dumb or a very smart implementation of what, as humans, we are able to do".
Participants are told to put their computers away -- the workshops feature no actual code, editor or screens. Instead, budding programmers are given pens, paper, tape, sweets, ping-pong balls, wooden boxes, cups and other common objects.
AWK-ward Ruby
this style of programming was very common in UNIX's hayday. Instead of programs being dominated by a single language like Perl or Ruby, you'd build pipelines that combined standard utilities (like sort shown above), sprinkle in bits and pieces of AWK as needed, and drop down to C when performance was critical.
GNU Octave
a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable.
Overtone
Overtone is an open source audio environment being created to explore musical ideas from synthesis and sampling to instrument building, live-coding and collaborative jamming. We use the SuperCollider synth server as the audio engine, with Clojure being used to develop the APIs and the application. Synthesizers, effects, analyzers and musical generators can be programmed in Clojure.