[Tutor] Real world experience

Martin A. Brown martin at linux-ip.net
Tue May 13 02:25:29 CEST 2014


Hello,

  10 Pick one favorite specific topic, any topic (XML parsing; Unix 
     process handling; databases).  The topic matters for you.  
     Learn it deeply.  Keep learning it.  The topic matters less for 
     others (unless it is specifically within the computer science
     discipline).  You have just begun. [0]

  20 Pick a toolkit (minidom, etree; os, multiprocessing, threading,
     subprocess; sqlite, psycopg, sqlalchemy, mysql).  Learn why 
     people solved the problem differently each time.  Ask.

  30 Write a program that does something interesting with this.
     Try a different toolkit.  What was hard?  What was easy?
     What could you simply not accomplish?  Look at the source code 
     for the tool you used?  Why couldn't you accomplish what you 
     wanted?

  40 Read all of the documentation.  Read it again.  Read papers and 
     books listed in the documentation footnotes.  Read the 
     documentation again.  Realize that all of this is a (fallible) 
     human endeavor.

  45 Find other, related mailing lists.  Subscribe.  Listen.  Post.

  46 Talk to somebody who has solved the problem.  How?  What tools 
     did that person use [1]?

  48 If reference to something that was new or you did not 
     understand, GOTO 40.

  50 Write a brand new program to solve the same problem.  Examine 
     what you did differently.  Ask somebody to review your code.

  52 Read your old code.

  53 Talk to somebody who has solved the problem in his/her own 
     way, potentially with different tools. [2]

  59 If MASTERY and BORED, GOTO 10.

  60 GOTO 20 [3]

This discipline can be approached in depth-first or breadth-first 
traversal pattern.  Most people on more technical mailing lists 
appreciate the depth-first traversal.

Time waits for nobody (Oh! I need to go eat!),

-Martin

 [0] For these purposes, mine was IP networking.
 [1] What!?!  Not Python?!  Why?  There are reasons to choose 
     something else.  Do not be blind to those resaons.
 [2] Find people who are motivated as you are and are working on 
     similar problems.  Work for them.  Keep reading.  Hire them.
     Keep writing.  Keep reading.
 [3] Oops.  I learned on BASIC.  I hope I do not get banned from
     the list.

-- 
Martin A. Brown
http://linux-ip.net/


More information about the Tutor mailing list