[Tutor] Intermediate/advanced concepts

Lie Ryan lie.1296 at gmail.com
Fri Nov 7 20:32:44 CET 2008

On Thu, 06 Nov 2008 23:14:38 -0500, btkuhn wrote:

> Hi everyone,
> I've been teaching myself python for a few months and I'm becoming
> frustrated because I've kind of hit a wall in terms of learning new
> information. In an effort to continue to learn I've found some material
> on more intermediate/advanced topics like linked lists, nodes, trees,
> etc. However, it's kind of like reading a math textbook - the tutorials
> do a decent job of explaining the material but it's all kind of
> theoretical, and I'm not sure how I'd apply these concepts in real world
> applications, or incorporate them into my code. Does anyone have any
> suggestions for learning about real world application of more advanced
> concepts?
> Also, are there other concepts that I should focus on? Frankly, I'm a
> bit bored because I've hit this ceiling, and I'm not really sure where
> to go to next.

There is really no ceiling in learning programming. The problem is to 
find a problem. If you're bored, you can do the practically-for-bored-
programmers challenges like Python Challenge (http://
www.pythonchallenge.com/) or Project Euler (http://projecteuler.net/

If you're up to the challenge and responsibility, you could join an open 
source program teams or start one yourself. Alternatively, you could also 
start learning some embedded python flavors, like the one used by 
OpenOffice.org or Inkscape, these provides different challenge to vanilla 
python as you've got to learn their libraries.

If you think you're bored of python, perhaps it is time to start learning 
another language. Having many programming language in your toolbox is 
certainly a life-saver, since some problems are easier to solve in 
certain languages than other. For example, many mathematical problems are 
(much) easier to express in functional language, like Haskell, compared 
to imperative language. Other languages might have features/paradigm that 
are foreign in python, like Eiffel's "Programming by Contract".

You might also start seeing domain-specific languages, like SQL 
(database), XSLT (XML), (E)BNF (syntax parsing), etc.

Alternative languages you might consider: Haskell, Prolog, Eiffel, C-
family, Perl, Lisp-family, APL-family, some assembly, shell scripting 
(bash, bat, etc)

If you're EXTREMELY bored though, you might learn some of the more 
esoteric languages, e.g. Shakespeare, Piet, Whitespace, etc (be ready to 
abandon all sanity)

More information about the Tutor mailing list