Thursday, 31 May 2007

[Book Review] Head First HTML with CSS & XHTML

I first stumbled across the Head First series of books last year when somebody showed me Head First Design Patterns. In case you have not heard of these particular books let me enlighten you... They take serious topics in software and teach them to you in a wacky, humorous, graphic-heavy style. Imagine a dry university text - Head First books are just the opposite. Lots of pictures, characters, a storyline, plots even! Lots of exercises and fun stuff to do.

My first reaction was to balk. "Pah, this can't be a serious book" and I associated them with the "teach yourself the latest complex technology in 10 seconds" type of book but I was wrong. These books are very good and they teach you best practices.

So, I decided I wanted to do some web development, and Ajax seemed really funky, and after a quick search on Amazon I saw that Head First did an Ajax book so I bought it. To my dismay I found myself lost in chapter 1! In my three years of developing web sites for a living I never really learnt anything other than how to use Front Page and how to do funky web layouts with graphics. So, I figured that I should do things properly and learn HTML. I felt a bit silly buying a book on HTML but sometimes you just have to stop winging it and do things properly.

I logged all the time I spent on the book and it took me 16 hours to work through it completely. I did all the exercises and I typed in most of the examples. These books are a nice quick read. Don't be put off by the size because they are filled with graphics and you can zip through them real quick.

I really enjoyed the book and I felt like I learned a lot. I managed all the exercises with ease and I was really happy with myself right up until I got to the end of the book and then I realised that I didn't quite know where to start at actually building my own site using my new skills. These books take you by the hand step by step and they are designed for absolute beginners but the downside to that approach is that they lack meatier exercises for more advanced readers. I had typed in a few lines of HTML & CSS here and there but I had not built anything from scratch.

I suppose you could say just about the same for any other tutorial-style book of this kind. You learn what you can from the book but ideally you'd follow along and build your own sample site along side it. That's what I didn't do so my next step will be to do a chapter breakdown of the book summarising the key points learned in each, and then build a simple website that utilities everything I have learned. Once I have done that I should be ready to move on.

CONCLUSION

If you're really new to HTML & CSS then Head First HTML is a must buy but be prepared to do some extra practice along side it. If you're looking for a quick refresher or a reference book, look elsewhere.

Saturday, 26 May 2007

My Software History

I got my first computer (a Commodore 64) in 1983 when I was 11 and from that moment on I was hooked. The games I loved the most were text adventures, and my first taste in programming came around a year or two later when I bought a book that taught me how to write text adventures in basic. I wrote my first game that I was mightily proud of only to have the tape chew up some months later. Tragic, really :)

Around 1986 I progressed to 16 bit, but rather than move to the Commodore Amiga which would have been the logical step, instead I went for the rival, the Atari ST. There was only one reason for this - there was a piece of software, the Graphical Adventure Creator only available for the ST. I bought it and then hardly ever used it. Graphics were not my thing it would seem.

I didn't do much more programming after that for many years as I developed a mail order company and concentrated on that. The business closed in 1995 and I became employed in the IT department of Telewest Communications. Here I started to tinker with programming again. We worked with DEC Vax machines and I bought a book on DCL, the DEC Command Language and wrote little programs to automate just about everything we did manually. I coded myself out of a job heh - there was nothing to do after that and I moved on to a company called Bytel who provided the software that Telewest used to run its services.

I had to relocate for my job in Bytel and for the first few months I simply rented a room while I looked for a house. I was bored and lonely so I thought that would be a good time to teach myself programming properly. I had dabbled with Visual Basic in the past and thought I'd learn that (try not to laugh too hard!) So I popped down to PC World as one does (!), and they didn't have VB, but they did have something called Visual C++. I had no clue what that was but I was in one of those moods where I just had to spend money, oh and I had to buy a book too. I bought "Programming Windows 95 with MFC".

Well I plodded through that book and I wrote my first proper game, a puzzler called ColourBox. People at work knew I was learning C++ and this caught the attention of the development manager. At the time I was working as a systems administrator for the Vax machines. He asked me if I'd like to switch into his department as a programmer and of course I jumped at it. I was in! :) The job was pretty crap really. The system was very old and we used three languages - COBOL (oh dear), C and 4GL, a front end for a database system called Ingres.

A little while later Bytel lost Telewest as a customer and things went really down hill from that point. However I now had enough experience to get a job as a developer which I did. I joined News Digital Systems as a Junior Developer and I was using C++ now which is what I wanted. Unfortunately I lost my job 18 months later but rather than get another one I had the bright idea of starting out on my own.

At the time this was a mistake because I had absolutely no idea of what software I could write. Over the next couple of months I found myself doing some website stuff and I somehow just continued with that. Three years later I was running websites, bored to tears and really missing development. I tried to get a job but what little commercial experience I had was now out of date. I had no recent experience, no degree and no recent references.

So I went to University as a mature student and did Computer Science. I figured I could brush up on my skills properly, get in well with the lectures and get myself a good job afterwards. The plan worked flawlessly and three days after graduation I started the job I work at currently - I'm now a software enginner for Aston Broadcast Systems developing character generation software.

I love writing software but there's more to it than that. My real deep down passion is games. When I was first accepted to Uni I had to wait almost a year to start. In that time I decided that I wanted to be a games developer so I put all my attention into that. I studied maths books, I wrote a couple of trivial games, all my third year courses were geared towards games and my third year project was an RPG game creator. However, about six months before graduating I started to learn more about the realities of the games industry. I would have to work very long hours on low pay and I just didn't want to do that much work at my age, especially with my family commitments.

So I figured that games could be my hobby projects and I'd get a regular 9-5. That's worked out pretty well so far except that I've not actually developed anything yet! When I first started my job I wolfed down C++ books as that was what I was using then (I'm now on a C# team) but being back in the software industry full time fired up my enthusiasm for everything and I started reading books on C#, quality coding practices, design & patterns, and web development as well as loads of stuff on games development. I got to a point where I was spending so much time reading books that I wasn't actually writing any code.

So where am I now? I've been in my job a little over 10 months and I have an idea for an ambitious MMORPG that I want to write. One other regret that I have is that in the three years that I spent building websites I never learned any real web development techniques - I just used builders such as Front Page. What I'd like to do is learn some proper techniques such as XHTML, Javascript, Ajax, Php etc and build some proper sites that might actually be able to generate a side income for me.

My MMO project is big and although I started on it I didn't get very far when I was spreading myself amongst so many other things. So now I've cut right down on my books, I've put my MMO on hold, and I'm concentrating on a single area, web development until such time as I can actually build something then I'll build my first real site, though I'm not sure what it will be yet.

It's a really hard thing for me to cut back in that way because there are so many things I like to read - books, magazines, blogs, web articles, conference papers etc, the list is endless. I even got all worked up about the idea of learning 68000 assembly just for fun so I could write some retro games for my Commodore 64! There just aren't enough hours in the day! *sigh*. Hopefully though there will be many years in my lifetime for me to learn all I want to learn and write all I want to write.