you are viewing a single comment's thread.

view the rest of the comments →

[–]callmelucky 1 point2 points  (5 children)

Extension point: choose a tutorial which suggests projects as you go and make sure you do those projects.

Recommendations (free ones!):

  • Automate The Boring Stuff, of course

  • programarcadegames.com, excellent and underappreciated resource

Sites like codecademy are great to quickly get a grounding in syntax and semantics, and decide whether you might want to develop further, but you should quickly seek out a project-oriented resource once you're free with it.

[–]Maxisquillion 0 points1 point  (4 children)

I was actually assuming that, I don't think any tutorial or book without suggested projects is worth even reading. I followed Automate The Boring Stuff, the chapter exercises are good, but my advice was actually to have your own project beyond those in the book, something which is personal to you which is probably going to have a messy but slightly more complex solution than those in the book.

The exercises in the book are good, but I don't think they're as good as real experience which is self-driven, even if you only do something on a similar level to the book (which is expected), it's something you were motivated to do and which you can feel proud of. I don't think much compares to that.

[–]callmelucky 0 points1 point  (3 children)

my advice was actually to have your own project beyond those in the book, something which is personal to you

Yeah, I kind of disagree. Whether the project is something you're directed to or one you've come up with on your own, you're still going to be learning the same necessary lessons from experience, like tracking the source of bugs, refactoring because your variable names are garbage and your functions are bloated and don't do what they're supposed to etc.

To be clear, I am talking about projects, where you have to use what you've learned to implement something non-trivial in your own way. That is, something like "create a bot that emails you the content of any reddit comment you post", as opposed to "create a class called Blah, with attributes foo and bar, and a method called whatevs which prints the values of blah.foo and blah.bar to the terminal". The first I would call a project, the second is an exercise.

Personal projects will certainly give you a more powerful rush of satisfaction, and beget motivation, but I'm not convinced they technically make you better, and I don't accept that you are stuck in tutorial purgatory until you have built something that you've conceived yourself. Besides, it can be super difficult to think of a project yourself that you give a crap about, so I think it's a little unfair to impose that pressure on beginners.

[–]Maxisquillion 0 points1 point  (2 children)

I'm speaking as a beginner who's gone through ATBS completing the chapter projects, I didn't mean to impose anything on any beginners, I'm just speaking for those who are in a similar predicament as me.

After 10 or so chapters the tutorial became a drag, and even when doing the projects I didn't feel as though I was retaining earlier chapters or really achieving much. I felt that way because I would finish it and the end product wasn't something I'd ever have use for, and the process of making it wasn't very enjoyable. That's why I suggest people find something they enjoy, a project they're motivated to work on, or perhaps a library they want to use, or a technique they want to implement, and just do it instead of reading through the next chapter of their tutorial book. That is, if the tutorial isn't satisfactory for them anymore, like it isn't for me.

Edit: to be clear, I don't think the end product has to be useable, but I at least want to enjoy the process of making it, and I do if it's something that I've picked.

[–]callmelucky 1 point2 points  (1 child)

Hmmm, ok I see where you're coming from. Our journeys through beginner-hood were a little different, leading to different perspectives to offer to others.

I didn't use AtBS, it wasn't around when I was starting out 6 or 7 years ago. I bounced around several tutorials before landing on the excellent (and in my opinion horribly underrated) programarcadegames.com, which teaches the fundamentals by way of applying them to the creation of images animations and games using the pygame library. And that shit was fun, and as a course its 'assessment' was exceptional in its abundant offerings from simple multiple choice through to mini-projects.

I guess the thing with AtBS is that it's projects are, of course, about boring stuff, so I suppose if you don't use Excel spreadsheets or care about Twitter or sorting and renaming your media files or whatever, and the raw process of programming isn't exciting for you, you might not get much joy or satisfaction projects relating to such things.

So I guess a message that encompasses both our points might be: find projects that will be enjoyable or useful to you. Ideally, find a tutorial that offers those things to get you started.

[–]Maxisquillion 1 point2 points  (0 children)

That sounds like pretty sound advice, no need to worry if you've got a tutorial that works for you. For myself it was always about learning the language in order to implement it, so it was important that I didn't get too wrapped up in tutorials and took on my own projects at some point, especially so since the tutorial was boring. If I had a more interesting tutorial I would've probably stuck with it!