Tuesday, October 23, 2007

How to learn any new programming language (checklist)

del.icio.us Digg slashdot StumbleUpon

So you want to learn Javascript, C#, Mono, Perl, Python, Boo, PHP, Whatever (well, I don't know if Whatever is a language), here is what you need to know.


Background


I Googled, and didn't find anything that had a step by step, structured way to learn a new programming language. So this is my attempt to capture the process as best as possible. It is especially clear in my head at the moment, because I'm in the process of adding Ruby to my arsenal. From a distance, Python still looks cleaner, but my curiousity about rails has got the better of me.

Level 1 - Get the Basics



Don't be too picky about the exact names of the subtopics presented below, different books and tutorials may give these different names. Generally, I've found that these are the basics to get up and running.

  1. Basic Syntax - All languages have a structure, a way that commands are written. Learn it, is indentation important? Do they have special symbols e.g. ';' or '_'. Keep paying attention to this throughout your learning (learn how to use comments).
  2. Learn Data Types - The typical data types include: Strings and Integers, other types vary in name and function from language to language, learn what a type is.
  3. Learn Variables - It is important to understand what variables are, how they are used and represented, are they dynamically typed? are they loosely typed? There's a difference.
  4. Learn Operators - This is the "mathy" stuff -,+,* etc..
  5. Learn Flow Control - Look for information on loops, if-then and others.
  6. Learn Basic Data Structures - Find out what are the basic data structures of the language, these could be lists, arrays, dictionaries, hashes. The names and features will vary by language.

Level 2


  1. Learn Objects and Classes -
  2. Learn Exception/Error Handling -
  3. Learn Data Structures and Algorithms -
  4. Learn Design Patterns - Many problems in software development fit into a particular 'pattern', Design patterns help to make your code more reusable between projects.

2 comments:

Ryan Wiseman said...

great post David.

pigeonflght said...

Thanks for the feedback :)

Sign up for my upcoming Plone 5 Book & Video tutorials

plone 5 for newbies book and videos