I've previously written about how to teach yourself to be a test developer. That post
included an extensive reading list. It assumed that you were a tester
and wanted to learn to be a test dev. What if you are a new CS grad and
you just got hired as a test developer? What should you read to get a
leg up on the competition? What follows is my list of recommendations.
Some of this list assumes you'll be working in C++. If you are going
to be working in C# or Java or some other language, you'll have to make
substitutions.
Testing Skills:
I'm not a
big advocate of formalized testing skills. There are those who think
there is as much to learn about testing as there is about design and
development. I don't happen to subscribe to that philosophy. Testing
isn't trivial, but I'm not convinced it is rocket science either.
My only recommendation in this area is James Whittaker's How To Break Software. This book is very practical. Not a lot of theory but it will give you a good, working knowledge of how to test software.
Programming Skills:
With
a CS degree you should have learned the basics of programming. I liken
this to learning a written language. You know what sentences, verbs,
and nouns are. This makes you capable of writing but doesn't make you a
good writer. School projects tend to be small and throw-away. You
don't often have to deal with large code bases and the quality of the
code itself is often not related to the grade achieved.
The Practice of Programming by Kernighan and Pike. This gives you a lot of tips on how to write good software. Short and meaty. A great book.
Refactoring
by Martin Fowler. This book consists of two parts. The first part
explains the concept of refactoring. How and when to make pre-existing
software better. The second part is a lexicon of refactoring patterns.
These are recommendations to handle specific situations in code. The
latter half of the book I find less useful. Feel free to skip it.
However, the first half is extremely useful. Make sure to read this.
Design Patterns
by Gamma et al. Also known as the "Gang of Four" book. The most
enlightening part of the book is the first few chapters. It shows how
to design an editor using an object-oriented approach. I personally
found this to be an "a-ha" moment. If you didn't cover design patterns
in school, read this book.
Design Patterns Explained by
Alan Shalloway. Great explanation of practical use of design patterns.
Read this before you start designing programs. You'll find yourself
writing better code and you'll find maintenance a whole lot easier.
Advanced C++ Skills:
These
books will help you go beyond the basics. Going back to my written
language example, consider this to be like gaining a strong vocabulary.
You can communicate your ideas with just basic vocab words but to
communicate the nuance, you need a deeper understanding of the language.
Effective C++
by Scott Meyers. If you feel comfortable with C++, this is a great
next book. It will help you to avoid many of the gotchas in C++. This
book will help you be a better programmer at the syntax level and have a
much deeper understanding of the language as a whole. Skip the More Effective C++ book though. It's not a bad book but there are better uses for your time.
Inside the C++ Object Model
by Stanley Lippman. Deep explanation of how C++ works under the
covers. If you want to be a coding guru, give this book some of your
time.
http://blogs.msdn.com/b/steverowe/archive/2007/01/24/recommended-reading-for-new-test-developers.aspx
No hay comentarios.:
Publicar un comentario