A Beginner's Doubt

Joshua Landau joshua.landau.ws at gmail.com
Wed Jun 19 12:53:06 EDT 2013


Please be aware, Augusto, that Rick is known to be a bit... OTT. Don't
take him too seriously (but he's not an idiot either).

On 19 June 2013 14:58,  <augustofec at gmail.com> wrote:
> Hello!
> This is my first post in this group and the reason why I came across here is that, despite my complete lack of knowledge in the programming area, I received an order from my teacher to develop a visually interactive program, until 20th July, so we can participate in a kind of contest.
>
> My goal is to learn and program it by myself, as good as the time allows me. That said, what I seek here is advice from people who definitively have more experience than me on topics like: is it possible to develop this kind of program in such a short amount of time?

Possible? Yes.
It'll be well'ard to get much done with too limited a knowledge base,
but it should be possible even then.

> What kinds of aspects of Python should I focus on learning? What tutorials and websites are out there that can help me? What kind of already done packages are out there that I can freely use, so I do not need to create all the aspects of the program froms scratch?

Neil Cerutti suggested Tkinter. Choosing a good simple GUI toolkit is
a good idea over Pygame for something like this.
I've used Pygame and I guarantee you it's not the hammer you want.

(I don't know much about GUI's to be honest, though.)

> It would be wise to give an abstract of the program. I made an information flux kind of graphic, but I do not know how to post it in here, so I'll use only words:
<STUFF>
> Thats basically the whole program. I've been studying Python for a week and half now, through: How to think like a Computer Scientist and Invent with Python and Pygame. I'm still at the very beggining, though, and I can't make much more than make some images appear on a Pygame screen in a menu-like style, with a patterned gap between them. No mouse interactions up to now.

In regards to this, I really would recommend just taking Rick's
suggestion: Tkinter; canvas; menu; etc.


Now, as I'm probably the most new programmer here I'll point out that
I don't agree with Chris when he says that:

> One way or
> another, you will probably spend the next week writing code you throw
> away; if you try to tackle the primary project immediately, you'll
> have to rewrite parts of it as you learn. It's easier to throw away a
> toy "Hello world" program than hunks of what you thought would be your
> final code.

As a new programmer, you will throw away code whether or not you
practice beforehand. Beware of that. If anything, it's the best thing
you can do*.

Other than that, he's spot on. Personally, I'd start on the big
project sooner rather than later, but not be afraid to dump all the
code every now and again.

*Anecdote time; a friend of mine who learned VB as his first language
wrote as one of his earlier scripts a 2075 line program with no
indentation - I still have a copy of that gem tucked away in a very
dark corner.


Last point; DRY. Look it up and breathe it. People might wonder why
I'm making that big a deal about it (it's not the be-all and end-all
of anything) but as a new programmer most of your random bits of
not-nice-looking code will probably just be a breach of DRY. If you've
written the same thing 5 times you've *probably* done it in a not-too
efficient manner and the real solution will be the next ladder up in
the hierarchy of programming.

As someone new, paying a fair bit of attention to this will probably
make what you learn some important higher-level concepts faster.


Best of luck, I hope I added something helpful.



More information about the Python-list mailing list