Computer Programming and
Web Development Resources
The following links are for reference about the craft of programming and software development for various categories.
Introductory Reading
- The Tar
Pit (pages 15-23)
This is an essay that I read long ago when I was new to the craft of programming. I think it is still a good read. Brooks' talking of the joys and woes of the craft still resonate with me. - Introduction to Programming
The first few pages of this article are a good (if dated) introduction to programming. Much of the article is a glossary that can be useful as you move along in learning.
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)
- Processing
A beginner's language that will grow with you for some things. This one will let you put your programs on an Android smartphone. - Python
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.
If you would like to take an online course.
- Introduction to Python Programming
Learn the fundamentals of computer science in one of the field's most popular programming languages, Python 3. (edX course – costs if you want a certificate but a free account lets you "audit") - Python Programming MOOC 2026
Learn the basics of programming with the Python programming language. The focus of the course is on programming, and you will learn how to write programs and understand how they work. (free public course) - The Odin Project
A full curriculum that teaches from the beginning to searching for a job. (free)
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
- HTML
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. - CSS
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. - Javascript
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. - PHP/Laravel
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. - Python/Django
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)
- 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. - 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.) - 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. - Haskell
Learn You a Haskell for Great Good!
You could start here or come back to it later. The link is to a book that I am reading to learn the language. - Lisp
Land of 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.) - 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 in the past was the language you used in your undergraduate Computer Science courses. A version of the book for Lisp is available in this language too. Also available at the San Francisco Public Library The textbook would probably have been SICP. - Go
http://golang.org/
I have only dabbled in it.
Sites that help you practice by suggesting projects (use your favorite language)
- Programming Praxis
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. - Project Euler
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
- Arduino
http://arduino.cc/
You can get one of these at Radio Shack now. - Netduino
http://netduino.com/
A competitor with the Arduino. - LEGO Mindstorm
http://mindstorms.lego.com/en-us/Default.aspx
Pricey but very cool.