Programming guidelines, references and best-practices

A competent programmer is expected to have many strings to their bow, to keep up with the latest technologies and to produce beautiful, efficient and secure code - a non-trivial task.

To that end, here are some links on the nature of programming and the eternal quest to be a better programmer: through secure, optimised design; offering effective UI; and understanding and predicting what users want.

The Principles of Good Programming

by Christopher Diggins

An excellent round-up of acronyms (DRY, KISS, YAGNI) and precepts (Separation of Concerns, Principle of least astonishment etc).

Teach Yourself Programming in Ten Years

by Peter Norvig

Why programming is difficult, how you should approach it and the lessons learnt in the author's last 10 years.

Iterative vs. Incremental

by Bradley Holt

Thoughts on the conflation of "iterative" and "incremental" in software development.

Encyclopedia of Human-Computer Interaction

by Mads Soegaard et al

A new (as yet incomplete) free encyclopedia including videos and commentaries from luminaries in the many fields of HCI.

Front End Development Guidelines

by Tait Brown

A collection of browser-targeted practices encompassing Accessibility, HTML, CSS and JavaScript.

How to understand your users with personas

by Brad Colbow

How to assign personas to you users in an effort to better understand their thought processes and needs.

OWASP Appsec Tutorial Series

by OWASP

The OWASP Appsec Tutorial Series breaks down security concepts in an easily accessible, friendly way.