久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

一位小學文化的程序員成長之路

時間:2019-05-12 19:20:11下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《一位小學文化的程序員成長之路》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《一位小學文化的程序員成長之路》。

第一篇:一位小學文化的程序員成長之路

魯山縣,一個河南最貧窮的小縣城中一個最窮的家。

78年我從另外的一個無知的世界降臨到了這個有知的世界,這一年我母親43歲,倍著我母親一起生活。

我長大了,帶著迷惘的心走入了學校。

我母親所在的五金廠,規(guī)定女職工50退休,可是我母親為了把我養(yǎng)長大,給廠里的領(lǐng)導說,在工作兩年。廠里的領(lǐng)導同意了。于是又工作了兩三年。

中間發(fā)些了一些事情,改變了我的生活,我的家,把我的人生走向了死亡。

經(jīng)濟、家和其它原因,93年也許是94年帶著迷惘的心和一種無法言語、一種迷迷的傷感告別了學校,回到了我原來的地方。

我的人生為什么不如別人,前面一片迷茫??

校外的我能有什么知識?有什么能力?面對社會?小學五年,初一讀過半年,還有一年的幼兒園,知識就是這些了。

除了在租書店看武俠小說之外,就是泡在游戲廳中,在這些地方我能找到自己的存在,沒有迷茫,離開以后一片空虛。

在看古龍的武俠小說中,有些書中會有個代序,代序中經(jīng)常提到一些很奇怪的書名,像《戰(zhàn)爭與和平》、《老人與海》、《小婦人》、《簡*愛》等。看名子不像是武俠小說,奇奇怪怪的。于是就躍躍欲試的去看這些書,第一次看這些書,好難看懂,放棄過好多次,最后還是把這些書看懂了。原來世界上除于武俠小說,還有文學小說,而且還是世界文學名著。

97年2月,我得到了一個份工作,一個月差不多300-340元錢。這可是救命糧啊,我和母親也就不用在去吃人家吃剩下的飯菜了。解決了我和母親吃的問題。

?..97年11月,偶爾遇見一種件改變我命運,也許是更走向死亡。某一天我又來到了游戲廳,和認識的游戲玩伴們一起玩。某位游戲玩?zhèn)冋f,那邊有一種新的游戲。上面有小坦克,還有大坦克,還會發(fā)導彈。經(jīng)過和幾個游戲玩伴們的對話中,才知道聽明白那叫電腦游戲。小坦克像綠豆大小,大坦克像黃豆那么大。

電腦游戲,什么是電腦,沒有聽說過,更新沒有見過。我說:“在那兒,走,看看去!”

當我走進來,看到放在白色桌子上的一些電腦后,我突然感覺到一種靜,一種空,沒有直覺,沒意識,一種天下萬物都不存在,只有我一個人站在這里。聽到同伴叫我,我都沒有動,想動,但是動不了。于是他們也就不在叫我,自己找地方看別人玩了。

一會兒我有直覺了,我也找了一個角落。

------這就是電腦嗎?

看著小坦克在上面跑來跑去的。

看著他們的右手中那個帶繩子的東西,晃來晃去。

看著左手下面的那個大白方塊上有很多小白方塊。

心中不時的問,這些是什么東西啊。

但是并沒有很快的追求這些答案。

我向里面移動,移動,人太多,不好移動,但是還是移動到了里面的桌子榜邊,因為桌子上有兩本書。一個書面比較花,另外一本不太花。

那本不太花的離我比較近,我擔心的把它拿了過來,書面上寫著《電腦報》幾個大字,翻了幾頁,字那么小,看不懂。就放下了。幾年后我才能確定《電腦報》是干什么用的。

看那本花的書,書面上寫著《游戲攻略》,內(nèi)容圖多字少,圖中有字,字在圖中。

我喜歡上這東西了,我愛上這東西,我特別的感動。

事后,我問同伴們,那里有學電腦的。

同伴說,學電腦,那有什么用。

我再問:咱這兒,有嗎?

同伴說:我也不知道。

另外一個同伴聽道了說:琴臺和文化館都有。我心中記下了這兩個地方。

周末,我看了這兩個地方,最后定在文化館。學習時間是每天的晚上和周末。初級班教:先是練習指法。然后學習五筆、WPS和DOS。學了幾天后,越學越愛,但是只有晚上兩個小時右左的時間,學不到什么東東,也練不出什么水平來。于是就辭掉工作,全心全意的學電腦。

兩個星期后,在南陽農(nóng)校畢業(yè)的兩個男生接管了這個電腦培訓班。他們可以全天制的教課。一位王老師,一位董老師。

學完了初級班后,我又學了中級班,中級班教FoxBase 和高級DOS。學FoxBase為我以后自學C/C++鑒定了基礎(chǔ)。

這兩位老師從學校帶來了許多他們上學的書,沒事的時候就去翻這些書看和他們聊天。知道了什么是編程,編程是干什么用的。也知道了FoxBase語言是無法編譯為可執(zhí)行文件(.exe)。

后來了解到世界上除了FoxBase語言之外,還有C/C++語言。可是老師只有一本C語言書,沒有C++,于是就根據(jù)這本書自己讀起來了,幸好有FoxBase編程基礎(chǔ),學習起來不太難。一遍看不懂,多看幾遍就懂了。

把這本只有250頁的C語言教程看完后,已經(jīng)基本上掌握的C,只是上機的時間比較少,這個時候我就想,能有一臺自己的電腦該多好啊。

98年8月,去參家計算機一級考試,有機會在計算機書店買了一本《C++語言大全》的書,開始進軍C++。但也是我離開培訓班的時候。離開培訓班就等于是離開了電腦,因為俺是一位窮光蛋。吃的問題就難解決,還想擁有電腦,只能去做夢了。

人生就此要結(jié)束了嗎?

不,不能就這樣結(jié)束。

------放棄就是死亡,放棄就是失敗。

奮斗

告別電腦培訓班后,在家中日夜倍著我那心愛的、摯愛的、生命般的書《C++語言大全》,沒有電腦,先把書看懂,以后有機會用電腦時在練習。一個月下來,什么面向?qū)ο螅鄳B(tài)性,重載,繼承的思想都存在腦中。唯一不完美就是裝備不全。

98年11月,我聽以前在一起學電腦的同學說:“有人要開個電腦公司,他們來培訓班招人,老師把你推薦給了他們,你去找老師,那個人留下的有傳呼號。”這是個天大的好消息,我特別激動,不是因為有工作有錢賺,而是因為有電腦用了。

找到了傳呼號,打了傳呼。他來了。我們聊了會兒天,他說,公司明年開業(yè),現(xiàn)在招人。他告訴我公司在那個地方。他就走了,他叫邢五中。

是我的兩位老師,告訴我很多軟件都是用C語言和C++語言寫的,引入到了軟件開發(fā)的天堂,是邢五中給了我一年的時間鍛煉C++,把C++學通,但是另外一個人把我又入了迷霧,也許不是。他說:“學完C++后,在學Borland C++”。

就去學 BorlandC++ 5.0 學那個什么OWL庫,又迷迷茫茫的走到了Borland C++ Builder的懷包中。(多年后才知道,VC)..98年12至1999年12月我就在他和其它人開的電腦公司的一個電腦培訓班教課。哈哈,學了不足八個月的電腦的我也要當老師了。不過,教初級班和中級班是不成問題的。一個月300元錢。

在這一年里上午,下午,晚上,除了教課時間外,其它的時間(時間比較多)就是我的自己的,還有一臺CPU166MH、內(nèi)存32MB、硬盤2G的工作站,這就是我的最愛。其它都是Novell無盤工作站。

其中1至7月在家里住,7月后我就住在公司了,這樣就有更多的時間。

經(jīng)過一年的時間終于把Borland C++ Builder給拿了下來。雖然不敢說精通,但已經(jīng)能進行開發(fā)了(二年后才知道,軟件開發(fā)并不是一門語言那么簡單,很多東西比語言更重要)。

我今生最難忘的一年時間,和那臺電腦。

最難忘,今生不忘記。

很不幸2000年12底離開這家電腦公司,去了另外一個新成立公司,在這里同樣是教課,更不幸在這家公司工作了6.7個月后,無可奈何。離工作而去。

在這2000年里,魯山的電腦業(yè)發(fā)展起來了,城里出生6、7家網(wǎng)吧,而我就成了網(wǎng)吧玩家中的一員。在三聯(lián)科技網(wǎng)吧,他的網(wǎng)管人很好,我告訴他們說我在你們這里辦個上機,在你們的電腦上安裝我的編程軟件BorlandC++Builder,他同意了。

就這樣第一次開始接處了網(wǎng)絡(luò),寫了個FTP、Email、Socket試驗程序,了解基本的網(wǎng)絡(luò)編程知識。

很快錢花沒有了。

如何在找不到工作,我和母親就又要去吃剩飯了。

什么時候才能,吃飽啊,睡好啊。

2000年我已經(jīng)22歲了。

我試一試從曾經(jīng)在一起學電腦的學員那里借了200元錢,沒有想到他沒有拒絕。給我母親留下了50元,可能加起來不足150元吧,這是我家唯一財產(chǎn)了(在一個月后我才知道比這個數(shù)還少,不足100元)。

于是我?guī)е硗?50元,到了平頂山市,長這么大了,還是第一次去這么遠的地方。在去之前我遇見了一位朋友,他說我去那兒,我很自豪說去平頂山,我以為他會說些什么。誰知道?..咳-----!

2000年9月份,在平頂山找到了個程序員的工作,好像平頂山只有這么一家軟件開發(fā)公司,一個500元錢。生活似乎有了起色。

2002年2月,傻乎乎的一個人跑到了心目中的圣地----中關(guān)村,又非常幸運的找到一份工作,他是新成立的一家小公司,正需要人,我的月薪要求又不高才2500元,于是就留下來。

2002年8月份,我老板家的網(wǎng)吧不在營業(yè),我用1600元買了一臺從網(wǎng)吧舊的電腦,圓了這3年的夢。電腦配置不好:CPU:賽揚0.733G,內(nèi)存:126MB、20G硬盤。但是夠我學習用了。

戰(zhàn)士手中有槍,程序員面前有電腦,十指輕彈百鍵爭鳴。

生命復(fù)活,人生開始。

每逢周末,海淀圖書城的人群中就有一個是我。這里的書真多啊,比我買的書不知道多出來多少本(?)。在這里開拓了視野,以前就知道軟件是用語言寫的,就知道C++,還有一個Delphi,其它什么都不知道。

白天在公司用Delphi開發(fā),晚上在家讀軟件開發(fā)相關(guān)的書籍,像《數(shù)據(jù)結(jié)構(gòu)》、《軟件工程》、《操作系統(tǒng)》、《數(shù)據(jù)庫原理》等。最重要的是學Win32 sdk。不知道為什么對MFC一直沒有好感,但是用MFC庫做開發(fā)的公司又那么多,這個時候才知道外面招VC和Delphi的人多。而我卻用著那個Borland C++ Builder.從2002年2月至2003年8月,一直就在家公司工作,其中想找一家好一些的公司,能學到更多的知識、更高深的編程技術(shù)和更廣闊前途,并不是全部是為了月薪, 還有就是團隊開發(fā),大家可以在一起說說笑笑。但是那些好公司的門檻太高,我這位小學生難等高雅之堂。也不給面試機會,簡歷都沒法寫。

我不怕別人要技術(shù)、悟性、創(chuàng)意、精神、創(chuàng)新、吃苦、自學能力等,就怕人家向你要學歷。

“你是那個大學畢業(yè)的?“

我怎么說:“小學生”,“沒有上過大學,是自學的”

我說不出口啊。

面對學歷我就傻了。

沒有學歷,只能是硬靠技術(shù)和知名度,還有就是個人寫成的作品,來證明自己的能力。

學歷和技術(shù)是人進入公司的第一本錢,而創(chuàng)意、創(chuàng)新、悟性、自學能力等,這是你進入公司后所展現(xiàn)出來的。

第一步都無法實現(xiàn),后面還能說?

----不能。

對,作品。

只能是作品。

一邊工作一邊學習時間太少,晚上一兩個小時和一個周末。于是在2003年7月份我做出的決定,辭去工作,帶著那臺唯

一、生命般的電腦回到了老家,把全部時間投入。

在家還能裝寬帶聯(lián)網(wǎng),網(wǎng)上的資源更多,更有益學習,網(wǎng)絡(luò)上有許多大學的視頻教程。像《東華大學、UML面向?qū)ο蠼<夹g(shù)》、吉林大學的《操作系統(tǒng)》、《數(shù)據(jù)結(jié)構(gòu)》,清華大學等優(yōu)秀課程。

不上大學,并不能證明咱不可以讀大學的書。

在這段時間學習中,自己試著設(shè)計一個介面類庫并與STL結(jié)合在一起,封裝了Windows中的標準控件Edit、Button、TreeCtrl等。控件中的字符串操作用 STL中的string類。其中CListBox和CComboBox中的項操作,采用VCL的TListBox、TcomboBox現(xiàn)個類的Strings設(shè)計思想。不是為了發(fā)布,而是為了學習。

試著設(shè)計一個類似于Access 的數(shù)據(jù)庫應(yīng)用程序,寫了很久,最后以失敗告終,這當然是必然的結(jié)果。

不過在其中了解到許多軟件架構(gòu)知識和一些問題的處理,這才是最重要的。

?..2006年七月,告別了家鄉(xiāng),第二次來到北京,開始人生的發(fā)展。

第二篇:java程序員的成長之路

Java目前是最流行的語言之一,是很多公司和程序員喜愛的一門程序語言.而且, Java的入門比C++相對來說要簡單一些, 所以有很大一部分程序員都選擇Java作為自己的開發(fā)語言.我也是其中之一, 就是因為覺得學C++太難, 當初在學校學了將近一個學期的C++, 啥進步都沒有, 哈哈, 天資太差, 所以才選擇自學Java(當時學校并沒有開設(shè)Java的課程), 才走上了程序開發(fā)這條路.Java雖然入門要容易, 然而要精通它, 要成為專家卻很難.主要原因是Java所涉及的技術(shù)面比較寬, 人的精力總是有限的.有些Java方面的技術(shù)是必須要要掌握的, 鉆研得越深入越好, 比如多線程技術(shù).1.基礎(chǔ)階段

基礎(chǔ)階段, 可能需要經(jīng)歷1-2年吧.這個時段, 應(yīng)該多寫一些基礎(chǔ)的小程序(自己動手寫的越多越好).計算機是一門實踐性很強的學科, 自己動手的東西, 記憶非常深刻, 效果要勝過讀好多書.當然, 學Java基礎(chǔ)的時候, 書籍的選擇也非常重要, 好的書籍事半功倍, 能讓你打個非常好的基礎(chǔ).而差的書籍, 很容易將你帶入歧途, 多走很多彎路.書籍不在多, 而在乎讀得精(有些書, 你讀十遍都不為過).我記得我學Java的第一本書是的中文版, 網(wǎng)上有很多人都建議不要把這本書作為第一本的入門教程來看, 太難.我卻想在此極力推薦它, 這本書確實是本經(jīng)典之作.而且書中確實講的也是Java中的一些基礎(chǔ)技術(shù), 沒有什么太難的東西, 只不過比較厚, 學習周期比較長, 所以很多人中途會選擇放棄.其實, 這本書是一本難得的入門教程, 對Java一些基礎(chǔ)的東西, 講得很全, 而且也很清晰, 更重要的是, 這本書能讓你養(yǎng)成很多好的編程習慣, 例子也很多.建議你把大部分的例子自己去實現(xiàn)一遍.我的親身經(jīng)歷, 我記得當時認真的看了2遍, 花了大概7個月的時間, 不過真的有很好的效果.另外一個教程, 就是卷一, 卷二的話可以不必要買.卷一看完, 自己再鉆研一下, 就已經(jīng)能達到卷二的高度了:).到那時, 你就會覺得看卷二沒啥意思, 感覺浪費錢了.還有一個, 就是張孝祥的Java視頻, 看視頻有個好處, 就是比看書的記憶要深刻, 還有很多你可以跟著視頻的演示同步操作.張孝祥的Java視頻對初學者來說, 確實很有作用.總結(jié)起來: 看這些資料的時候, 一定要多寫例子, 寫的越多越好!

2.中級階段

中級階段, 是一個更漫長的時期, 能否突破此階段, 跟個人的努力和天資有著很大的關(guān)系.你不得不承認, 同樣一門新技術(shù), 有些人一個月領(lǐng)悟到的東西, 比你一年的都多.這就是天資, 程序員是一個需要天才的工作.我想, 很多人聽說李一男吧, 此君就是這樣的人物, 三個月的時間就能解決好大一幫人幾年解決不了的問題, 給華為某部門帶來了很多的收益.哦, 這是題外話了, 與此篇的主題無關(guān), 只是本人偶爾的感慨而已:).這個階段, 就需要研究很多專題性的東西了, 比如: IO的實現(xiàn)原理, 多線程和Java的線程模型, 網(wǎng)絡(luò)編程, swing, RMI, reflect, EJB, JDBC等等很多很多的專題技術(shù), 鉆研得越深越好.為了更好的提高, 研究的更深入, 你需要經(jīng)常到網(wǎng)絡(luò)上搜索資料, 這個時候往往一本書起不來很大的作用.選一個JDK版本吧, 目前建議選用1.6, 多多研究它, 尤其是源

代碼(盡量!就是盡自己最大的努力, 雖然研究透是不可能滴).比如

說: util, collection, io, nio, concurrent等等包.可能有人會反對我說, 不是有API文檔嗎, 為什么還要研究這么多的源代碼? 錯了, 有API文檔, 你僅僅只是知道怎么用而已, 而認真仔細的研讀這些大牛的源碼, 你就會深入更高的一個階層, 自己的編碼, 設(shè)計都會有很大的提高.如果有能力和精力, 我建議你把JDK的每一行代碼都熟悉一遍, 絕對只有好處, 沒有壞處!而且你會有些意外的收獲, 比如, 當你仔細地讀完concurrent包的時候(不多, 好像總共是86個類吧), 你就會對Doug Lea佩服得五體投地.這個時候最忌碰到難題就去尋找?guī)椭? 去網(wǎng)上找答案!先把自己的腦袋想破吧, 或者等你的老板拿著砍刀沖過來要把你殺了, 再去尋求幫助吧.對于專題的學習, 英文原版的閱讀是非常必要的, 看的越多越好, 多上上IBM的developer, SUN的網(wǎng)站吧, 當然Javaeye也很不錯:), 有很多大牛, 呵呵.這個時候, 你應(yīng)該建立自己的代碼庫了, 你應(yīng)該自己去研究很多有意思的東西了.從一個200多M的文件中尋找一個字段, 最壞情況(在文件的末尾咯)也只需要1秒左右的時間, 你知道嗎?這個階段, 有很多很多類似的有趣的東西可以供你去研究, 你需要更多地關(guān)注性能, 規(guī)范性, 多解決一些疑難問題.需要學會所有的調(diào)試技術(shù), 運用各種性能工具, 還有JDK附帶的很多工具, 這些你都要熟練得跟屠夫操刀一樣.也可以看看

, 這本書總結(jié)的也不錯, 對寫高效穩(wěn)定的Java程序有些幫助.也可以看看模式方面的東西, 但是我建議模式不要濫用, 非得要用的時候才用, 模式往往會把問題搞復(fù)雜:).總結(jié)起來: 這個階段是一個由點延伸到面的過程, 經(jīng)過不斷的學習, 演變成全面的深入!Java技術(shù)中你沒什么盲點了, 還能解決很多性能問題和疑難問題, 你就成了一個合格的程序員了!:)[要想成為優(yōu)秀程序員, 還得對數(shù)據(jù)庫和操作系統(tǒng)很精通.]

3.高級階段

高級階段, 我就不敢妄言了.呵呵, 我感覺自己也是處于中級階段吧.也是根據(jù)自己的一些經(jīng)驗, 談?wù)勛约旱睦斫獍?

這個階段, 需要研究各種框

架, Spring, struts, Junit, Hibernate, iBatis, Jboss, Tomcat, snmp4j等等, 我覺得這個時候, 只要是用Java實現(xiàn)的經(jīng)典框架, 你都可以去研究.------在此申明一下, 我的意思不是說會用.光會用其實是遠遠不夠的, 你可以選擇自己喜歡鉆研的框架, 去好好研究一下, 興趣是最好的老師嘛.建議開始的時候, 研究Junit和Struts吧, 小一點, 里面都采用了很多的模式, 呵呵, 可以熟悉一下, 盡量想想人家為什么這么做.我建議主要的精力可以花在spring和jboss上, 尤其是jboss,經(jīng)典中的經(jīng)典, 設(shè)計, 性能, 多線程, 資源管理等等, 你從中可以學到的東西簡直是太多了.而且它還有一本寫得很好的參考書, 叫, 英文方面的資料也是非常的多.在工作中如果有機會參與架構(gòu)的設(shè)計, 業(yè)務(wù)問題的討論, 一定想方設(shè)法殺進去!這對自己的設(shè)計能力, 以及對設(shè)計如何運用在業(yè)務(wù)上有很大的幫助.畢竟, 程序都是為了更好地實現(xiàn)用戶的業(yè)務(wù)的.這個時候, 需要更多看看軟件工

程和UML方面的資料, 或者自己主持一個項目玩玩, 不一定非得出去拉項目賺錢(能賺錢當然更好), 不管成功或失敗, 都是很寶貴的經(jīng)驗, 都能提高很多!

第三篇:程序員的成長之路(最終版)

程序員的成長之路

想要學習一種技能,先要知道這個技能是什么,有什么用,尤其對于零基礎(chǔ)又想學習或者轉(zhuǎn)行做PHP程序員的朋友,更應(yīng)該對PHP學習有大致的了解,因為學編程是一件需要大量耐心去堅持才能掌握的事,雖然難度并不大,但需要日積月累的練習。不少人因好奇而學習,中途又因苦悶枯燥而放棄。半途而廢是最為可惜的,不僅是前功盡棄,而且還會對自己學習新事物的信心造成打擊,覺得自己不是學編程的料。其實,PHP在諸多編程語言中,相對而言是比較容易上手的,很適合新手學習。PHP好不好學完全取決于你這個人好不好學。出問題首先從自己身上找原因,這是程序員必備的素養(yǎng)。程序的執(zhí)行是不會錯的,bug肯定是程序員的錯誤導致的。PHP在WEB領(lǐng)域應(yīng)用最為廣泛,大多數(shù)中小網(wǎng)站都是用PHP做的。單純掌握PHP并不難,難就難在PHP程序員必須懂前端,后端,數(shù)據(jù)庫,服務(wù)器。下面我們先來看看PHP的五個學習階段,具體學習程序如下:

第一階段:掃盲。了解什么是B/S模式,原理上知道從瀏覽器輸入一個url是如何獲取到信息的流程。熟悉html,能快速地用div+css寫出靜態(tài)頁面,熟悉js,掌握jquery。在不少小公司,PHP程序員是連前端的活都一起做了的。即使公司有專職做前端的,PHP程序員也必須會看懂,能更改css,會寫基本的js效果,用jquery會大大加快工作的效率,寫出風騷的代碼。

第二階段:PHP基礎(chǔ)語法。掌握基本的語法,弄明白什么是變量、常量、數(shù)據(jù)類型、熟悉常用的函數(shù)。PHP的函數(shù)庫特別豐富,不可能全部都記住,但至少要將手冊上的常用函數(shù)都練習過幾遍,以后需要用到時才有印象。不至于自己寫了半天,才發(fā)現(xiàn)原來這個功能用一個內(nèi)置的函數(shù)就能解決。

第三階段:數(shù)據(jù)庫,WEB服務(wù)器的學習。PHP的最佳搭檔是:Mysql(數(shù)據(jù)庫),Apache(web服務(wù)器), 對于Apache,平時操作得比較少,懂得其配置即可。而Mysql則特別重要。初期懂得如何用PHP操作Mysql進行增刪改查,了解常用的Mysql優(yōu)化原則,能使用PHP+Mysql寫出簡單的留言板頁面。

第四階段:PHP深化。掌握Ajax異步傳輸,學習面向?qū)ο螅瑢W習MVC框架并掌握流行的PHP框架,如Yii框架,國內(nèi)的ThinkPHP框架,形成良好的編碼習慣。能快速用框架開發(fā)網(wǎng)站。

第五階段:大型網(wǎng)站的優(yōu)化技術(shù):如頁面靜態(tài)化,Memcached緩存技術(shù),MySql數(shù)據(jù)庫深度優(yōu)化等。

以上五個階段僅是PHP初級到中級的水平,距離高級水平(充當WEB架構(gòu)師)還有較遠的路要走。而且不是單單學一門PHP就可以無所不能,PHP不是萬能的,各種編程語言都有其優(yōu)劣點,語言本身沒有高低之差,語言只是實現(xiàn)功能的工具。如果能達到高水平(掌握多種語言,精通一兩種語言),就會發(fā)現(xiàn),語言本身并不重要,編程思想才是最重要的。源碼時代PHP教學老師有著多年的項目實戰(zhàn)及教學經(jīng)驗,對PHP有獨到的見解。由淺至深、循序漸進的安排教學,實現(xiàn)學員由零基礎(chǔ)成長為PHP大神。

第四篇:程序員之路

程序員之路

“程序員”,提起這個名稱便讓我們的腦海中閃出一長串名字:一手開創(chuàng)現(xiàn)代軟件業(yè)恐龍——Microsoft的比爾·蓋茨;現(xiàn)在中華民族軟件業(yè)之代表金山公司的掌門人——求伯君;微軟的噩夢、自由軟件的代表、Linux之父芬蘭小伙Linus Torvalds……這些在IT業(yè)內(nèi)被無數(shù)人津津樂道的名字,都是從一個小小的程序員開始做起的。隨著他們的軟件日益流行,他們的名字也逐漸為人人所推崇和尊敬。很多年輕人也以他們?yōu)榘駱樱瑝粝胫鲆幻绦騿T,最后成為新一代的IT英雄。在這里,筆者作為一個職業(yè)程序員的角度,想和大家談?wù)勛约旱母惺堋槭裁匆鲆粋€程序員

談到這個問題似乎會讓人覺得太簡單、太幼稚。看看現(xiàn)在程序員舒適的工作環(huán)境、豐厚的薪水、過著“快樂”的白領(lǐng)生活一切仿佛都不言自明。其實這是只看到了程序員的一面。我們的另一面則不為關(guān)注:沒日沒夜的工作,通宵加班是家常便飯;整天和鍵盤打交道,把自己的代碼改來改去幾十甚至上百遍,目的只是為了想抓住一個小小的Bug……這種枯燥的生活又有誰能切身體會?沒有對軟件事業(yè)本身的執(zhí)著、對源代碼近乎朝圣般的癡迷,這一切都是普通人不能忍受的。但是當你的程序完全通過了測試,成為一個合格的產(chǎn)品。這個時候的喜悅,又是如此強烈地激蕩在你胸中。也只有真正熱愛編程的人,才會感到其中真正的快樂。所以如果有人問你為什么要做一個程序員,那就告訴他你有足夠的勇氣面對每一次調(diào)試失敗、有堅定耐心和信心來寫好每一行代碼。這是我的熱愛,編程就是一種樂趣!

學編程是先學什么?

對于廣大編程初學者來說,存在著這樣普遍的認識:學習程序設(shè)計選擇編程語言很重要,開口閉口就是Visual Basic、Visual C++、Delphi、Power Builder等一些現(xiàn)在一些比較流行的開發(fā)工具。經(jīng)常看見有初學者問:我學C/C++,究竟是學Visual C++好呢,還是學Borland C++ Builder好呢?或者就是要求在Visual Basic和Delphi之間做出選擇。學習程序設(shè)計和學習程序設(shè)計語言究竟是怎么一種關(guān)系呢?初學者究竟應(yīng)該如何取舍呢?就此我們打個簡單的比方:學習程序設(shè)計就好比學習射擊,而程序設(shè)計語言就對應(yīng)射擊中的氣槍、手槍、步槍等各種槍械。學習射擊必須要選擇一種槍械,不可能沒有槍還能學好射擊的,也不可能同時學會使用所有的槍械。但是,如果掌握一種槍械的射擊,再學別的槍就觸類旁通了。因為在熟悉一種槍械的同時,也學習了射擊技術(shù)本身。再學其他的,自然事半功倍。學習程序設(shè)計也是一樣,必然要從學習一門程序設(shè)計語言開始入手。同時在學習的過程中,不但要掌握這門語言語法本身,還要學會編程的思想,這是所有程序設(shè)計語言的基礎(chǔ)。程序設(shè)計語言,是“一法通,萬法皆通”的。

建議:學習程序設(shè)計不必苛求一定要從某一種語言入手,可以在Visual Basic、Delphi、Borland C++ Builder、DOS下的Pascal、Turbo C(或Borland C)等中間選擇自己比較容易接受的一種進行學習。從中主要學習的是編程本身的思想,學習的是用程序設(shè)計的眼光來看待問題。或許,學習的效果不能馬上看到,但是可以學到扎實的基本功,而這對于將來的進一步發(fā)展是有很大好處的。這些基本功包括:

一、強化邏輯分析和建立數(shù)學模型的能力 編程的目的是什么?是要解決現(xiàn)實中的問題。而現(xiàn)實中的問題是用自然語言描述

1 的,目前的計算機對之是無法理解。我們要做的就是必須用計算機能理解的方式將之“告訴”計算機。也就需要我們對現(xiàn)實問題進行邏輯分析,建立合適的數(shù)學模型,然后以程序和數(shù)據(jù)的形式輸入計算機,讓計算機幫我們來分析解決。一個簡單的例子就是計算機對于顏色的處理辦法:用R、G、B三色分量來各表示一種顏色,對于顏色的處理被轉(zhuǎn)化為對R、G、B三個整數(shù)的處理。我們只要改變這三個整數(shù),就可以改變成為另外一種顏色。對于其他的現(xiàn)實問題,我們也要象這樣使之可以被計算機所“理解”。這是編程所要解決的第一步,否則就根本沒有程可編。這是建立在“經(jīng)驗”上的,是要在學習過程中逐步積累的。

二、數(shù)據(jù)結(jié)構(gòu)和算法知識

程序設(shè)計發(fā)展到現(xiàn)在,已經(jīng)有了一套比較普遍、完整的數(shù)學模型(我們稱之為數(shù)據(jù)結(jié)構(gòu))和對應(yīng)這些數(shù)學模型的處理方法(也就是算法)。目前的程序就是以之為基礎(chǔ)的。在程序員中間流傳著一句經(jīng)驗之談:“好的數(shù)據(jù)結(jié)構(gòu)是程序的一半。”其重要性可見一斑。作為一個程序員,如果不知道數(shù)據(jù)結(jié)構(gòu)中堆棧、隊列、鏈表、樹,不知道算法中的查找、排序、樹的遍歷、遞歸,這簡直是不可想象的。我們所說的“編程的思想”也就是具體表現(xiàn)為這兩點。所以,一般的數(shù)據(jù)結(jié)構(gòu)和算法知識是學習程序設(shè)計過程中必須掌握的,這樣在以后的程序開發(fā)過程中就可以覺得得心應(yīng)手。

三、豐富的實踐經(jīng)驗

程序設(shè)計本身就是一門實踐性很強的學科。一個只存在于紙上的程序如同沒有翅膀的鳥永遠不能飛翔在現(xiàn)實的天空。任由代碼寫得再巧妙,風格再優(yōu)美,也是一張紙上的一連串字符而已。就好比是一份作文練習,或許寫得很好,但是不交給老師去批閱,和一張白紙又有什么區(qū)別呢?在這里,程序就是作文,而計算機就是老師。只有把“作文”交給“老師”,只有從通過調(diào)試的程序中才能印證自己的構(gòu)想是否正確,或者看到有什么缺陷。當然也少不了要多和同行交流,尤其是隨著互聯(lián)網(wǎng)的普及,在網(wǎng)上我們也可以看到別人編寫的例子和源程序,作為現(xiàn)代的程序員,這也是千萬不可錯過的好機會。

最后,作為一個程序員還有一點小要求:身體素質(zhì)比較好,能熬夜才行。有規(guī)矩,成方圓

程序開發(fā)是一件靈活性很強的工作。例如:變量I增加1,在C語言里面可以有I++、++I、I+=

1、I=I+1等多種寫法。但是,這并不說明編程就可以順心所欲,天馬行空。良好的編程習慣可以提高工作效率,減少不必要的失誤。尤其是對于初學者來說更是要注意的:

第一點:編程的時候,首先要建立好的數(shù)據(jù)結(jié)構(gòu)。在前面已指出“好的數(shù)據(jù)結(jié)構(gòu)是程序的一半。”,這句經(jīng)驗之談自然有其道理所在。編程序的時候,如果在開始的時候設(shè)計錯數(shù)據(jù)結(jié)構(gòu),那么在后來不得不花大代價修改程序。筆者自己就曾有過這樣的慘痛教訓:一個程序?qū)懥?500多行,突然發(fā)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)不合理,結(jié)果全部推翻重寫。“磨刀不誤砍柴工”絕對不是老生常談。在開始寫代碼之前做好數(shù)據(jù)結(jié)構(gòu)的研究和準備工作往往可以達到事半功倍的效果。

第二點:代碼盡可能重用,盡量模塊化。無論是面向過程還是面向?qū)ο螅a重用都是基本原則之一。例如:如果要畫一個青蘋果和一個紅蘋果,就寫一個函數(shù)來畫蘋果,把顏色作為參數(shù)傳進去。這樣只要調(diào)用同一個函數(shù)傳不同參數(shù)就可以實現(xiàn)畫不同的蘋果。這樣做的好處一是程序比較容易理解,另外修改也方便,只要修改一個地方就可以讓兩個蘋果都發(fā)生改變。這點在開發(fā)一些短小程序中還感覺不出,但是在以后開發(fā)大型程序的時候,工作的效率就明顯提高不少。這就是

2 聰明人做聰明事,以最小的代價取得最大的收獲。

第三點:良好的編寫風格。一個程序,不可能是絕對完美,以后永不用修改的。既然要修改,就必然要重讀和理解原來的代碼。而良好的編程風格,可以使人更方便和迅速理解程序的結(jié)構(gòu),從而可以最大限度地提高修改的效率。在這里,筆者舉出一些比較好編程的風格要求:1.統(tǒng)一有意義的命名規(guī)范:一個變量叫nCount明顯比叫iii更容易被理解其真實邏輯含義和數(shù)據(jù)類型。所以不要怕麻煩,變量和函數(shù)名多起幾個字母,有意義一點,將來理解起來比較方便。2.代碼的逐層縮進格式。這幾乎已經(jīng)成為一種標準,這種格式使得代碼之間的層次關(guān)系非常明顯,對于程序的邏輯理解有很大的幫助。3.代碼位置的有條理性。把相關(guān)功能的代碼集中起來,放在一起,這樣在以后閱讀代碼的時候,可以盡量避免在不同文件模塊之間頻繁切換。函數(shù)內(nèi)部的邏輯不要太復(fù)雜,代碼行數(shù)不要太長:由于要考慮到以后的理解,所以函數(shù)內(nèi)部的邏輯不要寫得很復(fù)雜,例如循環(huán)嵌套以三層為宜,代碼行數(shù)以一屏左右為好,太長的代碼不利于理解。如果循環(huán)的確多、代碼的確長,就應(yīng)該考慮重新再劃分為更細的子函數(shù)。好的編程風格當然不止這些,這也需要在學習過程中慢慢體會。

第四點:注重程序測試,注意異常處理。這是業(yè)余編程愛好者和職業(yè)程序員的一個很明顯的差別。業(yè)余編程愛好者往往只注重程序可以正常運行,而職業(yè)程序員除此之外還必須關(guān)注程序在異常情況下也必須正常運行,至少可以正常終止。而這是建立在對程序進行充分測試的基礎(chǔ)上的。多用不同情況去測試自己的程序,可以發(fā)現(xiàn)更多的隱藏的Bug,從而提高自己程序的質(zhì)量。

千里之行始于足下。做程序員也是這樣,這世上不僅沒有平坦大道,還有更多的曲折和困難。但是只要真心熱愛軟件開發(fā),愿意為之而付出,最后勝利的金蘋果必將使你體會到個中樂趣。來吧,還猶豫什么,踏上這條程序員之路,昂首向前走吧!

第五篇:北風網(wǎng)談PHP程序員成長之路

北風教育談PHP程序員成長之路

“投之以桃,報之以李”一直以來都是北風教育秉承的授人以漁的美德。今天北風教育結(jié)合前人的經(jīng)驗,整理出作為PHP程序員的三個階段的成長路線,希望能對您的程序員之路提供有用的指導:

開始階段:基礎(chǔ)階段(基礎(chǔ)PHP程序員)

重點:把LNMP搞熟練(核心是安裝配置基本操作)

目標:能夠完成基本的LNMP系統(tǒng)安裝,簡單配置維護;能夠做基本的簡單系統(tǒng)的PHP開發(fā);能夠在PHP中型系統(tǒng)中支持某個PHP功能模塊的開發(fā)。

時間:完成本階段的時間因人而異,有的成長快半年一年就過了,成長慢的兩三年也有。

1.Linux 基本命令、操作、啟動、基本服務(wù)配置(包括rpm安裝文件,各種服務(wù)配置等);會寫簡單的shell腳本和awk/sed 腳本命令等。2.Nginx 做到能夠安裝配置nginx+php,知道基本的nginx核心配置選項,知道

server/fastcgi_pass/access_log 等基礎(chǔ)配置,目標是能夠讓nginx+php_fpm順利工作。3.MySQL 會自己搭建mysql,知道基本的mysql配置選項;知道innodb和myisam的區(qū)別,知道針對InnoDB和MyISAM兩個引擎的不同配置選項;知道基本的兩個引擎的差異和選擇上面的區(qū)別;能夠純手工編譯搭建一個MySQL數(shù)據(jù)庫并且配置好編碼等正常穩(wěn)定運行;核心主旨是能夠搭建一個可運行的MySQL數(shù)據(jù)庫。4.PHP 基本語法數(shù)組、字符串、數(shù)據(jù)庫、XML、Socket、GD/ImageMgk圖片處理等等;熟悉各種跟MySQL操作鏈接的api(mysql/mysqli/PDO),知道各種編碼問題的解決;知道常規(guī)熟練使用的PHP框架(ThinkPHP、Zendframework、Yii、Yaf等);了解基本MVC的運行機制和為什么這么做,稍微知道不同的PHP框架之間的區(qū)別;能夠快速學習一個MVC框架。能夠知道開發(fā)工程中的文件目錄組織,有基本的良好的代碼結(jié)構(gòu)和風格,能夠完成小系統(tǒng)的開發(fā)和中型系統(tǒng)中某個模塊的開發(fā)工作。5.前端

如果條件時間允許,可以適當學習下 HTML/CSS/JS 等相關(guān)知識,知道什么web標準,div+css的web/wap頁面模式,知道HTML5和HTML4的區(qū)別;了解一些基本的前端只是和JS框架(jQuery之類的);了解一些基本的JavaScript編程知識;(本項不是必須項,如果有時間,稍微了解一下是可以的,不過不建議作為重點,除非個人有強烈興趣)。6.系統(tǒng)設(shè)計

能夠完成小型系統(tǒng)的基本設(shè)計,包括簡單的數(shù)據(jù)庫設(shè)計,能夠完成基本的:瀏覽器-> Nginx+PHP-> 數(shù)據(jù)庫 架構(gòu)的設(shè)計開發(fā)工作;能夠支撐每天幾十萬到數(shù)百萬流量網(wǎng)站的開發(fā)維護工作;

第二階段:提高階段(中級PHP程序員)

重點:提高針對LNMP的技能,能夠更全面的對LNMP有熟練的應(yīng)用。

目標:能夠隨時隨地搭建好LNMP環(huán)境,快速完成常規(guī)配置;能夠追查解決大部分遇到的開發(fā)和線上環(huán)境的問題;能夠獨立承擔中型系統(tǒng)的構(gòu)架和開發(fā)工作;能夠在大型系統(tǒng)中承擔某個中型模塊的開發(fā)工作。1.Linux 在開始階段的基礎(chǔ)上面,能夠流暢的使用Shell腳本來完成很多自動化的工作;awk/sed/perl 也操作的不錯,能夠完成很多文本處理和數(shù)據(jù)統(tǒng)計等工作;基本能夠安裝大部分非特殊的Linux程序(包括各種庫、包、第三方依賴等等,比如MongoDB/Redis/Sphinx/Luncene/SVN之類的);了解基本的Linux服務(wù),知道如何查看Linux的性能指標數(shù)據(jù),知道基本的Linux下面的問題跟蹤等。2.Nginx 在開始階段的基礎(chǔ)上面,了解復(fù)雜一些的Nginx配置;包括 多核配置、events、proxy_pass,sendfile/tcp_*配置,知道超時等相關(guān)配置和性能影響;知道nginx除了web server,還能夠承擔代理服務(wù)器、反向靜態(tài)服務(wù)器等配置;知道基本的nginx配置調(diào)優(yōu);知道如何配置權(quán)限、編譯一個nginx擴展到nginx;知道基本的nginx運行原理(master/worker機制,epoll),知道為什么nginx性能比apache性能好等知識。3.MySQL/MongoDB 在開始階段的基礎(chǔ)上面,在MySQL開發(fā)方面,掌握很多小技巧,包括常規(guī)SQL優(yōu)化(group by/order by/rand優(yōu)化等);除了能夠搭建MySQL,還能夠冷熱備份MySQL數(shù)據(jù),還知道影響innodb/myisam性能的配置選項(比如key_buffer/query_cache/sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit等),也知道這些選項配置成為多少值合適;另外也了解一些特殊的配置選項,比如

知道如何搭建mysql主從同步的環(huán)境,知道各個binlog_format的區(qū)別;知道MySQL的性能追查,包括slow_log/explain等,還能夠知道基本的索引建立處理等知識;原理方面了解基本的MySQL的架構(gòu)(Server+存儲引擎),知道基本的InnoDB/MyISAM索引存儲結(jié)構(gòu)和不同(聚簇索引,B樹);知道基本的InnoDB事務(wù)處理機制;了解大部分MySQL異常情況的處理方案(或者知道哪兒找到處理方案)。條件允許的情況,建議了解一下NoSQL的代表MongoDB數(shù)據(jù)庫,順便對比跟MySQL的差別,同事能夠在合適的應(yīng)用場景安全謹慎的使用MongoDB,知道基本的PHP與MongoDB的結(jié)合開發(fā)。4.Redis/Memcached 在大部分中型系統(tǒng)里面一定會涉及到緩存處理,所以一定要了解基本的緩存;知道Memcached和Redis的異同和應(yīng)用場景,能夠獨立安裝 Redis/Memcached,了解Memcahed的一些基本特性和限制,比如最大的value值,知道PHP跟他們的使用結(jié)合;Redis了解基本工作原理和使用,了解常規(guī)的數(shù)據(jù)類型,知道什么場景應(yīng)用什么類型,了解Redis的事務(wù)等等。原理部分,能夠大概了解Memcached的內(nèi)存結(jié)構(gòu)(slab機制),redis就了解常用數(shù)據(jù)類型底層實現(xiàn)存儲結(jié)構(gòu)(SDS/鏈表/SkipList/HashTable)等等,順便了解一下Redis的事務(wù)、RDB、AOF等機制更好。5.PHP 除了開始階段的能力,安裝配置方面能夠隨意安裝PHP和各種第三方擴展的編譯安裝配置;了解php-fpm的大部分配置選項和含義(如max_requests/max_children/request_terminate_timeout之類的影響性能的配置),知道m(xù)od_php/fastcgi的區(qū)別;在PHP方面已經(jīng)能夠熟練各種基礎(chǔ)技術(shù),還包括各種深入些的PHP,包括對PHP面向?qū)ο蟮纳钊肜斫?SPL/語法層面的特殊特性比如反射之類的;在框架方面已經(jīng)閱讀過最少一個以上常規(guī)PHP MVC框架的代碼了,知道基本PHP框架內(nèi)部實現(xiàn)機制和設(shè)計思想;在PHP開發(fā)中已經(jīng)能夠熟練使用常規(guī)的設(shè)計模式來應(yīng)用開發(fā)(抽象工廠/單例/觀察者/命令鏈/策略/適配器 等模式);建議開發(fā)自己的PHP MVC框架來充分讓開發(fā)自由化,讓自己深入理解MVC模式,也讓自己能夠在業(yè)務(wù)項目開發(fā)里快速升級;熟悉PHP的各種代碼優(yōu)化方法,熟悉大部分PHP安全方面問題的解決處理;熟悉基本的PHP執(zhí)行的機制原理(Zend引擎/擴展基本工作機制)。6.C/C++ 開始涉獵一定的C/C++語言,能夠?qū)懟镜腃/C++代碼,對基本的C/C++語法熟悉(指針、數(shù)組操作、字符串、常規(guī)標準API)和數(shù)據(jù)結(jié)構(gòu)(鏈表、樹、哈希、隊列)有一定的熟悉下;對Linux下面的C語言開發(fā)有基本的了解概念,會簡單的makefile文件編寫,能夠使用簡單的GCC/GDB的程序編譯簡單調(diào)試工作;對基本的網(wǎng)絡(luò)編程有大概了解。(本項是為了向更高層次打下基礎(chǔ))。7.前端

在開始階段的基礎(chǔ)上面,熟悉基本的HTTP協(xié)議(協(xié)議代碼200/300/400/500,基本的HTTP交互頭);條件允許,可以在深入寫出稍微優(yōu)雅的HTML+CSS+JavaScript,或者能夠大致簡單使用某些前端框架(jQuery/YUI/ExtJS/RequireJS/BootStrap之類);如果條件允許,可以深入學習JavaScript編程,比如閉包機制、DOM處理;再深入些可以讀讀jQuery源碼做深入學習。(本項不做重點學習,除非對前端有興趣)。8.系統(tǒng)設(shè)計

能夠設(shè)計大部分中型系統(tǒng)的網(wǎng)站架構(gòu)、數(shù)據(jù)庫、基本PHP框架選型;性能測試排查處理等;能夠完成類似:瀏覽器-> CDN(Squid)-> Nginx+PHP-> 緩存-> 數(shù)據(jù)庫 結(jié)構(gòu)網(wǎng)站的基本設(shè)計開發(fā)維護;能夠支撐每天數(shù)百萬到千萬流量基本網(wǎng)站的開發(fā)維護工作。

第三階段:高級階段(高級PHP程序員)

重點:除了基本的LNMP程序,還能夠在某個方向或領(lǐng)域有深入學習。(縱深維度發(fā)展)目標:除了能夠完成基本的PHP業(yè)務(wù)開發(fā),還能夠解決大部分深入復(fù)雜的技術(shù)問題,并且可以獨立設(shè)計完成中大型的系統(tǒng)設(shè)計和開發(fā)工作;自己能夠獨立hold深入某個技術(shù)方向,在這塊比較專業(yè)。(比如在MySQL、Nginx、PHP、Redis等等任一方向深入研究)1.Linux 除了第二階段的能力,在Linux下面除了常規(guī)的操作和性能監(jiān)控跟蹤,還能夠使用很多高級復(fù)雜的命令完成工作(watch/tcpdump/starce/ldd/ar等);在shell腳本方面,已經(jīng)能夠編寫比較復(fù)雜的shell腳本(超過500行)來協(xié)助完成很多包括備份、自動化處理、監(jiān)控等工作的shell;對awk/sed/perl 等應(yīng)用已經(jīng)如火純青,能夠隨意操作控制處理文本統(tǒng)計分析各種復(fù)雜格式的數(shù)據(jù);對Linux內(nèi)部機制有一些了解,對內(nèi)核模塊加載,啟動錯誤處理等等有個基本的處理;同時對一些其他相關(guān)的東西也了解,比如NFS、磁盤管理等等; 2.Nginx 在第二階段的基礎(chǔ)上面,已經(jīng)能夠把Nginx操作的很熟練,能夠?qū)ginx進行更深入的運維工作,比如監(jiān)控、性能優(yōu)化,復(fù)雜問題處理等等;看個人興趣,更多方面可以考慮側(cè)重在關(guān)于Nginx工作原理部分的深入學習,主要表現(xiàn)在閱讀源碼開始,比如具體的master/worker工作機制,Nginx內(nèi)部的事件處理,內(nèi)存管理等等;同時可以學習Nginx擴展的開發(fā),可以定制一些自己私有的擴展;同時可以對Nginx+Lua有一定程度的了解,看看是否可以結(jié)合應(yīng)用出更好模式;這個階段的要求是對Nginx原理的深入理解,可以考慮成為Nginx方向的深入專業(yè)者。

3.MySQL/MongoDB 在第二階段的基礎(chǔ)上面,在MySQL應(yīng)用方面,除了之前的基本SQL優(yōu)化,還能夠在完成一些復(fù)雜操作,比如大批量數(shù)據(jù)的導入導出,線上大批量數(shù)據(jù)的更改表結(jié)構(gòu)或者增刪索引字段等等高危操作;除了安裝配置,已經(jīng)能夠處理更多復(fù)雜的MySQL的問題,比如各種問題的追查,主從同步延遲問題的解決、跨機房同步數(shù)據(jù)方案、MySQL高可用架構(gòu)等都有涉及了解;對MySQL應(yīng)用層面,對MySQL的核心關(guān)鍵技術(shù)比較熟悉,比如事務(wù)機制(隔離級別、鎖等)、對觸發(fā)器、分區(qū)等技術(shù)有一定了解和應(yīng)用;對MySQL性能方面,有包括磁盤優(yōu)化(SAS遷移到SSD)、服務(wù)器優(yōu)化(內(nèi)存、服務(wù)器本身配置)、除了二階段的其他核心性能優(yōu)化選項(innodb_log_buffer_size/back_log/table_open_cache/thread_cache_size/innodb_lock_wait_timeout等)、連接池軟件選擇應(yīng)用,對show *(show status/show profile)類的操作語句有深入了解,能夠完成大部分的性能問題追查;MySQL備份技術(shù)的深入熟悉,包括災(zāi)備還原、對Binlog的深入理解,冷熱備份,多IDC備份等;在MySQL原理方面,有更多了解,比如對MySQL的工作機制開始閱讀部分源碼,比如對主從同步(復(fù)制)技術(shù)的源碼學習,或者對某個存儲引擎(MyISAM/Innodb/TokuDB)等等的源碼學習理解,如果條件允許,可以參考CSV引擎開發(fā)自己簡單的存儲引擎來保存一些數(shù)據(jù),增強對MySQL的理解;在這個過程,如果自己有興趣,也可以考慮往DBA方向發(fā)展。MongoDB層面,可以考慮比如說在寫少讀多的情況開始在線上應(yīng)用MongoDB,或者是做一些線上的數(shù)據(jù)分析處理的操作,具體場景可以按照工作來,不過核心是要更好的深入理解RMDBS和NoSQL的不同場景下面的應(yīng)用,如果條件或者興趣允許,可以開始深入學習一下MongoDB的工作機制。4.Redis/Memcached 在第二階段的基礎(chǔ)上面,能夠更深入的應(yīng)用和學習。因為Memcached不是特別復(fù)雜,建議可以把源碼進行閱讀,特別是內(nèi)存管理部分,方便深入理解;Redis部分,可以多做一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的應(yīng)用(zset來做排行榜排序操作/事務(wù)處理用來保證原子性在秒殺類場景應(yīng)用之類的使用操作);多涉及aof等同步機制的學習應(yīng)用,設(shè)計一個高可用的Redis應(yīng)用架構(gòu)和集群;建議可以深入的學習一下Redis的源碼,把在第二階段積累的知識都可以應(yīng)用上,特別可以閱讀一下包括核心事件管理、內(nèi)存管理、內(nèi)部核心數(shù)據(jù)結(jié)構(gòu)等充分學習了解一下。如果興趣允許,可以成為一個Redis方面非常專業(yè)的使用者。5.PHP 作為基礎(chǔ)核心技能,我們在第二階段的基礎(chǔ)上面,需要有更深入的學習和應(yīng)用。從基本代碼應(yīng)用上面來說,能夠解決在PHP開發(fā)中遇到95%的問題,了解大部分PHP的技巧;對大部分的PHP框架能夠迅速在一天內(nèi)上手使用,并且了解各個主流PHP框架的優(yōu)缺點,能夠迅速方便項目開發(fā)中做技術(shù)選型;在配置方面,除了常規(guī)第二階段會的知識,會了解一些比較偏門的配置選項(php auto_prepend_file/auto_append_file),包括擴展中的一些復(fù)雜高級配置和原理(比如memcached擴展配置中的memcache.hash_strategy、apc擴展配置中的apc.mmap_file_mask/apc.slam_defense/apc.file_update_protection之類的);對php的工作機制比較了解,包括php-fpm工作機制(比如php-fpm在不同配置機器下面開啟進程數(shù)量計算以及原理),對zend引擎有基本熟悉(vm/gc/stream處理),閱讀過基本的PHP內(nèi)核源碼(或者閱讀過相關(guān)文章),對PHP內(nèi)部機制的大部分核心數(shù)據(jù)結(jié)構(gòu)(基礎(chǔ)類型/Array/Object)實現(xiàn)有了解,對于核心基礎(chǔ)結(jié)構(gòu)(zval/hashtable/gc)有深入學習了解;能夠進行基本的PHP擴展開發(fā),了解一些擴展開發(fā)的中高級知識(minit/rinit等),熟悉php跟apache/nginx不同的通信交互方式細節(jié)(mod_php/fastcgi);除了開發(fā)PHP擴展,可以考慮學習開發(fā)Zend擴展,從更底層去了解PHP。6.C/C++ 在第二階段基礎(chǔ)上面,能夠在C/C++語言方面有更深入的學習了解,能夠完成中小型C/C++系統(tǒng)的開發(fā)工作;除了基本第二階段的基礎(chǔ)C/C++語法和數(shù)據(jù)結(jié)構(gòu),也能夠?qū)W習一些特殊數(shù)據(jù)結(jié)構(gòu)(b-tree/rb-tree/skiplist/lsm-tree/trie-tree等)方便在特殊工作中需求;在系統(tǒng)編程方面,熟悉多進程、多線程編程;多進程情況下面了解大部分多進程之間的通信方式,能夠靈活選擇通信方式(共享內(nèi)存/信號量/管道等);多線程編程能夠良好的解決鎖沖突問題,并且能夠進行多線程程序的開發(fā)調(diào)試工作;同時對網(wǎng)絡(luò)編程比較熟悉,了解多進程模型/多線程模型/異步網(wǎng)絡(luò)IO模型的差別和選型,熟悉不同異步網(wǎng)絡(luò)IO模型的原理和差異(select/poll/epoll/iocp等),并且熟悉常見的異步框架(ACE/ICE/libev/libevent/libuv/Boost.ASIO等)和使用,如果閑暇也可以看看一些國產(chǎn)自己開發(fā)的庫(比如muduo);同時能夠設(shè)計好的高并發(fā)程序架構(gòu)(leader-follow/master-worker等);了解大部分C/C++后端Server開發(fā)中的問題(內(nèi)存管理、日志打印、高并發(fā)、前后端通信協(xié)議、服務(wù)監(jiān)控),知道各個后端服務(wù)RPC通信問題(struct/http/thirft/protobuf等);能夠更熟絡(luò)的使用GCC和GDB來開發(fā)編譯調(diào)試程序,在線上程序core掉后能夠迅速追查跟蹤解決問題;通用模塊開發(fā)方面,可以積累或者開發(fā)一些通用的工具或庫(比如異步網(wǎng)絡(luò)框架、日志庫、內(nèi)存池、線程池等),不過開發(fā)后是否應(yīng)用要謹慎,省的埋坑去追bug。7.前端

深入了解HTTP協(xié)議(包括各個細致協(xié)議特殊協(xié)議代碼和背后原因,比如302靜態(tài)文件緩存了,502是nginx后面php掛了之類的);除了之前的前端方面的各種框架應(yīng)用整合能力,前端方面的學習如果有興趣可以更深入,表現(xiàn)形式是,可以自己開發(fā)一些類似jQuery的前端框架,或者開發(fā)一個富文本編輯器之類的比較瑣碎考驗JavaScript功力。8.其他領(lǐng)域語言學習

在基礎(chǔ)的PHP/C/C++語言方面有基本積累,建議在當前階段可以嘗試學習不同的編程語言,看個人興趣愛好,腳本類語言可以學學 Python/Ruby 之類的,函數(shù)式編程語言可以試試 Lisp/Haskell/Scala/Erlang 之類的,靜態(tài)語言可以試試 Java/Golang,數(shù)據(jù)統(tǒng)計分析可以了解了解R語言,如果想換個視角做后端業(yè)務(wù),可以試試 Node.js還有前面提到的跟Nginx結(jié)合的Nginx_Lua等。學習不同的語言主要是提升自己的視野和解決問題手段的差異,比如會了解除了進程/線程,還有輕量級協(xié)程;比如在跨機器通信場景下面,Erlang的解決方案簡單的驚人;比如在不想選擇C/C++的情況下,還有類似高效的Erlang/Golang可用等等;主要是提升視野。

9.其他專業(yè)方向?qū)W習

在本階段里面,會除了基本的LNMP技能之外,會考慮一些其他領(lǐng)域知識的學習,這些都是可以的,看個人興趣和長期的目標方向。目前情況能夠選擇的領(lǐng)域比較多,比如、云計算(分布式存儲、分布式計算、虛擬機等),機器學習(數(shù)據(jù)挖掘、模式識別等,應(yīng)用到統(tǒng)計、個性化推薦),自然語言處理(中文分詞等),搜索引擎技術(shù)、圖形圖像、語音識別等等。除了這些高大上的,也有很多偏工程方面可以學習的地方,比如高性能系統(tǒng)、移動開發(fā)(Android/IOS)、計算機安全、嵌入式系統(tǒng)、硬件等方向。10.系統(tǒng)設(shè)計

系統(tǒng)設(shè)計在第二階段的基礎(chǔ)之上,能夠應(yīng)用掌握的經(jīng)驗技能,設(shè)計出比較復(fù)雜的中大型系統(tǒng),能夠解決大部分線上的各種復(fù)雜系統(tǒng)的問題,完成類似 瀏覽器-> CDN-> 負載均衡->接入層-> Nginx+PHP-> 業(yè)務(wù)緩存-> 數(shù)據(jù)庫-> 各路復(fù)雜后端RPC交互(存儲后端、邏輯后端、反作弊后端、外部服務(wù))-> 更多后端 醬紫的復(fù)雜業(yè)務(wù);能夠支撐每天數(shù)千萬到數(shù)億流量網(wǎng)站的正常開發(fā)維護工作。

下載一位小學文化的程序員成長之路word格式文檔
下載一位小學文化的程序員成長之路.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    JAVA程序員之路(★)

    怎么學好java JAVA程序員之路 很多網(wǎng)友問我學習Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學習的一些經(jīng)驗寫出來,以便后來者少走彎路,幫助別人是最大的......

    java程序員之路

    很多網(wǎng)友問我學習Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學習的一些經(jīng)驗寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛! 要想學好Java,首先要知......

    JAVA程序員之路

    JAVA程序員之路很多網(wǎng)友問我學習Java有沒有什么捷徑,我說“無他,唯手熟爾”。但是我卻很愿意將自己學習的一些經(jīng)驗寫出來,以便后來者少走彎路,幫助別人是最大的快樂嘛! 要想學......

    JAVA程序員之路

    JAVA程序員之路 Java發(fā)展到現(xiàn)在,按應(yīng)用來分主要分為三大塊:J2SE,J2ME和J2EE,這也就是Sun ONE(Open Net Environment)體系。J2SE就是Java2的標準版,主要用于桌面應(yīng)用軟件的編程;J......

    java程序員之路

    JAVA程序員之路- - 每個人的學習方法是不同的,一個人的方法不見得適合另一個人,我只能是談自己的學習方法。因為我學習Java是完全自學的,從來沒有問過別人,所以學習的過程基本......

    -動力節(jié)點=java程序員菜鳥的成長之路

    筑基階段: 1.敲代碼速度要快,要求手指靈活,盡量減少輸入出錯。這個是基本功,不然何以達到一定的代碼量。 2.精通幾個常用的代碼編輯工具。(注意,這里說的是編輯工具,除了常用的ec......

    成長之路.doc

    成長之路 回收大學生活,看到了大學的變化,學員隊的建設(shè),同學的成長和自身的進步。 首先,讓我從訓練角度介紹一下我的成長。大一的場景時常浮現(xiàn)在我的眼前,每每到下午體能訓練的時......

    成長之路

    成長之路,真心相伴 在成長的路上我們已經(jīng)羽翼豐滿。 人的每一步都在書寫自己的歷史。長大了,一種成長的喜悅陪我度過精彩的每一分、每一秒。但煩惱也會讓我感到生活之艱辛,學習......

主站蜘蛛池模板: 少妇精品无码一区二区三区| 337p日本欧洲亚洲大胆精品| 蜜臀aⅴ国产精品久久久国产老师| 国产情侣疯狂作爱系列| 亚洲日韩中文字幕无码一区| 欧美一区内射最近更新| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交| 少妇性l交大片欧洲热妇乱xxx| 精品国产片一区二区三区| 亚洲精品无码久久久久av老牛| 亚洲日本一区二区三区在线| 亚洲精品尤物av在线观看任我爽| 精品无码人妻一区二区三区不卡| 中字幕人妻一区二区三区| 狠狠色噜噜狠狠狠狠色综合久| 自偷自拍亚洲综合精品第一页| 成人无码在线视频区| av人摸人人人澡人人超碰小说| 国产美女精品自在线拍免费| 亚洲日韩精品无码专区网站| 亚洲熟女www一区二区三区| 亚洲日韩欧美在线观看一区二区三区| 98国产精品综合一区二区三区| 国产成人免费爽爽爽视频| 国内精品久久久久久无码不卡| 国产欠欠欠18一区二区| 精品一区二区av天堂| 中文字幕日本最新乱码视频| 亚洲国产精品尤物yw在线| 国产av一区二区精品凹凸| 午夜一区二区亚洲福利| 国内精品少妇在线播放| 精品国精品国产自在久国产87| 一区二区三区四区产品乱码在线观看| 性欧美视频videos6一9| 撕开奶罩揉吮奶头高潮av| 国产手机在线无码播放视频| 欧美z0zo人禽交欧美人禽交| 国产成人免费无码视频在线观看| 中文无码一区二区视频在线播放量| 人人妻人人藻人人爽欧美一区|