⑴ 程序員必備的書籍有哪些
《代碼大全》 史蒂夫·邁克康奈爾
《計算機程序的構造和解釋》
《C程序設計語言》
程序員思維修煉(修訂版)
系統化思維導論
優秀的叛逆者:引領組織變革的力量
《Site Reliability Engineering》
《Refactoring》
《Peopleware》
《編程珠璣》
《修改代碼的藝術》by Michael Feathers
《編碼:隱匿在計算機軟硬體背後的語言》
《程序員健康指南》
⑵ 軟考程序員要看哪些書
在學習程序之前,我想大家首先應該對程序員這個行業熟悉一下,更加要對編程的語言以及所涉及到的工具有所了解。因為如何了解這些是很難去給自己一個明確的目標的。
以下是書籍推薦:
《程序員教程》官方教材,建議一定要看,
《程序員考試考點突破、案例分析、實戰練習一本通》
內容緊扣考試大綱,通過對歷年試題進行科學分析、研究、總結、提煉而成。每章內容分為考點突破、典型試題分析、實戰練習、練習題解析四個部分。
《程序員考試考點分析與真題詳解(第4版)》
著重對新版的考試大綱內容有重點地進行了細化和深化,是此考試中程序員級別的考試輔導用書,內容涵蓋了最新的程序員考試大綱的所有知識點,准備參加考試的人員可通過閱讀本書掌握考試大綱規定的知識,把握考試重點和難點,熟悉考試方法、試題形式、試題的深度和廣度,以及解答問題的方法和技巧等。
以上三本書是考試要看的,在看書過程中注意梳理知識點,理清各個知識點中的聯系,多做真題,考試就沒什麼問題了,祝考試順利!
⑶ 程序員打基礎必看書籍!
1、《深入理解計算機系統》
從c語言到匯編語言到硬體再到操作系統,寫得非常好。是一本能幫助深入理解計算機系統的書。基本上把這本書吃透面試操作系統的大部分問題都不是問題。
2、《演算法導論(第三版)》
被很多acmer coder奉為學演算法的經典之作,但不太適合初學者,因為它這本書很多內容只提供了偽代碼,而沒有具體實現。但可以從這本書學數據結構和演算法好,因為日後的編程語言對實現而言實際上並沒有特別大的障礙,只是適合與不適合的選擇罷了,而把想法轉換成編程語言才是對演算法知識的考驗。如果不想太過深入的話可以忽略掉第四部分(高級設計和分析技術)第五部分(高級數據結構)和第七部分(演算法問題選編),你會發現書其實比你想像中薄很多噢!
3、《計算機網路:自頂向下方法》
軟體學院的計算機網路教材,非常適合初學者,裡面將計算機網路從頂層到底層逐章分析了一遍,如果能夠結合一些實驗來輔助理解會更好,因為裡面的講解比較抽象。
4、《STL源碼剖析》
如果你是經常用c++刷演算法題的同學,那麼一定經常用STL的各種集合, vector, set, stack, queue等等。它們的實現原理,在源碼面前,完全沒有秘密。
5、《圖解HTTP》
日本人著的介紹HTTP協議的書,對理解HTTP協議的一些細節有非常大的幫助,插畫也很多,感覺就像看漫畫一樣,很容易理解的。
6、《TCP/IP詳解卷一》
這本書能把枯燥的知識講得很細致,強烈推薦這本,看完相應章節後大概能夠明白為什麼TCP/IP要這么設計了。面試的時候經常問到三次握手和四次揮手,還有各種狀態的轉移, TIME_WAIT的時間為什麼是2*MSL······
7、《UNIX網路編程卷一:套接字聯網API(第三版)》
中文版快800頁,不過我只看了一些章節,這本書也是把TCP/IP的細節講得很深很深,此外還有非常重要的基本套接字編程,就是寫網路程序的時候那些bind, accept, listen, send, receive函數之類的,內容非常多,但是這些是理解多路復用模型所需要掌握的······select/poll/epoll這些系統調用解決了什麼問題?事件機制能不能理解?就看這本書的前六章了。
8、《資料庫管理系統(原理與設計)》
這個也是web開發中離不開的東西,必須劃重點學會的是ER圖/SQL語句/存儲數據(磁碟|文件|RAID|緩沖池等)/三大範式/索引以及相應的數據結構/事務相關的所有概念,尤其重點學習SQL 。之後學會使用mysql workbench來進行資料庫建模/逆向工程生成建表語句/根據SQL生成JAVA實體類等就不贅述了,開發過程中網路谷歌一下就知道啦,然後如果習慣在windows下開發的同學推薦利用navicat這個好東西。
⑷ C程序員需要哪些書籍
演算法設計阿軟體工程阿面向對象阿資料庫阿都應該學學。
⑸ 程序員如何讀書
首先弄清楚這本書講啥
哪些是他講的重點
哪些是你現在最需要看需要知道的
然後把那些不是重點你不僅需要了解的章節大概的看一下,甚至是看看他的結構框架
然後仔細看你需要知道的東西、重要的東西
遇到有什麼不清楚的地方再回頭去看(因為有可能前面看得太快記不住)
在這仔細看的過程中免不了要動動手、自己實際操作一下
作為程序員,如果他沒有實際動手寫寫程序哪怕他看再多的書也沒有什麼用
⑹ 程序員雜志評出的十大it好書
1、人人都是產品經理
互聯網產品經理的第一本書。作者蘇傑經歷豐富,實踐出真知,串起產品經理散落在各處的精粹,讓人融匯貫通,掌握思維方法和做事方式,人人都是產品經理!
2、正在爆發的營銷革命:社會網路營銷指南
《程序員》雜志主編劉江如是說「搞技術的人也要懂得營銷」,無獨有偶,馮大輝亦說「技術本身也需要營銷」。在網路如此發達的今天,科技依然引領著營銷的變革,作為科技的創建者和使用者,更需要了解點營銷學。
3、高效程序員的45個習慣
這是一本對所有程序員開卷有益的好書,是一本融知識、哲理、實踐於一體的奇書。用簡明、易懂的方式將各種敏捷方法中的有效實踐有機地串聯成一個整體,深刻、實用,是有志於躋身「優秀程序員」的人員必讀之作。
4、演講之禪:一位技術演講家的自白
從事IT媒體行業已有10年,參加過無數的IT技術會議,最大的感觸就是演講者們能夠把技術講得很好,但在演講技巧,和聽眾互動以及演講的趣味性上實在是不敢恭維。而這本《演講之禪,正是專門為「參加(或以後有機會參加)公共演講的程序員精英們」而精心准備的。作者15年的演講經驗匯集於此書,從多方面介紹如何做好技術演講,以及如何處理演講時遇到的突發事件。值得一提的是,書中提到美國前總統柯林頓的演講費用高達每小時15萬美金(據媒體報道,他因全球巡迴演講獲得巨額收入,而成為近40年來最富裕的美國總統)。
5、結網:互聯網產品經理改變世界
稱得上是作者8年來培養產品經理新兵的經驗集萃,從互聯網產品經理的視角,深入剖析了互聯網公司的產品運作方式和互聯網產品的成功要素。值得一提的是,本書的閱讀體驗很好,脈絡清晰,結構分明,語句簡潔,排版考究。
6、程序員職場第一課
這是作者Leo 獻給社會新人的生存手冊。推薦給剛剛入職或入職一兩年的朋友。書中詳細闡述了學校里學不到,但是工作中又特別需要的「常識」。希望你的職業之路走得更順暢。
7、如何管理軟體企業
曾經一篇《我的大學10年》轟動IT開發界,如果拿來重讀依舊意味深長。從曾經的高校學子到企業老闆,如今已經為企業在做咨詢,林先生本身的過程就是一部很好的教科書。暫不論成敗英雄,林先生的這本《如何管理軟體企業》立足本土,值得品味。
8、團隊之美
書中匯集了30多位IT資深團隊領導的成功與失敗經驗,揭秘軟體工程歷史上最引人注目的團隊鮮為人知的故事。幫助你從中吸取教訓、學到經驗,打造成功的團隊。
9、觀止——微軟創建NT和未來的奪命狂奔
一個比爾蓋茨都怕的人?他是誰?一本在國外已經出版了15年,為什麼到今天才在中國有中文版面市?上市一個月在各大技術社區引起了巨大反響,每一個開發者在感嘆Culter的偉大與執著同時,也為自己是一個程序員而感到莫大的榮耀。
10、軟體隨想錄:程序員部落酋長Joel談軟體
這是一本影響全世界數百萬程序員的網志書、一位軟體行業老兵的真知灼見。作者以詼諧幽默的筆觸將自己在軟體行業的親身感悟娓娓道來,觀點新穎獨特,內容簡潔實用。從不同側面滿足了軟體開發人員、設計人員、管理人員及從事軟體相關工作的人員的學習與工作需要。
⑺ 程序員如何學習
沒有捷徑,只有靠多寫代碼
但是要寫有用的代碼,不能老是寫一樣的,所以重構項目是一種很提升水平的經歷,每隔一兩年最好能參與一次這種優化代碼的機會。
還有就是多讀書,經典代碼讀物比如《代碼大全》,這本書適合5年以內程序員看
⑻ 我想自學程序員需要那些書籍
最基礎的學習一些語言:簡單的 basic --vb;進一步學習c c++ VC等
要想混飯吃還得好好學習網路編程語言
然後學習數據結構,了解一些匯編
⑼ 程序員需要學些什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
2、理解計算機的組成以及各主要部件的性能指標;
3、掌握操作系統、程序設計語言的基礎知識;
4、熟練掌握計算機常用辦公軟體的基本操作方法;
5、熟練掌握基本數據結構和常用演算法;
6、熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
7、熟悉資料庫、網路和多媒體的基礎知識;
8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
10、了解信息化、計算機應用的基礎知識;
11、正確閱讀和理解計算機領域的簡單英文資料。
程序員必備技能:
1、熟練開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。
其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知資料庫
作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。
雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。
從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。
至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
4、明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。
XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
5、不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。
一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。
如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
6、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。
要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
7、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
就業方向:
1、網路開發
現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。
2、企業軟體開發
JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。
3、系統軟體
C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。
當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
會編程、會計算機語言就能加入互聯網發展大潮中,享受數字經濟發展的紅利,一時間社會上的程序員培訓機構都變得格外火爆。
但是現在,專家的數據分析結果告訴你:若想跟上數字經濟發展的步伐,光會編程可不行,這個行業現在緊缺高端的、綜合型人才。
11月22日下午,清華大學經管學院互聯網發展與治理研究中心與領英聯合發布《中國經濟的數字化轉型:人才與就業》,揭示我國數字人才現狀與趨勢。
報告顯示我國數字經濟發展面臨人才短缺的挑戰,但這種短缺主要體現在擁有中高級專業技能數字人才的比例不高,擁有人工智慧、智能製造等前沿技術的人才更是少之又少。
與美國、英國、加拿大等國家相比,中國的數字人才儲備尚有很大差距。
此外,報告根據對人才需求的數據分析,結果顯示我國數字人才的技能需求不再強調單一編程技能,更加看重技術、管理和領導力等綜合技能。
2015年,我國從事信息傳輸、軟體和信息技術服務相關工作的人數約350萬,但其中中高端人才,特別是前沿技術的數字人才並不多。根據領英中國智庫的研究,在人工智慧領域,美國的從業者數量在85萬人以上,印度15萬,英國14萬,中國只有5萬多人。
報告負責人、清華大學經濟管理學院副院長陳煜波教授表示,我國目前在大數據與人工智慧領域人才缺口明顯。
他解釋說,目前中國85%以上的數字人才分布在產品研發類,而深度分析、先進製造、數字營銷等職能的人才加起來只有不到5%,存在較大缺口,新興技術人才和創新型人才培養方面存在滯後和不足。
這份研究報告的基礎數據來自領英在中國的3600萬個人用戶,這些用戶畢業於1.5萬多所國內外院校,分布在36.4萬家企業,擁有超過2.3萬項技能。
陳煜波研究團隊從中篩選了72萬數字人才,多維度提取用戶畫像並跟蹤其職業軌跡,以此預測不同地區的人才流向、僱傭率、受僱主歡迎的技能等人才趨勢層面的信息。
陳煜波說,根據數據分析結果,整體來看,雖然編程技能和數據分析技能需求占據主導,然而隨著數字產業走向成熟,企業除了強調編程技能,也逐步更加看重人才的技術、管理和領導力等綜合技能。
近年間,項目管理、產品運營等「技術+管理」類技能的需求呈現出明顯的上升趨勢,懂技術、懂管理的人才被認為是「一將難求」。
領英中國代理總裁曾志恆也提醒,如果你有興趣向數字職能轉型,不能僅僅專注於自己的技術能力,溝通和領導力等軟性技能將成為你脫穎而出的關鍵。
陳煜波希望這些研究結果能為教育行業和政府部門提供借鑒。他說,教育行業可根據職位的供需趨勢更好地規劃人才培養的方向,政府也可更好地了解人才流動方向、技術缺口等,以此制定有針對性的引才策略。
程序員崗位職責:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
相關書籍:
很多程序員響應,他們在推薦時也寫下自己的評語。 以前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。
其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。
下面就按照各本書的推薦數排列。
1、《代碼大全》 史蒂夫·邁克康奈爾
2、《程序員修煉之道》
3、《計算機程序的構造和解釋》
4、《演算法導論》
5、《重構:改善既有代碼的設計》
6、《設計模式》
7、《人月神話》
8、《計算機程序設計藝術》
9、《編譯原理》(龍書)
10、《活著》