Computer technology is ever changing. We must become life-long learners to keep up.
Are we doomed to become Jack of all Trades, and Master of None?
Search Google-Books for “Teach Yourself ? in ?” and we get over 1000 titles.
Samuel Johnson (1709-1784), a British author who created an important early dictionary of the English language, had this to say:
“Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.”
How to become an expert in your field (from Malcolm Gladwell’s book Outliers):
10,000 hours isn’t a magic number, it’s just a large one. Most people give up along the way.
“Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile” – “Life is short, the craft long, opportunity fleeting, experiment treacherous, judgment difficult.” – Hippocrates (c. 400BC)
There is a lot to learn. Consider the Programmer Competency Matrix.
Learn to Question. Question to Learn.
Know you learning style.
Learning is bi-directional. (You are not passive knowledge sponges.)
Instructors are inspired by passionate students. (And vis-versa!)
Fixed Mindset vs Growth Mindset
Read source code.
Read lots of it.
Find programming heroes (and read their code).
Find interesting programming projects (and read the code).
Read Blogs Using RSS. Examples:
Podcasts are great too (although not “reading”): * This Developer’s Life
Following Interesting Topics on Pinboard.in. For example:
Praxis is the process by which a theory, lesson, or skill is enacted, practiced, embodied and realized.
The best people in any field are those who devote the most hours to what the researchers call “deliberate practice”. It’s activity that’s explicitly intended to improve performance, that reaches for objectives just beyond one’s level of competence, provides feedback on results and involves high levels of repetition [and reflection]. –Geoffrey Colvin
(I added the reflection part.)
Kata (literally: form) is a Japanese word describing a way of doing something or a pattern of behaviour that is practiced to various levels of mastery.
A Code Kata is an exercise in programming which helps hone your skills through practice and repetition.
Overlearning the basics allows you to excel at the more difficult tasks.
You can’t remember everything so why not write it down?
Source: Five Best Note-Taking Tools
Simple HotKeys
Advanced Hotkeys
You should know how to test your code before you write it.
Consider the questions in section one of assignment five on Boolean decisions.
For each question:
How many possible outcomes are there?
Can you develop a truth-table that shows all required tests?
There are three types of bugs…
Compilation Errors, also known as compiler errors, are errors that prevent your program from running. Most compiler errors are caused by mistakes that you make when typing code.
Run-Time Errors are errors that occur while your program runs. These typically occur when your program attempts an operation that is impossible to carry out.
Logic Errors are errors that prevent your program from doing what you intended it to do. Your code may compile and run without error, but the result of an operation may produce a result that you did not expect.
…and they are all your fault. ;)
Close enough doesn’t cut it when programming.
Attention to detail is the most important quality of a expert programmer.
if (worldWarThreeAuthorized = true) {
launchNukes();
} else {
peaceAndLove();
}
Oh oh!
Minimum Goal: 40 words per minute with 95%+ accuracy.
Strive For: 70+ words per minute.
I stole the title of this lecture (and some of its content) from Peter Norvig.
Just don’t do this for your homework, unless your instructor gives you permission. You have to grok coding before you can intelligently evaluate any “borrowed” code. Plus, coding “by Google” (i.e. Copypasta) can add unneeded complexity to your code.
Learn how to make persuasive arguments about technical issues.
If you are unable to make a good argument when defending a decision then you may want to rethink your decision.
Move your body and get enough sleep.
Seriously.
Stretch your back and wrists.
Gives your eyes a break from the screen.
Even short walks and naps can do wonders.
Games:
Books:
I found this list blowing in the breeze in a downtown back-alley.
Source: How to be an Explorer of the World (Found after much Googling.)