有哪些系統學習編程的書籍?
01-04
對於各種計算機方面的學習,一般都有那麼幾本經典的被視為「聖經」的書籍吧?
系統地學習編程,有哪些書籍值得推薦?(包括入門和進階)我想到的方面如下,歡迎補充1.計算機導論類2.語言類:Python、PHP、C、C++、C#、Java、Javascript、CSS、HTML、Ruby.....3.演算法類
4.開發環境類:Unix/Linux/Windows5.軟體開發類6.產品設計類
針對題主的列表:
1.計算機導論類
《深入理解計算機系統》(Computer Systems: A Programmer"s Perspective,Randal E.Bryant, David R.O"Hallaron),讀完這本書已經能對計算機原理特別是CPU原理有較為清晰的了解了,此外這本書也會涉及不少Linux下的C語言編程。《現代操作系統》(Modern Operating Systems,Andrew S. Tanenbaum)、《計算機網路:自頂向下方法》(Computer Networking: A Top-Down Approach,James F. Kurose, Keith W. Ross)、《資料庫系統概念》(Database System Concepts,Abraham Silberschatz, Henry Korth, S. Sudarshan)、《自動機理論、語言和計算導論》(Introduction to Automata Theory, Languages, and Computation,John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman )
這些書能深入學習很多計算機相關領域的原理。2.語言類
Python:在線文檔是最好的資源
C#:《精通C#》(這書以前叫C#與.Net高級程序設計,Pro C# 5.0 and the .NET 4.5 Framework,Andrew Troelsen)C++:《Problem Solving with C++》,稍深入一點的:《C++ Primer》、《C++標準庫:自學教程與參考手冊》(The C++ Standard Literary a Tutainal Relerence,Nicolai M. Josuttis)Java:《Java核心技術》(Core Java,Cay S. Horstmann, Gary Cornell)3.演算法類
《演算法導論》(Introduction to Algorithms,Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein)5. 軟體開發類
《重構:改善既有代碼的設計》(Refactoring Improving the Design of Existing Code,Martin Fowler)剩下的不太擅長了,歡迎大家補充。justjavac/free-programming-books-zh_CN · GitHub
如果是在校學生,並且學習的是計算機專業對自考計算機專業學生的忠告 --自考頻道--中國教育在線這篇文章雖然是05年的但是相信對你也是有幫助的。然後,如果你學的不是計算機專業,但是對本專業討厭,出於興趣想學習計算機語言(條件依然是在校學生)當然上面的文章也適合你。如果你進入社會了,工作要求需要學習計算機語言(可能性應該很小吧)文章同樣試用,但是如果進入社會,討厭工作想另某出路,還是先把本職工作做好吧,然後空閑時間學一門計算機語言可以慢慢磨,或者掙足夠的錢上上培訓班在回頭看看這篇文章,上培訓班是讓你能有條件換工作。----最後如果是出於興趣學一門計算機語言就好了,學的比一般人都好(這是要花時間的),單這個就很補腦了,有學到英語又鍛煉了邏輯。
入門和進階,知乎上有不少問題都有,之前有一個問題也好像是類似的,等有時間再看看能不能找出來。我以前找書都是去豆瓣看看評分,排很前都是經典的。買書之前也去豆瓣看看書評等。這個應該都是經典的。http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read?tab=votes#tab-top
推測LZ是選書為了自己學習編程,我的建議是:
(1)如果還屬於入門階段,建議考計算機等級證書,不要管別人說考證有沒有用,在考證的過程中奮鬥目標,也真實地打下技術,再不濟也最終也有證書的收穫;(2)貪多嚼不爛,看看市場上的需求,你想成為的那種人才他們需要掌握什麼(3)抱著必死的決心,模仿抄襲也行,創造自己的產品成果!學以致用才是最重要!總之,不要為了哪些書好而選擇它們,我們因為需要他們才選擇他們! 好像跑題了..c++
可能是版本不對,這本書是我看過不太好的。c這本很對胃口,當時看著很爽我覺得用以致學更符合實際吧,也能更快消化。
c++來說一般都推崇c++primer,java的thinking in java 但兩者都適合深入學習的
推薦閱讀:
※演算法工程師和軟體工程師的區別在哪裡,他們工作是如何合作的?
※程序員找不到老婆嗎?
※windows 的系統是在什麼平台上開發的呢?還有他們的伺服器是什麼系統呢?
※如何培養編程所需要的邏輯思維?
※你有哪些解決bug的技巧?