编程书籍推荐
编程是计算机科学中一个非常复杂且重要的任务。我们在计算机系统、移动手机或其他地方所享受的,都是程序员通过无尽的努力开发出来的。编程分两种类型:机器水平的和高级编程。大多数程序员都依赖于高级编程。编程就是利用一些预定义的规则和资源,通过重复不断的使用,为社会或客户开发出有创造性的、新颖的、实用的以及美好的东西。你需要做的就是学习需要遵循的语法和规则,然后利用这些以及你的创造性来进行开发。但这并不像听起来这么简单,你需要花费大量的时间来进行学习和实践。
当你学习编程的时候,会有很多的资源可以用来尝试,如在线课程等,而其中最重要最有效的方式就是通过传统的书籍。我们所有的知识都通过书籍来学习。此外,通过书籍来学习编程这样一门精确任务是最好的选择。我们这里整理了一些免费的书籍,其中包括C、C++、JavaScript、JAVA、Perl、Python、Ruby、PHP等等。
线上或者线下商店里有很多程序员、作者编写的书,选择一本正确的书是非常重要的。下面是一些免费的编程书籍列表:
## JavaScript
1. [JAVASCRIPT - THE RIGHT WAY](http://jstherightway.org/)
2. [HUMAN JAVASCRIPT](http://read.humanjavascript.com/)
3. [ELOQUENT JAVASCRIPT: AN OPINIONATED GUIDE TO PROGRAMMING](http://eloquentjavascript.net/)
4. [BUILDING A JAVASCRIPT FRAMEWORK](http://dailyjs.com/2010/12/02/framework-review/)
5. [JAVASCRIPT COOKBOOK](https://pepa.holla.cz/wp-content/uploads/2016/08/JavaScript-Cookbook-2nd-Edition.pdf)
6. [ESSENTIAL JAVASCRIPT AND JQUERY DESIGN PATTERNS](http://addyosmani.com/blog/essentialjsdesignpatterns/)
7. [PPK ON JAVASCRIPT](http://www.quirksmode.org/js/contents.html)
8. [THE PROBLEM WITH NATIVE JAVASCRIPT APIS](https://github.com/ontiyonke/book-1/blob/master/%5BJAVASCRIPT%5D%5BThe%20Problem%20with%20Native%20JavaScript%20APIs%5D.pdf)
9. [CORE JAVASCRIPT GUIDE](http://www.jsdb.org/jsguide/index.html)
10. [BUILDING ANDROID APPS WITH HTML, CSS, AND JAVASCRIPT](https://www.amazon.com/Building-Android-Apps-HTML-JavaScript-ebook/dp/B006YTE2U0)
## Java
1. [Head First Book]()
2. [QUICKTIME FOR JAVA: A DEVELOPER’S NOTEBOOK]()
3. [EVALUATING JAVA FOR GAME DEVELOPMENT](http://java.coe.psu.ac.th/FreeOnline/Evaluating%20Java%20for%20Game%20Development.pdf)
4. [OBJECT ORIENTED PROGRAMMING USING JAVA](https://sunsreynat.files.wordpress.com/2014/06/object-oriented-programming-using-java.pdf)
5. [PROCESSING XML WITH JAVA](http://www.cafeconleche.org/books/xmljava/)
6. [JAVA DISTRIBUTED COMPUTING](http://www.cs.ait.ac.th/~on/O/oreilly/java-ent/dist/index.htm)
7. [BREWING JAVA: A TUTORIAL](http://www.cafeaulait.org/javatutorial.html)
8. [INTRODUCTION TO WEB SERVICES WITH JAVA](https://hle2ng0za0mn8ya.files.wordpress.com/2014/09/introduction-to-web-services-with-java.pdf)
9. [JAVA ENTERPRISE PERFORMANCE](https://www.dynatrace.com/resources/ebooks/javabook/performance-and-scalability/)
10. [ADVANCED PROGRAMMING FOR THE JAVA](https://enos.itcollege.ee/~jpoial/allalaadimised/reading/Advanced-java.pdf)
11. [THE JAVA VIRTUAL MACHINE SPECIFICATION](https://docs.oracle.com/javase/specs/)
12. [JAVA SWING TUTORIAL](http://zetcode.com/tutorials/javaswingtutorial/)
## Perl
1. [BEGINNING PERL](http://www.perl.org/books/beginning-perl/)
2. [USING PERL 6](https://github.com/perl6/book/downloads)
3. [EXTREME PROGRAMMING IN PERL](https://www.extremeperl.org/f/extremeperl.pdf)
4. [EXPLORING PROGRAMMING LANGUAGE ARCHITECTURE IN PERL](http://billhails.net/Book/)
5. [PRACTICAL PERL PROGRAMMING](http://users.cs.cf.ac.uk/Dave.Marshall/PERL/)
6. [MODERN PERL](http://modernperlbooks.com/)
7. [EARNING PERL THE HARD WAY](http://www.greenteapress.com/perl/)
## PHP
1. [PHP THE RIGHT WAY](http://www.phptherightway.com/)
2. [THE ORACLE PHP COOKBOOK](https://freecomputerbooks.com/The-Oracle-PHP-Cookbook.html)
3. [CODE BRIGHT FOR LARAVEL PHP](CODE BRIGHT FOR LARAVEL PHP)
4. [PHP SECURITY GUIDE](https://github.com/dambergautam/php-security-guide)
5. [ADVANCED CAKEPHP TIPS](http://www.wric.mu.ac.in/news-letter.php?action=download&news_letter_id=1)
6. [PHP PROGRAMMING](https://upload.wikimedia.org/wikipedia/commons/7/73/PHP_Programming.pdf)
7. [PRACTICAL PHP TESTING](https://github.com/giorgiosironi/Practical-Php-Testing/blob/master/practical-php-testing.pdf)
## Python
1. [LEARN PYTHON THE HARD WAY](http://learnpythonthehardway.org/book/)
2. [THINK PYTHON: AN INTRODUCTION TO SOFTWARE DESIGN](http://www.greenteapress.com/thinkpython/thinkpython.html)
3. [PYTHON COOKBOOK](http://barbra-coco.dyndns.org/yuri/Python/python-cookbook-2nd-edition.pdf)
4. [PYTHON PROGRAMMING](http://en.wikibooks.org/wiki/Python_Programming)
5. [Introduction to Python 3](https://realpython.com/python-introduction/)
6. [HOW TO WRITE YOUR OWN SOFTWARE USING PYTHON](http://www.itmaybeahack.com/homepage/books/nonprogrammer.html)
7. [DESIGN PATTERNS IN PYTHON](https://refactoring.guru/design-patterns/python)
8. [A MULTIMEDIA COOKBOOK IN PYTHON](http://coweb.cc.gatech.edu/mediaComp-plan/)
9. [DSA](https://www.programiz.com/dsa)
10. [DATA STRUCTURE ALGORITHM]()
## Ruby
1. [RAILS TUTORIAL](https://www.railstutorial.org/book)
2. [Ruby Essentials](https://www.techotopia.com/index.php/Ruby_Essentials)
3. [RUBY PROGRAMMING](http://en.wikibooks.org/wiki/Ruby_Programming)
4. [MACRUBY: THE DEFINITIVE GUIDE](http://www.macruby.org/)
5. [RUBY USER’S GUIDE](https://rubybooks.github.io/)
6. [LEARN RUBY THE HARD WAY](http://ruby.learncodethehardway.org/)
7. [RUBY ON RAILS SECURITY](https://rorsecurity.info/the-book)
8. [The Little Book Of Ruby](http://www.sapphiresteel.com/ruby-programming/The-Little-Book-Of-Ruby.html)
9. [PROGRAMMING RUBY- PROGRAMMER’S GUIDE](http://www.ruby-doc.org/docs/ProgrammingRuby/)
10. [THE BOOK OF RUBY](https://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby.html)
## C/C++
1. [INDUSTRIAL STRENGTH C++](https://freecomputerbooks.com/Cpp-In-Action-Industrial-Strength-Programming-Techniques.html)
2. [HASKELL TUTORIAL FOR C PROGRAMMERS](http://www.haskell.org/haskellwiki/Haskell_Tutorial_for_C_Programmers)
3. [DEBUGGING C AND C++ CODE IN A UNIX ENVIRONMENT](http://www.socsci.ru.nl/idak/publications/debug/debug.pdf)
4. [C++ REFERENCE GUIDE](https://www.cplusplus.com/reference/)
5. [C PROGRAMMING TUTORIA](http://markburgess.org/CTutorial/CTutorial.html)
6. [STRUCTURED PROGRAMMING WITH C++](https://tfetimes.com/wp-content/uploads/2015/04/structured-programming-with-c-plus-plus.pdf)
7. [MASTERING C++](https://github.com/PacktPublishing/Mastering-Cpp-Programming)
8. [OPTIMIZING SOFTWARE IN C++](http://www.agner.org/)
9. [BEGINNING C++ THROUGH GAME PROGRAMMING](https://freecomputerbooks.com/Beginning-Cpp-Through-Game-Programming.html)
10. [LEARNING TO DRAW BASIC GRAPHICS IN C++](https://www.e-booksdirectory.com/details.php?ebook=4776)
11. [THE BOOST C++ LIBRARIE](https://theboostcpplibraries.com/)
12. [MAKE A COMPUTER OPERATING SYSTEM IN C++](https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System)
13. [STANDARD C++ LIBRARY REFERENCE](https://www.mica.edu.vn/perso/Vu-Hai/EE3490/Ref/The%20C++Standard%20Library%20-%202nd%20Edition.pdf)
14. [PARALLEL PROGRAMMING WITH MICROSOFT VISUAL C++](https://docs.microsoft.com/en-us/previous-versions/msp-n-p/gg675934(v=pandp.10)?redirectedfrom=MSDN)
15. [C++ PROGRAMMING FOR SCIENTISTS](https://math.nist.gov/~RPozo/c++class/)
16. [A GUIDE FOR C AND C++ PROGRAMMERS](https://www.adahome.com/Ammo/cpp2ada.html)
## C#
1. [C# PROGRAMMING](http://en.wikibooks.org/wiki/C_Sharp_Programming)
2. [GAME PROGRAMMING](https://www.programming-book.com/beginning-c-sharp-game-programming/)
3. [The C# Yellow Book](https://www.robmiles.com/c-yellow-book/)
4. [More Effective C#](http://sd.blackball.lv/DownloadFile.ashx?file=17342)
5. [Concurrency in C# Cookbook](https://www.yumpu.com/en/document/read/63280335/downloadpdf-concurrency-in-c-cookbook-asynchronous-parallel-and-multithreaded-programming-online-book)
6. [Hands-On Network Programming with C# and .NET Core](https://github.com/PacktPublishing/Hands-On-Network-Programming-with-CSharp-and-.NET-Core)