人生總有目標和追求
不管是誰,活著總是有方向和追求的,差別可能是有些人“高尚”一些,有些人“低俗”一些,有些人對自己的方向沒有那么堅定、今天定了明天可能就變了。無論是短期或長期、高尚或低俗的目標或追求,都無關(guān)對錯,只是個體的選擇。當然嗎,如果你選擇了動力節(jié)點Java培訓,那么我們會讓你向出色邁進一大步。
出色的程序員應該有什么特征
特征說明
興趣也可以說好奇,保持對計算機相關(guān)領(lǐng)域的興趣甚至是激動,這是一個程序員的原動力
方法好的人有一半是因為有好的方法或者好的習慣,如何學習、反思、總結(jié)、歸納
邏輯不是程序員邏輯,而是理性邏輯
十分出色是“對比”之后才能體現(xiàn)出來的,追求top才能更好,才可能出色
耐性無論學習什么,都是一個過程,熬不住的自然看不到下一個山峰,通常大牛至少需要2年
迎難出色說明你做到了多數(shù)人做不到的事情,所以難題才能證明和驗證你自己
視野站得高看得遠、站得高窺全局,可怕的不是你不會,而是你連不會什么都不知道
謙虛不論如何強大,總有更強大;即使你很強大,變化也會讓你不再強大;多學多看多聽多思考
實踐理論和實踐會幫助你強化興趣、記憶、理解、掌握
興趣
興趣是原動力
興趣是一個程序員進步的原動力,促使你不斷學習、不斷積累、不斷進步;
興趣可以讓你更大可能的打破環(huán)境約束,去嘗試自己喜愛的技術(shù)方向;
興趣可以讓你在遇到困難時有更強的戰(zhàn)斗力,提升突破難題的可能性;
興趣可以讓你抵御各種誘惑,保持對技術(shù)的專注;
興趣可以自然而然的讓你追求把事情做的更好;
培養(yǎng)興趣
培養(yǎng)興趣很簡單的做法是“獎勵”,當你完成一個看起來有難度的事情時,大腦會獎勵你:“哇塞,我好厲害”;當你完成一個工作上的難題時,老大會表揚你:“哇塞,你好厲害!”。
簡單的來說,興趣培養(yǎng)可以通過不斷的自我認可和外部認可來達成。為了避免培養(yǎng)過程中你被打敗,應當盡量去選擇做一些“超出你能力一些、但是努力是可以達成、短期內(nèi)可以看到成果”的任務(wù)。
以學習Erlang為例(把下面的內(nèi)容當做清單寫下來,每做完一個打一個勾):
期間不做任何無關(guān)緊要的事情,例如看電影、KTV、同學一起去聚餐
•3天內(nèi)看完語法
•1天內(nèi)搭建好環(huán)境
•1天把前面1和2的事情寫個博客公布出去,記得:不要復制粘貼,字要自己打,圖要自己截
•3天的時間學習HTML+JS+Ajax,然后寫個簡單的Todo網(wǎng)頁應用界面
•1天的時間學會使用cowboy或者mochiweb,作為webserver使用
•2天的時間完成HTML+Erlang的Todo應用的前后端
•2天時間把3、4、5、6的事情發(fā)表到博客上去
•3天時間學習PhoneGap引擎的基本使用
•2天時間修改你的web頁面以適應PhoneGap,然后打包為Android/iOS應用
•2天購買一個vps(大概幾百塊一年)并配置好Erlang運行環(huán)境
•將你的應用安裝到自己的手機上、發(fā)送給同學,根據(jù)反饋做修改
方法
•善用搜索引擎,google必須保證隨時可用
•學會找到厲害的信息來源:微信號、微博號、知乎精華帖、博客、郵件列表、github
•不斷逼迫自己做的更好
•隨時記錄筆記,推薦:印象筆記
•不斷實踐
•多做總結(jié)和思考(按天、周、月、年)
•做好知識管理(KM)
•十五分鐘工作法和兩小時工作法
•看二手信息,但是不要過于信任二手信息
邏輯
邏輯大概是指人們思考問題的過程和方式,而程序員思維經(jīng)常被當做貶義詞,因為多數(shù)情況下程序員思考問題像個計算機,并把這種思考模式帶到了生活當中。
然而我接觸到的大多數(shù)出色程序員都并非如此,他們邏輯清晰、條理分明、表達順暢,也許他們的詞語不見的華麗,但是基本都是易于理解。
出色程序員并不僅僅要求有很強的數(shù)理邏輯能力,也要有很好的生活、溝通邏輯能力,很多人先天性的認為程序員就不應該是善于溝通的,不太明白為何有這樣的看法(也許是因為某些天才程序員很孤僻?然而天才孤僻很正常,不管是不是程序員)。
至于誰是出色程序員,這里不敢隨便列舉,免得被扔磚還引發(fā)別人誤傷。大概的標準有:
•多數(shù)并不熱衷各種會議,更加偏愛純技術(shù)會議
•在各自的領(lǐng)域都非常有建樹,看得見的成果
•知識廣博不狹隘,不會是某某語言粉這樣
•寫出來或者講出來的東西不會停留在入門階段,往往干貨可以讓一個團隊或者公司消化很久
top
計算機是個可量化的學科,因此我們?nèi)菀字酪患虑樽龅娜绾危翰?、一般、較好、出色。
對于程序員來說,top大約可以包括四大方面:
以下大量反問,預警!
代碼開發(fā)效率
1.庫和框架熟悉嗎?讀過并掌握對應的源碼嗎?
2.接口設(shè)計合理嗎?
3.自動化程度如何?
4.語言熟悉程度如何?是否掌握語言的各種高階特性?
5.復雜到看不出問題還是簡單到明顯沒有問題?
6.熟悉git嗎?熟悉svn嗎?他們的原理如何?zui佳實踐呢?
代碼運行效率
•統(tǒng)計過CPU/GPU/磁盤IO/網(wǎng)絡(luò)IO/內(nèi)存的消耗嗎?
•一次磁盤IO耗時多少?
•玩家更新一次信息,背后發(fā)生了什么?
•一次systemcall通常耗時多久?
•GC時發(fā)生了什么?可控嗎?
團隊協(xié)作效率
•了解團隊中的協(xié)作節(jié)點在哪來?如何提升協(xié)作點的效率?
•團隊的研發(fā)管理方式如何?有何利弊?
•我們真的需要這么多人嗎?
全局把控程度
•整個產(chǎn)品是如何開發(fā)、測試、發(fā)布、更新的?
•整個產(chǎn)品用到了哪些技術(shù)棧?哪些是你掌握的?
這么多反問,其實不太友好。
程序員應該想辦法保證自己所做的每一件事情都至少是“較好”的,而不僅僅是“剛剛好”。
耐性
中國社會由于種種問題,相對于西方發(fā)達國家來說社會整體比較浮躁、急于求成。無論一個人有多么的天才,總是需要一個積累的過程。
你得知道,越是希望獲得越是要學會忍耐,快往往意味著犧牲了質(zhì)量(可以一定程度克服)。
沒有多少人是年輕有為的,這個價值觀本身也不見得是對的和好的,年輕人應該奮勇激進,但是不應該追求盡早的“學有所成”。
慢即是快,簡單即復雜,簡單即強大!
迎難
人們對于困難的事情會有本能的畏懼,但是我們依然需要去克服困難。有段大概是這樣的觀點:
人類有很多生理本能,造就了很多不好的習慣,例如遲到、拖延、貪吃、貪睡、貪玩、不愛學習;
學習、減肥等對人類來說是個偽需求—因為“逆本能”,然而能夠克服這些“生理本能”的影響的人往往都是出色的人
要想出色,保持迎難而上的心態(tài)!
視野
“站在巨人的肩膀上”,不僅僅告訴我們應該去繼承前人,更加重要的是這樣可以看得更遠、看得更多,站的高不一定格局高,站的低則往往格局低。
設(shè)想一下:假設(shè)你回頭15年前,但是你的記憶都保留(彩票號碼當然你得忘記掉),你對這15年的規(guī)劃是否會更加合理?
學科通常都是成體系的,對一個學科要認識的更深,沒有好的辦法,只有認識的更全面才可以。
對于程序員的學習內(nèi)容,我有幾個建議(可能這需要花5年、8年、10年或者更多):
1.至少一門靜態(tài)編程語言,一門動態(tài)編程語言,一門函數(shù)性語言
2.會web編程、app編程
3.會大數(shù)據(jù)相關(guān)的技術(shù):存儲、挖掘、分析
4.掌握基礎(chǔ):計算機體系結(jié)構(gòu)、操作系統(tǒng)原理、數(shù)據(jù)結(jié)構(gòu)與算法、編譯原理、計算機網(wǎng)絡(luò)、數(shù)據(jù)庫原理
關(guān)于程序員的信息來源,也有幾個建議:
1.看看綜合信息類的技術(shù)網(wǎng)站,現(xiàn)在有各種聚合技術(shù)媒體,例如:開發(fā)者頭條、碼農(nóng)周刊、推酷等
2.看看國內(nèi)外前列技術(shù)的關(guān)鍵字,然后搜索關(guān)鍵字去了解新的動向
3.關(guān)注一些社區(qū),例如github、各種郵件列表等
合理的花一些時間,保持大致計算機軟件技術(shù)相關(guān)的內(nèi)容心里有數(shù)即可。
并非鼓勵程序員都變?yōu)槿珬?,全棧并不先天?yōu)于非全棧,而是鼓勵去看的更多、看的更廣,閱歷對任何工種都是重要的,只是閱歷的內(nèi)容有所不同而已。
謙虛
謙虛直接影響了一個人接收外界信息的能力,嬰兒學習能力強大的原因之一在于:不做判斷,統(tǒng)統(tǒng)都接收了。謙虛程度就像一張濾網(wǎng),可能會過濾不對的東西,也可能會過濾很多其實很好的東西。
謙虛到什么程度?不要謙卑就好。謙虛也可以自信,不要自負就好。
實踐
其實這只是變?yōu)槌錾绦騿T的一個步驟而已,根據(jù)我的觀察,多數(shù)人學習編程時死在了這個山頭。
實踐是一種快速驗證學習內(nèi)容、強化學習結(jié)果的方式,大腦很復雜很難搞明白它的所有,不過我們至少知道:做過的事情大腦會更加記憶深刻。
最后
動力節(jié)點Java培訓,出色Java程序員的培養(yǎng)的基地,出色的你,就應該選擇出色的Java培訓機構(gòu)。