導航:首頁 > 程序命令 > 程序員的術與道教程

程序員的術與道教程

發布時間:2025-08-06 11:24:21

Ⅰ 自學java怎麼入門

自學java怎麼算入門? 衡量標準是什麼?

我從個人角度分為三個階梯: 初學,入門,高手

第一: 初學 (理論知識階段)

很多同學剛剛入門學習java,看書,或者看視頻。這個階段是積累理論知識的時候,相對比較容易,一個小知識點,信息量少,跟著老師的思路走就可以。

在這個階段,很多同學學得很快,感覺編程好簡單。

隨著學習的深入,大多數同學會產生混亂。 為什麼?所有的技術背後都有原理,前面都有應用場景,不同應用場景有不同使用方法。 信息量逐級增加。

信息量逐級增大後,會有什麼問題?

理論知識階段,更重要的是理解原理和規律,知識點的細節記不住可後面查找。學習方法更重要的是交流討論,理解和總結。 多問為什麼是關鍵!

第二: 入門 (熟練度)

一個項目從0到1的過程才是最寶貴的,也是初學者提升最大的部分。但從書本或者視頻中,很難學習這個過程。

技術的應用能力換句話說是 技術的分解排序能力, 當遇到一個需求,該如下實現?

基本的思路是把需求分解成原子操作。 原子操作代表開發當中的基本操作,也就是在知識點當中學到的,比如資料庫操作,sql,框架的基本使用等等。

如果能把需求分解為原子操作序列,開發完成只是時間快慢的問題。往往剛剛開始學習編程的同學,不善於或者懶得去思考。畢竟看視頻是被動的,分析問題是主動思考。學習只是看看視頻,本質上是思考的懶惰。

所以需要找大量的練習和項目案例進行實踐!!!

第三: 高手(業務和性能)

程序員是把理論知識組合應用起來解決用戶的問題。(或者提高用戶的效率)

第三個等級的知識更加多元化,不同行業涉及不同的領域知識,信息量也是增大。

所以在企業開發中,需要考慮更多和成本,時間,用戶等相關的問題。

總結: 掌握理論知識後,需要大量的代碼去實踐,才算入門。

分享下我們的學習路線,供你參考一下!


希望能幫到你,望採納!

Ⅱ 程序員入門先學什麼(程序員初學)

菜鳥程序員需要學習哪些基礎知識

java學習是由簡入難的學習過程,不要一開始就學習太過於復雜的,也不要好高騖遠,java的基礎很重要,所以一定要由最基礎的學起,抓實基礎。下面是昆明北大青鳥java培訓小編結合大部分情況為大家總結下:菜鳥程序員需要學習哪些基礎知識。

首先要學習java的基礎知識。

不要被新技術迷惑,所謂萬變不離其宗,新技術都是基於java的基礎之上,如果基礎不扎實,對於這些新技術的理解也是一知半解,學不到根源。

1、web開發

全面的JEE的web開發知識:Servlet+JSP+javaBean+TagLib,到這里做一個完整的web應用項目開發。

2、J2EE基礎

j2ee說白了就是做網頁,這時候你要從先從java里脫身出來,學些跟網頁有關的東西:

html:很簡單的東西不是太笨的話半天左右即可搞定

js:易學難精,想速度找工作不必花太多時間,隨便買本javascript書略讀並備查推薦:JavaScript高級程序設計;JavaScript權威指南

資料庫:如果沒有基礎的話,建議多花時間,至少一個月,開始建議用mysql,然後是oracle,然後是sqlserver,這段時間最關鍵的就是sql語言的編寫。

xml就是一種封裝數據的格式,沒啥好學的,練習一下怎麼用dom4j或者jdom讀寫xml即可。

jsp,servlet,tomcat:這段時間說白了就是用jsp來做個網站。

3、EJB開發

包含全面的EJB知識:1)EJB入門和無狀態會話Bean;2)有狀態會話Bean;3)BMP和CMP是實體Bean;4)jms和MessageDrivenBean;5)事物和安全(JTA、JTS和JAAS);6)WebService的開發和應用;

要會使用主流框架

框架其實就是一些公共的工具和方法,被封裝到一個盒子中供您隨時調用,框架也是別人用java編寫的,相當於你調用別人寫好的公共模塊,可以節省時間和效率。

主要是3大框架:

mvc框架:struts,struts2,jsf

or映射框架:hibernate,ibatis

業務框架:spring

重量級框架:ejb

這些都是java技術的學習知識點,和學習流程,先簡單後復雜,由一個點展開,開始更廣更深入的學習。這些都掌握了以後,你就學會了java,具備了基本編程的能力,但不代表你就能做出優良的產品,所以接下來,你就需要學習軟體工程和演算法,進一步的提升自己。想更快更扎實的學習java知識嗎?趕緊到昆明北大青鳥java培訓機構報名吧,選擇昆明北大青鳥,你絕不後悔!

小白,想入門程序員,應該從什麼開始學,順序是什麼?

首先,你需要選擇一門自己感興趣的編程語言。現在常見的編程語言有:

C/C++:屬於大多數情況下能接觸到的相對基礎的編程語言了,優勢是基本掌握以後面對其他語言均可以「無壓力」;壞處是學習起來非常的困難,需要系統性的了解非常多知識點,且耗時一般較長。如果你有更多的時間和精力,同時希望能夠長期更好的發展成架構師,那麼這可能就是你比較合適的語言選擇了。

Java:應用廣泛,幾乎大多數開發場景都有java或者java變體的身影。學習java你可以了解到面向對象思想,了解虛擬機等的概念,面對常見的開發也能夠有應對方案。同時這個語言對比C/C++能簡單不少,在很多情況下是面向新手比較合適的選擇了。

Go:最近一段時間流行起來的語言,在面對高並發等場景下有天然的優勢。Go語言有自己獨到的特性,同時也可以支持一些C語言的能力,而且也越來越在國內的互聯網公司作為首選開發語言之一。

php/?python/?JavaScript/.net/Swift/...:這些語言大多有自己的特定應用場景,比如Python在大數據和人工智慧領域比較常見,JavaScript是前端開發的必備語言等。如果你希望的工作有比較強烈的語言要求,那麼選擇上面的語言准沒錯。

?????????????????

其次,掌握數據結構及演算法,同時能夠通過程序語言實現。

比如常見的數據結構,像是數組、鏈表、堆、棧、隊列、樹、圖等,盡量都有機會了解數據結構的實現原理(包括自己用代碼能夠簡單編寫),知道數據結構的優缺點,以及在什麼場景下使用。演算法原理上如時間空間復雜度,一些數學概念;同時一些經典的排序、與數據結構結合的實現,也應當有了解。

這些推薦你去找專業的書籍,系統性的選擇;盡量減少如面試寶典等取巧的方式,深入掌握不僅僅是找工作,在後續的工作中也能更好的幫到你。

?????????????????

再次,了解計算機基礎。

常見的計算機基礎包括計算機組成原理(簡稱機組)、操作系統、網路、編譯原理等。這里需要投入比較多的精力,如果確實時間上比較緊張,可以有側重的選擇。

比如你希望從事偏底層的開發工作,那麼更側重在機組和操作系統上;如果側重在上層開發,那麼可以側重在網路上,以此類推。當然,更好的掌握以上知識能夠在很多不經意的時間給到你幫助,如果有空,也建議多深入的理解。

最後,知道一些計算機知識的應用。

這里就比較多了,比如資料庫、一些基本的項目設計、項目實戰等等,根據你希望的工作有針對性的去了解,或許有不小的幫助。

按照上面這幾個步驟進行下去,可能確實需要投入一定的時間和精力,但是一旦你選擇希望成為一名程序員,就一定要堅持下去,才能取得更好的結果。

編程入門先學什麼比較好?

01

C語言

編輯程序讓電腦執行的過程就叫編程。很多軟體都可以編程,具有代表性的計算機語言有Java,BASICC,C++,VB,VF,SQL,網頁編程JSP,ASP,PHP,軟體是eclipse,MicrosoftVisualStudio,MicrosoftVisualBasic,MicrosoftSQLServer,等等。Java是應用最廣泛的編程語言之一,大學中則常常以C語言作為編程的入門語言,BASIC是Beginner'sAll-(初學者通用符號指令代碼)的縮寫,是國際上廣泛使用的一種計算機高級語言。所以編程入門可以先學習C語言。

編程入門在大雪中常常以C語言作為編程的入門語言,BASIC是Beginner'sAll-(初學者通用符號指令代碼)的縮寫,是國際上廣泛使用的一種計算機高級語言。所以編程入門可以先從C語言學習開始。

計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。

程序也就是指令的集合,它告訴計算機如何執行特殊的任務。

寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。

隨計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。

電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。

C語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,既可用來編寫系統軟體,也可用來編寫應用軟體。

早期的操作系統等系統軟體主要是用匯編語言編寫的(包括UNIX操作系統在內)。由於匯編語言依賴於計算機硬體,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好改用高級語言,但一般的高級語言難以實現匯編語言的某些功能(匯編語言可以直接對硬體進行操作),例如:對內存地址的操作、位操作等)。人們設想能否找到一種既具有一般高級語言特性,又具有低級語言特性的語言,集它們的優點於一身。於是,C語言就在這種情況下應運而生了。

程序員新手入門學什麼好?

代碼編程入門學習介紹如下所示。

1、掌握編程思想

很多人學習編程的時候一上來就閱讀大量的書籍,死記硬背各種語法,然而到最後成效並不大。如果想成為一名優秀的程序員,最重要的是掌握編程思想、找到編程感覺,而不是死記硬背語言本身。一名程序員的高級境界,是在反復的實踐、觀察、分析、比較、總結中潛移默化積累的。

要學會編程思想、找到編程感覺,必須從實實在在的編程實際工作中去實踐和體驗。不少朋友在學習編程時只簡單地學習語法、結構,枯燥而且目的性也不強,會大大降低初學者的興趣和學習效果。

而一般的書籍,也只從語言本身去講解語法和舉一些針對這些語法的應用例子,跟使用說明書沒有太大差別,沒有起到灌輸編程思想,培養編程感覺的作用。

2、學習C語言或者python語言

python語法更加簡單簡潔易學,而且有各種強大的庫,擴展庫,可過程可對象,如果是為了通過編程這一手段來迅速的做出有用、實用的程序和界面,可以學python。

入門是從Basic語言開始的,大概熟悉程序的基礎語法與邏輯後,進階C語言。現代很多語言都是從C語言發展而來的,所以可以以C語言做跳板進階其他面向對象的高級語言。

3、學習JavaScript

若想要見效快的話,大家可以從JavaScript開始學起,畢竟你安裝的瀏覽器就已經自帶了語言環境了,並且JS現在基本前後通吃,你既可以寫前端界面也可以寫後端服務,是一門性價比很高的語言。

程序員需要學些什麼?

程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。

程序員需要學習:

1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;

2、理解計算機的組成以及各主要部件的性能指標;

3、掌握操作系統、程序設計語言的基礎知識;

4、熟練掌握計算機常用辦公軟體的基本操作方法;

5、熟練掌握基本數據結構和常用演算法;

6、熟練掌握C程序設計語言,以及C++、Java、VisualBasic中的一種程序設計語言;

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很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。

但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。

(2)程序員的術與道教程擴展閱讀:

會編程、會計算機語言就能加入互聯網發展大潮中,享受數字經濟發展的紅利,一時間社會上的程序員培訓機構都變得格外火爆。

但是現在,專家的數據分析結果告訴你:若想跟上數字經濟發展的步伐,光會編程可不行,這個行業現在緊缺高端的、綜合型人才。

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、負責對業務領域內的技術發展動態進行分析研究。

相關書籍:

很多程序員響應,他們在推薦時也寫下自己的評語。以前就有國內網友介紹這個程序員書單,不過都是推薦數Top9的書。

其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。

下面就按照各本書的推薦數排列。

1、《代碼大全》史蒂夫·邁克康奈爾

2、《程序員修煉之道》

3、《計算機程序的構造和解釋》

4、《演算法導論》

5、《重構:改善既有代碼的設計》

6、《設計模式》

7、《人月神話》

8、《計算機程序設計藝術》

9、《編譯原理》(龍書)

10、《活著》

Ⅲ 系統程序員,主要學會那些技能,如何做好一個系統程序員,需要注意事項有哪些

程序員是一種技術工作,在IT的發展中有相當重要的地位,從底層硬體通訊協議的建立, 到數據傳輸層的處理,到操作系統的建設,到資料庫平台的建設,一直到應用層上各種數 據營銷平台的搭建,程序員在裡面都扮演著舉足輕重的角色並為IT事業的發展做出了巨大 的貢獻。 中國有很多精於編碼的人,但是中國軟體行業,尤其是網路應用開發方面誤區很大,很難形成有規模的軟體開發力量和產品能力,不但比美國差距甚遠,和印度相比也是頗有不如。這些問題不是在於中國程序員的智商和工作努力狀況,也不是在於國家和民間對開發的投入程度,而是很大程度上,有一些對技術,對程序開發,對項目設計方面的思想誤區,這些誤區,導致了軟體行業的產品化能力不足,缺乏規模化和大型復用系統研發能力,可以說,改變認識誤區,是解決軟體行業小作坊模式和個體英雄模式所帶來的局限性 的重要工作。 中國有很多小朋友,他們18,9歲或21,2歲,通過自學也寫了不少代碼,他們有的代碼寫的很漂亮,一些技術細節相當出眾,也很有鑽研精神,但是他們被一些錯誤的認識和觀點左右,缺乏對系統,對程序的整體理解能力,這些人,一個網上的朋友說得很好,他們實際 上只是一些Coding fans,壓根沒有資格稱為程序員,但是據我所知,不少小網路公司的 CTO就是這樣的coding fans,拿著嚇人的工資,做著嚇人的項目,項目的結局通常也很嚇 人。 程序員基本素質: 作一個真正合格的程序員,或者說就是可以真正合格完成一些代碼工作的程序員,應該具 有的素質。 1:團隊精神和協作能力 把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力量都是有限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇跡,那些遍布全球的為linux寫核心的高手們,沒有協作精神是不可想像的。獨行俠可以作一些賺錢的小軟體發點小財,但是一旦進入一些大系統的研發團隊,進入商業化和產品化的開發任務,缺 乏這種素質的人就完全不合格了。 2:文檔習慣 說高水平程序員從來不寫文檔的肯定是乳臭未乾的毛孩子,良好的文檔是正規研發流程中 非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級 程序員和系統分析員,這個比例還要高很多。 缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇 到極大的麻煩。 3:規范化,標准化的代碼編寫習慣 作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮 進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和 糾錯,也有助於不同技術人員之間的協作。 有些coding fans叫囂高水平程序員寫的代碼旁人從來看不懂,這種叫囂只能證明他們自 己壓根不配自稱程序員。代碼具有良好的可讀性,是程序員基本的素質需求。 再看看整個linux的搭建,沒有規范化和標准化的代碼習慣,全球的研發協作是絕對不可 想像的。 4:需求理解能力 程序員需要理解一個模塊的需求,很多小朋友寫程序往往只關注一個功能需求,他們把性能指標全部歸結到硬體,操作系統和開發環境上,而忽視了本身代碼的性能考慮,有人曾經放言說寫一個廣告交換程序很簡單,這種人從來不知道在百萬甚至千萬數量級的訪問情況下的性能指標是如何實現的,對於這樣的程序員,你給他深藍那套系統,他也做不出太極鏈的並訪能力。性能需求指標中,穩定性,並訪支撐能力以及安全性都很重要,作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經 驗才有可能有心得。 5:復用性,模塊化思維能力 經常可以聽到一些程序員有這樣的抱怨,寫了幾年程序,變成了熟練工,每天都是重復寫 一些沒有任何新意的代碼,這其實是中國軟體人才最大浪費的地方,一些重復性工作變成 了熟練程序員的主要工作,而這些,其實是完全可以避免的。 復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作,如果一個軟體研發單位和工作組能夠在每一次研發過程中都考慮到這些問題,那麼程序員就不會在重復性的工作中耽誤太多時間,就會有更多時間和精力投 入到創新的代碼工作中去。 一些好的程序模塊代碼,即便是70年代寫成的,拿到現在放到一些系統裡面作為功能模塊 都能適合的很好,而現在我看到的是,很多小公司軟體一升級或改進就動輒全部代碼重 寫,大部分重復性工作無謂的浪費了時間和精力。 程序員應具備的素質中 6:測試習慣 作為一些商業化正規化的開發而言,專職的測試工程師是不可少的,但是並不是說有了專職的測試工程師程序員就可以不進行自測;軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效 率和可靠性就有了最大的保證。 測試工作實際上需要考慮兩方面,一方面是正常調用的測試,也就是看程序是否能在正常調用下完成基本功能,這是最基本的測試職責,可惜在很多公司這成了唯一的測試任務,實際上還差的遠那;第二方面就是異常調用的測試,比如高壓力負荷下的穩定性測試,用戶潛在的異常輸入情況下的測試,整體系統局部故障情況下該模塊受影響狀況的測試,頻發的異常請求阻塞資源時的模塊穩定測試等等。當然並不是程序員要對自己的每段代碼都需要進行這種完整測試,但是程序員必須清醒認識自己的代碼任務在整體項目中的地位和各種性能需求,有針對性的進行相關測試並盡早發現和解決問題,當然這需要上面提到的 需求理解能力。 7:學習和總結的能力 程序員是人才很容易被淘汰,很容易落伍的職業,因為一種技術可能僅僅在三兩年內具有 領先性,程序員如果想安身立命,就必須不斷跟進新的技術,學習新的技能。 善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高 了。 但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提 高。 善於總結,也是學習能力的一種體現,每次完成一個研發任務,完成一段代碼,都應當有 目的的跟蹤該程序的應用狀況和用戶反饋,隨時總結,找到自己的不足,這樣逐步提高, 一個程序員才可能成長起來。 一個不具備成長性的程序員,即便眼前看是個高手,建議也不要選用,因為他落伍的時候 馬上就到了。 具備以上全部素質的人,應當說是夠格的程序員了,請注意以上的各種素質都不是由IQ決 定的,也不是大學某些課本里可以學習到的,需要的僅僅是程序員對自己工作的認識,是 一種意識上的問題。 那麼作為高級程序員,以至於系統分析員,也就是對於一個程序項目的設計者而言,除了 應該具備上述全部素質之外,還需要具備以下素質: 第一,需求分析能力 對於程序員而言,理解需求就可以完成合格的代碼,但是對於研發項目的組織和管理者, 他們不但要理解客戶需求,更多時候還要自行制定一些需求,為什麼這么說呢? 一般而言,進行研發任務,也許是客戶提出需求,也許是市場和營銷部門提出的需求,這時候對於研發部門,他們看到的不是一個完整的需求,通常而言,該需求僅僅是一些功能上的要求,或者更正規些,可能獲得一個完整的用戶視圖;但是這都不夠,因為客戶由於非技術因素多一些,他們可能很難提出完整和清晰,或者說專業性的性能需求,但是對於項目組織者和規劃者,他必須能夠清醒認識到這些需求的存在並在完成需求分析報告的時候適當的提出,同時要完整和清晰的體現在設計說明書裡面,以便於程序員編碼時不會失 去這些准則。 程序設計者必須正確理解用戶需求所處的環境,並針對性做出需求的分析,舉例而言,同樣一個軟體通過ASP租用方式發布和通過License方式發布,性能需求可能就是有區別的,前者強調的是更好的支撐能力和穩定性,而後者則可能更強調在各種平台下的普適性和安 裝使用的簡捷性。 第二,項目設計方法和流程處理能力 程序設計者必須能夠掌握不少於兩到三種的項目設計方法(比如自頂至下的設計方法,比 如快速原型法等等),並能夠根據項目需求和資源搭配來選擇合適的設計方法進行項目的 整體設計。 設計方法上選擇不當,就會耽誤研發周期,浪費研發資源,甚至影響研發效果。 一個程序設計者還需要把很多功夫用在流程圖的設計和處理上,他需要做數據流圖以確立 數據詞典;他需要加工邏輯流圖以形成整體的系統處理流程。 一個流程有問題的系統,就算代碼多漂亮,每個模塊多精緻,也不會成為一個好的系統。 當然,做好流程分析並選擇好項目設計方法,都需要在需求分析能力上具有足夠的把 握。 第三,復用設計和模塊化分解能力 這個似乎又是老調重談,前面基本素質上不是已經說明了這個問題嗎? 作為一個從事模塊任務的程序員,他需要對他所面對的特定功能模塊的復用性進行考慮,而作為一個系統分析人員,他要面對的問題復雜的多,需要對整體系統按照一種模塊化的分析能力分解為很多可復用的功能模塊和函數,並針對每一模塊形成一個獨立的設計需求。舉個例子,好比是汽車生產,最早每輛汽車都是獨立安裝的,每個部件都是量身定做的,但是後來不一樣了,機器化大生產了,一個汽車廠開始通過流水線來生產汽車,獨立部件開始具有一定的復用性,在後來標准化成為大趨勢,不同型號,品牌甚至不同廠商的汽車部件也可以進行方便的換裝和升級,這時候,汽車生產的效率達到最大化。軟體工程也是同樣的道理,一個成熟的軟體行業,在一些相關項目和系統中,不同的部件是可以隨意換裝的,比如微軟的許多桌面軟體,在很多操作模塊(如打開文件,保存文件等等)都是復用的同一套功能模塊,而這些介面又通過一些類庫提供給了桌面應用程序開發者方便 掛接,這就是復用化的模塊設計明顯的一個佐證。 將一個大型的,錯綜復雜的應用系統分解成一些相對獨立的,具有高度復用性的,並能僅 僅依靠幾個參數完成數據聯系的模塊組合,是作為高級程序員和系統分析員一項最重要的 工作,合適的項目設計方法,清晰的流程圖,是實現這一目標的重要保證。 第四,整體項目評估能力 作為系統設計人員,必須能夠從全局出發,對項目又整體的清醒認識,比如公司的資源配置是否合理和到位,比如工程進度安排是否能最大化體現效率又不至於無法按期完成。評估項目整體和各個模塊的工作量,評估項目所需的資源,評估項目可能遇到的困難,都需要大量的經驗積累,換言之,這是一種不斷總結的累計才能達到的境界。在西方一些軟體系統設計的帶頭人都是很年長的,比如4,50歲,甚至更老,他們在編碼方面已經遠遠不如年輕人那樣活絡,但是就項目評估而言,他們幾十年的經驗積累就是最重要和寶貴的財富。中國缺這么一代程序員,主要還不是缺那種年紀的程序員,而是那種年紀的程序員基本上都是研究單位作出來的,都不是從專業的產品化軟體研發作出來的,他們沒有能積累 那種產品化研發的經驗,這也是沒有辦法的事情。 程序員應具備的素質下 第五,團隊組織管理能力 完成一個項目工程,需要團隊的齊心協力,作為項目設計者或研發的主管人,就應當有能 力最大化發揮團隊的整體力量,技術管理由於其專業性質,不大同於一般的人事管理,因 為這裡面設計了一些技術性的指標和因素。 首先是工作的量化,沒有量化就很難做到合適的績效考核,而程序量化又不是簡單的代碼 行數可以計算的,因此要求技術管理人員需要能真正評估一個模塊的復雜性和工作量。 其次是對團隊協作模式的調整,一般而言,程序開發的協作通常分為小組進行,小組有主 程序員方式的,也有民主方式的,根據程序員之間的能力水平差距,以及根據項目研發的 需求,選擇合適的組隊方式,並能將責權和成員的工作任務緊密結合,這樣才能最大發揮 組隊的效率。 一個代碼水平高的人,未必能成為一個合格的項目研發主管,這方面的能力欠缺往往是容 易被忽視的。 綜上可以看到,作為一個主管研發的負責人,一個項目設計者,所需要具備的素質和能力並不是程序代碼編寫的能力,當然一般情況下,一個程序員通過不斷的總結提高達到了這種素質的時候,他所具有的代碼編寫能力也已經相當不簡單了,但是請注意這裡面的因果關系,一個高水平的項目設計者通常已經是代碼編寫相當優秀的人了,但是並不是一個代碼相當優秀的程序員就可以勝任項目設計的工作,這裡面存在的也不是智商和課本的問題,還是在於一個程序員在積累經驗,逐步提升的時候沒有意識到應當思考哪方面的東西,沒有有意識的就項目的組織和復用設計進行揣摩,沒有經常性的文檔習慣和總結習 慣,不改變這些,我們的合格的項目設計者還是非常欠缺。 另外,為防止有無聊的人和我較真,補充一點,本文針對目標是作商業化的軟體項目和工程,那些科研機構的編程高手,比如演算法高手,比如圖象處理高手,他們的工作是研究課題而非直接完成商業軟體(當然最終間接成為商業產品,比如微軟研究院在作的研究課題),因此他們強調的素質可能是另外的東西,這些人(專家),並不能說是程序員,不 能用程序員的標准去衡量。 最後補充一點東西,一個軟體項目研發的設計流程是怎樣的呢?以通常標準的設計方法為 例,(不過筆者喜歡快速原型法)。 第一個步驟是市場調研,技術和市場要結合才能體現最大價值。 第二個步驟是需求分析,這個階段需要出三樣東西,用戶視圖,數據詞典和用戶操作手 冊。 用戶視圖是該軟體用戶(包括終端用戶和管理用戶)所能看到的頁面樣式,這裡麵包含了 很多操作方面的流程和條件。 數據詞典是指明數據邏輯關系並加以整理的東東,完成了數據詞典,資料庫的設計就完成 了一半多。 用戶操作手冊是指明了操作流程的說明書。 請注意,用戶操作流程和用戶視圖是由需求決定的,因此應該在軟體設計之前完成,完成 這些,就為程序研發提供了約束和准繩,很遺憾太多公司都不是這樣做的,因果顛倒,順 序不分,開發工作和實際需求往往因此產生隔閡脫節的現象。 需求分析,除了以上工作,筆者以為作為項目設計者應當完整的做出項目的性能需求說明 書,因為往往性能需求只有懂技術的人才可能理解,這就需要技術專家和需求方(客戶或 公司市場部門)能夠有真正的溝通和了解。 第三個步驟是概要設計,將系統功能模塊初步劃分,並給出合理的研發流程和資源要求。作為快速原型設計方法,完成概要設計就可以進入編碼階段了,通常採用這種方法是因為涉及的研發任務屬於新領域,技術主管人員一上來無法給出明確的詳細設計說明書,但是並不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼後,根據評測結果和 經驗教訓的總結,還要重新進行詳細設計的步驟。 第四個步驟是詳細設計,這是考驗技術專家設計思維的重要關卡,詳細設計說明書應當把具體的模塊以最』干凈』的方式(黑箱結構)提供給編碼者,使得系統整體模塊化達到最大;一份好的詳細設計說明書,可以使編碼的復雜性減低到最低,實際上,嚴格的講詳細設計說明書應當把每個函數的每個參數的定義都精精細細的提供出來,從需求分析到概要設計到完成詳細設計說明書,一個軟體項目就應當說完成了一半了。換言之,一個大型軟 件系統在完成了一半的時候,其實還沒有開始一行代碼工作。 那些把作軟體的程序員簡單理解為寫代碼的,就從根子上犯了錯誤了。 第五個步驟是編碼,在規范化的研發流程中,編碼工作在整個項目流程里最多不會超過1/ 2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會極大提高,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許一個小模塊的問題就可能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研發過程中都出現過。編碼時的相互溝通和應急的解決手段都是相當重要的,對於程序員而言,bug永遠存在,你必須永遠面對這個問題,大名鼎鼎的微軟,可曾有連續三個月不發補丁的時候 嗎?從來沒有! 第六個步驟是測試 測試有很多種: 按照測試執行方,可以分為內部測試和外部測試 按照測試范圍,可以分為模塊測試和整體聯調 按照測試條件,可以分為正常操作情況測試和異常情況測試 按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試 以上都很好理解,不再解釋。 總之,測試同樣是項目研發中一個相當重要的步驟,對於一個大型軟體,3個月到1年的外 部測試都是正常的,因為永遠都會又不可預料的問題存在。 完成測試後,完成驗收並完成最後的一些幫助文檔,整體項目才算告一段落,當然日後少 不了升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟體的運營 狀況並持續修補升級,知道這個軟體被徹底淘汰為止。 寫這些步驟算不上賣弄什麼,因為實話講我手邊是一本《軟體工程》,在大學里這是計算機專業的必修課程,但是我知道很多程序員似乎從來都只是熱衷於什麼《30天精通VC》之類的,他們有些和我一樣游擊隊出身,沒有正規學過這個專業,還有一些則早就在混夠學 分後就把這些真正有用的東西還給了老師。 網上現在也很浮躁,一些coding fans亂嚷嚷,混淆視聽,實際上真正的技術專家很少在網上亂發帖子的,如筆者這樣不知天高地厚的,其實實在是算不上什麼高手,只不過看不慣這種對技術,對程序員的誤解和胡說,只好挺身而出,做撥亂反正之言,也希望那些還 沉迷於一些錯誤人士的coding fans們能認真想想,走到正途上,畢竟那些聰明的頭腦還 遠遠沒有發揮應有的價值。

Ⅳ 如何系統的學習JAVA

玩Java多年的老司機帶你上車全面系統學習Java,並且還能教你如何學習才能在今年拿到一份不錯的offer。

說到系統全面,就是以目前絕大部分公司招聘要求的知識內容為基準,畢竟我們學習Java都是為了高薪工作,《史記》中說」天下熙熙皆為利來,天下攘攘皆為利往「,為了高薪工作而學習Java技術,這都是人之常情,也是大部分人奮斗的目標。

我們先看看市場上招聘Java程序員都需要哪些技術:

二、資料庫篇

資料庫是學習Java語言必學的一項內容,常見的資料庫就是MySQL和Oracle這兩種,作為初學者一般都是學習MySQL為主,一般情況下中小型企業都會選擇MySQL資料庫,比較大型的互聯網公司會選擇用Oracle,而學習Oracle相對於MySQL也要復雜一些,建議是主要學習MySQL資料庫,Oracle作為了解即可。學習資料庫較為簡單,基本的操作就是增刪改查。

三、Web開發

Web前端內容:HTML/CSS/JavaScript/(前端頁面)

注意:Java後端開發可以不用過多關注HTML頁面及CSS的處理,但是最起碼要會用簡單的HTML,JavaScript是必須要會的,因為Javaweb後端程序員畢竟要接觸使用AJAX方式處理數據及顯示。當然如果只關注伺服器端實現而不考慮任何用戶界面,則HTML、CSS、JavaScript都不用關注,但是完全脫離前端的開發現在雖然也不少,但是絕對不關心前端是不可能,尤其是JavaScript,但是前端卻可以完全不關心伺服器後台的任何實現。

推薦學習書籍:《JavaScriptDOM編程藝術》(第二版)

這本書作為被大家推薦的最多的前端入門書籍是有道理的。他能真正讓大家了解dom腳本編程,或是說前端編程技術背後的思路和原則。對於初學者來說,這本書沒有任何門檻,按部就班跟著書籍實例編寫代碼即可。我們會知曉如何對瀏覽器元素操作和掌控,會學會如何實現簡單的頁面效果。這種簡單易得的成就感是一個編程語言入門時最難能可貴的體驗。

JavaEE內容:Servlet/JSP

雖然現在網上在傳JSP很少用了,可能是被一些模板或JSAJAX方式代替了一些,但是我認為還是應該接觸一下,萬一要用到不會怎麼辦,而且它是JavaEE的動態網頁實現標准組件。學習JSP過程也能更好的幫助我們理解web會話的過程,掌握web會話都有哪些我們必需知道的。如果學習Javaweb、JSP都不接觸那就相當於學習使用Springboot而一點不接觸SpringFramework一樣,豈不是稀里糊塗。包括開發Javaweb我們必需知道的概念諸如Web應用上下文,請求對象,響應對象,HttpSession,Cookie等都是在接觸學習JSP和Servelt中體現的,還有一些比較少見的EJBJSFJMS以及JavaFelix等。

一些初學者不清楚這些難免會有誤區,尤其是有些較成熟的工程師也這么說,我只能說他們很無知,只是代碼機器而已,其實對於應用開發設計也就稀里糊塗,人雲亦雲罷了。

永遠沒有被淘汰的技術也沒有永遠流行萬能的技術,要看在什麼環境和場合應用,符合我需求的技術和工具就是好的,就是對的。

四、高級框架

1、Springframework核心IOC容器

2、Springboot在Spring基礎上的更全面提升效率的Spring工具

3、ORM框架當今流行使用較多的是Mybatis和MP(Mybatis插件),Hibernate是可選性學習的

4、模板技術,比較成熟的Freemarker

5、SpringCloud微服務框架,SpringCloud提供的全套的分布式系統解決方案。

五、工具

maven是構建管理項目的工具,svn和git是團隊協作開發的項目源代碼及相關文檔資料管理工具,需要學習者初步掌握其應用。

像Tomcat,jetty,resin,JBoss,GlassFish等都是部署運行Javaweb應用的伺服器。

以上就是初學者大概學習的內容,我是盡量站在初學者的角度來說的,沒有寫得特別復雜,怕初學者看不懂,沒有實質性的幫助。所以我盡量用白話把話說的簡單一些,給大家羅列出主要學習的Java知識點。

知道了Java要學習的大概內容,下面就是怎麼才能用最好的方式把Java學好,從而達到就業的水平,首選我們應該了解一下目前想要達到找到工作的水平,應該是怎樣的。如果大家對於學習Java有任何的問題,關於如何提升學習Java以及學習方法、學習技巧、快速達到就業的技術水平,都可以隨時來問我,這是我建立了5年的Java學習交流裙,前面三個是494,中間三個是801,後面三個是931。 有不懂的問題可以隨時在裡面問,需要Java各個階段的學習資料也可以在裡面進行下載。

Java學到什麼程度才能達到就業的水平:對於大多數初學Java的同學而言,最關心的莫過於我學要學習哪些和學到什麼程度才能找到相關的Java研發工作崗位。

不同的軟體公司對研發人員的水平要求存在一定的差異,如果從大多數中小型企業來看能接受一個入職到本企業的IT技術人員通常需要具備以下能力。

1理解掌握Java核心面向對象的設計思想和代碼構建,能以面向對象方式設計編寫業務功能;

2熟練掌握至少兩種資料庫的開發,如Oracle,mySql,能熟練編寫基本常用及高級的SQL語句;

3必需掌握並熟練應用SpringframeworkIOC容器,深入了解IOC及AOP概念並應用,使用MVC實現對web請求做出處理;

4熟練掌握Java處理資料庫的ORM框架myBatis,JDBCTemplate,對Hibernate也應有所了解;

5熟練應用Spring增強工具集合Springboot;

6至少熟練使用Eclipse及IDEA集成開發工具構建應用程序;

7能夠基本掌握MVNGITMaven在項目中的使用;

8前端開發必需掌握JavaScript和常用的JS框架

以上這些都是中小型軟體企業的入職基本要求,如果你能夠達到這個水平,找到一份Java工作應該是不難的。

推薦的學習方式:系統視頻教程+書籍輔助+有人指導

視頻教程:對於Java初學者來說,看視頻學習也是最普通的方式,視頻教程會把工作中常用的知識進行講解,而且視頻一般都是分章分節,每一個小節都只講一個知識點,學習起來較為明確。但是視頻教程盡量要完整,最好是一整套視頻學習。

書籍輔助:書籍便於對理論知識的補充,以便更容易理解Java面向對象核心設計理念和代碼實踐功能。

PS:但是大部分人都沒有耐心看不下去書,所以大部分人都是只看視頻教程學習。如果自己能看的下去就看,看不下去就不看。

有人指導:大部分人都不可能全靠自己的能力把Java學的特別好,因為你不了解這個行業,也不知道怎麼學,完全零基礎自學Java想要找到工作,概率極低。所以建議如果真的想要做這行,盡量找人去帶帶你,有不懂的問題可以直接請教,少走彎路,提高效率。學習的質量決定以後工作的薪資以及起點,所以還是應該重視起來。

項目的重要性

很多Java初學者看完一些視頻,學過一段時間就說自己「會了」。這里我需要給大家糾正一個問題,希望每個學習Java的知友都能明確學習編程的中心是什麼。其實在我看來,學習編程從來都不存在會不會這樣的說法。學習編程不同於初中學的數學、物理、化學,記住一些公式,做同樣一種類型的習題,就證明類似的題型你會做了。編程只講技術能力是什麼水平、什麼級別的,最能證明技術水平處在什麼階段的,就是在做項目的過程中,研發好的互聯網產品,寫代碼的質量怎麼樣,排錯能力怎麼樣,找BUG的能力怎麼樣,構思功能模塊整體布局的能力怎麼樣等等。做作為初學者想要達到入門的水平,就是自己具備了一些簡單項目的編碼能力,初學者最重要的一點就是培養自己的編程思維,每一個程序都是不一樣的,你不可能都背下來,學編程也不是靠死記硬背的,你只有能去獨立編碼寫一些東西的時候,才有就業的機會。

所以做項目的能力才能去衡量一個學習的水平處在什麼階段,而往往那些嘴上說「會了」的人,往往沒寫過多少代碼,也一個項目做不了出來,這就是紙上談兵,完全曲解了學習編程到底在學什麼,也不知道應該往哪裡去。

所以一個Java初學者在學習的整體過程中,必須要有兩個能拿得出手,能寫在簡歷上的項目作為找工作的資本,並且要對於這兩個項目的前前後後相當了解,才可能最後面試成功,一個初學者在學習完Java所有內容後,如若還達不到可以做簡單項目的水平,那麼他整個學習過程還是白費,沒有達到最終的學習目的,就是學習質量不過關。所以項目的重要性希望大家都明確,因為有太多Java初學者不知道最後學習的目的是什麼,最後白白的浪費時間。

學習心態:

學習編程一定不是一個簡單的事情,換句話說它還是挺困難的,畢竟能出去找到工作,就是少則五六千,多則上萬的工種。這些知識都不是隨隨便便就是任何一個人都能學會的。關於這個學習心態,希望提示大家要把重心放到「學習」這件事上,因為我發現有很多Java初學者都是像「完成任務」一樣去學習,所謂完成任務就是「我把這些視頻看完就能找到工作嗎」「我把這些都學完就能找到工作嗎」學完並不等於「學會」,這是兩種不同的概念。

你到底理沒理解?

你到底能不能應用起來?

你到底用沒用心?

你自己應該是最清楚的,我發現那些把學習當做完成任務一樣去對待的,這樣的人沒有一個是有耐心的,自己在心裡欺騙自己「把這些視頻看完我就能找到工作」,到了最後自己就逐漸明白,完全是自欺欺人,最後放棄說自己不適合學這個。其實揭開這些人的面具真相就一個:他們沒有耐心學習,也不喜歡學習,這是以前經歷造成的,是多年的習慣導致的。

所以正確的學習心態一定是把關注點放到學習這件事本身,你要學會這些知識,這些內容,這些技術,這是需要一天一天逐漸積累起來的,並不是短時間就可以達到什麼結果。

PS:如果你對於學習沒什麼耐心,沒什麼興趣,我勸你不要來學習編程,學習編程絕對是一個耐心的活,也是需要不斷學習和充電的行業。或者說已經到了信息時代,不愛學習的人,很難有耐心去學習知識的人,在信息時代是混不下去的,任何行業都是如此,不學習不進步不緊貼時代的人就一定會被淘汰。

最終自學Java能就業的人基本具備以下幾點:

1、有超強的學習耐心及進取心

2、手不懶,代碼寫的足夠多,熟能生巧

3、有一定的學習能力,善於自學善於自己解決問題

4、可以獨立寫一些簡單的項目

以上內容均由本人手寫而成,完全站在Java初學者的角度來說,就是希望能用通俗易懂的語言讓大家清晰的明白學習Java全面系統的學習內容,以及應該達到什麼程度才能拿到一份Java工作的offer,希望可以給大家帶來幫助。

Ⅳ 如何正確掌握Java的學習方法

作為掌握了JAVA技術,將來准備成為Java軟體工程師的人來說,要想成為JAVA工程師肯定要學習JAVA。一般的程序員或許只需知道一些JAVA的語法結構就可以應付了。但要成為高級JAVA工程師,我們需要對JAVA做比較深入的研究。為大家總結了以下三個方面的學習方法:
一、軟體開發學習路線。兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或項目管理師。不想當元帥的士兵不是好士兵,不想當架構設計師或項目管理師的程序員也不是好的程序員。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。
A.基礎理論知識,如操作系統、編譯原理、數據結構與演算法、計算機原理等,它們並非不重要。如不想成為計算機科學家的話,可以採取「用到的時候再來學」的原則。
B.一門編程語言,現在基本上都是面向對象的語言,JAVA/C++/C#等等。如果做WEB開發的話還要學習HTML/Jav**ript等等。
C.一種方法學或者說思想,現在基本都是面向對象思想(OOA/OOD/設計模式)。由此而衍生的基於組件開發CBD/面向方面編程AOP等等。
D.一種關系型資料庫,ORACLE/SqlServer/DB2/MySQL等等。
E.一種提高生產率的IDE集成開發環境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進行建模。
G.一種軟體過程,RUP/XP/CMM等等,通過軟體過程來組織軟體開發的眾多活動,使開發流程專業化規范化。當然還有其他的一些軟體工程知識。
H.項目管理、體系結構、框架知識。
正確的路線應該是:B→C→E→F→G→H。
還需要補充幾點:
1、對於A與C要補充的是,我們應該在實踐中逐步領悟編程理論與編程思想。新技術雖然不斷涌現,更新速度令人眼花燎亂霧里看花;但萬變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會有撥雲見日之感。面向對象的思想在目前來講是相當關鍵的,是強勢技術之一,在上面需要多投入時間,給你的回報也會讓你驚喜。
2、對於資料庫來說是獨立學習的,這個時機就由你來決定吧。
3、編程語言作為學習軟體開發的主線,而其餘的作為輔線。
4、軟體工程師著重於B、C、E、D;軟體設計師著重於B、C、E、D、F;架構設計師著重於C、F、H。
二、JAVA學習路線。
1、基礎語法及JAVA原理。基礎語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有扎實的基礎,你才能在J2EE、J2ME領域游刃有餘。參加SCJP(SUN公司認證的JAVA程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟體公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得「真正」的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。
2、特定API的學習。JAVA介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那麼你需要學習Swing/AWT/SWT等API;如果你進行網路游戲開發,你需要深入了解網路API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。
3、開發工具的用法。在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等集成開發環境,以免過於關注IDE的強大功能而分散對JAVA技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。
4、OO思想的領悟。掌握了基礎語法和JAVA程序運行原理後,我們就可以用JAVA語言實現面向對象的思想了。面向對象,是一種方法學;是獨立於語言之外的編程思想;是CBD基於組件開發的基礎;屬於強勢技術之一。當以後因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。
使用面向對象的思想進行開發的基本過程是:
(1)調查收集需求。
(2)建立用例模型。
(3)從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。
(4)細化分析模型到設計模型。
(5)用具體的技術去實現。
(6)測試、部署、總結。

5、學習軟體工程。對小型項目而言,你可能認為軟體工程沒太大的必要。隨著項目的復雜性越來越高,軟體工程的必要性才會體現出來。
6、基本API的學習。進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的「不需要重新發明輪子」。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,JAVADOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。
基本API指的是實現了一些底層功能的類,通用性較強的API,如字元串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVADOC文檔,二是使用JBuilder/Eclipse等IDE的代碼提示功能。
程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟體開發中要用到的幾乎所有工具。從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。

JAVA開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder佔有的市場份額是最大的。JBuilder在近幾年來一直是JAVA集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的JAVAIDE大戰中,以其快速的版本更新擊敗IBM的VisualAgeforJAVA等而成就一番偉業。IBM在VisualAgeforJAVA上已經無利可圖之下,乾脆將之貢獻給開源社區,成為Eclipse的前身,真所謂「柳暗花明又一村」。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。
最後一點,成為一名優秀的JAVA工程師,我們需要掌握的專業知識和技能包括:熟悉java語言,理解面向對象的思想與設計模式,至少熟悉j2ee、j2me、j2se等開發體系中的一種;熟練使用Eclipse或Jbuilder等開發工具,理解MVC模式及實際應用;至少熟悉一種資料庫的開發和設計;具有一定的程序測試和設計分析能力。除此之外,良好的學習能力、團隊合作精神、強烈的責任心以及溝通能力也是必不可少的。

如果以上幾點你都能很好的做到了,那麼你就是一位優秀的JAVA工程師了

Ⅵ 程序員需要學什麼

程序員可以分為很多種,像Unix程序員、Windows程序員,或是C++程序員、Delphi程序員,

1. 嘉華職業教育程序員首先學的就是各種腳本,asp、jsp、php等等,這些東西大同小異,基本可以舉一反三。

2. 資料庫,

資料庫連接池和事務機制是非常重要的,應該知道資料庫用什麼來保證事務,連接池如何實現,這些都是商務應用的關鍵。譬如,目前很多的應用服務,像weblogic、MTS,都包含事務處理,可以說好的事務處理決定了他們的競爭力。

3. 組件技術

現在的Web應用推動了組件技術的發展。以前,從老式的靜態庫、動態庫(dll),到現在的COM/DCOM,再到正在興起中的Web Service;從單機調用,到基於內部網的分布式調用,到現在基於Internet的分布式計算。現在的應用都是基於組件的n層結構,最明顯的就是COM和JavaBean。

這些東西體現了軟體架構的發展,以前是基於單機的應用,然後是C/S結構,到現在的B/S結構。程序員一定要注意軟體技術的發展趨勢,只有這樣,才不至於被淹沒在技術的洪流中。

4. 網路技術

這可以說是程序員最應該懂得東西。起碼,應該知道伺服器的機制,要明白Http協議。就拿IIS來說,要懂得web應用程序運行的進程安全和IIS的關系,懂得ISApi的作用。

如果有時間,就看看TCP/IP,看看winsock,也可以到嘉華職業教育申請免費聽課。

我所說的這些都是基於微軟技術下的東西,其他的像Java方面的東西都可以對照參考,就不多說了,這也是我這幾年來的一些心得。總之,學海無涯,每當接觸一些新的東西,就會發現自己的不足,同時也就覺得基礎知識的重要。說實話,像我們做應用開發,用別人的東西,在現在這種情況下,新的技術層出不窮,稍不注意就會被甩開,這也是沒有辦法的事情。

.
.
.
.
.
.
.
.
..
.
..
.
.
.
.
.

喜歡陽光的人,喜歡坐在冬日的太陽底下的躺椅上,眯著眼兒,看一會兒閑書,喝一壺清茶,吃幾粒瓜子兒,掰下一塊兒豆腐乾,放到身邊也眯著眼兒的老貓的嘴裡。

喜歡陽光的人,喜歡坐在秋日的太陽底下的葡萄架下,讓陽光透過葡萄葉子,斑斑點點的灑落滿身,讀一闕兒秋詞,嘆一句兒天涼好個秋,撿一片兒落葉,思一會兒寂寥。

喜歡陽光的人,喜歡坐在夏日傍晚的河灘上,對著半江瑟瑟半江紅的河面,聽漁舟晚唱,看村子裡裊裊升起的炊煙,思戀媽媽做的晚飯。

喜歡陽光的人,喜歡春日裡躺在陽光下的綠草坪上,看白雲朵朵游弋在蔚藍的天空,聽著小孩子們嬉鬧的歡笑聲,感受著嫩嫩的小草的柔和的觸摸,心裡軟軟的,酥酥的,盪漾開了的是對於陽光的熱愛,對於生活的感悟。

思念的風箏斷了線,

隨著風塵淡淡飄遠。

看著又是一年秋瑟,

你的感覺還是那麼單薄。

那些年最喜歡白天,

白天,可以天天坐在你的旁邊。

這些年最喜歡黑夜,

夢里,總是在重復離你不遠的那些年。

你是一隻自由鳥,

別了我這一棵梧桐樹,還有一片雲與天。

我是一棵梧桐木,

沒了你這一隻自由鳥,剩下的還有什麼我會去要?

老照片看了一遍又一遍,

總是勾勒著你現在臉上的凹陷。

你的感覺像一陣風一樣襲來,

捉摸不到行蹤,又冰冷的刺穿我假裝的不難過。

你知道我多想,

多想在你的面前揭開我的心事,也讓你明白我的心願。

你知道我有多想,

多想坐在傷心的你旁邊,也讓你體會我的溫暖。

你知道我到底有多想,

多想在你無聊的時候和你聊天,也好讓我在你的人生中也有兩個人那樣的時光。

可到了現在,我有多可憐,

只有孤單的時候去想你,越是想你就越是孤單。

我也許只是你心靈書上的一個逗號點,

也曾你讓你心裡有過那麼一次停頓,之後便消失不見。

就等一切的歲月都已寫完,而你再去翻看這一本人生時,

我可不可以求求你,不要把刻著我名字的這個小點輕輕淡淡的忽略。

因為它是你留給我的念,也是我留給你的戀。

秸梗花,禰曾有笑過,是否記得煙花綻放照亮夜空時;秸梗花,禰曾哭過,是否記得滿地的殘葉瘦梗沒人憐;秸梗花,禰曾有憂過,是否記得那年月圓時,禰是對月空吟的遊子。禰喜,禰憂,禰愁,禰的一顰一笑牽於心。流年間,恍如梨花千樹一夜放,鬢白紅瘦斷衷腸。

十八歲的流沙飄散在空中,隨風而逝。淡淡紫色秸梗花曾是十八年間唯一的信念。自從與秸梗花相遇,到相知。每一秒都洋溢著紫色的幸福。

十八歲時,我只守這我的這一朵秸梗花。那時有個約定叫十點之約;那時有個夢叫畢業後就牽手;那時有條路叫順道;那時…

我未曾給過繁華,也未曾給過錦帛,更無從有過快樂時光。因此我是不負責任的。所擁有的燦爛也只是如煙花綻放在夜空的一瞬。禰笑,如孩子般爛漫。我卻不安,因為我怕我沒有力量去保護這朵淡淡紫色的秸梗花。禰曾願與我邂逅著每一個心情,訴說每一份感觸。我曾願靜靜地傾聽每一種聲音,也會為禰說:這人怎麼能這樣…

時間像是倘在手中的水,無論怎樣緊握還是從指間一點點的流走。唯一不變的是對秸梗花的淡淡情愫。當時針敲響零點時,十八歲也隨著昨天一起逝去了,消失在這世間無處可尋。突然心好像空了,像是被偷走什麼重要的東西。誠恐,彷徨,不安如瘋長的藤蔓,爬滿了心房。是不是十八歲的情愫也如落葉般散去呢?沒有,桔梗的情愫並沒有消失,而是留在回憶里了,這一輩子也不會丟了。心這才微微地平靜了些。是啊!一生一世就夠了;來世可以相知相遇,不一定要相愛;可以做肝膽相照的朋友,不一定要耳鬢廝磨;可以成為至愛的親人,不一定要愛恨間糾結。依舊懷著對你淡淡的紫色情愫。至今我仍珍惜著,氤氳的情愫,如同葳蕤,一絲絲蕭瑟也與此情顯得格格不入,更是在氤氳後透徹著成熟的滋味。相信這一切便會是永恆,無可厚非。然,所有永恆在時間的消磨之後變得不堪一擊。再也經不起考驗,一碰就碎。對那淡淡的紫色情愫曾未變過,只是被現實給脫垮了。朋友對我說了句:蝶戀花。蝶為花醉,花卻隨風飛。風過無痕,但給我留下的是歲月的斑駁,十八歲的烙印。我知道這些不算什麼,但真的很難受,哽咽著。後來的後來我才明白最痛的痛不是不珍惜而錯過,而是珍惜了,依然失去。

「桃花依舊笑春風,人面不知何處去。」生活要繼續,但已是沒有了靈魂,一切如同行屍走肉般活著,沒有任何意義。那桔梗花依然再綻放著,可已是物是人非。氤氳早已灰飛煙滅,芬芳馥郁片刻化為灼熱刺傷瞳孔。低吟淺唱:玉容寂寞淚闌干,梨花一枝春帶雨。十八歲的年輪輾到十九歲,車輪下的桔梗花依舊散發出淡淡的幽香。我不斷的提醒自己:過去固然重要,但不是唯一,總是活在過去的人註定會失敗。這句話我是在日記里看到的,時間也久遠了,也記不清是誰說的了。懂了,不會有永恆不變的愛,地久天長的那是親情,是血脈相連的責任。所以我舉行了葬禮,把那份桔梗的情愫深深的埋葬在回憶的盡頭。或許這正如桔梗花的花語一樣吧,無望的愛!

已逝的十八歲,讓一切變得蒼白了許多。半段糾結的桔梗情,忽如在耳畔誓說著不變的諾言。幽幽紫色的情愫,磨滅不了,更是無可奈何。

Ⅶ 寫給程序員的JMeter教程(序):程序員需要掌握的能力

我有一個觀點,並且我認為這是無須詳細去解釋的,那就是:

每一個程序員,都得學會對自己的代碼做性能測試

當然,性能測試的工具並不一定是JMeter,但以當前開源框架來說,我認為它是最好的選擇。

從本周開始,在講編碼之道的同時,我將同時每周講一篇技術,也就是編碼之術。

做為一個優秀的程序員,道與術同等重要,不可偏廢。

編碼之術的第一個系列就是: 寫給程序員的JMeter教程

要記住一個原則,性能只是技術價值中的一個維度,不要說業務價值,光是從技術價值上來考量,性能也並不是最重要的,甚至得排在很多點後面,比如可維護性。

我一向認為: 可維護性是最重要的技術價值

因為性能是可以用硬體來彌補的,但可維護性差就不是彌補這么簡單的事了,為可維護性付出的代價會遠高於提升下硬體或在集群中多加個服務來解決性能問題的代價,硬體永遠是越來越便宜的。

作為程序員,一定要有這種認知。

當然,這不代表性能是可以輕視或者忽略的,關於如何對待性能這個技術點,我的觀點是:

在不犧牲可維護性的前提下,努力做到性能最好

相比其它維度的測試工作,性能測試稍顯尷尬。

性能這個事情,不理解技術,沒有實際編碼過,坦率地講要做好並不容易。而理解編碼或編碼過的測試人員其實是少數。因此,僅有此部分的測試人員能夠去做性能測試,而大多數測試人員在性能測試方面始終有點難以著手與深入。

好吧,大多數程序員可能並不認為性能測試是需要自己動手的一個事情。這顯然並不是一個正確的認知。

我認為,程序員是非常有必要自己做性能測試的,它應該是一個程序員的必備技能之一。

有誰會比你更熟悉你自己編程的思路與實現?

程序員的自我性能測試應該是第一道防火牆,無論後面測試團隊會如何進行性能測試,本身你自己要先給自己把這一關給過了先。

原因我認為有以下幾點:

1. 專業性

其實無論是單元測試,還是性能測試,程序員理當自己去做這些事,自己寫的代碼自己要保障它的質量,這應該是專業性的一種體現。我們想做好一個程序員,那對專業性的追求就必不可少。

2. 發現隱蔽的錯誤

很多功能,如果不在大並發下運行,可能一切正常。但這並不意味著它就真的 正常 ,我們要明白我們的服務是在網上運行,它並不是一個人在使用。大並發下會出現非常多你意料不到的問題與Bug。

3. 自己最清楚自己的邏輯

別人測試你的代碼,永遠不如你自己清楚,你知道自己是怎麼實現的,當然就更清楚在性能上如何測試它更好。

4. 這不是一件很難的事

其實技術整體發展方向是越來越易於使用,不斷地有更好的工具出現。我要講的JMeter就是一個足夠簡單且易於使用的工具,使用JMeter絕大部分情況下,只需要用圖形界面就能搞定,極少數情況下才需要編寫腳本。

5. 它更節省時間

好吧,我知道這聽起來有點誇張或不可思議,很多人理所當然地會認為這會花費更多的時間。

其實這個點與單元測試是一樣的,凡是認為單元測試或性能測試會延長編碼時間的程序員,這些想法都屬於想當然,他們可能從未嘗試過。

實際上,你不做這些事,未來你會在其它方面為它付出更多的時間。而只有做這些事,才有可能保障代碼的可維護性。

當然,現在我們都盡量使用開源的工具,因為很多開源的工具足夠強大並且是免費的。

在性能測試領域,當然最專業的要屬LoadRunner這個工具了,但顯然這個太重了,還只支持Windows。

事實上,很多互聯網公司主流都是使用了更輕,更易於使用的JMeter。

且不論JMeter和LoadRunner孰優孰劣,對於程序員來說,選擇JMeter肯定是當下最正確的選擇。

所以,從現在開始你可以跟隨我的腳步來學習與使用JMeter吧。其實它足夠簡單,你並不需要花費太多的時間。

下一篇,寫給程序員的JMeter教程(一):理解性能測試中的性能指標

Ⅷ 新手如何學習編程

熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:

1、語法。

2、基礎理論(數學、數據結構、演算法等)。

3、設計方法(編程原則、設計模式、框架設計等)。

4、庫(核心、基礎、UI、擴展、游戲引擎等)。

5、計算機相關(操作系統、網路、圖形學等)。

6、領域知識(游戲設計、網站設計等)。

7、開發工具(編輯器、IDE、自動部署等)。

8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。

最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。

具體方法包括:

1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。

2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。

3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。

4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。

對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。

項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。

閱讀全文

與程序員的術與道教程相關的資料

熱點內容
電壓低壓縮機工作怎麼樣 瀏覽:173
ol刷金app哪個好 瀏覽:394
html轉ubbphp 瀏覽:88
mmm編譯完如何打包 瀏覽:61
返利券app如何實名 瀏覽:54
壓縮褲男圖片 瀏覽:954
linux磁碟標簽 瀏覽:379
java身份證號碼驗證 瀏覽:280
網頁設計CSS外邊框代碼編譯 瀏覽:124
考程序員都考什麼 瀏覽:950
程序員特別困怎麼回事 瀏覽:25
php替換顏色 瀏覽:500
你的個人文件夾滿了怎麼回事 瀏覽:531
命令att 瀏覽:827
必須添加的java編譯器選項 瀏覽:716
linux磁碟修復命令 瀏覽:1002
python提取tuple類型 瀏覽:89
數控編程中什麼是地址符 瀏覽:80
微信新增伺服器是什麼意思 瀏覽:809
常德雲伺服器存儲 瀏覽:696