Top Marks

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

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