Best Resources for becoming a better software developer

Started by
13 comments, last by theOcelot 15 years, 9 months ago
I have been learning C++ for about a month now on my own as well as with someone giving me practice problems to solve (I'm an accounting major) and have realized that I will never be as good as I would like to be if I don't get a better understanding of good coding practices as well as theory. I have found tons of resources on how to do a particular thing with C++ but am having more trouble trying to fill in my education with topics and discussions that will help me understand the underlying concepts. I always feel a little disheartened that I got myself so far into accounting now that back tracking isn't really feasible (1 year left). I won't be able to do computer science now but I would like some replies about the best resources for becoming a well rounded and solid programmer for those that are self-taught(books, websites, textbooks, etc...) I think I'm a little bit older now from what I've seen on here (22) compared to most people. Any suggestions would be appreciated.
Advertisement
Just a semantic note first-off. The underlying concepts for a specific detail are often just that: implementation details. Not so useful to know. What's better to learn is the general theory of things. Far too often beginners, and especially C++ beginners think that by knowing 'how things work' they'll be better equipped to program.

It doesn't quite work like that. There's a good paper (of which I cannot find a link at the moment) that states simply that you can keep only a certain amount of information in focus at any one time. As programs get larger, that fine resolution of the various bits becomes untenable. You require greater and greater abstraction (and tools) to manage the program within your mind.

So you said you're going to focus on practices and theory; good. Just beware the common trap of trying to 'learn how everything works'.


Books that I've found entirely useful:

Design Patterns, by Gamma et al.
The C++ Standard Library, by Josuttis
Code Complete (not super useful, but good for people without exposure to commercial programming)
O'Reilly's Mastering Regular Expressions
Programming C# by Liberty.


Beej's guide to network programming, drunkenHyena's directx tutorials, and msdn's reference are the few websites I've found mildly useful. Websites in general tend to be filled with a lot more chaff, and are best to be avoided.
Effective C++, by Scott Myers - helped correct some of my bad practices / habits.
Quote:Original post by Telastyn
Code Complete (not super useful, but good for people without exposure to commercial programming)


I want to second Code Complete, as someone in a similar position to the original poster. Code Complete is an absolutely fantastic book, and it's also incredibly readable. Since it's also widely considered a classic of the field, it should be available at your local library if you want to take a look at it before buying it. Code Complete is an almost invaluable resource for anyone looking to improve as a programmer and a developer (though it won't help you at all if what you really want to learn are the specifics of your particular language).

As for websites, I agree with Telastyn that they're overall not very good and sometimes actually harmful rather than helpful.

Blogs, on the other hand, can sometimes be quite useful, although you always have to sort the wheat from the chaff -- but it can be worth looking around. One pretty interesting blog series that seems applicable to this website is David Cumps' Design Patterns series. He's working through all of the design patterns presented in Head First Design Patterns (most of the useful ones from the Gang of Four text), and he's doing a great job of explaining them. Most of the examples and explanations he gives are in the context of building a game (specifically, a Command and Conquer clone). The language is C#, but you should be able to follow everything with C++ experience.
The Pragmatic Programmer: From Journeyman to Master

Much of the book seems more geared towards programming professionals but it goes over a lot of the details programming in practice. This isn't a programming how-to but discusses how to approach development. Good for the amateur and professional alike, IMO.
Quit screwin' around! - Brock Samson
Quote:Original post by Anexa85
I think I'm a little bit older now from what I've seen on here (22)

So young you are. Such a long road of learning ahead of you you have, young Jedi.

-- Tom Sloper -- sloperama.com

the OP brings something to my attention I wouldn't mind asking (not to hijack the thread or antyhing) but, is there an average age that people break into the Game industry at? because it seems whenever I read a bio of a game dev, they usually start in this specific field later on in their careers. I'm 23 and just starting university in the fall, will I be behind the curve? or is are there alot of 27 year olds just starting in the industry?
--------------------------------------Not All Martyrs See Divinity, But At Least You Tried
Hi godsenddeath,

You can get a job in the industry at 27. I just started working as a developer in June, 2007 at the age of 24.5. I know someone at my company who was on the same degree as me; he started when he was 28. I don't think your age really matters as long as you are able to program well and are under the age of 80 :).
I would also cite the POSA and PLOPD book series (about design patterns), plus a few others:

* "Refactoring" by Martin Fowler,
* "Modern C++ Design" by Andrei Alexandrescu,
* "Advanced Programming in the UNIX Environment" by Alex Stevens,
* "The Art of Computer Programming" volumes 1 to 3, by Donald Knuth,

Of course, there are many more.
Book list
Online resources

Steven Yau
[Blog] [Portfolio]

This topic is closed to new replies.

Advertisement