tsunami

log in
history

Learning to Program

Luke Breuer

Introduction
Learning to program is really learning how to solve problems down to the last detail. Programming is about breaking down problems into parts, solving each part separately, and then recombining the parts into a whole. Most people are not used to thinking at the level of detail required by computers. Computers are dumb — if you do not tell them exactly what to do, chances are they will screw up (but you'll be blamed).

Links

Common Advice
Take a Class
  • motivation is provided
  • knowledgeable people are available
  • structure is provided
  • money & a somewhat regular time schedule is required

Have a Purpose
  • want to program for $$$?
  • want to just have fun?
  • want to see if you're interested in computer science?

Resources
  • Project Euler, a source of puzzles to solve and sharpen your skills

Language Choice
  • quality of [compiler] error messages
  • amount of syntax
  • quality of documentation
  • libraries (usefulness in doing what you want to do)

What do you want to do with the language?

It is really best to learn multiple languages so that you can separate what you are programming from how you are programming it.

Some options
  • Python
    • not much syntactic cruft

Common Problems
Getting material at the right level (based one what you know, right now) can be tricky. This is why college level courses tend to be good for learning how to program.

Core Concepts
Programming is all about input --> output. Larger programs function best when they are built out of input --> output "modules".
  • variables
  • input/output (console)
  • boolean algebra
  • if, for, foreach, while
  • functions
  • arrays
  • data structures
  • recursion
  • pointers
  • object oriented programming