Developer tutorials/0: Difference between revisions
m (New page: {{draft}} Before starting these tutorials, I'd suggest going through and making sure you have a basic background in these things, since it'll make all our lives much easier. I'm trying to...) |
|||
Line 25: | Line 25: | ||
== Programming experience == |
== Programming experience == |
||
We don't assume a lot of programming experience - if you've ever coded ''anything'' before, you'll probably be okay. |
|||
=== You should be able to... === |
|||
* Describe, in your own words, |
|||
** what a ''computer program'' is. |
|||
** what ''debugging'' is, and some strategies you might use while you're debugging. |
|||
** what a ''function'' and a ''function argument'' (or ''argument'') are, and what we usually mean by ''a function returning a value'', in terms of computer programming. (Bonus: What do we usually mean by an ''object'' in computer programming? A ''class''?) |
|||
** what the words ''if'', ''else'', ''for'', ''not'', and ''while'' usually mean in a computer program. |
|||
** what ''integers'', ''strings'', and ''lists'' are in computer-programming talk. |
|||
* Write a program that prints the words "Hello world!" on the screen. (Alternatively, any program that produces visible/audible output.) |
|||
* Write a program that asks you to type your name, then greets you with "Hello!" and the name that you typed. (Alternatively, any program that accepts and responds to user input.) |
|||
* Guess what [http://diveintopython.org/scripts_and_streams/all_together.html this code] does (the comments should help) - you don't have to understand how it works completely, but you should be at the point where you can ask specific questions about how it works beyond "I don't get it." |
|||
=== How to learn === |
|||
Since the primary language for OLPC development is Python, I would recommend learning that if you have never programmed before. It's a good first language. See http://python.org and the [http://wiki.python.org/moin/BeginnersGuide Python Beginner's Guide] for resources on how to learn Python. |
|||
Depending on your typing speed and background, it will probably take you between 10-40 hours to learn the things in the list above. You can find nearly all the answers to the questions (and the puzzles) above in [http://www.greenteapress.com/thinkpython/ this book], which is available for free online. |
|||
== Linux experience == |
== Linux experience == |
Revision as of 15:32, 5 May 2008
NOTE: The contents of this page are not set in stone, and are subject to change! This page is a draft in active flux ... |
Before starting these tutorials, I'd suggest going through and making sure you have a basic background in these things, since it'll make all our lives much easier. I'm trying to make these tutorials so that someone who's never seen a computer before (but has access to one now) could go through them, even without access to an XO.
Computer/internet experience
You should be able to...
- Turn on a computer
- Use a mouse or touchpad
- Type (it doesn't have to be fast)
- Log into the computer
- Find files on your computer
- Copy, move, and rename files
- Start and shut down a program (any program)
- Connect to the internet
- Open a web browser and go to a web page if the address is given to you - for instance, http://wiki.laptop.org - and to click on a link to go to a new page
- Put a CD, SD card, and/or USB thumbdrive into a computer and access the files on it
- Log out of the computer
- Shut down the computer
How to learn
You'll need to have access to a physical computer to do these things; the best way to learn these skills is probably to have somebody show you, and then try to work through the list yourself. It will probably take 1-3 hours to get comfortable with this.
Programming experience
We don't assume a lot of programming experience - if you've ever coded anything before, you'll probably be okay.
You should be able to...
- Describe, in your own words,
- what a computer program is.
- what debugging is, and some strategies you might use while you're debugging.
- what a function and a function argument (or argument) are, and what we usually mean by a function returning a value, in terms of computer programming. (Bonus: What do we usually mean by an object in computer programming? A class?)
- what the words if, else, for, not, and while usually mean in a computer program.
- what integers, strings, and lists are in computer-programming talk.
- Write a program that prints the words "Hello world!" on the screen. (Alternatively, any program that produces visible/audible output.)
- Write a program that asks you to type your name, then greets you with "Hello!" and the name that you typed. (Alternatively, any program that accepts and responds to user input.)
- Guess what this code does (the comments should help) - you don't have to understand how it works completely, but you should be at the point where you can ask specific questions about how it works beyond "I don't get it."
How to learn
Since the primary language for OLPC development is Python, I would recommend learning that if you have never programmed before. It's a good first language. See http://python.org and the Python Beginner's Guide for resources on how to learn Python.
Depending on your typing speed and background, it will probably take you between 10-40 hours to learn the things in the list above. You can find nearly all the answers to the questions (and the puzzles) above in this book, which is available for free online.
Linux experience
A willingness to try the hacker ethos
Asking questions
Sharing knowledge
Trying things you don't know
Things I don't assume
Any