A. 程序員的高效學習之道
1)重復
我堅信重復是掌握的唯一途徑。當我們學習一項新技能時,我們必須經常練習。當我們學習一種新的知識或理論時,我們必須盡可能地運用它。
李小龍曾經說過一句非常經典的話:「我從來不怕一個知道1
0種踢腿的人,但我害怕一個練習過一種踢腿練習超過1
0次的對手。」
任何一種技能,只要它不斷磨練和完善,最終都會變得驚人的有效。
2)重點
在現代生活中,有太多的干擾——社交媒體、一心多用、開放學習和辦公環境——我們總能從外界得到各種各樣的刺激。
我們失去了集中注意力的能力。但專注是學習和掌握大量學科和專業的前提。
為了學習一項新技能,我努力使自己處於一個不受干擾的環境中。當我讀一些東西的時候,我會聽一些沒有歌詞的純音樂,這樣我的注意力就不會分散。
史蒂夫·喬布斯說:「人們普遍認為專注意味著你所做的事情是對的,實際上並非如此。專注於真正的意思是,當你同時面對成百上千的好主意時,你必須是有選擇性的。
3)背景和細節
為了理解一門學科,首先我想你們應該大致了解這個學科的大致情況。我喜歡探索我自己的背景和背景。
所以,在我讀一本書之前,我總是瀏覽這本書的內容。所以我對這本書有一個基本印象。當我讀到內容的細節時,我將更清楚地了解一個主題和另一個主題之間的關系。細節很重要,但在正確的時間。
馬上開始關注細節,你可能會錯過上下文或整體信息。當然,錯過細節也會讓你的理解停留在表面上。
所以我經常在細節和背景之間來回切換。通過這種方式,我可以在學習具體內容和細節的同時獲得知識或技能的全部概念。
4)關系
這種學習在上下文和細節之間來回切換的方法,向我展示了信息之間的關系。這對於學習和記憶的長期影響是非常非常重要的。
這就是為什麼當我們談論游戲的時候,昆明電腦培訓http://www.kmbdqn.cn/發現有人能生動地回憶起每一個細節。訣竅在於牌和牌之間的關系。
建立有意義的關系或不同學科之間的聯系是加速學習和增強長期記憶的最有效方法。
B. 成為優秀程序員的10條黃金法則
1.不要重復
這是一條非常值得遵循的偉大原則。我很習慣於回過頭去檢查自己寫下的代碼,重構那些被多次使用的部分。雖然在將一個長方法分解為若干個短方法時,會遇到一些困難。Ctrl
+R+M在VisualStudio中非常有用,可以幫助你重構代碼為單獨的方法。這使得代碼更加可重用和可測試。
2.命名變數的要點為說明它們是什麼,而非它們是什麼樣的數據類型
唯一的例外是,如果你正在處理別人的代碼,並且需要繼續參與的,那麼你應該遵照他們的命名規則。
3.給你的方法取一個明確說明他們要做什麼的名稱
這一條如果做得好,那麼將大大減少注釋的必要。如果你的代碼清晰易讀,那還需要注釋干什麼。
4.不要使用奇奇怪怪的數字和字元串常量
你的代碼中不應該有任何會造成他人誤解或需要猜測的數字和字元串值。創建常量、枚舉和私有變數時,要給他們取一個能夠更易於理解的名字。
5.可能的話,自己寫方法,這樣在測試方法時,就不會對應用程序的其他部分有任何依賴
將方法寫成不需要關注從哪裡調用的方式。這樣會讓代碼更可測和更可重用。
如果你正在使用會話值或app設定值,那麼把它們作為變數傳遞,得到會話,並在你調用方法的時候配置值。這能讓代碼變得更可測。
6.不要害怕尋求幫助
這句話不是讓你在碰到所有問題時都去尋求幫助,我的意思首先你得自己去思考,去嘗試自己解決問題,但如果你實在想不出解決方法,那麼就應該去尋求他人的幫助。可能已經有人經歷過這個問題,知道如何解決它。同時,在告訴別人你正在做什麼,你期待什麼樣的結果,問題是什麼的過程中,或許靈機一現,搞不好你自己就揪出問題的關鍵了呢。
7.不拖延
如果你看到bug或亂碼,那麼當時就解決然後再前進。不要想著以後去做或讓別人去做。
8.與他人分享知識
不要敝帚自珍。嘗試創建一種互助的文化。你會發現,團隊的工作效率比單槍匹馬更高,並且互相幫助的氛圍能更快地提升各自的水平。同事的進步,並不會讓你落後,也不會讓你有被炒的風險。相反,你變得更有價值,因為你不但擁有淵博的知識,敢於學習,還能幫助周圍的人一起提高。
9.當你的同事沉浸在思考中時,不要打斷他們
己所不欲,勿施於人,當你自己沉浸在編程中時,當你的大腦高速運轉工作時,就像你正在小心翼翼地用紙牌搭建房子一樣,你也不希望有人來打攪你。這時如果有人問你問題的話,那麼你的注意力必然無法集中,就像房子可能會很容易坍塌。這可能需要5到10分鍾的時間才能將注意力重新集中起來,將思緒一一理順,而原本這個問題只需要Google搜索一下,或者詢問別人就能解決。如果你在這方面尊重你的同事,並且讓他們知道這樣做的重要性,那麼他們也會做相同的事,從而反過來讓你變得更高效。
10.積極地面對批評,而不是消極抵制。
對我來說,批評是一個讓我能夠改善提高的機會。如果還有一種做事的方法是我沒有想到的,那麼我會想去了解它,因為這或許能幫助我改進自己。
好了,10條黃金法則已經講述完畢,下面讓我們一起學習它們,利用它們,成就更優秀的自己吧!
C. 如何使用搜索技巧來成為一名高效的程序員
對於缺乏編程知識的人來說,完全有可能編寫一個網頁或小程序。如果在用Google搜索相關示例時幸運的話,可以搜到現成的代碼。即使是經驗豐富的程序員,通常也會為了節省時間和精力而在網上搜索解決方案。
如果不藉助搜索技術、網路及集體智慧,現代化高效編程是難以想像的。因此,搜索技巧對高效程序員變得愈發重要。
現在,我們不需要了解和記住如何解決眾多的編程問題,可以採用搜索技術。我們正變得更加高效、高生產力,並能夠解決更多的問題。但這是否意味著在構建軟體時,擁有好的搜索技巧就足夠了呢?本文將討論,搜索技巧在程序員知識的形成過程中的作用,以及如何高效使用搜索技巧。
知識的類型及它在程序員大腦中如何成長。
有三類知識:
概念知識(為什麼、是什麼、如果——語義上的)——理解軟體系統構建過程中的概念、原理、關系及主要方法。根據這類知識,能夠找出體系結構或代碼必須按特定方式設計的原因,以及從中選擇最佳設計方案的備選方案和邏輯是什麼。概念知識,不是指用特定編程語言解決特定問題,而是對問題的長遠看法和理解。
用途:對復雜的開放式問題尋找新的解決方案,並創建穩健的軟體系統。
收獲:學習計算機科學、體系結構以及編程概念,在實際實現和經驗的基礎上,構建自己的理論。
實踐性知識(如何做——過程中的)——關於如何解決特定編程問題的知識。這類知識不需要深入理解實現方法選擇過程中隱含的概念及基本原理。搜索技術在這里最重要,因為對有限的編程語言問題所採取的特定解決方案,搜索能相對容易的加以共享並說明。
用途:用已證實的和已知的解決方案快速解決問題,而不是每次都重新發明一種新的方法。
收獲:搜索現有的解決方案,通過例子學習或提出自己的解決方案並以後對其重利用。
隱性知識(專業知識、經驗及直覺)——基於軟體系統實現過程中所積累的個人經驗,在大腦中形成的內在知識。通過強大的大腦功能,隱性知識可以綜合並協調其他兩種知識。這類知識很難傳授,因為它的大部分都存儲在我們的潛意識中。在特定環境下,它和直覺一同發揮作用,能夠在經驗、對概念性和實踐性知識的反饋和評估的基礎上,制定最佳決策。
用途:利用自己的專長、經驗及直覺來實現最佳解決方案。
收獲:構建軟體並從結果中學習知識。
設計模式(還有架構、領域及其他)是不同類型知識相結合的有趣的例子:「如何做」的例子,這些例子中隱含的概念及實現過程中積累的經驗。這種知識的表現方式是模式成功及廣泛應用的原因之一。
隨著越來越多的可供使用的實踐性解決方案和示例出現在網路上,人們大腦中的實踐性知識的價值越來越小。我們不需要記住實踐性知識。現在我們能夠處理軟體構建過程中幾乎所有可能遇到的常見編程問題。然而,除能夠解決問題的示例或從哪搜索這些示例以外,一名大師級的程序員還知道更多的知識。他能夠提出自己的解決方案,制定大部分最佳決策,並採用最好的方式應用它們。此外,很難在網上找到新的、復雜的、領域性的及特定環境下的問題的解決方案。而且,對所有重要的軟體工程,在制定優秀解決方案的過程中,都需要高水平的軟體開發理論、這些理論的應用經驗、對系統的深入了解、問題空間及環境等相關知識。
因此,在軟體開發過程中,概念知識和隱性知識仍然是非常重要的。在使用搜索技術時,我們應當努力擴充各種知識,而不是僅僅解決特定問題。隨著解決更高級問題的能力的提高,你會取得成功,成為更高效的程序員。
D. 怎樣做一名高效率程序員
1、理解編程語言的原理
三流的人才懂應用,二流的人才懂開發,一流的人才懂原理。各種語言之間存在著相似的地方,掌握語言的原理是必不可少的。最重要的,讓語言去適應項目,反之亦然。
2、向優秀程序員學習
你有一個蘋果,我也有一個蘋果,我們交換蘋果,你我還是有一個蘋果;你有一種思想,我也有一種思想,我們交換思想,你我就有了兩種思想。
與優秀的程序員為伍,你將吸收的最實用的經驗,這遠比你一個人自學、死磕編程來的快一些。有一句話說到好,與臭棋佬下棋,棋會越下越臭。不可否認這樣一個事實:和什麼樣的人在一起,就有什麼樣的格局,就會有什麼樣的人生。
3、了解數據結構和演算法
如果你要成為一個高效的開發者,就必須學會快速排序、學會辨認O(n2)程序、學會編寫遞歸函數。
學會多種語言,你便會更清楚不同的框架是相同問題的是如何解決的。盡可能去了解底層命令(plumbing),以便能夠作出明智的決定(Web框架是怎麼存儲session狀態的?Cookie到底是什麼?)。
4、精通一個編輯器
高效開發者通常是用IDE編輯器嗎?其實不是的,他們更常用的文本編輯器,因為這樣更會學到東西。
如果使用編輯器選擇通用的Emacs或Vim,自然是最好的。其次,挑選你的首選平台最支持的。使用宏,不斷地寫代碼;使用Visual Studio或SublimeText的自動補齊功能。
5、整潔的代碼勝過巧妙的代碼
如果想讓別人可以輕松讀懂你編寫的代碼,請盡量使用最少的代碼來完成任務。在編寫代碼過程中,遵循DRY(Don』t repeat yourself)的原則,使用明確定義的對象和庫,將任務分解成小而簡單的代碼段。
6、掌握代碼調試技巧
現如今市場和需求變化相當快,項目的周期有時就會縮短。一個月的工作計劃,會縮短到2個星期。項目的壓力難免會導致程序員的代碼質量會有所下降!
因此,調試技巧在這樣的環境下就顯得尤為重要。高級程序員會在函數的開始和結束輸出Log,把所有的參數和返回值列印到日誌系統,便於追蹤。在解決問題的過程中,使用開發工具一行一行進行調試,實時觀看參數的變化。
7、重新回顧代碼
重新去回顧和審視自己寫過的代碼,通常會有兩種體驗,一種是我怎麼寫了這么爛的代碼;另外一種則是對自己寫過的代碼充滿了成就感。回顧代碼有時可以觸發我們新的想法,甚至還能對編碼有一個更深層次的思考。
E. 你見過最厲害的程序員是怎麼樣的
以前曾經做過十餘年的編程,見識過不少程序員,其中有兩位是比較厲害的。
第一位,J同學,非科班出身,糧食專業畢業的,之後在一個食品廠工作,因為比較清閑,於是他突發奇想,想考某個211的計算機研究生,就去買了書來看,但是要實踐啊,他又沒有計算機,就有空總去公司的電腦室蹭機器用,電腦室的人,就讓他幫忙開發一個工資管理系統,不知道是不是想為難他,結果他研究生是沒考上了,但是經過一個月的摸索之後,居然把工資系統給做出來了。讓電腦室那些科班畢業的人臉上掛不住啊!
之後他就斗膽去了一個國內知名的企業應聘程序員,居然還給應聘上了,慢慢做到了華南區的技術總監,再後來他幾個同事出來創業,高新挖走他。
他這個人就是傳說中的怪俠,非常低調,樸素,不按時上班,不按時下班,工作效率非常高,愛抽煙,請教他什麼問題,他一時想不出來的話,就去外面抽根煙,煙抽完了,回來就會有答案,反正非常神奇。
第二位,B同學,科班出身,211大學計算機研究生,當時是他的導師跟我們單位有來往,推薦過來的,我面試的他,惜話如金,聽說他C語言非常厲害,但是當時我們做項目需要PB,他說他不會,我就說,那給你一個星期的時候,你回去學習一下,再來面試。一個星期後,再過來,給他一個小模塊,很快就做出來,非常棒,之後,項目的技術難題,大部分都是他解決的。平時,他也不怎麼跟我們來往,但是有事就做,也不打 游戲 ,按時上班,按時下班,非常討厭加班。
遇到技術問題,下班後打電話給他,他不接的。有一次,我們第二天系統要上線,大家都在忙著測試,加班,他到點就走了,領導追到電梯門口,問他,XX哥,你走了,他說了一個字,是,就進電梯了。後來也是被高薪挖走,聽說到現在40歲也還沒結婚。
我們公司有一位非常厲害的程序員,基本上一個人當做一個排兵力使用。也就是說一個人寫代碼的效率基本上抵得上10+人的能力,一年隨隨便便寫個幾十萬高質量的代碼。這種人對編程語言的理解已經到了登峰造極的地步,且能夠靈活自如地使用。
在自己編碼能力強的同時,對架構的理解能力也是超強,一個大的系統能夠很快地進行模塊拆分,快速的定義不同模塊間的交互介面,可以快速的安排任務下去。
另外代碼的質量基本上沒地說,導致跟著他的測試人員幾乎發現不了Bug,這哥們在寫代碼的同時基本上順手就把單元測試寫好了,代碼質量高的簡直出奇。
當然了,至於學習什麼新的開源框架或者新的技術架構,基本上就是2-3天的功夫,就可以全面掌握。
目前為止,公司一直當做寶一樣供著。
我見過最厲害的程序員,是在2001年入職的一間香港電路板公司的電腦部經理,他也是最值得我尊重的程序員,那他最厲害的地方在哪裡呢?
編程語言只懂Foxpro DOS版本,但所有的ERP流程,英文、管理方法說得滴水不漏,有一次和財務的同事聊天,才知道他的月薪達8萬多。
很多程序員最怕大老闆提問題,但在他的眼裡,大老闆提問題就是一個商機,多多少少都要老闆加工資加設備。 高情商的表現就是無論下屬或老闆通通管理得服服帖帖,包括我自己,甚至老闆還沒有說話就己經知道老闆的心思了。
老闆分配的編程任務應期三天完成,絕對不過4天。軟體開發效率的提高,自然要依賴下屬心甘情願的加班付出才行,做到這一點,真的是難能可貴。
最厲害也是我最佩的一點就是,40多歲了頭發還沒有一點白的跡象,每天高效率的工作,下班後就拋開工作的煩惱,盡情桑拿按摩享受。
我認為最厲害的程序員不是編程技術,而是如何利用編程技術,不知道你認不認同?
應該是讀研時的學長,精通java和Python,畢業後進去微軟研究院工作。
當時和他在一個項目組,他獨立完成了教學平台語言分析模塊,NLP 模塊。我們團隊任何問題都能很快給出解決方法,前端後端都擅長。
當時我剛接觸linux,他就已經把Linux作為工作學習唯一的選擇。經常用terminal 操作,敲起代碼太帥了
誠邀,本人在杭州華為研究所工作,之前在一家創業公司工作過,公司里一個工作10年的大神,撐著整個創業公司,老闆總能拿到某些項目源代碼,不同語言的,c c++ .net java總之很多,給他,一禮拜就可以全懂了,所有語言基本都是1禮拜搞定(玩代碼的都知道精通一門語言後學其他的特別容易,不外乎面向對象的,面向過程的,然後就是各種API )上手做項目,之前很多不懂的問題問他都可以從本質上分析得很明白,主要是基本上看幾眼就可以知道哪裡錯了。或者大概方向,我後來去華為,都是他建議的,現在還在那公司的他聽說是技術總監了,應該不怎麼敲代碼了。
核心的代碼總是有那一兩個程序員來實現的。比方說現在微信的一開始的核心代碼。
比方說Linux的核心代碼, 都是由林納斯·托瓦茲編寫的, 並且為了能夠讓開源社區的人一起進行開發, 又編寫了Git版本控制。當你不滿意某個軟體或者系統的時候, 能夠自己實現並製作出更好的也許就是厲害的程序員吧。一直到現在很多的系統分支都是來源於Linux的內核。
最後如何成為最厲害的程序員, 還是要學習基礎核心的知識, 操作系統, 數據結構, 演算法, 編譯原理, 計算機網路, 在這個基礎上學習編程都是為了更好地實現自己的心中所想。為什麼這樣寫, 這樣寫會產生什麼效果。 為什麼Golang最近這么熱, 為什麼鴻蒙會被看好, 它又和其他的有什麼區別, 就可以自我判斷, 而不是見風就是雨。
最後希望自己也成為那個最厲害的程序員。
很久以前,我用win98的時候有次我系統崩潰了,因為我是電腦白痴,我朋友給我介紹了一個高手來幫我修電腦。
他看了一下電腦,問我有沒有98的盤,我說沒有。
他想了一下,叫我把固定電話拿給他,我想修電腦要電話干什麼,但人家是高手,我也不好說什麼,就把電話拔下來給他了。
他把電話線空著的一頭接在電腦的一個插孔內,然後進入dos,就開始在電話上不停的按著鍵,他按鍵的速度異常快,但是只按0,1兩個鍵,我搞不懂這有什麼用,但也不敢問,看了半個多小時,他還是不停的按這兩個鍵,我徐徐的有些困,我問他這東西要搞多久,他說要幾個小時,我給他倒了杯茶,就一個人去隔壁睡覺了。
醒來的時候,一看已經過了4個多小時,我起身到隔壁,看見他正在98裡面調試,過了一會兒,他說,你試試,我坐上椅子用了一下,真的好了,我當時也不懂電腦,謝過人家就走了。 後來我慢慢對電腦有了了解,終於了解,原來當時那位高手是用機器語言編了一個98系統,我後來問我朋友那位高手的下落,我朋友說前幾年去了美國之後,杳無音訊....
五年前有幸在一家軟體公司做產品經理。小的軟體公司。坐標西安。招人還挺不好招的。雖然給的薪水還不錯。但是真心不好招人。這種小軟體公司沒有名氣。真正牛逼的人都不來。
百試幾百人,包括做產品和前端的也算在裡面。光程序員這塊。有百分之六十的投簡歷的都是從某培訓機構出來的。所以的項目經歷。和待過的公司都是一模一樣,有明顯的人為的痕跡。
但是後來實在沒有人手。招了一兩個,差。差。差。真是差到極點
後來又經人推薦,招了一個,說是做安卓開發的。結果連個軟體的心跳包都調不好。軟體的升級這塊都搞不定。最後還是我這個外行,逼著他。一點一點卡,才把軟體升級這塊稍微搞上路了。
說出來真是讓大家笑話,華為的外包中軟國際。有個孩子實在忍受不了裡面的虐待,在裡面工作了一年半。然後跳到我們公司。這個孩子,才是稍微讓人可以用一下。就是起碼。你給他的工作。他能完成。其他的人都是在摸魚。因為這個公司的老闆以前也不是做手機軟體這塊。沒有資源,不認識人。
他是做電腦PC軟體,到後面做BS系統多一點。其實這種沒有技術含量,找的別人的框架。去修改。
普通人見不到最牛逼的程序員,最牛逼的程序員,一定是在最牛逼的軟體或者互聯網公司的深宮後院裡面。還沒出世的。就像當初的張小龍,史玉柱,裘伯君一樣。
你現在能看的牛逼的,感覺牛逼的。都是因為你不懂這個。你才覺得牛逼。包括前幾年比較活躍的黑客們,製造一些病毒。這都不是牛逼。包括熊貓燒香的李俊,普通人覺得他可牛逼了。但是真正的他出來後,去金山 360這種公司,提鞋別人都不要。
因為搞破壞不是牛逼。也不是自己水平有多牛逼。
我來講一個我見過最厲害的程序員。
這個程序員是我第一份工作碰到的大牛,我的第一份工作在中興通訊成都研究所,當時是做操作系統研發的。
我們當時經常會做一些培訓和技術分享,那時候我才入職3個月,我發現公司里有個人每次技術分享時候,就很多人去聽,並且會議室爆滿,連站的地方都沒有,然後我有次也去聽了一下, 第一每次目睹大牛的風采,因此操作系統是最底層的研發工作,會涉及到內核這塊知識,而linux內核知識特別抽象,看書根本很難看懂,但是這個大牛能把很難的東西講的很容易理解,並且在會上面對大家的提問總是能對答如流,實在是厲害。
而後我通過公司里的老員工才了解到,這位大牛是自學成才的,他的文化程度才初中,破格錄取到中興通訊,當時是操作系統部門的技術專家,他都能自己編寫操作系統,對各硬體都非常了解,也出了很多書。可見興趣是最好的老師,讓他能夠在程序員中發光。
必須是ACM大神,樓天成,樓教主。不了解他的可以網路之。是個天才一般的存在。
幾年前清華大學找同學玩,他那時是清華軟體學院的學生,突然說要帶我去見他的偶像,還說是最後的機會了,我們跑去計算機學院,當時博士正在答辯,通過在場的同學找到了他,他很靦腆的千呼萬喚始出來。他們兩在那裡交流了半個多小時,最後互留了EMail,我跟他聊了些我專業的內容,他還蠻好說話。 後面還通過這位同學認識另一位ACM屆大神,上海交大的戴文淵。我對編程略有了解,主要還是崇拜天才。
F. 什麼是「10倍程序員」
比較高效的程序員。簡單地說,就是一個優秀的程序員的效率會是一個普通的程序員的十倍以上
G. 成為優秀程序員的十個有效方法
如何快速成為一個優秀的程序員?
優秀的程序員是在穿過一條單行道的時候還會往兩邊看的人。
作為一個IT行業的軟體程序員,每天驅使我們日復一日的辛勤工作的,是來自我們對編程的興趣和激情。但是要讓編程變得始終有趣,我們必須學會堅持某些成為優秀程序員的基本原則。
我並不是要寫出一些咒語,你照著執行就可以成為一個優秀程序員了。我的目的是想記錄下我學習到的和用過的一些有用的經驗,它們幫助我獲得比較好的結果。對於優秀程序員是沒有明確定義的,這里北大青鳥web前端培訓專家(web.te.cn)指的是那些創造出了優秀IT解決方案的以及幫助這個行業增長的那些人。
對於任何行業任何工作來說,融會貫通是獲得成功的關鍵。一個人想要成為優秀程序員,就必須有堅實的基礎。核心理念的理解會幫助你用最好的方法設計和實施出最完美的方案。如果你感覺到不能掌握核心的計算機科學或者某個編程語言的知識點,現在開始回顧基礎一點都不晚。
1.開始為你寫過的代碼貼上標簽(怎麼做,做什麼)
我發現優秀的程序員和普通程序員之間有一條明顯的分界線,優秀程序員渴望深究每行代碼做了些什麼,以及如何實現的。有那麼一小群人,他們一定要弄懂每一行代碼。我知道如果時間非常緊張的時候,我們經常不能夠遵循這個原則,僅僅寫出些代碼,知道它實現了需要的功能。如何處理這種情況又是另外一個話題,但是作為一個程序員,我們經常要盡可能深入探索。相信我,隨著時間的推移這會變成一個習慣,之後每次你都會不知不覺的這樣做了。
2.幫助他人,你可以學到更多
許多人都有個共同特點,只有當他需要幫助的時候,他才會求助於論壇或者群。優秀程序員不同之處在於他們會經常瀏覽論壇去幫助他人。相比較於靠別人幫助解決問題,他們幫助他人讓自己學到更多。在一個團隊中也是一樣,幫助他人解決問題收獲更多。相信我,了解他人的問題,思考並最終提供解決方案吧,你會比之前學到的更多。
3.寫簡單易懂,有邏輯性的代碼
正如KISS原則(保持短小精悍)適用於生活的方方面面一樣,它也適用於編程。盡量寫有邏輯的代碼,避免復雜化。有時人們寫復雜的代碼僅僅是為了展示他們有能力寫出這樣的代碼。我的經驗告訴我,簡單而富有邏輯的代碼非常的好,會產生的問題更少,也更容易擴展。我記得一句話:
好的代碼本身就是最好的文檔。當你想要加註釋的時候,問問你自己,「我能如何改進我的代碼,才能不寫注釋也讀得懂呢?」
4.花更多的時候分析問題,你將會花更少時間去解決問題
花更多的時間理解和分析問題,然後再設計方案吧。你會發現剩下的事情很容易了。設計不是說要用建模語言和工具,可以是僅僅看看天空在腦子里構思。那些在遇到問題就開始敲代碼的人往往會最終偏離需求。
如果你洗澡的時候不能理清整個程序的結構,那麼你還沒准備好開始編程。_RichardPattis
5.成為第一個檢查你的代碼的人
雖然有一點點難,但試著在其他人修改你代碼之前修改它,隨著時間的推移,你會寫出幾乎沒有bug的代碼。對你的代碼做沒有任何偏見的檢查,也不要猶豫讓其他人來檢查你的代碼。和其他優秀的程序員一起工作,接受他們的意見能夠幫助你也成長為一個優秀的程序員。
6.不要迷失在快速更迭的科技世界
在IT行業中,我經常遇見許多人,他們對現在的工作不滿,甚至離開它去追尋新的工作,理由是因為他們想要學習最新的科技。我們每天聽到的都是新工具、介面、框架,能讓程序更簡單,速度更快。這在科技世界中司空見慣並會一直如此。但是最基本的最核心的科技變化比那些框架、工具和介面的變化小得多。就像大海,大海表面上波濤翻滾,但大海深處卻相當平靜,而那裡才是水生生物生存的地方。所以將你自己置身於核心技術的大海深處吧。舉個例子,在Java企業級應用中,每個星期都會出現新的框架,但是核心的技術是不變的,譬如基於客戶端-伺服器端的請求,MVS模式,filters/servlets/JSP,數據源綁定,XML解析等等。所以要花功夫去學習核心概念,而不是去擔憂日新月異的框架和工具的出現。相信我,有了核心技術的基礎,你會發現學習新的框架,工具以及介面變得更容易了。
7.應急方案不會持續很長時間
很多時候軟體師們會採用應急方案(可能是時間不夠,可能是問題理解不透徹或者是缺少經驗)。但是這樣往往帶來的結果是,代碼混亂,缺乏可擴展性和維護性,後來浪費了更多的時間。請在你清楚整個方案後再開始實施。我知道有些情況下應急方案無可避免,就好像,一個人應該說實話,但是你在某些情況下不得不說謊。
8.閱讀文檔
閱讀很多文檔是作為優秀程序員的必備習慣之一。可能是產品說明書、JSR、API文檔、教程等。閱讀文檔幫助你獲得必要的基礎知識,寫出更好的代碼。
9.你可以學習他人的代碼
我接觸過一些優秀的程序員,他們在IDE裡面一直放著JAVA源代碼,並經常在日常工作中閱讀和查閱。他們這樣做不僅是滿足求知的渴望,還從中學習了如何寫優秀的程序。閱讀和查閱那些你認為可靠的出名的開源代碼或者比你資深的程序員的代碼,你會寫出更棒的程序。
最後,我想說的但沒有將其列在上面的:不要和他人比較
和他人的比較往往會造成消極的情緒和不健康的競爭。每個人都有他的長處和短處。揚長避短很重要。我也經常看到一些基礎很厲害的程序員范很低級的錯誤。所以僅僅和自己比較,列舉你自己需要改進的地方,並持續改進它。編程是很有意思的事情,享受它吧。
任何一個傻瓜都能寫出計算機能理解的程序,而優秀的程序員卻能寫出別人能讀得懂的程序。
H. 優秀程序員具備的好習慣
無論在工作還是生活中,每個人都會有一些自己的習慣,習慣對每個人的發展至關重要。成功者的身上都有很多值得我們學習的東西,優秀的習慣能夠幫助你走向成功,並且獲得更多的額尊重。那麼對於優秀的程序員來說,需要具備哪些好習慣呢?下面雲南電腦培訓為大傢具體介紹一下。
一、積極主動
生活中有很多事情是不舒服的,你可能在簽證問題上失去了出國的機會;你的老闆怒不可遏,你總是害怕在團隊中發表自己的想法;你的公司又來個漂亮的女人,但她不喜歡你。
如果你想成為一個優秀而高效的程序員,你不應該把所有的精力都集中在你無法控制的事情上。採取積極的態度,把精力和時間放在可控的事情上是成功的出路。雲南IT培訓建議不斷學習新技術和新概念,閱讀書籍,更新博客和社區成員,關注對你影響最大的東西,並主動養成良好的習慣。
二、明確的目標
能夠成功的人都有一個明確的目標,針對一個目標去努力能夠很快的成功。利用好空閑的時間,清楚地設置年度目標、季度目標,以及您希望在每個月內達到的位置,並且昆明IT培訓認為應該正確認識為實現這些目標需要做的工作。
三、傾向於雙贏
自我利益只會給自己帶來表面的滿足感,雙贏是團隊可持續發展的更好選擇。在做事情之前,想一想「如何讓每個人在不損害每個人利益的情況下得到他們想要的東西。」昆明電腦培訓建議盡量避免爭論,關注長遠利益是成功的王者。
I. 如何成為一個牛逼的程序員
如果要想成為一個厲害的程序員,涉及到的方面比較多。
首先要了解計算機的組成原理、結構體系,還要熟練掌握多種編程語言,以及常見的演算法。
還需要熟悉各種軟體知識:網路、圖形圖像、數據結構、編譯原理等
同時熟悉相關的專業知識,這個得看所在行業了。如在電力行業的軟體需要對電力調度、保護設備等了如指掌。
這些,需要投入大量的時間進行學習。需要毅力才可以實現,不是說說就行的。