* **Use your friends**. When asked “what operating system should I use, Windows, Unix, or Mac?”, my answer is usually: “use whatever your friends use.”
* **Keep it simple**. Programming languages such as C++ and Java are designed for professional development. You don’t need that complication.
* **Play**. Which way would you rather learn to play the piano: the normal, interactive way, in which you hear each note as soon as you hit a key, or “batch” mode, in which you only hear the notes after you finish a whole song? Clearly, interactive mode makes learning easier for the piano, and also for programming. Insist on a language with an interactive mode and use it.
* **the most effective learning requires a well-defined task** with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors.
* **Work on projects after other programmers**. Be involved in understanding a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain it after you.
* **Get interested in programming**, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in ten years.
* **Talk to other programmers; read other programs**. This is more important than any book or training course.
* **Program. The best kind of learning is learning by doing.** To put it more technically, “the maximal level of performance for individuals in a given domain is not attained automatically as a function of extended experience, but the level of performance can be increased even by highly experienced individuals as a result of deliberate efforts to improve.” (p. 366) and “the most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors.” (p. 20-21) The book Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life is an interesting reference for this viewpoint.
* **Systematically identify top designers** as early as possible.
* ** Assign a career mentor** to be responsible for the development of the prospect and carefully keep a career file.
* **Provide opportunities for growing designers to interact and stimulate each other.**