Skip to content

Getting Started in Programming

As with natural languages, most of the tools are poor, most of the methods are ineffective, and the books unreadable. Successful language learners gather quality resources and use proven references. The same applies to programming. Here I organize programming into four application areas with my recommended resources for each.

1. Philosophical Programming

This is for those interested in math, logic, and language. The recommended language is Scheme. It's like learning to program with Yoda.

Reading Materials:

Implementation:

After mastering Scheme, I recommend transitioning to Python for practical applications.

2. Game Programming

Game programming is engaging because you can immediately see and enjoy the results of your work. The recommended language is Python with the PyGame library.

Reading Materials:

Important Note: Use Python 2.7, not Python 3, as Python 3 is NOT compatible with most of the books, tutorials, and libraries.

Downloads:

3. Embedded Programming

This is for programming microcontrollers and electronic circuits.

Recommended Platform:

Language:

  • C (de-facto standard for AVR)
  • SPIN (for Propeller chips)
  • Assembly language (for advanced applications)

Reading Materials:

4. Data-Driven Programming

This addresses programming that manages information through databases and user interfaces. A typical web application involves the following components:

  • Hosting service
  • HTTP daemon/server
  • Database
  • Server-side scripts

My Recommended Stack:

Resources:


Originally published on Quasiphysics.