① 為什麼老程序員的效率如此高
程序員老師傅的解決問題能力要比初級甚至是普通的程序員都要高出很多倍,所以每個軟體公司都會在保留1,2個經驗豐富的資深級軟體工程師,這樣在遇到項目或者產品難點的時候能夠力挽狂瀾,這種水準的程序員也是很多公司追求的對象,而且和年齡沒有太直接的關系,編程最終的就是給出解決問題的方案,從解決問題的角度出發解決方案還是非常多,但是在不同的人會給出不同的解決方案,但是有經驗的程序員在解決問題的時候就會思考的比較多,不容易導致引入新的問題。
編程能力最直接的表現不是寫代碼的能力,因為隨著時間的推移時間積累夠了代碼能力自然就上去了,很多程序員在工作多年之後雖然代碼能力得到極大的提升,但是還是不具備獨立的框架或者功能復雜的模塊設計能力,所以很多人在工作多年之後工資一直不能得到上漲,這是主要原因編程的關鍵還是思路問題,關鍵點還是在於有正確的解決問題的思路,思路的切實性是需要經過項目實戰的積累。
所以優秀的程序員一定是身經百戰的經歷過項目的洗禮,只有經歷過項目才能真正意義上懂得編程是怎麼回事,而且每次經歷的項目都能夠獲取足夠多的營養出來,越是優秀的程序員經歷過項目之後知識體系構建越是完善,越是老程序員越是覺得程序深奧之初,所以老程序員輕易不動手都會思前想後把事情搞明白之後才去真正動手,所以講老程序員真正動手寫代碼的時間還是非常短,大部分的時間都是在構思其可行性,真正動手的時間會非常短所以大家看到老程序員大部分的時間都是在看代碼或者看一些資料,甚至有些人很少看到老程序員在大塊的時間寫代碼。
越是老程序員對於編程語法看的越是淡薄,編程語言到了一定層面就是工具般的存在,就是為了編程思想服務,如果還在為了編程功能實現代碼而煩惱證明了還在初級的學習階段,度過了這個階段之後就要考慮如何駕馭架構以及如何錘煉自己的編程思想了,編程的學習過程是需要循序漸進的不要覺得距離自己老程序員有非常遙遠的距離,從開始入行就要慢慢去積累不斷打磨自己的思想,希望能幫到你。
25年老程序員,20年CTO,來解答一下:
1、經驗、教訓使然,所謂虧吃多了,也就不吃虧了。
2、長久工作,養成了一定良好的習慣。
3、代碼量到一定程度,自然而然會更熟練。
4、一些非技術的經驗知識,還是需要時間來積累。
5、老程序員的思維經過多年的訓練,更有利於直達本質。
6、他們的方案可行性更高,這樣減少返工。
7、代碼質量高,測試通過率高,考慮的因素更周全。
8、代碼改起來更容易,找問題也相對容易。
9、對任務的理解更全面,能夠從更多的角度去設計程序,權衡效率、速度、性能、擴展性等各方面的因素。
10、也不是所有的老程序員都能這樣,這個還是跟這人的學習能力有關系,所以大家是能3年變成老程序員,還是10年,就看自己的個人努力了。
在IT編程開發的過程中,老程序員開發的效率會非常高。比如:一個網站模板,新程序員可能要花上一個星期的時間才可以完成,而老程序員卻可能只需要1-2天就可以做好。這是為什麼?莫非他們天生就有神相助。非也,這所以會這樣,據我分析,主要有以下幾點。
因為長期的編寫代碼,所以,會碰到非常多的問題,然後就會去解決這些問題,這就讓老程序員有了豐富的實戰經驗。反觀新程序員,碰到一個問題,因為以前沒碰到過,所以要花大量時間去解決。而老程序員碰到問題,因為以前解決過,所以,很快就會弄好。
在IT編程中,很多的代碼都是可以用來搬運的。因為長期的工作,老程序員會把一些功能代碼記錄或儲存下來,以備後期使用。也就是說,他們就像記筆記一樣,把一些功能代碼記下來,以備不時之需。所以,在新的編程中需要用到時,他們就可以直接拿來就用,自然效率就高,開發就快。
老程序員在編寫代碼時,一般都會對代碼的規范和格式比較重視,使用代碼清晰有條理,閱讀代碼時就不費力氣,而且還會做好每個功能代碼的注釋。這樣,不管是對現有開發,還是對後期維護,都是非常有利的。如有代碼出現bug,可以很容易地找到,這同樣節省了大量的時間。
老程序員在編寫代碼時,會先從大處著手,把大的框架給弄好,然後,再對整個編程的細節有針對性地編寫。這就好比開發一個高樓大廈,開發商會先把主體框架搭建好,然後,再一層一層地去弄每一層樓的細節。這樣,往往目標會更加清晰,只要按步就班地執行計劃,就可以很快完工。
熟能生巧
為什麼老程序員的效率如此高?
首先, 敲代碼的效率 != 工作效率
並不是老程序員效率就高,而是程序員要提高效率需要一些方法,這些 方法的學習和掌握需要一定的時間 ,結果就是老程序員的效率會相對要高一些。
所使用的編程語言的熟練程度我經常會看到一些新手程序員在寫代碼的時候需要頻繁的去查看文檔或者是網路搜索各種介面的用法,有時寫一個功能要查個幾十次,很多時間都浪費在了搜索上,真的寫代碼的時間很少。
而一個在這門語言浸淫了幾年甚至是十幾年的程序員,對這些介面瞭若指掌,使用的時候信手拈來,還知道介面裡面的實現機制,可能會碰到哪些坑也一清二楚,減少了很多bug的出現。
你是不是有把那些介面拿出來反復琢磨,去研究它的源碼,認真地了解它呢?
對編程工具的掌握程度工欲善其事,必先利其器。
一個好的編程工具有很多可以幫助程序員減少工作量的功能,比如代碼重構、自動格式化、語法檢查、代碼提示和補完等等,掌握這些也能大大提高開發效率。
隨著IDE的發展和進步,現在很多工具都不需要太復雜的學習就可以操作,所以這個是一個投入小而回報很高的事。
業務需求的熟悉程度代碼是為業務服務的,我們首先得理清楚業務邏輯,才能知道要怎麼寫代碼,而新手對業務不熟悉的時候,光是弄明白業務需求是什麼可能都需要不少時間,有時候還可能會錯誤理解需求,導致寫出的代碼文不對題,只能重寫。
所以多思考,多問,多討論,不會花太多時間卻會減少很多時間的浪費。
調試的效率寫出來的代碼還需要經過測試,如果有bug就需要調試了。
很多新手只重視寫代碼的工作,對於怎麼調試卻忽略了,有的人甚至只會使用列印功能一步步通過排查找bug,並且對寫出來的代碼沒有概念,連bug大概可能在什麼地方也不清楚。
老練的程序員不只是靠列印,有時候只看報錯信息就能知道bug大概在什麼位置,配合上列印還有斷點功能很快就可以找到bug的位置,更不要說他們很清楚怎麼寫出容易調試的代碼。他們會在寫代碼的時候就對可能出問題的邊界條件進行檢查,並且會利用自動化測試來減少工作量。
寫代碼之前的構思新手很容易犯的一個錯誤就是拿到功能需求馬上就開始寫代碼,可能寫到一半會發現前面的代碼有問題需要推翻重來,或者是寫錯了方向。
老程序員寫代碼之前會先進行構思,把功能需求拆解,分成不同的小模塊,甚至會在紙上把這些想法畫下來,基本上在這一步就把問題已經解決了,寫代碼只是把解決方案用代碼表達出來而已。
所以,如果你也想做一個十倍程序員,記得不要只是埋頭寫代碼,還要刻意去練習這些提高效率的好方法!
在寫代碼前,代碼差不多已經刻在腦子里了,寫代碼的時候,總覺得雙手敲鍵盤的速度趕不上腦子的速度,寫出的代碼幾乎不需要調試,你說效率高不高?
因為老程序員經歷多了,一些常規性的BUG基本不會出現,對用戶需求也能做到最大的完善,還有對需求增加和修改有個大概了解,會提前預留介面和模塊,還有對用戶的硬體有了解,在程序上會有相對優化。所以老程序員寫的程序不一定美觀,也不一定最簡化,但是可能是最合適的,可惜中國的程序員剛成熟就要面臨失業。年輕的程序員啥都不懂,片面追求性能,美觀簡潔的程序,在兼容性和實用性上大打折扣,不顧用戶的使用情況和硬體情況,項目一上線問題多。
老程序員分為兩種,一種是年紀老,常常被換做「老X」,一種是能力老,常被人換做「x老師」。
老程序員之所以效率高,離不開幾點:
程序員是一份高強度的腦力工作,能成為老程序員者,智力,體力無一不是同齡人中佼佼者。能夠更加效率的工作自然是理所應當,方符合家有一老,如有一寶的普世價值。
祝廣大碼農早日修煉成為這樣的老程序員。
老程序員,碼代碼速度並不見得比年輕人快。但老程序再面對需求時,能很快抓住技術關鍵點,難點,重點,如何突破都瞭然於胸。當出現問題,老程序員有經過實踐的診斷定位排錯的邏輯思路與手段 。其實這些熟能生巧是一方面,學習與實踐 領悟是另外的方面。年輕人觀察能力強 悟性高,也會青出於藍
老成員就是圖書館,硬碟存滿了各種經過調試且運行過的程序,只需要復制粘貼,效率肯定高
② 為什麼程序員都不想二開代碼了
我甚至可以認為如果非程序員能真正上手低代碼和無代碼平台,那麼基本上稍微培訓一下就能成為至少是合格的程序員。
2.對於程序員來說,低代碼通常並不能提高程序員的效率,因為程序員可以找成熟的腳手架或者叫項目骨架。
3.對於老闆來說,會以增加一個功能的表象來衡量工作量。
而實際上遇到低代碼平台不支持的特性才能實現的功能的工作量=重寫前面的所有功能+實現新的功能。
所以對於程序員來說,活還要自己干,也不提升自己幹活的效率。
然後增加功能時遇到問題了,老闆以為很簡單,實際上你要解決這個問題需要重寫前面所有內容。
③ 有人說,人工智慧將來可替代程序員寫代碼,你怎麼看
你好!我是康哥! 未來不光是人工智慧會取代程序員寫代碼,我認為很多行業都有可能被取代!
作為80後的我小時候沒有電腦,父母那一輩基本上班的時候也都沒接觸過電腦,那個時候工作文稿都是用手寫,而到我上了大學,短短18年的時間電腦在中國得到了普及。讓我印象最深的是我參加工作的時候公司的老會計,業務能力不在話下,但是金蝶用友玩的不轉。後來也不得不順應時代的發展,學習電腦知識。
所以人工智慧現在看似是一個很新興的產業,但是很可能在未來的十幾年當中滲入我們生活中的方方面面。
那些重復性的工作,例如人力資源中的考勤工資;財務中的基礎做賬工作;程序員中的基礎代碼工作;甚至醫院的醫生都會被人工智慧取代 。
未來不會被渠道的是一些重復性工作不強的職位,我認為這個實際上就是效率的提升,電腦代替手工勞動,機器代替人的大腦和手腳,讓我們的生活更加有效率。
我認為是一件好事情,能讓我們有更多的時間去開發新事物。不斷地開發我們的大腦去 探索 新事物。
但是從另外一個方面來看,未來的確有很多人會失業。不管是現在我們常見的一些崗位,包括一些看似穩定的鐵飯碗,例如公務員或者事業單位人員,一些職能性的但是效率底下的職位也將會被取代。
這就提醒我們每個人都要居安思危,不斷提升自己的技能和附加值,這樣才不會被 社會 所淘汰,二十年時間看似很長,但是實際很短。
AI能代替我們的是一些能夠重復的工作和簡單的開發工作,可是誰來維護這些人工智慧,如何管理這些人工智慧我認為未來是我們人類職位的一個新增項。
作為一名IT行業的從業者,同時也是一名計算機專業的教育工作者,我來回答一下這個問題。
首先,隨著人工智慧技術的不斷發展,未來大量基礎的編碼工作必然會由智能體來完成,這個過程也會不斷推動程序員的崗位升級,提升程序員的崗位附加值,同時減輕程序員的工作壓力。實際上,人工智慧技術的發展對於未來延長程序員的職業生命周期具有重要的意義。
當前程序員崗位的工作壓力還是比較大的,不僅應用級程序員每天需要完成大量的編碼工作,研發級程序員也需要面對一些毫無能力提升的編碼工作,這在很大程度上降低了程序開發的樂趣,使得程序員感到乏味。隨著當前產品迭代的速度不斷加快(大數據時代的並行迭代),程序員不僅面臨更大的工作量,在工作內容上也得到了一定的拓展(全棧開發趨勢),所以當前從事程序員崗位還是具有一定難度的。
要想讓程序員從當前的工作壓力當中解放出來,採用智能體實現代碼編寫是非常重要的一個解決方案,這不僅會提升程序開發的效率,同時也會保障程序代碼的質量一致性,提升程序的穩定性。實際上,當前在程序開發領域內已經有不少工具可以完成一部分代碼的生成工作,雖然目前功能還不夠強大,但是已經在一定程度上減輕了程序員的編碼負擔。
未來當智能體替代程序員完成基本的編碼工作之後,程序員可以把更多的精力應用在創新方面(演算法設計、模式設計、框架設計等),而且技術驗證的速度也會明顯提升,這些都會提升程序員的工作效率。
如果有互聯網、大數據、人工智慧等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!
有人說,人工智慧將來可替代程序猿寫代碼,你怎麼看?
好!
科技 這么發達,
完全有可能,
但是,
怎麼發達,
有一些程序還是離不開人的操作,
程序猿,
有些程序必須靠人工才能完,
這個毋庸置疑,
不論智能怎麼發達,
有些人的操作,
永遠取代不了的,
這個倒是真的,
有一些事物,
是人工智慧無法完成的,
到任何時候人,
都不會被智能取代消退,
總有一些程序交給人,
來操作!
都是些不深入ai的媒體炒作概念,讓人覺得ai無所不能。一百二十八年內不可能,有的話也是小打小鬧,滿足不了工業屆千變萬化的需求。ai可以輔助創作,但獨立創作,尤其是代碼,絕無可能。
如果ai將來能寫可執行的邏輯正確的代碼,那麼未來的程序員或演算法工程師,都會大部分失業。如果ai都能按邏輯寫代碼,都可以去嘗試各種邏輯,甚至自己決策。那麼ai可以控制各種帶有晶元的設備,小到手機,大到 汽車 。這還是ai么,這不是上帝之子么。
可能你從github喂海量的代碼給到模型,藉助於大數據和gpu算力出來,理論上來說能訓練出一個號稱能寫代碼的ai.但這個ai寫出的代碼都是基於統計規律的,不能處理突發事故。運氣好的話,生成的代碼能執行,但代碼越長,生成的代碼可運行的概率越低。
即使能運行,代碼的邏輯是什麼?
程序員和產品經理干架,就是因為需求會一直變。你期望ai能寫出滿足千變萬化的需求的代碼?
我們從幾十億年的單細胞生物進化到今天,能不能有點自信?要是ai這么厲害,我覺得我沒臉說我是人了。總之,怎麼可能!
將來我們寫代碼時:
總之,ai可以輔助程序員編程,極大提高編程效率。但如果代替程序員自己編程,根本不可能。如果有那一天,我把我現在的手機吃了。
這幾年,人工智慧被炒的越來越熱了,比如阿里的魯班系統能夠自動生成雙十一海報,一天可能出圖上億張;還有通過機器學習,程序畫的話,被賣到上億元;其實就目前來講,這些都是比較基礎的,人工智慧即使畫畫,也是通過機器學習別人的畫之後,說白了, 組合的。沒有靈魂作為支撐的產品,不能說沒有價值,但是在意義層面來講絕對是非常弱的。
人工智慧在將來可以替代程序員寫代碼嗎?我只能說:有可能,而且即使人工智慧代替程序員寫代碼,也是比較基礎的,其實,隨著現在程序工具化的趨勢,已經解放了程序員,如果人工智慧+工具化,在一些基礎的,機械的編程中,確實能夠讓程序員解放出來,去處理更加復雜的業務邏輯和架構設計。
但是,我感覺人工智慧完全取代程序員是不可能的。因為,機器永遠也不想到人類復雜的需求,尤其是,變來變去的需求變化。如果機器能夠有靈魂的話,估計也會被人類復雜且變來變去的需求,折磨的要死,從而發出一句,感嘆:卧槽,這是什麼玩意的破需求。
但是,去年有一條新聞值得我們關注,那就是:
Repairnator 是由 KTH 瑞典皇家理工學院的軟體技術教授 Martin Monperrus 開發。它會監控開源軟體在持續集成期間發現的 bug,並嘗試自動修復它們。如果它成功合成了一個有效的補丁,那麼 Repairnator 會偽裝成人類身份向人類開發者提交此補丁。到目前為止,Repairnator 已經成功生成了 5 個補丁,並被人類開發者永久地合並到代碼庫中。
這是自動程序修復軟體工程研究中新的里程碑。
所以,現在機器都可以修改 bug 了,將來在一定程度上寫程序,也是有可能的,但是完全取代我認為不現實。
原因如下:
當然了,如果機器能夠完全取代人類編程的話,那非常可怕啊,未來有可能將是被機器控制的時代,而不是人類控制機器的時代。
有人說,人工智慧將來可以取代程序員來寫代碼,這個理由不成立,因為人工智慧就是程序員開發出來的。而且現在所謂的人工智慧遠遠沒有達到真正意義上的智能,大部分還是人工更多一點。
如果以人類的生命成長階段來看,人工智慧目前只能算是嬰兒階段,在嬰兒階段就拋棄喂養自己的母親程序員,那為時也太早了。
人工智慧大體分兩個大的方向,圖像識別和機器學習。目前圖像識別成長的比機器學習更快一點,但也僅限於快一點兒,我們常見的圖像識別場景就是無人駕駛。而機器學習發展相對緩慢,都是在初級階段,如果想要有階段性的變化,在演算法機制上要有突破性的進步,才能引領機器學習進入下一階段。
所以至少在未來幾十年甚至上百年我認為我們程序員都不會失業的,還是有飯吃的。
所謂人工智慧的程序也是由人類開發設定的,它也絕不會取代人的作用,它對美學,結構想像力設計,邏輯多向思維甚至懸思學都無法深入涉足,它就像一個架構師將演算法和公式公布出來,其它基礎部分由代碼來完成一樣,就算將來人工智慧也可以進行相關研發,但審核與檢測仍然需要人類完成,人類的工作只會越來越高級。
所以不用杞人憂天,人工智慧是不可能真正成為人類的思維一部分的,當它的工作目標對人類無意義而虛耗電能和時間的時候,人類是一定會及早發現並介入的,一個簡單的拔電源就可以停止其行為……
人工智慧是近階段大家經常提到的一個話題,其中神經網路深度學習其中一個特點,那麼人工智慧最終真的能達到一般人類這樣去思維么?能夠像程序員那樣的編程么?會不會以後有一天真的能替代程序員了吧,這件事情你是怎麼看待的?針對這事情我來說一下我的看法。
人工智慧會讓程序員的工作效率更高,十年之內不可能完全代替程序員
在CSDN上有一篇報道,有一個名字為Screenshot-to-code-in-Keras的項目可以把一些稿件自動變成一堆html代碼加css代碼,有的前端程序員就可能為此而感覺到恐慌,感覺以後人工智慧要替代自己的飯碗了,這樣的事情也不足為奇,在人工智慧這個概念還沒有興起之前,一些java程序員使用ide開發工具就能生成一堆代碼,節省了開發效率。感覺起碼在近五到十年內感覺人工智慧還不能完全替代人類程序員這樣去編程,就以前端代碼為例,雖然html代碼加效果類css讓人工智慧生成代碼,可能人工智慧在這方面戰術上完勝,但是一些戰略問題它還是遠遠不及人類的。
其一它生成的東西能確保是人類想要的嗎?,如果不符合要求是不是需要人類程序員來調整,人工智慧不可能做出一套適應所有場景的東西出來。
其二前端程序員是要與後端程序員進行對接的,在對接時各個參數,怎麼調用了,相當復雜,兩個人類程序員(前端程序員與後端程序員)還需要溝通好長時間,難道人工智慧就能那麼完美理解人類的意思就不需要溝通了么?
近5到10年內的情況可能是這樣的,一些低級的常規的代碼都可能會是自動生成,一些組織調整的工作交給人類程序員來進行處理,最後項目的質量當然還是有人類進行負責的,由人工智慧的加持,程序員的工作效率可能會大大提高,以往傳統開發需要幾周的工作量可能會縮減到幾天甚至更短。
未來上層領域的程序員數量會減少
隨著時間再往後發展,我想一些上層代碼會逐漸由人工智慧程序自己完成了,可能寫代碼的不再是程序員了,比如說可能是一種操作軟體的形式存在,有著成熟的操作界面,良好的操作體驗,一個非技術人員通過界面輸入自己想要的東西,通過一定的規則描述,然後就會生成相應的代碼並能直接運行。或者比這個更先進,不是一個軟體界面的形式存在,而是一個智能硬體設備,只需要對其說話,像與人類說話那樣,說出自己的需求,智能設備就能在短時間內做出自己想要的東西。
如果真能達到這種程度的話,我想未來參與業務開發的程序員的數量將會急劇減少,但是 不可能減少到為0,因為人工智慧做出的東西也不可能是完全有保證的,起碼需要個別人還需要進行對項目代碼進行負責不是嘛,就想現在的無人駕駛車為啥還留有方向盤一樣。上層開發的人員少了,人工智慧這些底層開發的程序員會更吃香了,甚至數量會多起來。
軟體數量和規模將成倍增長
大家都知道程序做事效率是相對高的,人類做項目是用天,周,年為單位來計算的,那麼這些軟體交給人工智慧處理應該是秒級別的吧,如果是大一點的項目頂多是分鍾了。如果是這樣的話,估計人類世界軟體的發展速度將會達到一個新的高度,軟體的數量和規模將是幾何倍數的增長。
如果真是這樣一天的到來,我想人類在學習和思想上都要有策略上的改變,以前經常在嘴邊說的話,要勤奮,要多動手,未來的人類要做的事情,就是要多思考,勤於思考。動手的事情就交給人工智慧去吧。
那是必然的。不僅程序,看病,甚至很多方面都可以,但是,那種機械的,生冷的東西在幾何級數提高效率的同時也會鑄成,無論如何,這個趨勢不可阻擋,是喜是憂?需要蓋棺定論。
電腦只能處理精確到指令,需求一開始往往是很模糊的,以目前人工智慧自然語言語義理解的發展程度,可能性很低。
④ 邏輯思維對程序員重要嗎
很重要,在項目實際開發中邏輯思維是我們的引路人,他的靈活性直接影響我們開發的效率,對我們來說非常重要。
⑤ 程序員如何自己創業
30歲,對於每一個程序員來說都是尷尬的年齡,彷彿舞台上不知不覺間已經謝幕,而自己仍在獨舞;創業,對於每一個程序員來說都是曾經或者正在憧憬的夢想,可是夢想與成功之間難以逾越的距離卻也讓多少人望而卻步……以下是我為大家整理的程序員如何自己創業相關 文章 。
周鴻禕談程序員創業
很多人都嚮往著有一天自己創業,程序員更是如此。如果你想創業,那麼該怎樣創業、需要有哪些准備、自己還有什麼不足等等這些問題你考慮過嗎?本文就跟大家分享周鴻禕在接受某媒體采訪時給程序員上的創業課。
程序員創業的特別之處
關於程序員創業,我之所以願意談我的觀點,是因為我是程序員出身,也是從小公司做起來的,我自認為對待很多程序員個人包括共享軟體作者和一些小網站還是很好的。我希望和他們分享一些 經驗 和體會。
首先,我想說的是聰明人不一定能成功,很多程序員很聰明,但我一看就知道他們不會成功。因為我看到了一些問題,而且現在太多程序員存在很多誤解。因此,我希望把我的觀點告訴程序員。或許有一些程序員能夠清醒,某個人可能因為我的某一句話有了感覺,對他以後的成長產生了幫助,這就足夠了。
要知道,程序員總是以為自己優秀所以就能成功,其實不是。中國的程序員大部分是盲目的:看看一些論壇就能夠感覺到,要麼有一群人自我感覺極端的良好,以專家自居,要麼就是一群藍領埋怨公司和社會環境不行,待遇不好。
應該說,中國程序員創業的成功率也是很低的。放眼望去,中國互聯網成功的人士有幾個是真正寫過十年軟體的。事實上,現狀和我們所能聽到的媒體宣傳的 故事 很不一樣。
很多程序員的最高理想就是寫一個共享軟體,一年可以掙幾百萬。但我希望談的不是告訴程序員如何掙錢,掙錢很容易,而是要告訴程序員如何去創業。比如雖然FlashGet的作者收入很高,衣食無憂,但從創業的角度看,它並沒有以商業公司的方式創業成功。
程序員在創業方面的欠缺
首先,我看到中國程序員的合作心態非常缺乏,我認為這是中國程序員最大的問題,當然這是有很多原因的。
大家經常說這句話:態度決定一切。但事實上好程序員基本上都比較傲氣,因為程序員往往會覺得自己在做世界上一件十分偉大的事情,這就是驅動機器,修改一行代 碼,機器就能夠工作,可以產生各種不同的行為。這很容易會讓程序員產生一種錯覺,認為自己可以Control Everything。程序員的自信在編程上是非常需要的,但不是適合一切場合。如果我們不說這些,可能很多程序員到現在還不知道自己錯在哪裡,仍然認為 自己是King of the World。
事實上,程序員的能力只是控制了一個機器。但創業僅僅具備了和機器打交道這一種能力是絕 對不夠的,他還需要和合作夥伴、競爭對手、投資人、員工甚至整個社會環境打交道。很多程序員因為已經習慣了和機器打交道,不善於也不願意 其它 的工作。很多程序員會內心認為“營銷不是很簡單嘛,市場很簡單啊,管理也很簡單啊,”我認為這種心態是非常害人的。
程序員還是一個很固執的人群,他覺得自己是機器的統帥,因此不會靈活,不會妥協。我當時也喜歡寫程序,但我知道如果自己沉迷於寫程序,肯定沒戲,所以是逼著自己改變角色。
優秀的程序員不要自負
這兩天,我收到幾封程序員的來信。有一封信中大意說“我是個如此優秀的程序員,為什麼我就不能成功呢,請你指點。這里有我的blog地址,看完你就 會了解我了。”我想說的是:如果真的希望別人幫忙,就要把情況真實的說出來,而不是上來就說自己很優秀,這種語言就會讓別人覺得很不舒服,不是很好的交流 方式。我還真看了那個blog,但看完之後,覺得這個程序員就是一個空想狂。
可以說,很多程序員實際上是優秀帶來了自負,這種自負使得其不要說創業,可能在在公司中工作也會遇到問題。所以,我甚至認為程序員在創業方面遇到的困難比其它類型的人員更大。如果程序員希望主導一個創業,可能首先就要逼自己不是一個程序員。
程序員應持開放心態,尋求團隊合作
程序員首先要學會和別人合作。提到這點,很多程序員都會說“我正在帶著其他程序員寫程序啊,我會合作啊。”但這種合作是片面的,我所談的不僅僅是程序員和程序員之間的合作,而是包括了程序員和其它各種角色之間的合作。程序員相親,他們的語言比較能夠容易理解。但作為一個程序員,你能不能商業人員、銷售人員很好的合作呢。
我這些年還看到很多這樣的例子:程序員動不動就把目標定為比爾·蓋茨。其實,比爾蓋茨不應該成為程序員崇拜的目標對象,這會讓程序員迷失方向,因為微軟另外一個創始人保羅·艾倫才是真正的程序員。再看其它一些例子,Google的第20名 程序員都可以獲得五億美元。Adobe公司兩個創始人也是一個精通技術,一個對商業精通,這樣的搭配才能夠更好的成功。因此,對於很多程序員來說,一定要找准真正的榜樣,不要被外界的故事迷惑了頭腦。如果剖開一些故事的外表,你會發現國外很多成功的程序員,背後一定有一個很強大的商業感覺的人或者一個團隊。
程序員的商業感覺其實並 不是很好。即便有商業感覺,其實這只是一個靈感,一個創意,但要要做成、做大還需要一系列的管理、市場、運營,這些對於程序員是不可想像的。程序員要明 白,在自己不擅長的領域,找到一個可以彌補自己缺陷的合作團隊才是出路。加入一個創業團隊,可能個人佔10%,但因為更容易成功,而且團隊可以做100分 的事情。而如果只是一個人做,很可能就失敗了。
這方面,國外的程序員對自己的長短比較清楚。在矽谷,很多程序員技術上都很牛,但他們 都非常知道自己只是在技術這個領域水平比較高,出了這個領域,自己什麼都不是。正因為有了這種心態,他們特別懂得與人合作。我認為國外的程序員已經普遍意 識到了這點,他們很願意成為創業團隊中的一員而並非自己創業。
因此,程序員需要調整心態,不要把自己當作精英人物,要承認自己在編程方面是優秀的,但永遠有人比自己更優秀,對於其它的領域,很可能自己很無知。要知道,其實程序員的選擇其實是最少的,因此抱有開放的心態是最重要的。
程序員與創業要求還有哪些差距
我認為現在的很多程序員經驗過於不足,他沒有認真踏實做過很多工作就奢談創業。如果一個程序員沒有在編程方面深入過,沒有積累,也就是半瓶子醋。這 樣的程序員我接觸過很多,他們自己也不清楚問題出在哪裡,讓人感覺又愛又恨。我認為程序員既然要憑借自己的技術,那就一定要踏實,要能夠實現任何創意。
但現在一些程序員自己沒有商業意識,卻又很自負,不相信別人,不理解的事情就不做。我遇到過很多程序員,他們對公司做什麼方向都質疑。他 們希望自己先想清楚,可是一想就浪費了很長時間。很多程序員就可悲在這里,積累的不多,看不到方向,但他也不相信自己的公司和老闆,這是一個悖論,需要程 序員深刻反省。要知道,每個公司都有懂商業的人。
就這樣,一些程序員極端自負,另外有一些程序員碰了很多釘子之後,感覺很自卑,於是便認為國內軟體業不行,最後 出國 或者打工,很少有程序員能對自己能做公正的評價。
國內環境是否造成程序員浮躁的因素
我以前沒有仔細考慮過這點。但我想,不管怎樣,程序員需要先從自身找問題,因為大環境就是這樣了。我承認一個現實:程序員生存狀態並不是很好,但程序員很多報怨其實是一種不切實際的期望值和自身的缺陷產生的反差。
首先,產品沒有大小,只有市場的大小。很多人總是覺得這也小,那也看不上。認為公司做的產品很無聊,要做就要像某些人宣揚的那樣:做游戲一定要 做3D引擎,好像只有這樣才夠牛。這其實就是一種浮躁。很多程序員寫軟體總是很多bug,基礎知識也不牢固,沒有參加幾個項目,沒有寫過十萬行代碼,就奢 談做大項目,這有價值嗎?
而且我還發現有些程序員特別憤青,罵環境,罵老闆,其實這只能把自己的心態搞的很壞。很多人剛進公司時做的很差,雖然工資少,但他沒有想到給公司增加了很多bug,公司實際上是在給他出學費。論壇上大家都在討論哪裡活幹得少錢拿的多。甚至還有人列了一些黑名 單。這種做法的結果就是程序員自己將周圍環境搞的烏煙瘴氣了。
有的程序員還非常喜歡指點江山,指點公司。我個人覺得這不是不可以,但 指責別的公司對個人沒有什麼好處,因為存在就是合理的。如果看不到,恰恰證明是自己看不到。我看到很多程序員也寫blog,技術交流的我認為非常好,但有 些人是寫評論。我是覺得程序員不要做評論家,中國不缺評論家,最缺的是實幹家。
總之,程序員一般過於自我。總生活在自我的世界中,就不可能真正了解世界是什麼。我很早就意識到了這些問題,也努力的去客服。我的經驗就是看別人如何做的好,為什麼能夠做的好,什麼是我所不能理解。程序員要學會慢慢站在別人立場上看問題。
最後給希望創業的程序員一點建議
對程序員來說,現在要做的也很簡單,這就是需要大量的實踐,要慢慢培養對產品,對商業的感覺。我的建議說出來可能有些忠言逆耳。對絕大多數程序員來 說,自己一個人成功的機率是很小的,所以我認為加入一個創業的團隊可能更為合適。現在有很多初期創業的公司,也需要很多優秀的程序員加盟。如果有理想,可 以選擇加入一個團隊,也有相應的股份,這方面我可以充當一個橋梁。
看看前網路程序員是如何創業的?找合夥人已經OUT了!
“來吧,做我的CTO,給你股份,咱自己當老闆。”
因為同學的一句話,前網路研發工程師YK辭職創業。一群毛頭小子,技術能力過硬,但畢竟資源不足,經驗欠缺,不到半年,項目無疾而終。 互聯網創業 盛行的現在,一個好的技術抵得過一支團隊,更別說出身BAT了。
但很多人不知道的是,就是這一樣一支技術實力超強的團隊,最終竟然也輸在了人上——過於強調技術,沒有頭腦足夠清醒的團隊成員及時制止。這也是為什麼要選背景不同、經驗不同的一群人一起創業了。曾經和YK聊過很久,項目失敗的背後是他對創業更多的思考,特別是對於那些擁有好工作的人來說,拋下一切投身創業需要付出的成本太高,但如果只是給創業者打工,那還不如守著原有的工作,至少更體面、更有保障。
就在我以為他會重新安安穩穩工作的時候,卻意外的在創業大街再次見到了他。細聊起來才知道,他並非辭職重新開始創業,而是用自己擅長的技術加入到新的創業團隊中,以外部合夥人的身份幫助兩個不同方向的項目解決技術開發問題。這次來到大街,是專門和一支團隊開技術碰頭會的。
他的這個選擇意料之外,卻又情理之中。意料之外的是他居然理智的沒有辭職,情理之中的是他選擇了成為外部合夥人,用業余時間一邊做顧問、一邊寫代碼,實現了時間、能力價值的最大化。
其實,說到外部合夥人就不得不提智籌平台。去年3月,正是看到了毛大慶宣布 離職 但依舊擔任萬科外部合夥人的新聞後,智籌將“外部合夥”作為創業者&人才之間對接的一種新的合作關系。現在,創業者來智籌發布任務,除了能與互聯網高級人才建立長期顧問、短期兼職、駐場辦公、遠程協作等合作關系之外,也能通過部分現金+可回購股份的方式,與人才建立外部合夥關系。外部合夥人是一個沒有行政職位,但依舊為企業、團隊做貢獻的人。
對於創業團隊來說,外部合夥人解決了以下問題:
1.快速成長,度過難關。
按照原本的思路,YK服務的兩支團隊還陷在滿世界尋找CTO、找程序猿的泥沼中,但有了外部合夥人,更低的參與門檻吸引了更多人才願意加入,不僅解決了燃眉之急,更推動項目度過難關、快速前行。
2.滿足了人才的多樣性。
一個合夥人已經很難找了,更不用說基因不同、知識不同、經驗不同的一群人。外部合夥人大大降低了對人才的束縛,而這樣的一種合作模式,讓越來越多的人才願意加入到創業中來,組建這樣一支多樣化團隊更容易。
3.更快找到,成本更低。
外部合夥人是通過股權激勵撮合到一起的一群人,利用可回購股權讓人才把創業者的事當做自己的事,目標、利益一致,做事更用心、更高效。股權支付的方式又可以降低初創的資金壓力,創業者不用支付很高的現金,也能請到非常NB的人才來解決難題。
外部合夥人極大的緩解了創業找人難的窘境,但當創業者真正去尋找外部合夥人的時候,往往又會擔心外部合夥人的時間、效率怎麼保證?水平怎麼衡量?什麼人才適合做外部合夥人?
首先,時間自由是第一標准,至少是時間可控,能夠拿出足夠精力完成任務。否則,連時間都不能自由支配的外部合夥人也太不稱職了,CEO找你開會,你卻說你在公司加班,即耽誤了創業者的時間,又降低了自己的口碑。
其次,獨擋一面的能力絕對必不可少。做得了合夥人的,都是某方面十分擅長的專業人才,那麼做的了外部合夥人的,需要更高的水平。從一開始我就強調,外部合夥人一定是高級人才,不然沒資格幫助創業者解決問題,甚至指導方向。俗話說,沒有金剛鑽不攬瓷器活,想做外部合夥人,一定得先有過硬的水平。
第三個標準是認可股權模式。中國基金報曾發表評論稱,未來十年,如果你與股權無緣,可能無法實現財務自由。在如今樓市低迷、股市重挫的時候,股權投資卻異軍突起,特別是在大眾創業、萬眾創新的激勵下,全國創業氛圍濃厚,涌現了一大批優質有潛力的新興企業、互聯網企業。也許你不是土豪,沒有錢參與眾籌,而此時外部合夥人模式的出現,讓普通人也能參與,只不過是用能力和時間參與創業、解決任務,換取股權。
智籌在幫助創業團隊對接外部合夥人合作的過程中,通過實踐 總結 出了最適合做外部合夥人的群體:自由職業者、大企業主管級以上在職人才、工作室、外包團隊等等。這些人能夠站在實戰的高度,不只提供經驗分享,更能夠有針對的解決具體問題,融入到項目和團隊中。
對於很多創業小夥伴來講,找錢、找人是躲不開的兩座大山,有錢了當然可以請NB的人才加入,有人了事兒干好了錢自然不愁,先有雞還是先有蛋的問題永遠都在,找到一方的突破口自然事半功倍。這時,外部合夥人就是打破這一死循環的關鍵鑰匙,只是需要創業者用開放的心態接受、嘗試,畢竟改變原有習慣肯定難受,甚至懶得嘗試。但創業原本就是不破不立的事,只有打破舊有習慣,才能接受新鮮事物,才能有更多新的收獲。
從另一個角度來看,參與創業的門檻降低,意味著越來越多的人能夠將自己的智力換成股權,幫助推動創業的同時,也是對未來的投資。根據智籌平台的數據顯示,當 創業項目 獲得融資後,人才所持的可回購股權將會以最少3倍的價值兌現,這對於很多人來講也是不小的吸引力。外部合夥人模式,降低初創資金成本的同時,也讓越來越多的高級人才加入到創業中來,大大激發了創業活力,無論創業還是參與創業,用起來都是極好的。
⑥ 對於程序員,提高軟體開發的質量和效率該從那些方面努力
1.提高代碼的規范性。編碼規范 可以提高代碼的可讀性,並且在代碼修改的時候很容易。
2.對功能進行分類,並拆分。分析出幾種處理邏輯。編寫代碼時,部分代碼可以。可以提編碼速度。
3.對功能進行分類,並合並。提出共通類。
4.不同的package對應不同的功能。
簡單的說,每天寫幾百行代碼。堅持半年或者1年,就知道什麼方式是適合你的了。 不寫代碼,光想,十年也還是那個水平。每個人的邏輯思維是不一樣的,寫代碼的方式也是不一樣的。有時間問,還不如多寫寫。或者,自己模擬現實個場景(或公司管理制度之類的),然後實現。寫幾個,很自然的就知道自己該怎麼寫了。
⑦ 如何衡量程序員的工作效率
不過,最近Shahar Yair和Steve McConnell指出了該方法的一系列重要缺陷。首先,使用代碼行數之和無法有效評估一個項目的實際進度,因為它更注重行為而不是結果。最終產品在多大程度上依賴於代碼的性能和質量,這也是代碼行數無法說明的。因此,聚焦於此實際上是非常有限的工作效率測量方式。
SLOC無法表明要解決的問題的復雜性,也不能以可維護性、靈活性、擴展性等等因素來說明最終產品的質量。說到質量,它反而可能起到負面作用。通過重構、使用設計模式會減少代碼行數,同時提升代碼質量。代碼量大,可能意味著有更多不必要的代碼、更高不必要的復雜性、更加僵化難懂。
他指出,有些問題可以通過測量度量功能點數解決掉。那麼決定程序大小的因素就變成了輸入、輸出、查詢和文件的數目。不過這種方式也有其缺陷。McConnell提出一些操作性上的問題,比如必須要有一個大家認可的功能點測量機制,而且要想把每個功能點映射到程序員身上也不容易。Daniel Yokomizo是一位經過認證的功能點專家,他在評論中明確指出了這種方式的其他問題:缺少測量功能點復雜度的工具;還需要考慮諸如代碼共享、框架、程序庫之類的事情。這些都會影響到完成一個功能的時間。
有很多人參與了對於測量方式的討論,他們都同意這些做法有其局限,不過他們都覺得衡量開發人員的績效還是有必要的。實際上,不少人認為SLOC可以作為基礎,在其之上通過考慮多種不同因素來進行更復雜的分析。McConnell提出了四條分析開發人員工作效率的必備指導原則,他們也都同意。這四條原則如下:
1、不要指望單一維度的工作效率測量方式能告訴你每個人的真實情況。
2、不要指望任何測量方式可以在很小的粒度上區分出每個人的工作效率差異。這些方式可以為你提出問題,卻不會告訴你答案。
3、牢記:趨勢總是比單獨一點的測量來得重要。