自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何從菜鳥程序員成長為(偽)高手

新聞
最近有一些畢業(yè)不久的同事問我:“你工作的時候有沒有什么竅門?怎么才能快速成為高手?”

[[325804]]

1.摘要

最近有一些畢業(yè)不久的同事問我:“你工作的時候有沒有什么竅門?怎么才能快速成為高手?”

想起當(dāng)初剛?cè)肼?,新人培?xùn)的時候,也跟其他同事討論過這個問題:如何才能成為業(yè)界大牛?當(dāng)時自己只是覺得興趣是最好的老師,思路方法什么的沒有多想。

加入微博平臺架構(gòu)部的時間也不短了,趁著快過春節(jié)總結(jié)了一下自己入職微博以來的工作情況,從互聯(lián)網(wǎng)開發(fā)的半個門外漢,到如今能設(shè)計(jì)一些架構(gòu)、排查一些問題、分享一些經(jīng)驗(yàn),收獲頗多,感想頗多,也逐漸意識到思路和方法的重要性,在此跟大家分享一下。主要分為學(xué)、做、想三方面。

2.學(xué)會學(xué)習(xí)

學(xué)習(xí)無疑是程序員最為重要的素質(zhì)之一,尤其是互聯(lián)網(wǎng)這種日新月異的行業(yè),把學(xué)習(xí)當(dāng)做工作的一大半也不為過。

2.1.自主學(xué)習(xí)

最近發(fā)現(xiàn)身邊的人并不是不想學(xué)習(xí),只是每天都在糾結(jié)自己到底學(xué)什么好:簡單的沒挑戰(zhàn),復(fù)雜的看不懂;舊技術(shù)怕過時,新技術(shù)沒方向……

講講自己畢業(yè)后的經(jīng)歷,畢業(yè)之后去了個不大不小的公司,沒什么挑戰(zhàn),也用不上什么技術(shù)。工作穩(wěn)定了幾年,業(yè)余時間事情做,于是之后一年的時間里,用上班摸魚和下班休息的時間學(xué)了這些東西:

閑著無聊想做個小游戲,發(fā)現(xiàn)游戲相關(guān)的書大多是英文的,看不懂,一咬牙翻譯了《Real-time rending 3rd》的前幾章,剛開始前言都看不懂,只能一個詞一個詞的翻字典,一句話要琢磨幾個鐘頭到底作者說的到底是什么意思。翻譯了幾百頁英文書之后,發(fā)現(xiàn)自己看英文書沒什么障礙了,于是開始每天用休息和摸魚的時間看書。

看完游戲引擎的書之后,把irrlicht引擎的代碼看了一遍,然后自己山寨了一個3d渲染的場景管理器,還有個樸素的渲染引擎。

給自己的游戲引擎寫了個基于腳本語言的解釋器,為此看了不少編譯原理和虛擬機(jī)的書,了解了程序究竟是什么東西,這是我覺得收益很大的一件事情??淳幾g原理的書的時候發(fā)現(xiàn)操作系統(tǒng)的知識有些欠缺,又去看了linux內(nèi)核相關(guān)的書。

看完操作系統(tǒng)又順著看網(wǎng)絡(luò)相關(guān)的書,之后把lighthttpd的代碼看了一遍,用c寫了個linux下的http服務(wù)器,把幾種網(wǎng)絡(luò)編程模型挨個實(shí)現(xiàn)了一遍。

實(shí)現(xiàn)http服務(wù)器的過程中覺得自己編碼能力還是有欠缺,把代碼大全翻了一遍,順著又去看了設(shè)計(jì)模式的書,并且用自己的理解把每個模式用文字重新描述了一遍。

 

中間還看了很多語言和框架相關(guān)的書,就不一一列舉了。可以參考這里。

我把學(xué)習(xí)的方向分為三類:

為了工作,滿足當(dāng)前工作所必備的知識

為了提升,與當(dāng)前工作相關(guān)的知識(深度)

拓展視野,與當(dāng)前工作無關(guān)的知識(廣度)

學(xué)習(xí)(1)之后只是個熟練工,2和3才是提升自己的途徑,伴隨著知識儲備的提升,接觸新事物時更容易找到相似的知識加以類比,加快理解,也更容易掌握本質(zhì)。如果每天都在糾結(jié)“到底學(xué)什么”,那么只能說明還是學(xué)的太少了。(真正沒什么可學(xué)的大牛們應(yīng)該不會讀到這里吧……)

所以,如果覺著沒什么東西可以學(xué)的時候,那么可以考慮一下學(xué)一下更有深度的知識(比如虛擬機(jī)或編譯器),或者完全不同的知識(新的語言或當(dāng)前比較火的方向),甚至完全不相干的知識(單純練習(xí)英文閱讀,學(xué)習(xí)ppt排版之類)吧。隨著知識儲備增加,自己的不足和未來的學(xué)習(xí)的方向也會更加明確起來。

 

2.2向他人學(xué)習(xí)

這里有兩個極端,

有的人喜歡自己悶頭搗鼓,什么也不問,這必然是不利于自己提高的;

也有人碰到問題就問,這也有問題,浪費(fèi)他人時間不說,更關(guān)鍵的是說明這人向他人學(xué)習(xí)的思路錯了,要學(xué)習(xí)他人的并不是具體某個知識(要學(xué)知識看書就能解決了),而是學(xué)習(xí)別人的思維方式。

但是思維方式這種東西很難通過交流的方式學(xué)到,后來我發(fā)現(xiàn)有個很簡單的學(xué)習(xí)方式:口頭禪。舉幾個例子,大家體會一下:

“這個其實(shí)是兩個問題”

“有沒有更好的方案”

“能不能舉個例子”

“能不能給個一句話總結(jié)”

除了口頭禪,很多牛人都會有非常鮮明的思維方式和處事原則,如果有幸與業(yè)界的大牛共事,那么恭喜你,只要多交流、多觀察、多思考,那么提升速度會提升好幾個數(shù)量級。

3.多做有意義的事情

有的人每天時間浪費(fèi)在跟問題本身無關(guān)的事情上,比如我要設(shè)計(jì)架構(gòu)的時候還要考慮架構(gòu)圖怎么畫,寫完代碼還要反復(fù)部署測試好幾輪才pass,查bug的時候把時間浪費(fèi)在掃日志上。人的精力總是有限的,把時間浪費(fèi)在這些事情上面,讓自己提高的時間就變得少了。

3.1.練習(xí),更多的練習(xí)

這里有個誤區(qū):“做有意義的事情”不等于“只做自己沒做過的事情”。對于程序員來說,寫代碼是基本功中的基本功,編碼的規(guī)范、設(shè)計(jì)的權(quán)衡、甚至順手的IDE快捷鍵都要靠平日的試錯和積累,很難通過幾本書或者幾天培訓(xùn)領(lǐng)悟到。

曾經(jīng)目睹一些人寫代碼一年之后開始做一些小項(xiàng)目的設(shè)計(jì),然后就迫不及待的把重心全都轉(zhuǎn)移到設(shè)計(jì)甚至架構(gòu)上,這種沒有基礎(chǔ)能力支撐做出的設(shè)計(jì)和架構(gòu)最多只能算是高級意淫,大多沒等落地就荒廢了,意義不大。究其原因,大多是設(shè)計(jì)出來的東西“不好做”或者“不好用”,就像是只看過一遍課本就去參加高數(shù)考試,現(xiàn)實(shí)嗎?(學(xué)霸們我錯了……)

 

3.2.提高時間的利用率

時間是所有期待提升自己的人最寶貴的資源,效率再高,沒時間做也沒意義。

網(wǎng)上有個流傳挺廣的圖:打擾程序員的成本。事實(shí)上我每天的工作時間非常碎片化,來到公司之后可能不斷的接電話、被問問題、被拉去開會、回復(fù)郵件等等;也經(jīng)常會有時間不夠用或者沒事做的困惑,這里分享一下心得:

加班可以創(chuàng)造很多時間,并且能有效減少被打擾的幾率,但是也會給身體和精神帶來很大負(fù)擔(dān)。因此加班做的事情必須能對個人進(jìn)步產(chǎn)生足夠多的收益。如果加班只是用來處理無意義的工作的話,那應(yīng)該是日常工作出了什么問題。

事情可以分成緊急重要、緊急不重要、重要不緊急、不重要不緊急四類,在todo列表里隨時要有重要不緊急的事情。

 

4.學(xué)會思考

4.1.深究

當(dāng)有什么問題解決不了的時候,很多人會有畏難或者拖延的情緒,典型口頭禪就是“就這么湊合著用吧”或者“先這樣吧,以后有時間再研究”,說這些話的人大多并不是真的那么忙,甚至有人一邊刷著微博一邊跟我說沒時間研究……(你tm在逗我?)

要克服畏難情緒其實(shí)很簡單,找一個具體的似懂非懂的問題,想盡辦法把問題研究清楚,體會幾次解決問題時的愉悅感,建立自信。

大部分問題其實(shí)沒有什么高深的科學(xué)原理,甚至只要翻幾頁書就解決了,但是遇到問題不深究,久而久之會形成自我暗示:這些問題是我懂的,那些是我不懂的,自己反而把自己進(jìn)步的路給堵上了。

說到如何深究,也有幾條心得:

遇事多想為什么,并且要反復(fù)問為什么。很多貌似理解了的問題過一陣再重新想想,往往會發(fā)現(xiàn)之前還有沒考慮到的地方。查找資料時選權(quán)威的書籍或者網(wǎng)站,避免被誤導(dǎo)。找人討論,或者直接拉小伙伴入伙,既可以互相交流,又可以互相監(jiān)督

4.2.多說,多寫,多交流

平常工作中有一個感受,有交流和寫作習(xí)慣的人思路會更清晰一些,大概總結(jié)幾個觀點(diǎn)。

隔一段時間最好能書面形式總結(jié)一下最近的工作,比如說寫個心得感悟,或者持續(xù)更新自己的簡歷。

有些人喜歡糾結(jié)于“這個不是我的問題,為什么要我處理”之類的事情。在我看來這是很好的機(jī)會。既能增長見識,又能展示水平,還能留個認(rèn)真負(fù)責(zé)的好名聲,何樂而不為呢。

5.最后

最后分享一下關(guān)于我理解的程序員的自我修養(yǎng),在我看來,可以總結(jié)為:負(fù)責(zé)任,重名聲。

負(fù)責(zé)任,說的更具體些:寫的代碼自己有沒有測過、做的框架自己有沒有用過、設(shè)計(jì)的架構(gòu)自己有沒有認(rèn)真權(quán)衡過。

重名聲,說的直接些:沒有測過的代碼、沒有用過的框架、沒有權(quán)衡過的方案有沒有臉交付給別人。

與各位共勉。

責(zé)任編輯:武曉燕 來源: 碼個蛋
相關(guān)推薦

2015-08-20 09:31:35

2021-07-30 10:41:57

程序員IT互聯(lián)網(wǎng)

2018-01-17 10:01:38

程序員高手菜鳥

2009-02-24 09:58:45

程序員成長開竅

2014-06-16 11:18:20

程序員

2015-04-10 19:37:34

程序員

2012-05-10 13:31:48

程序員開發(fā)者

2015-04-08 15:38:17

程序員程序員差距

2010-10-18 09:59:22

PHP程序員Web開發(fā)

2015-07-29 09:39:00

高級程序員階段

2020-04-04 20:59:28

程序員技術(shù)開發(fā)

2021-07-05 07:28:14

程序員菜鳥技術(shù)

2009-06-10 09:54:21

程序員層次

2018-11-26 08:21:23

2019-01-07 09:31:37

程序員測試人員代碼

2009-02-23 13:05:32

程序員學(xué)習(xí)方法

2013-03-28 15:50:37

程序員Java

2015-08-18 15:22:59

程序員成長階段

2016-07-26 13:47:49

程序員新手編程

2015-04-03 09:38:32

程序員前人挖坑后人填坑
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號