TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Books you should have read when you start a career in SE / CS?

216 pointsby DDerTypabout 7 years ago

45 comments

chollida1about 7 years ago
Three boks I&#x27;ll recommend you read as soon as possible.<p>1) The Mythical Man month<p>3) The Pragmatic Programmer<p>3) Code Complete.<p>The thing about these books, well atleast 1 and 3 is that when they were written they broke new ground. Or if that phrase bother you, they were the first mainstream publications that brought their core ideas to developers.<p>Reading these books early in your career will help cement these best practices.<p>Reading these books after you&#x27;ve been a practicing programmer means,IMHO, that the return you get from reading them goes way way down.<p>You&#x27;ll find that you&#x27;ve already learned all&#x2F;most? of what they are trying to teach.<p>You&#x27;ll find yourself getting frustrated that they are preaching what you already know as common sense and first principles.<p>Or put another way, I&#x27;m not sure there is much that someone who has programmed for 5-10 years can get out of those books that they haven&#x27;t picked up somewhere else already or learned the hard way.
评论 #17032446 未加载
评论 #17032504 未加载
评论 #17033003 未加载
评论 #17033281 未加载
评论 #17032157 未加载
pcprincipalabout 7 years ago
Some I haven&#x27;t seen mentioned here:<p>1. Coders at Work<p>Peter Seibel does an amazing job of asking programmers questions that make them explain their methodology. The interview with Donald Knuth is awesome; really enjoyed hearing him talk about literate programming.<p>2. The Soul of a New Machine<p>Tracy Kidder&#x27;s 1981 Pulitzer Prize winner I think is a brilliant case study on how engineers work together and the things that can go wrong and right with different personalities interacting with highly technical ideas. The project in this book starts without the consent of management, which to me shows the value of questioning the system to add business &#x2F; engineering value.<p>3. Little Schemer<p>Small book that will give your brain a serious workout and show you how to problem solve with Lisp like languages. Even if you never end up using a Lisp dialect, this book expands your brain.<p>I have more here, all of which I recommend for software and other careers <a href="http:&#x2F;&#x2F;benbrostoff.github.io&#x2F;books&#x2F;" rel="nofollow">http:&#x2F;&#x2F;benbrostoff.github.io&#x2F;books&#x2F;</a>
评论 #17032657 未加载
评论 #17032252 未加载
评论 #17032825 未加载
_hardwaregeekabout 7 years ago
Don&#x27;t Make Me Think by Steve Krug and The Design of Everyday Things by Don Norman.<p>While they&#x27;re not strictly software or programming related, I really like the concepts of making interfaces that require minimal thought to use and empathizing with your users. I&#x27;ve seen an unfortunate amount of &quot;programming machismo&quot; where a confusing or poorly engineered system is used and accepted because &quot;that&#x27;s just how things work in the real world&quot;. And whenever someone struggles with the process, it&#x27;s obviously because they&#x27;re wrong, not the system. But more often than not, if more than one person has trouble understanding your system, whether it&#x27;s an API, a website, a build process, the design is the issue.
评论 #17032240 未加载
wilsonnbabout 7 years ago
Our field is so varied that there is no good answer to this question unless you specify what you want to focus on.<p>Some people are inevitably going to recommend <i>The Art of Computer Programming</i>, which hardly anyone has read and isn&#x27;t that relevant to the work that 99% of us are doing.<p>Someone will probably recommend <i>The C Programming Language</i>, also called K&amp;R after the authors, but again it&#x27;s not very useful unless you&#x27;re going to be using a lot of C and even then I personally don&#x27;t think it provides anything you can&#x27;t get from guides on the internet. (I have actually read this one, but it&#x27;s been a while)<p>There are other classic textbooks that will probably be mentioned that are only useful to those in that domain. Many of us can get by without a deep understanding of algorithms and data structures, most people don&#x27;t need to read a compiler book, etc, etc.<p>However, there are some generalized books that people often recommend like <i>The Pragmatic Programmer</i> and <i>Code Complete</i>. These are, in my opinion, good recommendations if you&#x27;re looking for something to read but I wouldn&#x27;t say that someone starting a career in software engineering <i>should</i> read them. Software engineering isn&#x27;t really a field with seminal texts that should be read by everyone.<p>For example, every political scientist should have probably read <i>The Republic</i> by Plato and <i>Politics</i> by Aristotle among many other texts. I don&#x27;t think software engineering has that equivalent, partially due to the relative newness of the field and partially because the primary output of our field is not written texts.<p>Another interesting question would be &quot;What codebases should someone starting their career in software engineering look at?&quot;. Are there things that the average joe programmer can learn by poking around the Linux kernel or Firefox? Maybe. I don&#x27;t know. I&#x27;ve never done it. I&#x27;d be interested in hearing from those who have, though. Maybe I&#x27;ll do my own ask HN.<p>edit: I feel I should clarify that this is written from the perspective of a software engineer, not an academic in computer science. For all I know there could be seminal texts that those on the academic side should all have read.
评论 #17032519 未加载
评论 #17032425 未加载
jpamataabout 7 years ago
Designing Data-Intensive Applications[0] by Martin Kleppmann. There&#x27;s a previous HN thread about it[1]. Helped me understand a bit more about databases and systems. The book is also very approachable and has the perfect blend of application and theory at a high level that anyone approaching the industry for the first time stands to gain a lot from reading it.<p>The Architecture of Open Source Applications[2] series is a good one for leaning how to build production applications and you can read it online. The chapter on Scalable Web Architecture[3] is a must-read.<p>[0] <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Designing-Data-Intensive-Applications-Reliable-Maintainable&#x2F;dp&#x2F;1449373321" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Designing-Data-Intensive-Applications...</a><p>[1] <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15428526" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15428526</a><p>[2] <a href="http:&#x2F;&#x2F;aosabook.org&#x2F;en&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;aosabook.org&#x2F;en&#x2F;index.html</a><p>[3] <a href="http:&#x2F;&#x2F;aosabook.org&#x2F;en&#x2F;distsys.html" rel="nofollow">http:&#x2F;&#x2F;aosabook.org&#x2F;en&#x2F;distsys.html</a>
collinfabout 7 years ago
As far as a technical book, Data Intensive Applications by Martin Kleppman. This book covers distributed systems as well as databases, data-warehousing, and data-processing.<p>A lot of tools and patterns you don&#x27;t see in school that describe how most of the &quot;magic&quot; behind high-powered software we use is implemented.
评论 #17033027 未加载
mfrwabout 7 years ago
My take on some which I think should be atleast read once:<p><pre><code> 1) The unix programming environment 2) The design of the unix operating system 3) The Pragmatic Programmer 4) Programming Pearls 5) Computer Systems: A Programmers Prespective 6) K &amp; R C 7) The art of Unix Programming. </code></pre> PS: I admit my bias towards systems.
评论 #17044555 未加载
评论 #17033235 未加载
评论 #17033710 未加载
busterarmabout 7 years ago
I&#x27;ve read most of the recommended books, but as far as what I think has delivered immediate real value, I&#x27;m going to go with:<p>1) Clean Code 2) The Phoenix Project 3) UNIX and Linux System Administration Handbook<p>I&#x27;m sure #2 will be something folks want to fight over <i>shrug</i>. If you want to sidestep years of headache it&#x27;s a must-read though.
评论 #17032349 未加载
评论 #17032286 未加载
评论 #17032116 未加载
peraabout 7 years ago
<i>Structure and Interpretation of Computer Programs</i>:<p><a href="https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;sicp" rel="nofollow">https:&#x2F;&#x2F;mitpress.mit.edu&#x2F;sicp</a>
评论 #17033227 未加载
bloodorangeabout 7 years ago
There are many books which sound good in theory but I think my younger self would not have been able to make use of the wisdom in those books because I did not have the experience to relate to what the book was talking about. Nevertheless, if I had to ignore this factor, I too, like many others in this thread, recommend &quot;The Mythical Man Month&quot;. However, I think, it&#x27;s more important to figure out what one wants from life than to just better one&#x27;s craft. Of course if that is what you want in life, then indeed pursuing that makes sense. I&#x27;m also tempted to recommend &quot;Siddhartha&quot; by Herman Hesse and &quot;The Consolations of Philosophy&quot; by Alain de Botton.
评论 #17032453 未加载
评论 #17032556 未加载
modbaitabout 7 years ago
1. The Mythical Man Month. Quite old, but still a classic.<p>2. Dilbert. This comic series is an excellent introduction into how corporations actually work.<p>3. The Systems Bible. Somewhat obscure. Fascinating ideas on how large systems, both technical and organizational, actually work.
评论 #17035655 未加载
Slansitartopabout 7 years ago
Peopleware: Productive Projects and Teams (<a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Peopleware-Productive-Projects-Teams-3rd&#x2F;dp&#x2F;0321934113&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Peopleware-Productive-Projects-Teams-...</a>)<p>It talks about what makes a good team, how powerful they can be, and also gives some insight on team dysfunction.
ozimabout 7 years ago
You start career. If you already have been programming like in high school or something and finished CS university don&#x27;t focus much on technical books. Learn how to work with people not computers and listen. I assume you know objects, ifs, for loops. It is enough for technical start. I don&#x27;t expect more from junior. &quot;The pragmatic programmer&quot; is quite good start on it.<p>If you lack technical background and have problems with structure because you have not worked through university&#x2F;school in structured way then &quot;Code complete&quot;, &quot;Clean code&quot;. Pick also something in depth for your specific area you are going to start, for C# good would be &quot;C# in depth&quot; to get really details of tech you will be working on. Get details in one programming language really well then you can pick up some other tech.
jiveturkeyabout 7 years ago
Le Petit Prince. Certainly you’ve read this but it should be reread on occasion and starting a career is a good time.<p>eg “You become responsible, forever, for what you have tamed”
troupeabout 7 years ago
How to Win Friends and Influence People
skfistabout 7 years ago
My favorites so far:<p>- <i>Pragmatic Thinking &amp; Learning</i> by Andy Hunt<p>- <i>The Design of Everyday Things by Don Norman<p>- </i>The Effective Engineer* by Edmond Lau<p>- <i>The Pragmatic Programmer</i> by Andy Hunt and Dave Thomas<p>- <i>SQL Performance Explained</i> by Markus Winand<p>And <a href="http:&#x2F;&#x2F;teachyourselfcs.com" rel="nofollow">http:&#x2F;&#x2F;teachyourselfcs.com</a> curriculum is pretty good as well.<p>As a side note, there&#x27;s so much we can learn from game programmers and OS&#x2F;database&#x2F;compiler engineers.
ryanmarshabout 7 years ago
Anything about Complex Adaptive Systems. Holland’s short intro is nice.<p>Eventually you’re going to be faced with a very complex system to refactor. It helps to understand the principles of healthy complex systems in nature.<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Complexity-Very-Short-Introduction-Introductions&#x2F;dp&#x2F;0199662541" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Complexity-Very-Short-Introduction-In...</a>
bmjabout 7 years ago
The Practice of Programming by K &amp; R.<p>Or has this fallen out of favor?
评论 #17032551 未加载
napsterbrabout 7 years ago
This will be an unusual suggestion, but I highly recommend Geographic Databases and Information Systems by Stefanakis. The book is split into three parts, and the last one is specific to GIS. The other two, however, are a great introduction for databases, indices, data structures and even some graph theory. I&#x27;ve revisited several concepts I&#x27;d seen before at college.
Itaxpicaabout 7 years ago
Back when I was just graduating from college I picked up a book called &quot;Coder to Developer: Tools and Strategies for Delivering Your Software&quot;. It was basically written for people who knew how to write code, but not all the stuff that comes with it in a professional setting - unit testing, build systems, version control, deployment and monitoring, etc.<p>I&#x27;d have a hard time recommending it per se, because it relies heavily for examples on specific technologies that were dated even when I was reading it half a decade ago, but I think something like it with that kind of content is a must-read for anyone starting in SE, especially coming from a CS degree that might have been light on those areas. If I could find a version that&#x27;s more recent I&#x27;d recommend it to every new grad I know.
katabout 7 years ago
Find a book that introduces to programming patterns. I read &#x27;Design Patterns&#x27; from the Head-First series when starting out <a href="http:&#x2F;&#x2F;www.headfirstlabs.com&#x2F;books&#x2F;hfdp&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.headfirstlabs.com&#x2F;books&#x2F;hfdp&#x2F;</a>
pvgabout 7 years ago
Superdupermegapreviouslies:<p><a href="https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=books&amp;sort=byPopularity&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story" rel="nofollow">https:&#x2F;&#x2F;hn.algolia.com&#x2F;?query=books&amp;sort=byPopularity&amp;prefix...</a>
kosmaabout 7 years ago
The Art of Unix Programming. It teaches the &quot;why&quot;s, not just the &quot;how&quot;s.
telltruthabout 7 years ago
This might sound either obvious or naive but if you are not a CS major, I would really emphasize reading CS textbooks such as CLRS, Programming Pearls, Dragonbook and most importantly textbooks on statistics m probability, linear algebra. There is a pyramid of skills for developers. People who haven’t studied throughly above stuff usually ends up at bottom (aka “enterprise” or “web” or “database” developers). They spend their lives in trivialities of patterns and plumbing and only very rarely doing something interesting such as distributed computing, game programming, systems programming, ML&#x2F;AI.
akaralarabout 7 years ago
For the technical side of things, <a href="http:&#x2F;&#x2F;teachyourselfcs.com" rel="nofollow">http:&#x2F;&#x2F;teachyourselfcs.com</a> gives a nice curriculum.
tomdreabout 7 years ago
&quot;Introduction to Algorithms&quot; by Cormen et al. is one of my favorite books. It gave me a deep understanding of algorithms and data structures.
评论 #17036307 未加载
Rotdhizonabout 7 years ago
Most books recommended here are for programming of some or administration, anyone have notable books for cyber security, pen testing, red teaming, etc?
评论 #17037754 未加载
cbanekabout 7 years ago
1. Mythical Man Month - obvious reasons<p>2. Deathmarch: The Complete Software Developer&#x27;s Guide to Surviving &#x27;Mission Impossible&#x27; Projects- also a classic.<p>3. Thinking fast and slow - a great introduction to biases that will affect your thinking in any project.<p>4. The Art of War - strategy and tactics for attacking any problem. My personal favorite translation is by Thomas Cleary.
评论 #17032871 未加载
评论 #17032192 未加载
bluGillabout 7 years ago
Something for any industry that interests you. Computers are a tool. We use them not because a bubble sort is n-squared and quick sort is nlogn with a n-squared worst case. Step outside of your box and learn something about the real problems in the world and you will be the better as you realize how you can apply computers to solve the real problems.
Trundleabout 7 years ago
I&#x27;m surprised to see basically only books on how to be better at making software. Nothing on negotiation or other soft skills like that.<p>Do people generally just not value things like negotiating? Or do you just not think a book would have helped younger you?
评论 #17036302 未加载
评论 #17039039 未加载
nextosabout 7 years ago
The Little Schemer
jrs235about 7 years ago
The Principles of Product Development Flow: Second Generation Lean Product Development<p>It changed my understanding and thinking about how best to work flow development. I highly highly recommend this book to coders to managers.
InclinedPlaneabout 7 years ago
- The Pragmatic Programmer<p>- Refactoring<p>- Facts and Fallacies of Software Engineering<p>- Code Complete
enitihasabout 7 years ago
Code Complete. I found Code Complete to be as eye opening for day to day work as SICP is while learning in University.
sidcoolabout 7 years ago
The title makes me wonder, is it too late to read these books for me, a decade long programmer?
评论 #17044927 未加载
mhh__about 7 years ago
Linux kernel coding standard, for attitude rather than specific guidance?
gargarplexabout 7 years ago
Waltzing With Bears. Oh my god how I wish I had read that one book.
dmuxabout 7 years ago
(1) Object Thinking by David West. (2) Thinking Forth by Leo Brodie
nacho2sweetabout 7 years ago
Code Complete 2. I bought it... never read it.
hemantvabout 7 years ago
Effective Engineer by Edmond Lau<p>Game Programming Patterns
Hernanpmabout 7 years ago
Web Scalability for Startup Engineers
cmrdporcupineabout 7 years ago
The Glass Bead Game by Herman Hesse.
sl956about 7 years ago
1) The Art of Computer Programming<p>2) The Art of Computer Programming<p>3) The Art of Computer Programming<p>4A) The Art of Computer Programming
评论 #17032146 未加载
评论 #17032407 未加载
评论 #17032466 未加载
BigTex420about 7 years ago
Hackers and Painters
jacksmith21006about 7 years ago
The Phoenix project. Everyone should read, IMO. I actually started with The Goal first. Then Phoenix project and then the Google SRE book.