Sign in to follow this  
  • entries
    375
  • comments
    1136
  • views
    297494

zomg.

Sign in to follow this  
superpig

107 views

So, yesterday was my last exam. It didn't go very well, but I was always anticipating that it wouldn't, cos it's the maths exam. The rest of the day was spent chilling out with some fellow finishers, culminating in a walk around Worcester College's lake at 2am in the pitch black. Today, the maths students are finishing too, so I'll probably hang around to congratulate them and then head home.

My attention is thusly turned towards the next three months. I don't currently have a job sorted; the folks I was talking to have apparently become unable to hire me (though they assure me they would very much like to), and the place I worked at last year haven't yet gotten back to me. (Hopefully I just need to drop them another mail to remind them).

There are other avenues, of course; I don't have to work in the games industry this summer. I could do freelance contract coding online, but it's hard to find contracts that pay decently. I could just spend the entire summer working on pitches for Xbox Live Arcade games and try and persuade Microsoft to take me up on one of them - would be nice, and would probably pay the best paying overall, but is also high-risk because Microsoft get hundreds of pitches for XBLA so the chances of me ending the holiday with nothing to show for it is quite high. I could just work on a PC game and try selling it on the web, but similarly, there's a high chance I'll end the summer with a half-finished game and no money. I could also work on my demos for my portfolio; that'd probably be the most fun, and would be useful down the line, but wouldn't get me any money at all.

One thing I've been considering is writing a book, an introdution to programming type text. I'm not at all content with the current state of introductory texts. There is too much focus on making things happen on the computer ASAP; and because even a simple program like a C++ "Hello, World!" can't be written without touching a multitude of concepts from include files to namespaces to functions, the programs are just given and comments are added saying "Don't worry about what all of this is doing, we'll explain it later, just copy it out and it'll work." Newbie programmers should not be starting with copy-paste coding.

Also, the problem with teaching programming via the teaching of a particular language is that the programming becomes 'tainted' by the specific idioms and details of that language. It becomes difficult to separate the general programming concepts from concepts specific to languages. A concept like pointers gets in the way of the more important concept of named storage. Things like garbage collection obscure what's actually going on with memory. It works out OK if you know about these things beforehand, but if you're covering things as you go along, it can get very messy.

So, if I were to write a book, it would focus on key concepts first - basic problem solving ideas (e.g. my previous assertion that any solvable problem has an infinite number of distinct solutions), data, dataflows, types, etc - before any actual code gets written. Code fragments would not be restricted to any one single language; they'd be written in whatever was most appropriate for the concept being illustrated (so there'd probably be some Haskell and C in the type chapter, while the basic control flow stuff would likely be easier in Python).

So yeah. That's an option.

Oh, and my debugging article is up. Hooray!
Sign in to follow this  


6 Comments


Recommended Comments

Sounds like a good idea, I think you have the right mindset. I myself have read or tried to read copy and paste books and didn't remember what I read afterwards. The only problem with explaining the gritty detail right away is overloading the reader with too much info. It's hard enough getting a newbie to understand the concepts of objects not alone packing their brain to the point where they put the book aside. Most books are notorious for bad examples, especially beginning programming books.

Putting that aside, have you decided what language you are going to be writing the book for?

Share this comment


Link to comment
The word "ambitious" comes to mind [smile]

I like the angle you'd want to take - the initial "hurdle" of going from a non-programmer to a programmer mindset caught out a lot of people I knew in the first year. But I think its more general program construction that was lacking - that stuff wasn't really taught until the 2nd year, and even then it was half-baked and useless.

I lost count of how many times fellow students said "if it works, its fine - who cares if its good code" and "making all my variables/functions/classes public and global makes it work, why would I want to hide them?"...

I never owned it, but one of the first year programming texts we were told to read was in Java, but the entire first section was theoretical "what is a variable", "what is a function" type stuff with no code - just lots of diagrams (hint: Diagrams work well!). If you do want to write a book along the lines you've suggested then be sure to check out other similar texts - you might find that it is actually covered in some form or another.

Oh, and on the debugging article - about time too!

Share this comment


Link to comment
I'd really like to have a game textbook rather than a game book. Something reasonably seasoned, with good advice and lots of algorithms in the back. Hardcover. Multiple editions, written properly.

I could care less about having a CD in the back, or "OMG HOW TO MAKE GAMES INSIDE" on the back cover. Just some good solid advice on one big/small topic in game development. Sort of like a more serious version of mith's algorithms book, or a more formalized approach to Game Coding Complete.

C++ for Game Programmers is a good start, but I don't like tying it to a particular language; use pseudocode like all of the good textbooks do. [wink]

Something in a cover like the GPG series, but more consistent and useful (such as teaching how to construct a proper engine wtih robust resource management) is a book that I would buy right away. Doubly so if it's from the pig. I dunno how/if you could perhaps produce a game engine reference book, but I'd also buy that.

Share this comment


Link to comment
It would be nice if an introductory text found the fine line between good teaching and something thats applicable.

I first learned about programming through those copy-paste books, but I think the first time I got a lot better/smarter about it was when I took an introductory course that was taught in Scheme. Something about a functional language made me stop and think about what was really going on.

That said, a lot of people think that's a waste of their time because it's not something they are likely to use in the real world.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now