導航:首頁 > 程序命令 > 程序員秀操作

程序員秀操作

發布時間:2022-09-29 02:40:11

① 怎樣做一名高效率程序員

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、重新回顧代碼

重新去回顧和審視自己寫過的代碼,通常會有兩種體驗,一種是我怎麼寫了這么爛的代碼;另外一種則是對自己寫過的代碼充滿了成就感。回顧代碼有時可以觸發我們新的想法,甚至還能對編碼有一個更深層次的思考。

② 一名優秀的程序員該具備哪些好習慣

在如今,社會中存在大量的程序員,這可能是因為寫程序的人薪資非常高的緣故,不過,如此多的程序員中真正優秀的程序員卻並不多,那麼究竟怎樣才算是一名優秀的程序員呢?北大青鳥http://www.kmbdqn.cn/老師告訴大家,真正優秀的程序員自身都擁有其他人不具備的好習慣,那麼一個優秀的程序員該具備哪些好習慣呢?



1、學無止境:一名真正優秀的程序員是不會停止學習的,因為他們知道計算機技術的更新換代是非常快的,只要自己稍微放慢學習的速度,那麼自己就有可能被其他人遠遠拋下,所以要想成為優秀的程序員,那麼必須對業內的新聞、最新技術有全面的了解,這樣你才能明白和了解整個軟體開發的趨勢。


2、掌握多種語言:程序語言是有很多種的,每一種語言都有其對應的領域,如果您不想將自己限制在一個固定的領域,那麼您不妨花一些時間去探索一下其它的程序語言,這能讓你的眼界變寬,從而你會被武裝得更好,你思考問題也就更為全面,這對於自己和項目都會有好的幫助。


3、理性面對不同的操作系統或技術:優秀的程序員明白不同操作系統的優勢、長處和短處,所以他們能夠在選擇系統類型的時候能客觀、公正的進行選擇,能夠理性的分析和理心地面對。


4、別把自己框在單一的開發環境中:優秀的程序員不在意自己使用的到底是什麼開發工具,他們選擇不同的開發工具只是為了更好的達到自己的目的,他們會去嘗試不同的開發環境,去發掘更好的利於自己工作的開發環境。


5、是一個優秀的團隊成員:優秀的程序員從來不是孤單奮斗的,他們往往最喜歡和大家一起進行討論,只有這樣才能讓自己更好得到進步。


6、做文檔:優秀的程序員會將自己的工作內容做成文檔,這樣能讓您的團隊中的其他人能更好的明白自己的意圖和想法,更好的應對團隊中人的詢問。


7、經常備份:好的程序員都有經常備份數據的習慣,他們為了保護自己的數據會將數據放在不同的地方,並做好定期(每日,每周,每月)的備份策略。


從以上的內容我們了解到了一個優秀的程序員該具備哪些好習慣,如果您想要成為一名優秀的程序員,那麼就按照以上幾點來要求自己吧,相信這樣堅持下去您一定可以成為一名優秀的程序員的。


③ HBuilder 編輯器有什麼故事

HBuilder編輯器是web前端開發常用的編輯器


可以先來看下HBuider編輯器的特點:

1.人性化

拋開代碼的編寫效率,我覺得這軟體的一大特色就是照顧了我們程序員的心靈之窗——眼睛。每天坐在電腦前一坐就是一天,而幾乎大部分時間都是盯著電腦屏幕,所以屏幕的色彩搭配很關鍵。我通常在編碼時喜歡用黑色風格,主要是自己也不會搭配護眼色,盡管好多軟體支持屏幕護眼,但是總不願每次開編程軟體都去開一次護眼軟體。



HBuilder編輯器深受國內大多數程序員的喜愛。

HBuilder是有國內DCloud.io,數字天堂(北京)網路技術有限公司開發的一款免費的程序編輯軟體

④ 如何做一名優秀的程序員

首先就是你的目標就不明確,你先要確定自己打算向哪方面發展
當好一名合格的程序員不僅要有扎實的基礎知識,還要多思考,多實踐,勤看書,更要有團隊合作精神,平時多和別人交流,俗話說:「三人行必有我師」,多上網看看一些資料,看看別人對同一問題的看發會有很大的啟發,要知道不是你一個人在寫程序而是和大家一起寫程序,注重團隊的力量!編程是一種藝術,要好好的發揮團隊的力量把它做的漂亮,完美。

勤奮聯系,多寫一些程序,然後在根據程序代碼多想想用多種方法去測試運行它`實習基地給我們提供了實際做一些項目的機會`我會借這個機會多學習`多思考,多實踐。多看一些相關的書,不斷提高自己。

我覺得做一名程序員是很難的,特別是做一名合格的程序員就更要嚴格要求自己,增加團隊合作能力,不斷提高自身水平。

1.1 程序≠軟體
現在很多人以為程序就是軟體,軟體就是程序。事實上,軟體和程序在20世紀80年代時,還可以說是等同的,或者說,在非pc領域里它們可能還會是等同的,比如說某個嵌入式軟體領域,軟體和程序可能是等同的。但是,在pc這個領域內,現在的程序已不等於軟體了。這是什麼意思呢?
1. 軟體發展簡述
在20世紀80年代的時候,pc剛誕生,這時國內還沒有幾個人會寫程序。那麼,如果你寫個程序,別人就可以拿來用。這時候的程序就能產生價值,這個程序就直接等同於軟體。
但軟體行業發展到現在,這里以中國的情況為例(美國在20世紀80年代,程序已經不等同於軟體了),程序也不等同於軟體了。因為現在會寫程序很容易,但是你的這個程序很難產生什麼樣的商業意義,也不能產生什麼價值,這就很難直接變成軟體。要使一個程序直接變成軟體,中間就面臨著很高的門檻問題。這個門檻問題來自於整個行業的形成。
現在,你寫了一個程序以後,要面臨商業化的過程。你要宣傳,你要讓用戶知道,你要建立經銷渠道,可能你還要花很多的時間去說服別人用你的東西。這是程序到軟體的一個過程。這門檻已比較高了。
我們在和國內的大經銷商的銷售渠道的人聊天時,他們的老闆說,這幾年做軟體的門檻挺高的,如果你沒有五、六百萬做軟體,那是「玩」不起來的。我說:「你們就使門檻很高了。」他說:「那肯定是的。如果你寫個「爛」程序,明天你倒閉了,你的東西還佔了我的庫房,我還不知道找誰退去呢。我的庫房是要錢的呀!現在的軟體又是那麼多!」
所以,如果你沒有一定的資產的話,經銷商都不理你。實際情況也是這樣的,如果你的公司比較小,且沒什麼名氣,你的產品放到經銷商庫房,那麼他最多給你暫收,產品銷不動的話,一般兩周絕對會退貨。因為現在經銷商可選擇的餘地已很多了,所謂的軟體也已經很多了。而程序則更多,程序都想變成軟體,誰都說自己的是「金子」。但只有經受住用戶的檢驗,才能成為真正的「金子」。
這就是美國為什麼在20世紀90年代幾乎沒有什麼新的軟體公司產生的原因。只是原來80年代的大的軟體公司互相兼並,我吞你,你吃我。但是,寫程序的人很多,美國的程序變軟體的門檻可能比我們還高,所以很多人寫了程序就丟在網上,就形成了共享軟體。
2. 共享軟體
共享軟體是避開商業渠道的一種方法。它避開了商業的門檻,因為這個行業的門檻發展很高以後就輕易進不去了。我寫個程序丟在網上,你下載就可以用,這時候程序又等於軟體。共享軟體是這樣產生的,是因為沒有辦法中的辦法。如果說程序直接等於軟體的話,誰也不會輕易把程序丟到網上去。
開始做共享軟體的人並不認為做它能賺錢,只是後來用的人多了,有人付錢給他了。共享軟體使得程序和軟體的距離縮短了,但是它與商業軟體的距離會進一步拉大。商業軟體的功能和所要達到的目標就不是一個人能「玩」得起來的了。這時的軟體也已不是幾個人、一個小組就能做出來的了。這就是在美國新的軟體公司沒法產生的原因。比如netscape網景是在1995~1996年產生的新軟體公司,但是,兩三年後它就不見了。
1.1.1 商業軟體門檻的形成
1. 商業軟體門檻的形成
商業軟體門檻的形成是整個行業發展的必然結果。任何一個行業初始階段時的門檻都非常低,但是,只要發展到一定的階段後,它的門檻就必然抬高。比如,現在國內生產小汽車很困難,但在20世紀50年代~60年代的時候,你裝4個輪子,再加上柴油機等就形成汽車。那時的萊特兄弟裝個螺旋槳,加兩個機翼,就能做飛機。整個行業還沒有形成的時候,絕對可以這樣做,但是,到整個行業形成時,你就做不了了。所有的行業都是這樣的。
為什麼網站一出來時那麼多人去擠著做?這也是因為一開始的時候,看起來門檻非常低,人人都可以做。只要有一個伺服器,架根網線,就能做網站。這個行業處於初始階段時,情況就是這樣的。但這個行業形成後,你就輕易地「玩」不了了。
國內的軟體發展也是如此。國內的軟體自從軟體經銷商形成以後,這個行業才真正地形成。有沒有一個渠道是判斷一個行業是否形成的很重要的環節。任何一個行業都會有一個經銷渠道,如果渠道形成了,那麼這個行業也就形成了。第一名的經銷商是1994年~1995年成立的,也就是說,中國軟體行業大概也就是在1995年形成的,至今才經歷8年時間的發展。
有一種浮躁的思想認為,中國軟體產業應該很快就能趕上美國。美國軟體行業是上世紀80年代形成的,到現在已經發展了20多年了。中國軟體行業才8年,8年才是一個懵懂的小孩,20多歲是一個強壯的青年,那麼他們的力量是不對等的。但也要看到,當8歲變成15歲的時候,它真正的能量才會反映出來。
2. 軟體門檻對程序員的影響
現在中國軟體行業正在形成。所以,現在做一個程序員一定要有耐心,因為現在已經不等於以前了。你一定要把所有的問題搞清楚,然後再去做程序。
對於程序員來說,最好的工作環境是在現有的或者初始要成立的公司裡面,這是最容易成功的。個人單槍匹馬闖天下已經很困難了。即使現在偶爾做兩個共享軟體放在網上能成名,但是也已經比較困難了。因為現在做軟體的人已經很多了。這也說明軟體已經不等於程序了,程序也不等於軟體。
程序要變成軟體,這中間是一個商業化的過程。沒有門檻以前,它沒有這個商業過程,現在有這個行業了,它中間就有商業化的過程。這個商業的過程就不是一個人能「玩」的。
如果你開始做某一類軟體的時候,別人已經做成了,這時你再決定花力氣去做,那麼你就要花雙倍的力氣去趕上別人。
現在的商業軟體往往是由很多模塊組成的,模塊是整個系統的一部分。個人要完整地寫一個商業系統幾乎是不可能的。軟體進入windows平台後,它已經很復雜了,不像在dos的時候,你寫兩行程序就能賣,做個zip也能賣。事實上,美國的商業編譯器也不是一個人能「玩」的。現在你可能覺得它是很簡單的,甚至linux還帶了一個gcc,且源程序還在。你可以把它改一改,做個vc試一試,看它會有人用嗎?它能變成軟體嗎?即使你再做個界面,它也還是一個gcc,絕對不會成為visual c++那樣能商業化的軟體。
可見,國外軟體行業的門檻要比中國的高很多了。我覺得我們中國即使再去做這樣的東西,也沒有多大的意義了。這個門檻你是追不過來的。不僅要花雙倍的力氣,而且在這么短的時間內,你還要完成別人已經完成過的工作,包括別人所做的測試工作。只有這樣,才能做到你的軟體與別人有競爭力,能與它做比較。
1.1.2 認清自己的發展
如果連以上認識都不清楚,很可能就以為去書店買一本mfc高手速成之類的書,編兩個程序就能成為軟體高手。就好像這些書是「黃金」,我學兩下,學會了vc、mfc,就能做一個軟體拿出去賣了。這種想法也不是不行,最後一定能行,但要有耐心,還要有機遇。機遇是從耐心中產生的,越有耐心,就越有機遇。你得非常努力,要花很多的精力,可能還要走很多的彎路。
如果你是從mfc入手的,或是從vb入手的,則如要做出一個真正的能應用個人領域的通用軟體,就會走非常多的彎路。直接的捷徑絕對不是走這兩條路。這兩條路看起來很快,而且在很多公司裡面確實需要這樣的東西,比如說我這家公司就是為另一個家公司做系統集成的,那我就需要這樣的東西,我不管你具體怎麼實現,我只需要達到這個目標就行了。
任何軟體的實現都會有n種方法,即使你是用最差的那種方法實現的,也沒有問題,最後它還是能運行。即使有問題,再改一改就是。但是,做通用軟體就不行了,通用是一對多,你做出來的軟體以後要面向全國,如果將來自由貿易通到香港也好,通到國外也好,整個產品能銷到全世界的話,這時候,通用軟體所有做的工作就不是這么簡單了。所以說,正確的入門方法就很關鍵。
如果你僅僅只是想混口飯吃,找個工作,可能教你成為mfc的高手之類的書對你就足夠了。但是,如果你想做一個很好的軟體,不僅能滿足你謀一碗飯吃,還能使你揚名,最後你的軟體還能成為很多人用,甚至你還想把它作為一個事業去經營,那麼這第一步就非常關鍵。這時就絕對不能找一本mfc或找一本vb的書學兩下就行,而是要從最底層開始做起,從最基本做起。
1.2 高手是怎樣練成的
1.2.1 高手成長的六個階段
程序員怎樣才能達到編程的最高境界?最高境界絕對不是你去編兩行代碼,或者是幾分鍾能寫幾行代碼,或者是用什麼所謂的可視化工具產生最少的代碼這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。
我認為,一個程序員的成長可分為如下六個階段。
 第一階段
此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。
 第二階段
此階段能精通基於某種平台的介面(例如我們現在常用的win 32的api函數)以及所對應語言的自身的庫函數。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。
 第三階段
此階段能深入地了解某個平台系統的底層,已經具有了初級的內功的能力,也就是「手中有劍,心中無劍」。
 第四階級
此階段能直接在平台上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高級內功的修煉。比如能進行vxd或操作系統的內核的修改。
這時已經不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候學習語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什麼會難呢?這就是因為很多人的思想變不過來。
 第五階級
此階段就已經不再局限於簡單的技術上的問題了,而是能從全局上把握和設計一個比較大的系統體系結構,從內核到外層界面。可以說是「手中無劍,心中有劍」。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是ms word這樣的大型軟體,只要有充足的時間,也一定會設計出來。
 第六階級
此階段也是最高的境界,達到「無招勝有招」。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼代碼就能表示的。也就是「手中無劍,心中也無劍」。
此時,對於練功的人來說,他已不用再去學什麼少林拳,只是在旁看一下少林拳的對戰,就能把此拳拿來就用。這就是真正的大師級的人物。這時,win 32或linux在你眼裡是沒有什麼差別的。
每一個階段再向上發展時都要按一定的方法。第一、第二個階段通過自學就可以完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有一個好的學習環境。例如有一個高手帶領或公司里有一個好的練手環境。經過二、三年的積累就能達到第三個階段。但是,有些人到達第三個階段後,常常就很難有境界上的突破了。他們這時會產生一種觀念,認為軟體無非如此,認為自己已無所不能。其實,這時如果遇到大的或難些的軟體,他們往往還是無從下手。
現在我們國家大部分程序員都是在第二、三級之間。他們大多都是通過自學成才的,不過這樣的程序員一般在軟體公司也能獨當一面,完成一些軟體的模塊。
但是,也還有一大堆處在第一階段的程序員,他們一般就能玩玩vb,做程序時,去找一堆控制項集成一個軟體。
現在一種流行的說法是,中國軟體人才現在是一個橄欖型的人才結構,有大量的中等水平的程序員,而初級和高級程序員比較少。而我認為,現在中國絕大多數都是初級的程序員,中級程序員很少,高級的就更少了。所以,現在的人才結構是「方塔」形,這是一種斷層的不良結構。而真正成熟的軟體人才結構應該是平滑的三角形結構。這樣,初級、中級、高級程序員才能充分地各施所長。三種人才結構對比如圖1.1所示。
圖1.1 三種人才結構對比
1.2.2 初級程序員和高級程序員的區別
一般對於一個問題,初級程序員和高級程序員考慮這個問題的方法絕對是不同的。比如,在初級程序員階段時,他會覺得vb也能做出應用來,且看起來也不錯。
但到了中級程序員時,他可能就不會選擇vb了,可能會用mfc,這時,也能做出效果不錯的程序。
到高級程序員時,他絕對不是首先選擇以上工具,vb也好,vc也好,這些都不是他考慮的問題。這時考慮的絕對是什麼才是具有最快效率、最穩定性能的解決問題的方法。
軟體和別的產品不同。比如,在軟體中要達到某個目標,有n種方法,但是在n種方法中,只有一種方法或兩種方法是最好的,其他的都很次。所以,要做一個好的系統,是很需要耐心的。如果沒有耐心,就不會有細活,有細活的東西才是好東西。我覺得做軟體是這樣,做任何事情也是這樣的,一定要投入。

程序員到達最高境界的時候,想的就是「我就是程序,程序就是我」。這時候我要做一個軟體,不會有自己主觀的思路,而是以機器的思路來考慮問題,也就是說,就是以程序的思考方式來思考程序,而不是以我去設計程序的方式去思考程序。這一點如果不到比較高的層次是不能明白的。
你設計程序不就是你思考問題,然後按自己的思路去做程序嗎?
其實不是的。在我設計這個程序的時候,相當於我「鑽」入這個程序裡面去了。這時候沒有我自己的任何思維,我的所有思維都是這個程序,它這步該怎麼走,下步該怎麼走,它可能會出現什麼情況。我動這個部分的時候,別的部分是否要干擾,也許會動一發而牽全身,它們之間是怎麼相互影響的?
也只有到達這個境界,你的程序才能真正地寫好,絕對不是做個什麼可視化。可視化本身就是「我去設計這個程序」,而真正的程序高手是「我就是程序」,這兩種方法絕對是不同的。比如,我要用vb去設計一個程序,和我本身就是一個程序的思維方式,是不一樣的。別人也許覺得操作系統很深奧,很復雜,其實,如果你到達高手狀態,你就是操作系統,你就能做任何程序。
對待軟體要有一個全面的分析方法,光說理論是沒有用的。如果你沒有經過第一、第二、第三、第四這四個階段,則永遠到達不了高境界。因為空中樓閣的理論沒有用,而這些必須是一步一步地去做出來。
一個高級程序員應該具備開放性思維,從里到外的所有的知識都能了解。然後,看到世界最新技術就能馬上掌握,馬上了解。實際上,技術到達最高的境界後,是沒有分別的。任何東西都是相通的,只要你到達這個境界以後,什麼問題一看就能明白,一看就能抓住最核心的問題,最根本的根本,而不會被其他的枝葉或表象所迷惑,做到這一步後才算比較成功。
從程序員本身來說,如果它到達這一步以後,他就已經形成了開闊的思維。他有這種開放性思維的話,他就能做戰略決策,這對他將來做任何事情都有好處。事實上,會做程序後,就會有一種分析問題的方法,學會怎麼樣把問題的表象剖開,看到它的本質。這時你碰到任何具體的問題,只要給點時間,都能輕而易舉地解決。實際上,對開發計算機軟體來說,沒有什麼做不了的軟體,所有的軟體都能做,只是看你有沒有時間,有沒有耐心,有沒有資金做支撐。
這幾年,尤其是這兩三年,估計到2005年前,中國軟體這個行業裡面大的軟體公司就能形成。現在就已經在形成,例如用友,它上市後,地位就更加穩固了。其他大的軟體企業會在這幾年內迅速長大。這時候,包括流通渠道、經銷商的渠道也會迅速長大。也就是說,到2005年以後,中國軟體這個行業的門檻比現在還要高很多,與美國不會有太大的差別。此時,中國軟體才真正體現出它的威力來。如果你是這些威力中的一員,就已經很厲害了。
別人可能知道比爾•蓋茨是個談判的高手,是賣東西的高手,其實,比爾•蓋茨從根本上來說是個程序高手,這是他根本中的根本。他對所有的技術都非常敏感,一眼就看到本質,而且他本身也能做程序,時常在看程序。現在他不做董事長,而做首席設計師,這時他就更加接近程序的本質。因為他本身就有很開闊的思維,又深入到技術的本身,所以他就知道技術的方向。這對於一個公司,對他這樣的人來說,是非常重要的。
如果他判斷錯誤一步,那公司以後再回頭就很難了。計算機的競爭是非常激烈的,不能走錯半步。很多公司以前看上去很火,後來就
銷聲匿跡了,就是因為它走錯一步,然後就不行了。為什麼它會走錯?因為他不了解技術的本質在哪裡,技術的發展方向在哪裡。
比爾•蓋茨因為父母是學法律的,所以他本身就很能「侃」,很有說服力,而他又是做技術的,就非常清楚技術的方向在哪裡,所以他才能把方向把握得很准確,公司越來越大。而別的公司只火一陣子,他卻火了還會再火。就算微軟再龐大,你如果不把握好軟體技術的最前沿,一樣也會玩完。就像intel時刻把握著cpu的最新技術,才能保證自己是行業老大。技術決定它的將來。

所以,程序員要能達到這樣的目標,就要有非常強的耐心和非常好的機遇才有可能。事實上,現在的機會挺好的,2005年以前機會都非常大,以後機會會比較小。但是,如果有耐心的話,你還是會有機會的,機會都是出在耐心裡。我記得有句話說「雄心的一半是耐心」,我認為雄心的三分之二都是耐心。如果你越有野心,你就越要有耐心,你的野心才有可能實現。如果你有野心而沒有耐心,那都是胡思亂想,別人一眼就能看穿。最後在競爭中,對手一眼就看到你的意圖,那你還有什麼可競爭的?

1.2.3 程序員是吃青春飯的嗎
很多人都認為程序員是三十歲以前的職業,到了三十歲以後,就不應再做程序員了。現在的很多程序員也有這種想法,我覺得這種想法很不對。
在20世紀80年代末到90年代初,那時軟體還沒有形成行業,程序員不能以此作為謀生的手段時,你必須轉行,因為你年輕的時候不用考慮吃飯的問題,天天「玩」都可以,但是以後就不可能了。
據我了解,微軟裡面的那些高手,幾乎都是四五十歲的,而且都是做底層的。他們是上世紀70年代就開始「玩」程序的,所以對於整個計算機,他們是太清楚了。現在有些人主觀臆斷地希望微軟第二天倒閉就好了,但那可能性太小了。因為那些程序員是從cpu是4004的時候開始,玩到現在奔騰iv,沒有哪一代東西他們沒有經歷過。
你知道他們現在正在玩什麼嗎?現在正在玩64位的cpu。你說你普通的程序員,有這個耐心嗎?沒有這個耐心,你絕對做不了,你也絕對做不了高手。他為什麼能做?因為他不僅是玩過來的,而且他還非常有耐心,每一步技術他都跟得上,所以對他來說,沒有任何的難度和壓力。
因為計算機技術沒有任何時候是突變的。它的今年和去年相差不會很大,但是回過頭來看三年以前的情況,和現在的距離就很大。所以說,如果你每年都跟著技術進步的話,你的壓力就很小,因為你時刻都能掌握最新的技術。但是,如果你落下來,別說十年,就是三年,你就趕不上了。
如果你一旦趕不上,就會覺得非常吃力;如果你趕不上,你就會迷失方向;如果你迷失了方向,你就覺得計算機沒有味道,越做越沒勁。當你還只是有個思路的時候,別人的產品都做出來了,因為你的水平跟別人相差太遠,人家早就想到的問題,你現在才開始認識。水平越高,他就看得越遠,那麼他的思維就越開闊;水平越低,想的問題就越窄。
64位cpu是這個十年和下個十年最重要的技術之一,誰抓住這個機會,誰就能抓住未來賺錢的商機。cpu是英特爾設計的,對這一點他肯定清楚。舉例來說,如果從64位的角度來看現在的32位,就像從現在的角度去看dos。你說dos很復雜嗎?當你在dos年代的時候,你會覺得dos很復雜。你說現在的windows不夠復雜嗎?windows太復雜了,但是你到了64位的時候再去看windows,就如同現在看dos一樣。
整個64位系統的平台和思維方式、思路都比現在更開闊,打個比方說,現在的windows裡面能開n個dos窗口,每個dos窗都能運行一個程序。到達64位的時候,操作系統事實上能做到開n個x86,開n個windows 98,然後再開n個windows 95都沒有問題,系統能做到這一步,甚至你的系統內開n個windows nt都沒有關系。這就是64位和32位的差別。所以,微軟的那些「老頭」,四、五十歲的那幾個做核心的人,現在正在玩這些東西。你說微軟的技術它能不先進嗎?是linux那幾個玩家能搞定的嗎?
微軟的技術非常雄厚,世界計算機的最新技術絕對集中在這幾個人手裡。而且這幾個人的思維模式非常開闊,誰都沒有意識到的東西他早就開始做了。現在64位的cpu都出來一二年了,你說有什麼人去做這些應用嗎?沒有,有的就是那幾個unix廠商做好後給自己用的。

所以,追求技術的最高境界的時候,實際上是沒有年齡限制的。對我來說,現在都三十三了,我從來沒有想過退出這行,我覺得我就能玩下去,一直玩到退休都沒有問題。我要時刻保持技術的最前端,這樣的話對我來說是不困難的,沒有任何累的感覺。
很多人說做程序不是人乾的事情,是非人的待遇。這樣,他們一旦成立一個公司,做出一點成績,在輝煌的時候馬上就考慮退出。因為他們太苦了,每天晚上熬夜,每天晚上燒了兩包煙還不夠,屋子裡面簡直就缺氧了,好像還沒有解決問題。
白天睡覺,晚上幹活,那當然累死了,這是自己折騰自己。所以,做程序員一定要有一種正常的心態,就是說,你做程序的時候,不要把自己的生活搞得顛三倒四的。如果非得搞得晚上燒好多煙才行,這樣你肯定折騰不到三十歲,三十歲以後身體就差了。
事實上,我基本上就沒有因為做程序而熬夜的。我只經歷過三次熬夜,一次是在學校的時候,1986年剛接觸計算機時,一天晚上跟一個同桌在計算機室內玩游戲,研究了半天,搞著搞著就到了天亮,這是第一次。然後在畢業之前,在286上做一個程序。還有一次就是超級解霸上市前,那時公司已吹得很大了,那天晚上沒法睡覺。
一般來說,我也是十二點鍾睡覺,第二天七點就起了。所以說,只有具有正常的生活、正常的節奏,才有正常的心態來做程序員,這樣,你的思路才是正常的,只有正常的東西才能長久。搞疲勞戰或者是黑白顛倒,時間長久後就玩不轉了,玩著玩著就不想玩了。

⑤ 程序員的必備技能有哪些

數組、字元串與哈希表
任何受過專業訓練的程序員,對「數據結構」這門課程中涉及到的各種數據結構都不會陌生,但是在實際的編程工作中,大部分的數據結構都不會用到,而且也永遠都不會用到。雖然如此,深入地理解基本數據結構的概念和實現細節,仍然是每個程序員的任務。這不僅僅是因為,掌握這些知識將有利於更加正確和靈活地應用它們,而且也是因為,對於語言背後的實現細節的求知慾是一個優秀程序員的素質。
正則表達式
在程序員日常工作中,數據處理占據了相當的比重。而所有的數據之中文本又占據了相當的比重。文本能夠被人理解、具有良好的透明性,利於系統開發、測試和維護等就必需要有一定規律遵循一種規則,當你掌握一門正則表達式語言,就能夠培養你編程的直覺本能,達到較高水平,也能夠在實踐中提供更高的開發和執行效率。
調試
軟體調試是軟體工程的一個重要部分,其過程出現在軟體工程的各個階段,從最初的可行性分析、原型驗證、到開發和測試階段、再到發布後的維護與支持,都有軟體調試過程參與。學習和靈活運用軟體調試技術,不僅可以提高程序員工作效率,而且有利於對代碼的感知力和控制力,加深對軟體和系統的理解。此外,調試技術是解決各種軟體難題的一種有效武器,它直擊要害、銳不可擋,相對其它間接方法具有明顯的優勢。軟體有大美,調試見真功!
兩門語言
任何一位職業化的軟體技術人員都會將編程語言當成自己的利器。它們代表了開發人員對計算機本身的理解與對軟體開發工作的執著。同時,建立在編程語言之上的基礎也標志著程序員的職業化道路發展到了一個新的階段,而單一語言又有一定的局限性,軟體開發的本質就是處理信息以及數據。一種專門用來處理數據的腳本語言常常是走向更加職業化的必備武器之一。所以精通兩種語言,對於任何一個開發人員來說,並非必須,但是對於一個專業化程度較高的開發人員來說,又常常是必要的。
一個開發環境
隨著技術的進步,IDE已經越來越強大,遠遠超出我們心目中的最初形象,越來越多的內容被涵蓋到IDE中,從需求分析、業務建摸大批軟體發布,IDE已經逐漸覆蓋了軟體開發的整個生命周期。
SQL語言
說起SQL,絕大多數程序員對其作用都瞭然於胸--用來訪問資料庫嘛。確實,數據是信息系統的核心,沒有數據的計算機應用沒有任何意義。信息系統中,大量數據本質上就以實體--關系的模式存在,而RDBMS支持SQL這么簡單但表達能力豐富的訪問介面,同時還提供了內建的事務ACID特性保證和故障恢復能力--因此,RDBMS理所當然地成為了大部分信息系統的標准數據存儲介質。於是,無論使用何種語言開發信息系統,從C、C++,Delphi到Java,從Perl、Python到Ruby,使用SQL訪問RDBMS都是我們必須修煉的武功秘籍。
編寫軟體的思想
說起程序員的武器自然少不了技術書籍,它們就像是拳譜、劍經、雖然不能馬上轉化為巨大的傷害輸出,但假以時日勤以研讀,有朝一日成為傍身絕學也是說不定。不過雖然各類技術書籍汗牛充棟,除去入門時淺顯易用的參考和復雜深奧的學術專著,能夠讓所有程序員常看常新的心法秘籍還是不多。

⑥ 成為優秀程序員的十個有效方法

如何快速成為一個優秀的程序員?


優秀的程序員是在穿過一條單行道的時候還會往兩邊看的人。


作為一個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源代碼,並經常在日常工作中閱讀和查閱。他們這樣做不僅是滿足求知的渴望,還從中學習了如何寫優秀的程序。閱讀和查閱那些你認為可靠的出名的開源代碼或者比你資深的程序員的代碼,你會寫出更棒的程序。


最後,我想說的但沒有將其列在上面的:不要和他人比較


和他人的比較往往會造成消極的情緒和不健康的競爭。每個人都有他的長處和短處。揚長避短很重要。我也經常看到一些基礎很厲害的程序員范很低級的錯誤。所以僅僅和自己比較,列舉你自己需要改進的地方,並持續改進它。編程是很有意思的事情,享受它吧。


任何一個傻瓜都能寫出計算機能理解的程序,而優秀的程序員卻能寫出別人能讀得懂的程序。

⑦ 程序員的必備技能

1.學無止境;
2.掌握多種語言;
3.理性面對不同的操作系統或技術;
4.別把自己框在單一的開發環境中;
5.使用版本管理工具管理你的代碼;
6.是一個優秀的團隊成員;
7.把你的工作變成文檔;
8.注意備份和安全;
9.設計要足夠靈活;
10.不要搬起石頭砸自己的腳。

⑧ 程序員要具備什麼技能

一名合格的程序員需要掌握哪些技能呢?

熟練掌握開發工具

做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。

熟知資料庫

為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。

對操作系統有一定的了解

當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。

懂得網路協議TCP/IP

在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。

明白DCOM/CORBA/XML/WEB Services存在的意義

隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。

不要將軟體工程與CMM分開

現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。

擁有強烈的好奇心

什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。

閱讀全文

與程序員秀操作相關的資料

熱點內容
寶塔上的網站源碼怎麼打包 瀏覽:280
采補爐鼎小說 瀏覽:892
窗口輪廓菜單命令的快捷鍵 瀏覽:300
怎麼看安卓版本是幾位 瀏覽:640
貓撲天涯的情感類小說 瀏覽:428
正能量電影中國 瀏覽:276
妖神記免費全集小說 瀏覽:536
喜虎棋牌源碼 瀏覽:909
武林外傳文件加密 瀏覽:596
紅羊真打軍電影野 瀏覽:59
香港露點喜劇電影 瀏覽:402
藍天使電話手錶如何下載app 瀏覽:82
如何用App寫教案 瀏覽:579
中文字幕在線資源 瀏覽:990
法國啄木鳥軍艦系列 瀏覽:809
我的世界伺服器怎麼樣靈魂綁定 瀏覽:159
不用下載直接看片的網站 瀏覽:732
台灣同性電影女同 瀏覽:155
武漢程序員的工資 瀏覽:153
奕劍術林奕 瀏覽:257