[Tutor] Moving from snippits to large projects?

Hugo Arts hugo.yoshi at gmail.com
Mon Jan 9 05:45:35 CET 2012


On Mon, Jan 9, 2012 at 3:09 AM, Leam Hall <leamhall at gmail.com> 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. I've gotten the "large as in too much pizza" thing down.  ;)
>

Well, the best advice I could offer is to get in over your head. Pick
a large project, think a bit about how you'd structure it, then jump
right in! This is what I did, and the result was that I learned so
much that I abandoned it about halfway through and started over,
saying "I went about this totally wrong, let's get it right this
time!"

That process repeated itself a lot of times, and each time I came out
with new lessons learned about how to structure large projects.
Honestly, learning by doing is the best. You'll be unhappy about a ton
of your projects, abandon some, finish others (honestly, just
finishing something should be enough to be proud of by my standards).
The important thing is to just code and realize it's ok to not know
what you're doing most of the time (well, as long as you're not
getting paid for it anyway).

A few things are invaluable when working with larger projects:

- the python debugger, pdb. Debugging with print statements is fine
for smaller stuff, but for complicated software, a debugger is a nice
tool to have
- version control. Crucial for working in a team, but even coding solo
working on something big it's nice to have branches and rollbacks.
You'd be best off just getting used to this and using it for all
projects. I work with git, but anything is better than nothing. pick
up a popular one and go with it.
- unit testing. Some people consider this optional (I never actually
got into it myself), but it's worth taking a look at.

I won't go into detail concerning any of these. None of them are
python specific anyway. I suggest you google them yourself and learn
gradually, by doing. It's the best way.

HTH,
Hugo


More information about the Tutor mailing list