On 22/08/18 15:45, JGledhill via Tutor wrote: > I'm at the point where I want to actually start "programming",> and solving > problems by thinking through them, not just copying code examples.
Well done, it's good to recognise that stage in your development. > Any recommendations on how I can break free? > My biggest fear is that I'm going to try to tackle a project out of my depth Start with something simple. I usually suggest a simple utility to automate a task you do on your computer - file renaming or archiving for example. Alternatively try a simple game. OXO (aka tic-tac-toe) is a good example since you need to think about how to represent the board and how to determine win/loss/draw conditions. It's good to start with a console based version first. <optional> Once you have that working redo it using a GUI (or Web solution). Although you might find learning GUI/Web programming is a big learning exercise in its own right, in which case miss this out for now. Ask yourself how much of the original solution was used in the second and how much had to be rewritten or modified? Could you have reused more if you'd designed it differently? Rewrite the code so that you have both versions with maximum code sharing between them (ie create a module of functions). (This process of rewriting working code to tidy it up is known as refactoring by professionals) ] </optional> Having done that try Conway's 'Game of Life'. It's fully automated but with more complex game play. But shares some of the same basic layout issues etc. Are there opportunities for reuse between your OXO game and Life? Life in particular can add elements of OOP to your coding. Those two exercises should be within your powers and still be a challenge that will make you learn new aspects of what you thought you already knew.. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor