On Mon, Jan 9, 2012 at 3:09 AM, Leam Hall <leamh...@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 _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor