> From: "John DeStefano" <john.destefano at gmail.com> > > ... [lots of snipping] ... > > I'd really appreciate some constructive feedback: ideas on what may > have gotten you started off on the right foot to learning, books or > sites that helped you to better understand the process or how to > recognize what constructs can and should be used in which situations. > Anything to give me a boost and help push me up out of this > nowhereland between "beginner" and "novice". John, The simply answer, as someone else suggested, might just be to do it more. Like anything else you do, book learning can only take you so far. Some of it only comes with experience. That said, I think what you are struggling with is moving beyond mere syntactical knowledge into the more abstract concepts that the advanced code you are looking at probably exhibits. These concepts usually have various buzzwords associated with them like object-oriented, encapsulation, loose coupling, and orthogonality. You don't say if you've learned much about object-oriented programming. That might be a good direction for you to go, and hopefully you have already encountered it in the code you look at. And many of these concepts can actually be learned from books, classes, or by STFI. :-) Even without these concepts, starting thinking about issues like code re-use and separation of layers, such as the database versus the business logic versus the presentation. Put the different kinds of code in different places, minimizing their interaction as much as possible. (Objects are a great way to cordon off the database and business logic layers.) If you find yourself writing similar code more than once, consider writing a generic function (or object) that can be called in multiple situations, perhaps with parameters to handle any slight variations needed. Always think in the back of your mind about how easy this will be to re-use or change in the future. And of course (you probably know this), use meaningful variable names, and use plenty of comments where the code is not immediately obvious even with meaningful names. Hope this helps. - John -- This message may contain information which is private, privileged or confidential and is intended solely for the use of the individual or entity named in the message. If you are not the intended recipient of this message, please notify the sender thereof and destroy / delete the message. Neither the sender nor Sappi Limited (including its subsidiaries and associated companies) shall incur any liability resulting directly or indirectly from accessing any of the attached files which may contain a virus or the like.