『壹』 一個程序員要具備的基本素質是什麼
團隊精神和協作能力 :
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。
文檔習慣:
作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。
規范化,標准化的代碼編寫習慣:
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
需求理解能力:
作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。
復用性,模塊化思維能力:
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作。
測試習慣:
軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
學習和總結的能力:
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高了。但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。
『貳』 學編程時怎麼樣才能擺脫「打字員」成為真正的程序員
剛開始學習的時候,基本上程序員就是打字員,照著代碼打。可以說是模仿學習的階段,似乎照著代碼打的時候都懂是什麼意思,但是不看的時候又不知道要從何做起。等慢慢地技術成熟了就會越來越好。
『叄』 雷軍被質疑假程序員,他為何被稱為中國最傳奇的程序員呢
雷軍並不是因為技術水而被稱為“假程序員”,而是因為一頭濃密頭發被大家調侃為“假程序員”。雷軍首次直播帶貨時,有網友提問,頭發是如何保養,他表示曾被質疑是假程序員,“別的程序員頭發都掉光了”。雷軍笑稱,大家都要小心保護好頭發,植發很貴,每個人頭上都是一棟別墅,不要動不動“聰明絕頂”。
雷軍牛就牛在,他是什麼角色,就會把它做好。當程序員時,是一個優秀程序員,而要做企業,就會當一個優秀的老闆。小米成立僅僅10年,就取得了不錯成績,開創了很多模式先河,收獲了眾多粉絲。編程工作即是技術活,也是體力活。在程序員最關心的發際線這一項,他也沒輸掉,一頭濃密頭發讓多少程序員羨慕嫉妒恨?所以大家調侃他“假程序員”其實內心裡還是很佩服他。
『肆』 程序人在成為牛人的路上,怎麼才能少走彎路
由於現在信息時代的快速發展,越來越多的人選擇計算機專業或者與計算機相關的工作。就比如說程序員。那麼要想作為一個程序員,想要從畢業到成功少走彎路的話,應該怎麼做呢?以下就是小編對大家的一些建議。希望對程序員可以有幫助。
還有最重要的一點就是要學會與優秀的人結交和交流。因為優秀的人身上有你值得學習的東西,他們有你想要學習的那些經驗,可以告訴你怎樣才可以輕易的成功。少走一些彎路。
最後就是要善於歸納和總結。要總結自己的優點和缺點不足。這樣才可以提高自己進步得更快。而且還要善於表達,表達出自己的觀點,讓別人接受你的觀點。
做到這些你就可以少走彎路,成為一個成功的程序人。
『伍』 《機智的上半場》正式上線,男主的程序員造型為何引發熱議
近日,由沈月、梁靖康等人主演的《機智的上半場》開播了,但是梁靖康所扮演的程序員范輕舟引起了大家的熱議,一部分觀眾覺得范輕舟的造型實在是太“程序員”了,難免會造成刻板印象,而另一部分觀眾則認為梁靖康這么打扮,反而是給程序員的造型加分不少,網友們也因此而爭論不休,不過我個人認為范輕舟的這種打扮,的確是有些“冒犯”程序員的。
最後,我認為程序員可以有很多工作習慣,這些也是揣摩角色的時候應該做的,而不是一直靠著模仿外形來獲得認可,更何況是“偏見中的認可”,這是對程序員這個職業的不尊重,也是范輕舟的造型會引起網友熱議的根本原因。
『陸』 一個程序員所要經歷的步驟
程序員應具備的12種能力
畢業四年來,感覺自己也是從一名不合格的程序員一步步走過來的。回頭反思一下,合格的程序員有很多標准和要求,下面是我總結的一個合格程序員應該具備的12種能力。中國軟體行業的崛起,靠的是合格的程序員。任何華麗的管理制度都不能保證軟體項目的成功交付,合格的程序員就是有力的保證,是項目成功的基礎。寫下這些,是為了給剛剛進入程序員這個職業的新同學們一點參考。我一直以為,當程序員是很辛苦的,如果不是真正的喜歡,很難堅持下去。如果真的不喜歡這個職業,也該尊重這個職業,尊重自己,趕緊改行。
1. 編程語言能力
不用多說,作為合格的程序員,精通一門語言是必須的。這種精通,不是說看了一本《24小時精通XXX》,抄了幾個程序就能說精通的,要靠長時間的積累和浸淫。
2.編碼能力
我曾經看多很多程序員寫的代碼,在同一個jsp或者java源文件里,出現了三種以上的對方法的命名方式,有下劃線間隔的,有全大寫的,有拼音首字母的。就像一個菜市場,雜亂無比,估計10天後,他自己都無法看的懂。遵守編碼規范,是一個程序員最基本的要求,可悲的是,很多程序員根本沒有意識到這個問題的嚴重性。隨意堆砌網上搜來的代碼,根本不管可讀性和可維護性,只要能實現功能就行了,心想做完這個項目,就拍拍屁股走人了,缺少最基本的職責素養。我經常把代碼必須成程序員的孩子,你就是是孩子他爹,孩子他媽,是有感情的。對你自己的孩子,你能不仔細呵護嗎?你是稱職的父母嗎?這是我編寫的一個Java編碼規范,供大家參考,這里可以下載http://gurudk.javaeye.com/blog/111734
另外一個就是注釋,要注意不是為了注釋而注釋。對類,以說明職責為主;對方法,以說明意圖為主;對方法體,以說明實現思路為主。對於大段大段的代碼,要分段,使用空行隔開,並使用行內注釋進行說明。
思維的條理性,寫代碼之前,先簡單計劃一下,用自然語言把流程寫下來,用於整理實現思路。不要看了需求或設計之後,馬上就敲代碼了,敲完代碼馬上就debug。花點時間思考,敲代碼只是最後一個很簡單的工作,不要把自己變成一個代碼打字員,編寫邊想,寫了刪,刪了寫。安安靜靜把實現過程想清楚,在腦子里先實現一遍。再去敲代碼,水到渠成。
3.面向對象思維能力
如今,多數編程語言都是面向對象的編程語言。而這些面向對象的編程語言的共同的精髓就是面向對象的思想。掌握這些比面向對象語言本身更重要,比如對繼承,多態,重載的理解。對面向對象基本原則的理解,比如開閉原則,介面隔離原則,單一職責原則等。在此基礎上,應該掌握常用的設計模式,比如工廠模式,策略模式,觀察者模式,模板方法模式,命令模式等等。我面試過很多程序員,沒有一個能說得上幾句的。
4.利用工具能力
工欲善其事,必先利其器。有了趁手的傢伙,工作效率可以提升數倍。你編程序,有沒有選擇一個很好的IDE,以前聽說編程高手都用記事本寫程序,我覺得那是一種自虐。就像以前看到的一篇文章,說一幫戶外旅行愛好者,出去旅遊,背了重重的旅行包,裡面裝著什麼壓縮餅乾等快速食品。他們寧可就著礦泉水啃壓縮餅干,也不肯去1里路都不到的快餐店,農家菜館吃飯。工具是為目的服務的,好用,提高效率就行,形式無所謂。
另外一個常用的工具就是日記本,好聽點可以稱為知識管理工具,我用的是myBase,感覺非常好用,在之前,我的所有的片段內容都是記錄的單獨的文本文件里的,非常不好找,管理也很混亂。
經常上互聯網,看到好多好的資料想保存下來,作為日後查看之用.一開始,我用的是firefox自帶的書簽,但是自己分類太累,多了之後不便於查找,很麻煩。後來用了得樂書簽(del.icio.us)的firefox插件,非常方便,現在成為了我必備的一個工具。
還有一個最重要的工具就是搜索引擎了,我裝了google forfirefox插件,感覺不錯,還有英文翻譯功能。按照我同事的說法,內事用,外事用google。很多技術資料都是英文的,用google搜索效率高一些。搜索引擎用好了,就等於打開了一扇通向知識寶庫的門,使用搜索引擎,關鍵字選擇很重要。
經常去瀏覽大牛的blog,逐個網站訪問很麻煩,去看了又可能沒有更新,可以藉助於RSS訂閱工具,我是用iGoogle桌面工具,每天早上花半個小時掃一下,大牛的最新文章盡收眼底了。
5. 英語能力
新的技術資料都是英文的,英語國家的IT技術走在我們前面至少10年(這是我自己估計的數字,可能正在縮小)。就連印度,一個連基礎設施建設都不太完善的國家,因為其英語基礎較好,其在軟體外包領域的發展也非常迅猛,遠遠超過了我們。學英語,首先是有信心,其次就是花時間。多閱讀英文資料,使用金山詞霸,google的firefox插件等工具配合,貴在堅持。
6.學習能力
在IT也混飯吃不容易,整個環境進化的太快,你不學習,就等於落後了。學習要有針對性,別今天學ruby,明天學python,後天php的。首先要認清自己的目標,自己短期目標是什麼,1年後,3年後,5年後的目標是什麼。結合這些目標,確定自己的學習計劃,人的精力畢竟是有限的。當然,多掌握幾門編程語言也是好的,可以擴充自己的知識面,重要的是為自己的目標服務。
要想系統的學習一門技術或工具,看書是最好的方法。看完後,然後上網找相關資料,進行深入學習。學習要抓緊一切可以利用的時間,比如電腦啟動要花1分多鍾,旁邊放一本書,可以看上幾頁了。公交車上,地鐵上也可以看。
當然,不能只學習技術,要經常聯系自己的軟技能,比如溝通能力,表達能力。你可以把自己學到的東西,解釋給自己的同事聽,既加深了理解,又增進了同事之間的交流。學習的最高境界就是你能夠把學到的東西解釋給別人聽,這才說明你理解了。在學習心理學上,稱之為構成主義。
我學一樣東西,總是先上網了解有沒有相關書籍,如果想學,就買一本或者去圖書館找相關的書來讀。我買的書,家裡快放不下了(到目前位置,我買了1萬多塊的書)。我多半是把目錄看完,了解這本書講解的主要內容,然後需要的時候,我就可以立即補充它進入到我的知識結構。每個人可能都有自己的學習方法,意識到學習的重要,並能夠根據需要補充自己的知識,這種能力更重要。
7.創造能力
普遍認為,東方人模仿能力很強,但創造能力差。我見過很多這樣的程序員,經常說,「這個只能這么解決了,我想不出有什麼別的方法。」可能他根本都沒想過別的方法,或者懶得去想。對任何一個問題,找出兩種以上的解決辦法都是非常容易的,簡單的google一下,可能就是數十種。悲哀的是,有些程序員經常止步於自己構建的狹小領地之內。對待客戶也是這種態度,不是積極的幫助客戶解決問題,而是推脫這只是唯一解決方案。
打破這一思維定勢的首先的一個辦法就是在面臨一個問題時,首先想到的是「沒有不可能」,或是「一切皆有可能」,前面那個是阿迪的廣告語,後面是李寧的。只有這樣去想,才能尋找解決問題的別的出路,即使最後我們試了很多種辦法,還是只有著一種解決方案,但我們在這種尋找解決方案的過程中,常常會產生很多好的想法,這樣才會使我們真正深刻思考一個問題。建議大家看一看《水平思考》這本書,他提供了一些進行創造性思考的方法和工具。
但我認為,堅持認為存在另一種解決方案的信念是第一位的,方法和工具都是其次。
8.文檔能力
也許有人會質疑,程序員跟寫文檔有什麼關系。大家開源軟體也用過不少,看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他么的tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。其實寫代碼也相當於寫文檔,只不過用的是編程語言。同樣,寫文檔,用自然語言,也相當於寫程序,簡單明了,清晰易懂,這樣的「程序」誰看誰舒服。同樣,對於想進階到設計師或者需求分析員角色的程序員,文檔能力更是非常重要。
word是一個最實用的工具,很多程序員,多級編號都不會用,索引目錄也不知道如何生成,更別靈活應用樣式了。很多排版都是所謂的dirty work。垃圾樣式一大堆。其實,靜下心來,稍微學習一下,就能寫出一篇格式漂亮的文檔。
9.抽象能力
抽象能力是認識事物從現象到本質的能力。如果你只是停留在「見山是山,見水是水」的層次,客戶說什麼,你就做什麼,設計怎麼做,你就怎麼實現,從來不過問為什麼,也不去想他是滿足了用戶哪些方面的需求呢。這樣可能只解決了表面的問題,可能會引起返工。認識到本質,才能讓你的程序具備更大的靈活性和可擴展性。在做企業應用軟體開發中,抽象能力體現為對問題域的理解能力,對領域模型的抽象。合理的抽象也是代碼重構的前提,每一次重構,都是向更好的抽象邁進了一步。
10.代碼評審能力
代碼評審和單元測試是保證代碼質量的兩種常用手段之一。代碼評審能力,說明了你的審美標准,知道什麼是好的,什麼是不好的,什麼是優雅的代碼,什麼是糟糕的代碼,你才能讓自己做的更好。
11.單元測試能力
沒有單元測試的代碼,只能說是半成品。因為沒有什麼能證明你的代碼是可以運行的。測試驅動開發是一個非常好的敏捷過程的最佳實踐。單元測試還可以作為回歸測試,在修改代碼時,起到警戒線標志的作用。是否具有單元測試的意識是區分程序員是否合格的重要標准。寫不寫單元測試是區分平庸程序員和優秀程序員的重要標桿。
12.DRY
DRY是一種原則,就是Don't RepeatYourself.出自《程序員修煉之道-從小工到專家》。這條原則可以用到很多地方,比如你經常要編譯,打包,部署應用程序,供集成測試用。每次你都在重復你自己,寫一個自動化腳本(比如用ant,批處理命令)來將這些工作自動化,以提高效率。
還有一個就是我們經常在不同的地方切換IP,如果每次手工做,也非常浪費時間,寫一個bat命令可以解決,找一個小工具也可以解決。
編碼時,對代碼的復用也是在重復你自己,雖然拷貝過程很爽,但是維護一致性就要付出巨大的工作量,特別是將來維護的人不是你的時候,使用代碼生成工具可以解決這個問題。類似的例子太多了,如果你發現你經常做一些重復的工作,就要警惕了,是否違背了這個原則,想一些辦法將他們自動化。
『柒』 好程序員跟黑馬比哪個課程更有深度,能學到更多的知識
我就是黑馬程序員畢業的,我沒聽說過好程序員。
我是去年11月安卓畢業。畢業以後工資12000,在我們班不是最高,也不是最低。我們當時確實有講基礎,為了保證所有的同學都跟上進度,老師也很負責。你學的快,多餘的問題可以去問老師,他們都會給你講!我們班當時有個22000的,因為基礎很好,老師額外給講了很多東西。你還是去實地考察一下吧,網上的一些人就是專職的水軍,還是不足為信的!!一個只有1級的孩子,呵呵~
原來你也是好程序員的員工啊~~
『捌』 模仿windows中的科學型計算器,編寫一個自己的計算器程序,程序中能夠實現二、八、十、十六進制數的轉換。
- -b打開記事本寫入start calc.exe,另存為a.bat...(被pia飛
好吧,計算器這種也不是三兩句能說清的,我的建議是先選一門自己喜歡的語言,想當程序員的話建議從c語言開始學,業余玩玩的話就挑那些vb、易語言這類的,不用了解微機原理就能玩得轉的比較高級的語言,鑽研鑽研,學程序第一點就是要有耐心,不要覺得變數、控制結構這些抽象的概念與你的程序關系不大,從hello world開始一步一步加深理解,不要看那種一上來就從寫計算器教起的,沒有那些基礎,再怎麼跟你講也是白搭...
『玖』 初學者JAVA程序員怎樣快速提升自己技術
一、提升對java技術的思考
很多人口裡嚷著要提升java技術,行動也有,但就是不奏效,是怎麼回事呢?因為行動前沒有好好的思考,比如老是盯著已經掌握熟練的java技術練習,你為什麼不考慮多練練你不熟習的java技術呢?那麼應該思考些什麼關於java技術的問題呢?
1、這個技術能解決什麼問題(why)
2、比較適合在哪些場景應用(where+when)
3、這個技術跟我已經掌握的哪個知識或技能類似,有什麼差別、有什麼特點、有什麼優點和缺點(what)
4、了解前面的問題後,你在開始考慮提升java技術那麼效果會比較好。
二、善於模仿,把他人的變成你的
你的代碼剛開始是怎麼學會的呢?不外乎模仿,但是模仿也有訣竅,有的人模仿的快,有的人模仿的慢。時常強調,多去看看其他人的代碼是怎麼編寫的,你可以從其他人的代碼中模仿出很多的東西,甚至你可以嘗試去修改其他人的代碼,讓它跟你的想法更加接近,看看你下次是不是可以這樣做,看看學習效率有沒有提高或者變得簡單,長此以往,你的java技術一定會有質的提升。
『拾』 程序員分成幾種不同的境界
《程序員》雜志上有一篇文章寫的非常好,這里節選一段。文章一標題是《》。對比了一下,我覺得自己看來只能屬於第五流的程序員。把這篇文章引在這兒,是准備時時刻刻激勵自己,往更高層次努力,或者追求更高人生境界。 五流程序員比技術和工具 四流程序員比整合和管理 三流程序員比創意和設計 三流程序員不僅要求把事情「做完」,同時要求自己把事情「做好」,他的作品裡充滿著感動和生命,即使好幾年以後重新來過,你依然會覺得那些創意和設計,突破了時空限制,只能模仿無法取代。 二流程序員比溝通和性格 一流程序員比態度和方法 只要他掌握了適合他自己的學習態度和方法,那麼他可以從任何時刻開始新的學習,並且展現最好的結果,至於現在會不會,懂不懂都不重要,因為只要他想要,他就隨時可以要,也能要得到。 超級程序員比思想和素質 程序只是語言的表述,而語言則是思想的淬煉。 超級程序員不僅改變我們的行為,也企圖改變我們的思想。