Currently reading Don't Make Me Think by Steve Krug.
It's an excellent book on UX that I think is important for all developers (especially front-end) and designers.
Senior software developer at Amazon Web Services. I work on the AWS Serverless Application Repository and AWS SAM. I’m passionate about writing quality software and teaching others how to do the same.
Location
Seattle, WA
Education
BS Computer Engineering, Minors: CS and Math
Work
Sr. Software Development Engineer at Amazon Web Services
JavaScript:
Essential JavaScript - Solid introduction to JavaScript and common programming principles
Secrets of the JavaScript Ninja, 2nd Edition - Function context, closures, ES6, oh my!
Learning JavaScript Design Patterns - Because fundamentals are good, and you should work on them.
Swift:
The Swift Programming Language (ie: the docs!) - It's literally the docs. That's how conversational the documentation for Swift is; they took it and put it in a book and it actually reads like one. 10/10 pretty much my only resource for learning Swift.
Python:
Learn Python The Hard Way - It's. Uh. Amazing.
Learning Django Web Development - Django documentation is great tbh, but it can be a little overwhelming given how deep every section goes. This book is a solid way to gain clarity on some of the verbose sections in the documentation.
"Learn Python the Hard Way" teaches you all the wrong lessons in the wrong way. I learned using those books, and unfortunately had to relearn most of the lessons taught to me from that and "Learn C The Hard Way". Try "Dive Into Python".
I second that. Learn Python The Hard Way introduces a lot of noise and unnecessary stuff which you might never use in the future. Also, the examples are boorish and make no sense.
Written in order of recommendation per topic. Eloquent JS is a great lead-in into SotJS (which has become my favorite JS book), and once you've got a firm grasp on those core concepts understanding the various implementations of modules and stuff is covered pretty well in Learning JavaScript Design Patterns. Swift docs genuinely are as awesome as I hype them up to be.
Python, if Learn Python the Hard Way is too much, 'Automate the Boring Stuff w/ Python' is more interactive.
Been building web applications of all shapes and sizes since 1998 mostly with PHP and yelling at anyone who will listen about writing tests and using automation to make your life easier since 2005....
I am on my second, dog-eared copy of The Pragmatic Programmer by Andrew Hunt and David Thomas. Cannot recommend this book enough as a blueprint for your minimal skills base
TDD by Example, by Kent Beck. This is the one programming book I go back to every few years, and even though it's not a huge book, I always come away with something new.
Refactoring, by Martin Fowler. Though I don't revisit this one quite as often (except maybe to look up one of the less common recipes, I think it's still a book ever programmer should read at least once.)
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
Code Complete Paperback by Steve
Refactoring: Improving the Design of Existing Code by Martin Fowler (Author), Kent Beck (Author), John Brant (Author), William Opdyke (Author), Don Roberts (Author)
Test Driven Development: By Example By Kent Beck
The Art of Unit Testing: with examples in C# by Roy Osherove
Design Patterns: Elements Of Reusable Object-Oriented Software by Gamma
Patterns of Enterprise Application Architecture By Martin Fowler
The Pragmatic Programmer By Hunt
Microsoft.NET Architecting Applications for the Enterprise 2 by Dino Esposito and Andrea Saltarello
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series)
RESTful Web APIs By Leonard Richardson and Mike Amundsen with Foreword by Sam Ruby
Adaptive Code via C#: Agile coding with design patterns and SOLID principles
Effective Java (2nd Edition) Paperback — by Joshua Bloch (Author)
Tariq Ali is an aspiring web developer dedicated to producing interesting applications and websites for businesses. Before entering into web development, Tariq served as a journalist, real estate a...
Software Engineering by Ian Sommerville. This is not a book about writing code. It is instead about all the non-technical aspects of programming, such as the trade-offs of code reuse, managing risks to projects, dealing with complex "socio-political systems", and handling ethical dilemmas. It's a college textbook but it has practical advice for dealing with real-world situations, and it is the first book that I read that made me scared for programming. Even the textbook questions at the end of each chapter can give me pause.
For testing: the RSpec book. I know it's old and dated, but nothing made it click for me like that book did.
For understanding programming: the Elements of Computing Systems. Amazing book (people are calling it "Nand to Tetris" these days). That book is the reason I understand hardware (the big patterns, not like all the nuances of modern complex hardware).
For Ruby: The Pickaxe and Ruby Under a Microscope. The pickaxe is shockingly practical. I wasted so much effort trying to learn stuff that was in that book. A lot of it is just docs, too, which makes it thick and scary, but the first half is a wonderful collection of super practical information. Ruby Under a Microscope is basically "how does Ruby work", pick that one up if you're writing Ruby based on syntactic patterns you've seen and you want to actually understand why anything does what it does.
The book Absolute Java was wonderful when I read it, too. At that time, I was very new, so their lengthy explanations of how things worked were very useful and enlightening. Now it's an obvious / boring read for me, but I'm not its audience any more. So if you've got less than a year or two of experience, this book does a good job of helping you understand how language level stuff are implemented. If you've never worked with a typed language before, it's also worth reading for that reason (any typed language will be good for your programming brain, it will make explicit and obvious a class of errors and ways of thinking that dynamic languages leave implicit).
I'm sure there are others, but my books are in storage.
I am an OpenEdge (aka Progress) developer that loves clean code and good looking applications that are easy to use. My main pet project is the Progress DataDigger
Senior software developer at Amazon Web Services. I work on the AWS Serverless Application Repository and AWS SAM. I’m passionate about writing quality software and teaching others how to do the same.
Location
Seattle, WA
Education
BS Computer Engineering, Minors: CS and Math
Work
Sr. Software Development Engineer at Amazon Web Services
Programming Pearls by Jon Bentley. Code Complete by Steve McConnell. The C Programming Language by Kernighan and Ritchie. The Design of Everyday Things by Donald Norman. Writing Solid Code. Writing Solid Code by Steve Maguire.
Security Director at ForgeRock.
Author: https://www.manning.com/books/api-security-in-action
Cryptography and application security. PhD in AI. Secret Prolog junkie.
Release It! by Michael T. Nygard - lots of solid advice on building robust systems.
Effective Java - does what it says on the tin.
Paradigms of Artificial Intelligence Programming by Peter Norvig - the content is out of date, but one of the best books on programming I've ever read.
Essentials of Programming Languages (1st edition) by Friedman, Wand and Haynes. My first introduction to Scheme and Lisp many years ago and it blew me away.
Concepts Techniques and Models of Computer Programming - Peter Van Roy and Seif Haridi. Comprehensive coverage of pretty much every programming paradigm ever invented. It's a big book!
Other good older books that I learned a lot from: ML for the Working Programmer, The Craft of Prolog, Practical Programming in Tcl/Tk.
+1 for DI in .NET. That book helps me deal with coworkers who have learned one of the many DI antipatterns and misconceptions. Must read for anyone who is learning about DI, no matter what language they use.
Patterns of Enterprise Application Architecture - our goto resource for breaking down development and design problems.
Continuous Delivery by Jez Humble and David Farley. One of the best books for clearly justifying the costs and processes of CI/CD patterns to non-IT people.
The C Programming Language, Second Edition
The Practice of Programming
The Unix Programming Environment
C Unleashed
21st Century C
Autotools: A Practitioner's Guide to GNU Autoconf, Automake, and Libtool
Equal parts higher-ed IT, web dev and support; with a dash of freelance consulting thrown in for good measure. (Oct/19: Seeking change of pace. Not afraid to take a step back in order to move ahead!)
It was the book used in my core Computer Science classes some 20+ years ago; and it remains the standard by which I judge all programming books. Clear, concise, easy-reading, plenty of examples; an absolute pleasure to learn from!
"Relevant Search" is a good, practical book on solr/elastic search
I like "Natural Language Processing with Python" as an introduction to text processing problems (techniques are dated but I thought the examples were helpful)
Code Complete is a good general coding book
"Secrets of the javascript ninja" and "3rd party javascript" taught me a lot about javascript, and tend to have a lot of practical lessons
The Go Programming Language (Alan A. A. Donovan, Brian W. Kernighan)
Programming: Principles and Practice Using C++, 2nd Edition (B. Stroustrup)
JavaScript: The Definitive Guide, 6th Edition (David Flanagan)
The C Programming Language, 2nd edition (Brian W. Kernighan, Dennis M. Ritchie)
These are all crazily well-written introduction books for their respective languages. I think either you choose to start with these books, or you crazy enough not to... And wear the consequences, because one day you have to read them in your career.
1) Interchange learning English series of Cambridge to learn English first.
2) Introduction to Algorithms or foundations of Algorithms
3) Any books for learning Assembly
4) Software engineering (Pressman)
Then depending on which field or language you prefer books vary. But starting with C++ is always good.
All 3 Clean ... by Robert C. Martin (uncle bob) books, After 2-3 yrs of experience.
Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series) Martin Fowler (Author). You will not be afraid after this to work with legacy code.
For JavaScript Nicholas C. Zakas books
I do not recommend learning a programming language from a book, do an interactive course (like Udacity platform, Khan Academy or gamification platform like codingwars), OR read a book but stop after each 10-30 pages and practice.
Like cooking or any other craft you need to practice it in order to learn it.
Experienced PHP and C programmer based in Norway, with a history of game and web development. CTO at Blue Scarab Entertainment, previously at Servebolt.com, IMVU, Smarterphone, and Funcom.
Python:
Think Python by Allen B. Downey - Especially good for new programmers.
Fluent Python by Luciano Ramalho - Good for those moving to Python from other languages.
Currently reading Don't Make Me Think by Steve Krug.
It's an excellent book on UX that I think is important for all developers (especially front-end) and designers.
In addition to the many good suggestions already posted I'd recommend Designing Data-Intensive Applications by Martin Kleppmann.
It's very good if you're interested in distributed systems.
Robert C. Martin
Clean Code: A Handbook of Agile Software Craftsmanship
I fourth that
Here here
I second that
Really good book
I third that.
Distributed counting is hard. 😜
JavaScript:
Essential JavaScript - Solid introduction to JavaScript and common programming principles
Secrets of the JavaScript Ninja, 2nd Edition - Function context, closures, ES6, oh my!
Learning JavaScript Design Patterns - Because fundamentals are good, and you should work on them.
Swift:
The Swift Programming Language (ie: the docs!) - It's literally the docs. That's how conversational the documentation for Swift is; they took it and put it in a book and it actually reads like one. 10/10 pretty much my only resource for learning Swift.
Python:
Learn Python The Hard Way - It's. Uh. Amazing.
Learning Django Web Development - Django documentation is great tbh, but it can be a little overwhelming given how deep every section goes. This book is a solid way to gain clarity on some of the verbose sections in the documentation.
"Learn Python the Hard Way" teaches you all the wrong lessons in the wrong way. I learned using those books, and unfortunately had to relearn most of the lessons taught to me from that and "Learn C The Hard Way". Try "Dive Into Python".
I second that. Learn Python The Hard Way introduces a lot of noise and unnecessary stuff which you might never use in the future. Also, the examples are boorish and make no sense.
Great list 👏
Written in order of recommendation per topic. Eloquent JS is a great lead-in into SotJS (which has become my favorite JS book), and once you've got a firm grasp on those core concepts understanding the various implementations of modules and stuff is covered pretty well in Learning JavaScript Design Patterns. Swift docs genuinely are as awesome as I hype them up to be.
Python, if Learn Python the Hard Way is too much, 'Automate the Boring Stuff w/ Python' is more interactive.
Definitely all of the following:
My "good to read" list includes:
I am on my second, dog-eared copy of The Pragmatic Programmer by Andrew Hunt and David Thomas. Cannot recommend this book enough as a blueprint for your minimal skills base
This one is great for any developer
TDD by Example, by Kent Beck. This is the one programming book I go back to every few years, and even though it's not a huge book, I always come away with something new.
Refactoring, by Martin Fowler. Though I don't revisit this one quite as often (except maybe to look up one of the less common recipes, I think it's still a book ever programmer should read at least once.)
Both of them are excelent pieces.
Definitely The Pragmatic Programmer. So many priceless tips.
Just finished reading it and I know I'll be going back to it periodically.
So many useful tips!
Second to recommend it, what a great book!
Got quiet a few
1: Learning Java (Patrick Niemeyer& Jonathan Knudsen)
2: Clean Code (Robert C. Martin)
3: Java Pocket Guide (Robert Liguori & Patricia Liguori)
4: Elements of Programming (Alexander A. Stepanov, Paul McJones · Addison-Wesley)
5: Debian GNU/Linux (Heike Jurzik · Rheinwerk Verlag GmbH)
6: Linux Bible (Christoper Negus)
I wrote this blog on my #must-read list
medium.com/@simplymanas/books-for-...
You don't know JS by Kyle Simpson
Eloquent Javascript
Professional JavaScript for Web Developers by Nicholas C Zakas
Between Eloquent Javascript and Professional JavaScript for Web Developers, which should I read first?
Eloquent Javascript
Software Engineering by Ian Sommerville. This is not a book about writing code. It is instead about all the non-technical aspects of programming, such as the trade-offs of code reuse, managing risks to projects, dealing with complex "socio-political systems", and handling ethical dilemmas. It's a college textbook but it has practical advice for dealing with real-world situations, and it is the first book that I read that made me scared for programming. Even the textbook questions at the end of each chapter can give me pause.
Oh, this sounds great.
For testing: the RSpec book. I know it's old and dated, but nothing made it click for me like that book did.
For understanding programming: the Elements of Computing Systems. Amazing book (people are calling it "Nand to Tetris" these days). That book is the reason I understand hardware (the big patterns, not like all the nuances of modern complex hardware).
For Ruby: The Pickaxe and Ruby Under a Microscope. The pickaxe is shockingly practical. I wasted so much effort trying to learn stuff that was in that book. A lot of it is just docs, too, which makes it thick and scary, but the first half is a wonderful collection of super practical information. Ruby Under a Microscope is basically "how does Ruby work", pick that one up if you're writing Ruby based on syntactic patterns you've seen and you want to actually understand why anything does what it does.
The book Absolute Java was wonderful when I read it, too. At that time, I was very new, so their lengthy explanations of how things worked were very useful and enlightening. Now it's an obvious / boring read for me, but I'm not its audience any more. So if you've got less than a year or two of experience, this book does a good job of helping you understand how language level stuff are implemented. If you've never worked with a typed language before, it's also worth reading for that reason (any typed language will be good for your programming brain, it will make explicit and obvious a class of errors and ways of thinking that dynamic languages leave implicit).
I'm sure there are others, but my books are in storage.
The Pragmatic Programmer.
The Mythical Man-Month.
I really loved Steve McConnell's Code Complete
+1. Such a great book!
Erlang
for newcomer:
Programming Pearls by Jon Bentley. Code Complete by Steve McConnell. The C Programming Language by Kernighan and Ritchie. The Design of Everyday Things by Donald Norman. Writing Solid Code. Writing Solid Code by Steve Maguire.
By far, it's Structure and Interpretation of Computer Programs (mitpress.mit.edu/sicp/full-text/bo...).
Release It! by Michael T. Nygard - lots of solid advice on building robust systems.
Effective Java - does what it says on the tin.
Paradigms of Artificial Intelligence Programming by Peter Norvig - the content is out of date, but one of the best books on programming I've ever read.
Essentials of Programming Languages (1st edition) by Friedman, Wand and Haynes. My first introduction to Scheme and Lisp many years ago and it blew me away.
Concepts Techniques and Models of Computer Programming - Peter Van Roy and Seif Haridi. Comprehensive coverage of pretty much every programming paradigm ever invented. It's a big book!
Other good older books that I learned a lot from: ML for the Working Programmer, The Craft of Prolog, Practical Programming in Tcl/Tk.
"Dependency Injection in .NET" by Mark Seemann. It teaches you so much more than what the title says.
"C# in Depth" and "C# in a Nutshell" are very good.
As a non-techincal book but excellent nonetheless, "The Clean Coder" by Uncle Bob.
+1 for DI in .NET. That book helps me deal with coworkers who have learned one of the many DI antipatterns and misconceptions. Must read for anyone who is learning about DI, no matter what language they use.
Patterns of Enterprise Application Architecture - our goto resource for breaking down development and design problems.
Continuous Delivery by Jez Humble and David Farley. One of the best books for clearly justifying the costs and processes of CI/CD patterns to non-IT people.
The C Programming Language, Second Edition
The Practice of Programming
The Unix Programming Environment
C Unleashed
21st Century C
Autotools: A Practitioner's Guide to GNU Autoconf, Automake, and Libtool
The Art of Computer Programming
Hackers: Heroes of the Computer Revolution Good insight into how great programmers think.
Code Complete
Hakmem
As much as you can afford on your primary programming language. You may find that answer to a vexing problem in only one book.
Nice list
C: How to Program (Deitel & Deitel)
It was the book used in my core Computer Science classes some 20+ years ago; and it remains the standard by which I judge all programming books. Clear, concise, easy-reading, plenty of examples; an absolute pleasure to learn from!
It's not about programming but definitely can help with development-related or documentation stuff:
Practical Typography by Matthew Butterick
Basically it's a book about writing professional documents properly. And it's "free".
For Beginners: Structure and Interpretation of Computer Programs, by Abelson and Sussman.
"Relevant Search" is a good, practical book on solr/elastic search
I like "Natural Language Processing with Python" as an introduction to text processing problems (techniques are dated but I thought the examples were helpful)
Code Complete is a good general coding book
"Secrets of the javascript ninja" and "3rd party javascript" taught me a lot about javascript, and tend to have a lot of practical lessons
These are all crazily well-written introduction books for their respective languages. I think either you choose to start with these books, or you crazy enough not to... And wear the consequences, because one day you have to read them in your career.
Pragmatic Programmer and Code Complete.
1) Interchange learning English series of Cambridge to learn English first.
2) Introduction to Algorithms or foundations of Algorithms
3) Any books for learning Assembly
4) Software engineering (Pressman)
Then depending on which field or language you prefer books vary. But starting with C++ is always good.
All 3 Clean ... by Robert C. Martin (uncle bob) books, After 2-3 yrs of experience.
Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series) Martin Fowler (Author). You will not be afraid after this to work with legacy code.
For JavaScript Nicholas C. Zakas books
I do not recommend learning a programming language from a book, do an interactive course (like Udacity platform, Khan Academy or gamification platform like codingwars), OR read a book but stop after each 10-30 pages and practice.
Like cooking or any other craft you need to practice it in order to learn it.
"Dreaming in Code" by Scott Rosenberg should be read by anyone who works with tech in any capacity.
"Game Programming Patterns" by Robert Nystrom, meanwhile, should be read by any coder with a pulse. :)
For XML-oriented functional programmers, I would recommend these books:
XSLT 2.0 and XPath 2.0
by Michael Kay
XSLT Cookbook. Solutions and Examples for XML and XSLT Developers
by Sal Mangano
as an aside: forget XSLT 1.0. XSLT 2.0 and 3.0 are real fun.
The Mythical Man-Month by Fred Brooks.
A timeless classic in various aspects to software engineering and project management.
Eloquent JavaScript
Introduction to Algorithms 3rd Edition
Soft Skills: The Software Developer's Life Manual from @jsonmez
"Working Effectively with Legacy Code" by Michael C. Feathers, and "C++ Coding Standards" by Herb Sutter and Andrei Alexandrescu.
All from Scott Meyers.
The manual?
Effective Java
Javascript:
Books:
Articles:
The Practice of Programming
The Pragmatic Programmer
The Art of UNIX Programming
Code Complete Second Edition by Steve McConnell
Agile Principles, Patterns, and Practices in C# also from @unclebobmartin
Growing Object Oriented Software Guided by Tests
Nat Pryce and Steve Freeman
Any good book about continues integration and continues deployment?
"Code Simplicity: The Fundamentals of Software" by Max Kanat-Alexander
Java: Effective Java
C#: C# In Depth
JavaScript: You Don't Know JS series
[Haskell: Learn You a Haskell for Great Good]
General: Clean Code, The Mythical Man-Month
You Don't Know Js github.com/getify/You-Dont-Know-JS
1.Pragmatic Programming
2.Mythical Myth
3.Clean code
These are the three books I have read so far which are very informative
You don't know JS(Kyle Simpson)?
Python:
Think Python by Allen B. Downey - Especially good for new programmers.
Fluent Python by Luciano Ramalho - Good for those moving to Python from other languages.
I'm surprised no one's mentioned anything about books on shader code. I'm compiling a list and its the only thing missing so far :(
I apologize because these aren't books, but I think they deserve an honorable mention (forgive me!).
For shaders:
The Book of Shaders - thebookofshaders.com/ - (not really a book)
WebGL Fundamentals - webglfundamentals.org/
For graphics:
LunarXchange by Valve - vulkan.lunarg.com/sdk/home - host of VulkanSDK and tutorials and tools on how to implement Vulkan in C++
Open.GL - open.gl/
OpenGL Turotial - opengl-tutorial.org/
The clean coder by Uncle Bob Martin
I am currently reading "C Programming Absolute Beginner’s Guide" a best book for learning C programming.
computingsavvy.com/books/free-down...
"Building Scalable Web Sites" by Cal Henderson.
"Python 201 - Intermediate Python" by Michael Driscoll.
And of course "Web Development with Django Cookbook - Second Edition" by me. :)
gist.github.com/Integralist/778771...
The Pragmatic Programmer
Head First: Design Patterns
Refactoring - Improving the design of existing code
Grokking Algorithms by Aditya Bhargava. Really good even for non CS people.
Being Geek and Team Geek are my favorite.
The art of readable code.
Not focussing on any tech/language, but on general thoughts, ideas and tips regarding how to write beautiful code. :-)