Why do we Program?
Computers want to be helpful
- Computers are built to do things for us
- Designed and wired so that it has one question: what do you want to do next?
- But, we need to speak their language to describe what we want done.
- Computer users just have to pick which programs (instructions) they want to use out of the different program someone else put in the computer.
- A programmer’s job is to serve the user and act as an intermediary between the hardware and the user
- The hardware of a computer itself isn’t that intelligent
Programmers Anticipate Needs
- Professional programmers trying to sell software also need to imagine what the world might want
- iPhone apps are a market
- but the app stores are also places where software can be built and exchanged
- They have over 3 billion downloads
- Many programmers have left their jobs to be full-time iPhone app developers
- Programmers know the ways of their program
Why be a programmer?
- To get some task done
- Example: clean up survey data
- To produce something for others to use - a programming job
- Example: Fix a performance problem in the Sakai software
- Or adding a guestbook to a website
- For professional programmers, the motivation may be to build something for everyone else to use
- The main difference between writing code for someone and writing code for yourself is the rigor
- Program: a sequence of stored instructions
- The computer itself at the lowest level of hardware is not that smart, but there’s a lot of flexibility in terms of giving it the right instructions.
Programs for Humans…
- An example of a program for humans is the macarena!
- You do the dance moves at the correct beat of the music
- Human beings can operate in an error filled world
- We can automatically fix errors in text or speech based on what we know
- Computers can not operate in an error filled world
- So programs have to be perfect
Programs for Python…
- One thing that computers are good but humans are bad at is text analysis
- This is something we delegate to computers