Book Recommendation for Interns
What are books that are appropriate to be recommended to a Software Engineering Intern who aspires to become a great software engineer someday? Why?
What are books that are appropriate to be recommended to a Software Engineering Intern who aspires to become a great software engineer someday? Why?
Getting Things Done (2001) by David Allen - great method to organize all your tasks and stay on top of things
Clean 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
Does "A Philosophy of Software Design" need some experience to appreciate what the author is talking about?
It is very approachable even for a junior developer
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:
Clean Coder by Uncle Bob Martin
Clean Code by Uncle Bob Martin
Refactoring by Martin Fowler
Design Patterns by the gang of four
* The Millionaire Next Door.
* 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 :)
I'm using "How to Design Programs", 2nd edition, and it's helpful. It's on Amazon, and free online by Felleisen and colleagues here: https://htdp.org/2018-01-06/Book/part_preface.html
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.
way better than any "Uncle Bob" book for sure.
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).
Looks like a good list to start with.
Pragmatic Programmer
https://pragprog.com/book/tpp/the-pragmatic-programmer