
Ask HN: Books for soon to be Software Engineers - cdmcnamara
I just graduated college with a degree in CS and took a job as a SE. I was curious to know if there were any books that would be valuble to help me bridge the gap between school and industry. Thanks for your suggestions.
======
swanson
I read these two books in the first few months at my job with a book club that
included the other new hires and a good mix of more experienced developers.

    
    
      * The Pragmatic Programmer [1]
      * Apprenticeship Patterns [2]
    

I would highly recommend both.

[1] [http://swanson.github.com/writeup/2010/10/25/pragmatic-
progr...](http://swanson.github.com/writeup/2010/10/25/pragmatic-
programmer.html)

[2]
[http://swanson.github.com/writeup/2010/10/26/apprenticeship-...](http://swanson.github.com/writeup/2010/10/26/apprenticeship-
patterns.html)

------
buckwild
Rule number one is you can't learn EVERYTHING from a book. I'd suggest
contributing to open source projects and reflecting on what you learned...

------
rw
I strongly recommend both of these:

    
    
      * The Practice Of Programming (co-authored by the 'K' in C's K&R)
      * Code Complete 2

------
gte910h
Code Compete 2

Software Estimation: Demystifying the Black Art

Pro GIT

Debugging by Agans

------
aaronbrethorst
Peopleware by Demarco and Lister is one of my all-time favorites. The
Pragmatic Programmer is also great.

------
rhettg

       Code Complete
       Being Geek

~~~
Mongoose
+1 for Being Geek. It's essentially a well-laid out rehash of Rands' blog
posts over the years but I've found it good reading, even with the enormous
amount of typos. I'm in the same situation as the OP, so the strategic career
advice is much more relevant now than when I read it in the past.

------
sage_joch
If you will be programming in Java, these books will serve you incredibly
well:

    
    
      * Effective Java
      * Java Concurrency in Practice
      * Head First Design Patterns

~~~
beagle3
If you will be programming in Java, my condolences. (yes, I'm ready for the
downvotes).

I'm sure there's some nice Java code out there. I recently agreed to do a Java
project, and the 6 months I was at it sucked the joy of programming out of me.

I've spent the last few years doing Python, C and K, and in comparison, Java
is so bureaucratic that I felt like 10% of my work was advancing towards my
goal, and 90% was bureaucracy (compared to 20% bureaucracy in C, 5% in Python
and 0.001% in K)

And as for books, I recommend Jon Bentley's "Programming Pearls" series, Steve
McConnell's "Software Project Survival Guide" and DeMarco and Lister's
"PeopleWare". The last two have more to do with project (and people)
management than with software engineering - but you will need these skills
much earlier than you'd expect, perhaps even in your first couple of months of
work. And PeopleWare is a short and enjoyable read, you could put it in the
"leisure" pile.

------
awa
The Passionate programmer [Pragmatic series] - On how to develop yourself as a
programmer

Coders at work - For inspiration

------
ig1
Code craft is the book I normally recommend for people starting out. Code
Complete which several other people recommend is a great book, but it's one of
those books that make much more sense after you've been programming for a year
or so.

------
kqueue
I am sure you'll get enough suggestions on technical books so I won't bother
suggesting one. But make sure to pay extra attention to communication. A huge
part in software engineering is communication.

------
mullr
* The Pragmatic Programmer (Read this once every 6 months until it's obvious)

* Head first design patterns

* Agile Web Development with Rails

It's not obvious, but the rails book is a great introduction to test-driven
development in general.

------
rlawson
hopefully your new company will be ok with using opensource components - so
for sure read The Cathedral and the Bazaar by ESR

------
chillax
Clean Code

------
cannedprimates
A Few Good Men from UNIVAC

