So, how long does it take to learn

Alex Martelli aleax at aleax.it
Mon May 19 03:26:04 EDT 2003


Alex wrote:

> Graham Nicholls wrote:
> 
>> I know thats an open ended question, but how long would you reckon it
>> takes to get to be fairly productive, bearing in mind I've been
>> preogramming for years ?
>> 
>> Thanks
>> Graham
> 
> It took me about 3 days to feel productive.   I've been programming
> professionally for 10 years, mostly in C++, with a smattering of other
> languages.

Starting with experience similar to that of this "other Alex" (but a bit
more extensive -- roughly twice as long and with substantial use of quite
a few other languages such as Fortran, Pascal, and Rexx), it took me
substantially longer -- perhaps because I was treating Python very much
as an "in my copious spare time" effort, never immersing myself in it
fully for more than a few odd minutes now and then.  Fortunately after a
while a friend lent me the then-recently-published book "Learning Python"
(Lutx & Ascher, O'Reilly), and, as well-written books generally will, THAT
magnetized my attention for a few days.  Then I sat down at the PC a
Friday evening, with the idea of devoting the whole weekend to trying out
a specific hard problem and see how well I fared -- if I could have a
working prototype by late on Sunday evening, I reckoned, that would mean
I was starting to grasp the language well, and enable me to evaluate how
good the language itself was for my main purposes (rewriting a huge
unholy mess of Perl, C/C++, and other stuff yet, which I had been using
for some personal research but had grown well past the thresold of
"unmaintainable" and really did need total rewriting).

By late on Friday night, say 4 hours out of the 36 working hours I had
allotted to the task of making a prototype, I had a complete working
solution of production quality, AND a couple of reusable compoments that
would come in very handy in the "total rewriting" task.  I didn't have
a good test suite yet (in those times I didn't generally to "test-first
design" for personal spare-time projects, and doctest & unittest weren't
yet around to help...), but that just provided some lightweight task
for Saturday's breaks, as I read straight through the language and library
refs 'cover to cover' (not in any hope of memorizing them of course, just
to start making a mental map of roughly what was where).

Actually I never did tackle that complete-rewrite -- Python itself (and
the task I set myself of rewriting every Perl and big shell-script I had
around in Python), in addition to my full-time job doing mostly C++, made
my sparetime even less copious than usually -- a few days later I was
starting to participate to c.l.py, about a year later I was starting to
plan and negotiate about writing a Python book myself (which made "spare
time" an oxymoron for the next couple years, particularly as the books
became two...).  I'm not complaining though:-).

So, all in all, I would say that 3 days would be a bit optimistic in
my case -- even imagining "fulltime immersion" right from the start, I
would still say _at least_ 5 (and by full-time I mean 16 hours/day -- if
I could spare only 8 hours/day that would AT LEAST double the elapsed
time).  But it's quite possible that part of the reason is that I _am_
becoming slower on the uptake as my age keeps advancing, of course -- I
learn things at least as deeply as I did when I was younger, but not
quite as fast!-)


> I'm exploring Python out of curiosity.  So far I love it.  It has proven
> fantastic for writing small applications.  For this task, I consider
> superior to any other language I've used.

It is.


> I do not have any experience using Python to develop a large,
> multi-developer, multi-year project.  I am curious about other's
> experience in this regard.

The "Python Success Stories" (published as a free booklet by O'Reilly,
also available at pythonology.org) all focus on bigger projects and
uniformly seem to indicate the same thing (well, I guess that otherwise
they'd have had to call them IN-success stories;-).  My own personal
experience (one of the success stories that made it to the site but not
to the booklet) appears to indicare just the same.


> I would *strongly* recommend 'Python in a Nutshell' by Alex Martelli.  It
> will bring you up to speed very quickly.

Well, I can hardly disagree with THIS one;-).  I did try to write the
book I would have wanted to read (right after "Learning Python", but then,
I am not such a fast learners as some others these days, as above mentioned)
back when I was first sniffing around Python in '99...


Alex





More information about the Python-list mailing list