Add doc from python-education
This commit is contained in:
parent
33b7909aa9
commit
8bae8d3b4a
51
README.md
51
README.md
@ -1,12 +1,35 @@
|
||||
Professional Programming
|
||||
========================
|
||||
# Professional Programming
|
||||
|
||||
> Give me six hours to chop down a tree and I will spend the first four sharpening the axe. (Abraham Lincoln)
|
||||
|
||||
A collection of full-stack resources for programmers.
|
||||
|
||||
Topic-specific
|
||||
--------------
|
||||
## Must read books
|
||||
|
||||
I've found these books incredibly inspiring:
|
||||
|
||||
* [The Pragmatic Programmer: From Journeyman to
|
||||
Master](http://www.amazon.com/The-Pragmatic-Programmer-Journeyman-Master/dp/020161622X): hands-on the most inspiring and useful book I've read about programming.
|
||||
* [Code Complete: A Practical Handbook of Software
|
||||
Construction](http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670): a nice addition to The Programatic Programmer, gives you the necessary framework to talk about code.
|
||||
* [Release It!](http://www.amazon.com/Release-It-Production-Ready-Pragmatic-Programmers/dp/0978739213): this books goes beyond code and gives you best practices for building production-ready software. It will give you about 3 years worth of real-world experience.
|
||||
* [Scalability Rules: 50 Principles for Scaling Web
|
||||
Sites](http://www.amazon.com/Scalability-Rules-Principles-Scaling-Sites/dp/0321753887)
|
||||
* [The Linux Programming Interface: A Linux and UNIX System Programming Handbook](http://www.amazon.com/The-Linux-Programming-Interface-Handbook/dp/1593272200): outside of teaching you almost everything you need to know about Linux, this book will give you insights into how software evolves, and the value of having simple & elegant interfaces.
|
||||
|
||||
## Must-read articles
|
||||
|
||||
* [Practical Advice for New Software Engineers](http://product.hubspot.com/blog/practical-advice-for-new-software-engineers)
|
||||
* [On Being A Senior Engineer](http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/)
|
||||
* [Lessons Learned in Software Development](http://henrikwarne.com/2015/04/16/lessons-learned-in-software-development/): one of those articles that give you years of hard-earned lessons, all in one short article. Must read.
|
||||
|
||||
## Things to do
|
||||
|
||||
### Coding
|
||||
|
||||
* [Write code that is easy to delete, not easy to extend](http://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to)
|
||||
|
||||
## Things to know
|
||||
|
||||
### Know your editor
|
||||
|
||||
@ -51,3 +74,23 @@ Articles
|
||||
|
||||
* [Rubber Duck Problem Solving](http://blog.codinghorror.com/rubber-duck-problem-solving/)
|
||||
* [5 Whys](https://en.wikipedia.org/wiki/5_Whys)
|
||||
|
||||
### Know how to architect systems
|
||||
|
||||
* [High Scalability](http://highscalability.com/): great blog about system architecture, its weekly review article are packed with numerous insights and interesting technology reviews.
|
||||
* [6 Rules of thumb to build blazing fast web server applications](http://loige.co/6-rules-of-thumb-to-build-blazing-fast-web-applications/)
|
||||
|
||||
### Know your language
|
||||
|
||||
This is language-specific, for instance, checkout my [professional Python education doc](https://github.com/charlax/python-education).
|
||||
|
||||
### Know your design patterns and anti-patterns
|
||||
|
||||
Here's a list of good books:
|
||||
|
||||
* [Design Patterns: Elements of Reusable Object-Oriented Software](http://www.amazon.com/dp/0201633612/): dubbed "the gang of four", this is almost a required reading for any developer. A lot of those are a bit overkill for Python (because everything is an object, and dynamic typing), but the main idea (composition is better than inheritance) definitely is a good philosophy.
|
||||
* [Patterns of Enterprise Application Architecture](http://www.amazon.com/dp/0321127420/?tag=stackoverfl08-20): learn about how database are used in real world applications. Mike Bayer's SQLAlchemy has been heavily influenced by this book.
|
||||
* SourceMaking's [Design Patterns](https://sourcemaking.com/design_patterns) seems to be a good web resource too.
|
||||
* O'Reilly's [How to make mistakes in Python](http://www.oreilly.com/programming/free/files/how-to-make-mistakes-in-python.pdf)
|
||||
|
||||
I maintain a [list of antipatterns](https://github.com/charlax/antipatterns) on another repo. This is a highly recommended read.
|
||||
|
Loading…
Reference in New Issue
Block a user