Computer Programming and Web Development Resources

Matthew Denson
Lead Developer
Dayspring Technologies, Inc.
http://dayspring-tech.com
mdenson@dayspring-tech.com

The following links are for reference about the craft of programming and software development for various categories.

If you have never programmed before

These are links to programming systems, programming languages and tutorials to get a taste of the programming craft.

Software to Use to Begin Programming (and they're free too)

  1. Light Bot http://armorgames.com/play/2205/light-bot
    A game that introduces thinking used by programmers.
  2. Scratch http://scratch.mit.edu/
    A “no typing” programming introduction. Some tutorials.
  3. Processing http://processing.org/
    Another starter language that will grow with you for some things. This one will let you put your programs on an Android smartphone.
  4. Python http://python.org/
    This one is not a learning language - it is the real deal. You can make a career out using this language. But at the same time it is well designed and there are a lot of materials that will help you learn to use it.

Stuff to Read

  1. Introduction to Programming
    http://www.deansdirectortutorials.com/Lingo/IntroductionToProgramming.pdf
  2. What Does a Programmer Do?
    http://www.wisegeek.com/what-does-a-computer-programmer-do.htm
  3. Obligatory Wikipedia article - Programmer
    http://en.wikipedia.org/wiki/Programmer

If you are ready to program now

These are links to things that will help you develop more skills.

References and tools for building dynamic awesome web sites

  1. HTML http://diveintohtml5.info/
    HTML is what you use to build a web page. With it you indicate what is the title, what is a paragraph, what is a link to another page, etc. The link is to a great book about HTML 5.
  2. CSS http://www.w3.org/MarkUp/Guide/Style
    You use CSS to tell the browser how to display the different parts of the web page. Use bold text or italics, show the text as blue and on the right side of the page, etc. Using CSS you change you plain document into a slick brochure.
  3. Javascript http://eloquentjavascript.net/
    You use Javascript to make elements on the web page change or react to your mouse clicks or typing. You can make graphs and charts or make a game. Use Javascript to change your slick brochure into a user interface.
  4. PHP http://www.webmonkey.com/2010/02/php_tutorial_for_beginners/
    PHP is the easiest way to get your web site to save data for the next time or the next user. With PHP your game can now save your best score to brag to your friends. Using PHP you make your web page into an application.
  5. Python/Django https://docs.djangoproject.com/en/dev/intro/tutorial01/
    Django gives you the tools to build great dynamic web sites. Once it is installed you will have everything you need. And if you are ready to publish it you can put it on Google App Engine for free.

Programming languages that I enjoy (and a link for each to get you started)

  1. Haskell Learn You a Haskell for Great Good!
    This is my latest language. I’ve been enjoying it. You could start here or come back to it later. The link is to a book that I am reading to learn the language.
  2. Lisp Learn to Program in Lisp, One Game at a Time!
    This language was first created in the 1960s. Now there are a number of direct descendants and a whole lot of languages that make use of ideas it pioneered. The link is to a book that you can’t get on-line for free. But, you can get it from the San Francisco Public Library online. (Ask a librarian how to access Safari Technical Reference Books. You should do that anyway. There are tons of books on various programming languages.)
  3. Racket/Scheme Racket Language Web Site
    One of Lisp's direct decendents. It was used to build the original Yahoo Store and has been used to create other web sites. It also used to be the language you used in your undergraduate Computer Science courses. The textbook would probably be SICP http://mitpress.mit.edu/sicp/.
  4. Javascript Eloquent JavaScript: A Modern Introduction to Programming
    This is a language I use everyday without fail. The link is a wonderful book that teaches not only Javascript but also how to program in general.
  5. SQL SQLCourse.com
    Some people would probably scratch their head at why I put this here. It isn’t a “programming language” maybe, but the more I use it the more amazing it is to me. This is another one I use every day. The link is to a tutorial that includes everything you need to learn SQL. Once you have the idea you need to pick a database to dig more deeply. (Try sqlite3.)
  6. Python Hello World! Computer Programming for Kids and Other Beginners
    This language is very good. Learn it. The link is to a book you can find at the SFPL.
  7. Go http://golang.org/
    This is a new language. Be on the cutting edge of programming. I have only dabbled in it.

Sites that help you practice by suggesting projects (use your favorite language)

  1. Programming Praxis http://programmingpraxis.com/
    Some of these are pretty tough, but many of them will only take a couple hours and really will improve your programming chops. Plus you may be asked one on a job interview.
  2. Project Euler http://projecteuler.net/
    These are math related problems. I have done quite a number of these. They get progressively harder probably, but you will find that what you learn on one helps with the next.

If you want to make lights flash, motors turn, or the next Mars Rover

  1. Arduino http://arduino.cc/
    You can get one of these at Radio Shack now.
  2. Netduino http://netduino.com/
    A competitor with the Arduino.
  3. LEGO Mindstorm http://mindstorms.lego.com/en-us/Default.aspx
    Pricey but very cool.