Start with "Apprenticeship Patterns" (learn how to learn, get a mentor, approach your career in the right way) and "Pragmatic Programmer" (a bunch of practical techniques that are language/tool agnostic and exposure to a bunch of shared vocabulary/jargon you will likely hear).
Honestly, I have found reading "How do Design Programs" challenging. May be it doesn't flow perhaps because of the use of an unfamiliar language? Do you have a specific approach that helps you?
I'm a beginner, so it's helping me see the big picture. One advice: Browse books in the bookstore and library, and figure out the seasoned authors whose prose connects with you. It's going to be different for everyone; this has helped me when I start learning something new. Then I advance and get systematic.
In a CS program, you learn a lot about algorithmic efficiency and theory, but you don't learn a lot about software construction. Here's my list of must read software books related to this:
12 comments
[ 2.7 ms ] story [ 41.9 ms ] threadClean Coder by Bob Martin - good ideas on being a professional programmer
A Philosophy of Software Design by John Ousterhout - big picture ideas on design
Test Driven Development by Kent Beck - good basis for thinking about design and testing
Legacy Code by Michael Feathers - understanding the issues of legacy code helps us to design better software
https://pragprog.com/book/tpp/the-pragmatic-programmer
Clean Coder by Uncle Bob Martin
Clean Code by Uncle Bob Martin
Refactoring by Martin Fowler
Design Patterns by the gang of four
* The Four Pillars of Investing
* A Random Walk Down Wall Street
I've seen fellow interns blow their salaries on 200 jeans, clubbing, and eating every meal out.
Meanwhile, the IRA I started in grad school is growing at ~7% a year providing a nice nest egg.
Financial security gives you the freedom to take risks. Some discipline in your 20s will make your 30s more awesome than you can imagine :)