Leam Hall wrote:
I'm taking the O'Reilly Python 2 course on-line, and enjoying it. Well, when Eclipse works, anyway. I'm still getting the hang of that.

While my coding over the years has been small snippits in shell, PHP, and a little C, python, and perl, I've never made the transition from dozens of lines to hundreds or thousands. I'd like to start working on that transition but the projects I know about are much larger than my brain can handle and there are a lot of other corollary tools and practices to learn.

How does one go from small to medium, to large, as a coder? Large projects, that is.


Pick something useful which you would like. Write the program. That might be a few dozen lines.

Stage 2: pretend that other people will use it, people who don't know how it is supposed to work, so put in plenty of error checking. Before you know it, you've got 100-200 lines of code.

Then add documentation. There's another 200-400 lines. (Except for the most trivial programs, in my experience documentation will be about double the size of the code you are documenting, at least the way I write it, with plenty of detail and examples.)

Now write extensive tests for it. Ideally, you should test every function and class in the program. You should test that it works as expected with good input, and fails as expected with bad input. That's another 400-800 lines. (In my experience, proper testing will be at least four times as big as the code you are testing.)

And lo and behold, you now have a medium-sized project. A *large* project will be tens of thousands of lines, not hundreds. A *major* project will be millions of lines.

Here's an example: I wrote a script to download images from the Quickmeme website. http://www.quickmeme.com/Web-Developer-Walrus/

Even without moving onto stage 2, I have 120 lines of code and documentation.

If I were to continue to work on it, I'd start adapting the script to be more generic. Turn it a general purpose "download anything from anywhere" library (a bit like wget or curl, for those who know those tools). Off the top of my head, I expect that would require 500-1000 lines of Python code and documentation. Plus tests.



--
Steven

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to