⑴ 為什麼年紀大的程序員都轉行了
我不確定多大年紀才算是「年紀大」。我今年43歲仍然做程序員。
從九幾年開始進入這一行,中間也曾自己做過傳統業行,也做IT行業不同崗位做過,在程序員的晉升通道中也做過研發總監,可這些,都沒法帶給自己那種寫代碼得到的樂趣。,最終還是又回到程序員崗位。
在中國,願意一直寫代碼的人,並不多,這是事實,但我的看法是,這並不是因為年紀的原因,也不是因為競爭的原因,而主要是【中國式職業規劃】和【IT企業的生存壓力】的帶來的。
中國式職業規劃
現在很多培訓機構、很多企業,都在談職業規劃。
企業告訴你:我們這個崗位的晉升通道是這樣的,巴拉巴拉巴拉……
這意思就是說,你來做這崗位吧,做若干年,你就可以在這個通道上往上爬一層……
那麼好了,不管這個晉升通道是什麼樣的,你一開始是程序員,爬幾步後肯定就不是了。
培訓機構告訴你:要有職業規劃,要有人生規劃。
在我看來,這是洗腦:他們的人生規劃的核心是"努力掙錢,然後去過幸福的日子",然後根據這個再推出相應的職業規劃:努力工作->獲取更高的職位->掙更多的錢->更努力工作……
如果信奉了這些,那麼,當一個程序員接近個人能力的瓶頸或者職業、行業的瓶頸時,感受到那種突破的壓力,他就會考慮轉換崗位以尋求更容易突破的方向。而遇到這類瓶頸的程序員,估計多數就是所謂的」年紀大「的范圍了。
中國經濟正處在高增速階段,這導致每個家庭、每個人需要不斷提高自己的收入水平以保持與之同步,這一方面導致這種將」錢「作為核心詞彙的人生規劃大有市場,另一方面,也使中國企業的生存壓力高於其它國家。
IT企業的生存壓力
世界的變化正在加速,在IT這個行業尤其顯著。
對企業來說,速度就是利潤,就是生存的機會。早些年流行的一句話」快魚吃慢魚「把這個道理形容得十分形象。所有行業上,競爭都是越來越激烈,IT企業只會更甚。
二十年前,一個軟體開發公司可以花三到五年來打磨一個產品;十年前,這個時間只有一年;而現在,更是縮短到幾個月。
IT行業對開發速度的要求越來越高,這種速度是的提升,主要是從三個方面實現的:增加人手、優化開發流程、壓榨人力。前兩者對於一個具體的IT企業來說,在沒有業務變化的前提下,都是有明顯的極限的,所以,最終,還是落到第三個手段上:壓榨人力。
在你以為996就是程序員世界的現實時,真正的現實是:在996之外,你還得保持隨時待命的狀態:電話保持通暢、微信常開什麼的只是小兒科,網上隨手搜搜就能搜到程序員深夜在馬路邊、地鐵上改代碼的消息。這種對工作時間的壓榨,在其它職業上是很少見的。所以,程序員的工作壓力之大,也是少見的。
基於這兩個主要原因,程序員,尤其在中國,年輕化相對於其它行業是十分明顯的。
但是,當擺脫了經濟壓力後,大部分人還是會想尋找一個自己喜歡的工作或事業去投入自己的精力與時間的,這時,如果對coder是真愛,還是會再次回到這個崗位上的。只是,在經濟快速增長階段,企業與這類人在工作時間方面的沖突難以調和,所以,這類人就比較少見了。
隨著經濟增速放緩,會有更多的大齡程序員活躍在代碼界的。
⑵ java的單例模式在開發中有哪些應用
比如:程序員定義的一個讀取配置文件的工具類。在項目中可能多次使用這個類,如果每次都new一個實例出來,這樣在運行期間就會存在很多實例,而實際上只需要一個實例對象就可以了。多出來的實例對象會浪費內存資源
⑶ 有哪些老程序員都知道對新手很有用的經驗
一說到程序員,想必大家的第一印象就是頭發少,很大程度上就是因為壓力大導致的,有生活壓力,也有工作壓力。
今天說說工作方面的壓力,想必看到這個問題的小夥伴都有一個認知,就是一個項目往往比預期的要長,說不定從哪天開始就加班了,一出現BUG真的要人命。此時,考研新老選手心態的時候和經驗的時候了,老程序員或許能從容應對,新手可能完全不知錯所。
這些信息包括戶口檔案、社保、公積金等信息,程序員新手可能跳槽比較頻繁,有人甚至還換個城市工作。除了戶口可能其他的信息都亂了,可能當時覺得不那麼重要,但是十年、二十年後,可能會非常重要。
·工作日誌可以提升腦容量;
·不要先寫框架再寫實現,要反過來;
·重構/優化/修復Bug,不要同時做;
·簡化開發流程,加快迭代速度;
·紙筆是最好的工具,其次是markdown;
·畫出結果,一目瞭然。
·要學會進行清晰的命名;
·問問題前先調查,要問到點上。
·不要小看程序員
⑷ 我先跟大家說說我的情況,我是個程序員,但是因為我的精力不足了,想要換個工作。下邊是我的具體情況。
給編程愛好者的忠告
近來有不少人問我是學Vb好還是學C好,還有人問Vc和C++Builder哪個更好,還有人說只要是面向對象的就是好的所以C++和Java最有前途。以我從事計算機教育多年的經驗我要告訴這些編程愛好者,如果只是一味追求學會一門所謂的最先進的編程語言(事實上不存在最優),而忽視了編程思想和基礎知識無疑是犯了學習編程的大忌。
就拿面向對象來說,人們一提到它就贊不絕口,然而又有多少人領會到什麼是面向對象的思想,我想如果沒有真正做過大項目的人是很難體會到其優越性的,這不是通過學習C++或Java就能掌握的。我的意思是編程注重的是想法而不是語言,這就是計算機專業要開設「演算法分析」和「數據結構」的原因,如果一頭鑽到某一門語言中無疑於作繭自縛,束縛了自己的思想,打一個不好的比方一個程序員的工作性質和民工沒什麼兩樣只是在壘磚頭,而真正的計算機人才應該是一個設計師、工程師。
現在國外的一些優秀的計算機著作的都是一些從事如生物、化學等領域的專家,我想這是因為他們以前沒學過計算機,沒有被某些傳統的觀點所束縛,從宏觀上來看待問題,反而在思想上有所突破,這是值得我們深思的。
真正的程序員(轉貼)
作一個真正合格的程序員,或者說就是可以真正合格完成一些代碼工作的程序員,應該具有的素質。
1:團隊精神和協作能力
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力量都是有限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇跡,那些遍布全球的為linux寫核心的高手們,沒有協作精神是不可想像的。獨行俠可以作一些賺錢的小軟體發點小財,但是一旦進入一些大系統的研發團隊,進入商業化和產品化的開發任務,缺乏這種素質的人就完全不合格了。
2:文檔習慣
說高水平程序員從來不寫文檔的肯定是乳臭未乾的毛孩子,良好的文檔是正規研發流程中非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。
3:規范化,標准化的代碼編寫習慣
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助踴同技術人員之間的協作。有些codingfans叫囂高水平程序員寫的代碼旁人從來看不懂,這種叫囂只能證明他們自己壓根不配自稱程序員。代碼具有良好的可讀性,是程序員基本的素質需求。再看看整個linux的搭建,沒有規范化和標准化的代碼習慣,全球的研發協作是絕對不可想像的。
4:需求理解能力
程序員需要理解一個模塊的需求,很多小朋友寫程序往往只關注一個功能需求,他們把性能指標全部歸結到硬體,操作系統和開發環境上,而忽視了本身代碼的性能考慮,有人曾經放言說寫一個廣告交換程序很簡單,這種人從來不知道在百萬甚至千萬數量級的訪問情下的性能指標是如何實現的,對於這樣的程序員,你給他深藍那套系統,他也做不出太極鏈的並訪能力。性能需求指標中,穩定性,並訪支撐能力以及安全性都很重要,作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。
5:復用性,模塊化思維能力
經常可以聽到一些程序員有這樣的抱怨,寫了幾年程序,變成了熟練工,每天都是重復寫一些沒有任何新意的代碼,這其實是中國軟體人才最大浪費的地方,一些重復性工作變成了熟練程序員的主要工作,而這些,其實是完全可以避免的。復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作,如果一個軟體研發單位和工作組能夠在每一次研發過程中都考慮到這些問題,那麼程序員就不會在重復性的工作中耽誤太多時間,就會有更多時間和精力投入到創新的代碼工作中去。一些好的程序模塊代碼,即便是70年代寫成的,拿到現在放到一些系統裡面作為功能模塊都能適合的很好,而現在我看到的是,很多小公司軟體一升級或改進就動輒全部代碼重寫,大部分重復性工作無謂的浪費
了時間和精力。
6:測試習慣
作為一些商業化正規化的開發而言,專職的測試工程師是不可少的,但是並不是說有了專職的測試工程師程序員就可以不進行自測;軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可*性就有了最大的保證。測試工作實際上需要考慮兩方面,一方面是正常調用的測試,也就是看程序是否能在正常調用下完成基本功能,這是最基本的測試職責,可惜在很多公司這成了唯一的測試任務,實際上還差的遠那;第二方面就是異常調用的測試,比如高壓力負荷下的穩定性測試,用戶潛在的異常輸入情下的測試,整體系統局部故障情下該模塊受影響狀的測試,頻發的異常請求阻塞資源時的模塊穩定測試等等。當然並不是程序員要對自己的每段代碼都需要進行這種完整測試,但是程序員必須清醒認識自己的代碼任務在整體項目中的地位和各種性能需求,有針對性的進行相關測試並盡早發現和解決問題,當然這需要上面提到的需求理解能力。
7:學習和總結的能力
程序員是人才很容易被淘汰,很容易落伍的職業,因為一種技術可能僅僅在三兩年內具有領先性,程序員如果想安身立命,就必須不斷跟進新的技術,學習新的技能。善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高了。但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語
言,永遠不會有質的提高。
善於總結,也是學習能力的一種體現,每次完成一個研發任務,完成一段代碼,都應當有目的的跟蹤該程序的應用狀和用戶反饋,隨時總結,找到自己的不足,這樣逐步提高,一個程序員才可能成長起來。一個不具備成長性的程序員,即便眼前看是個高手,建議也不要選用,因為他落伍的時候馬上就到了。具備以上全部素質的人,應當說是夠格的程序員了,請注意以上的各種素質都不是由IQ決定的,也不是大學某些課本里可以學習到的,需要的僅僅是程序員對自己工作的認識,是一種意識上的問題。
⑸ 作為一名優秀的程序員,要具備哪些基本功
程序員(英文Programmer)是從事程序開發、維護的專業人員。
作一個真正合格的程序員,需要具備:
1:團隊精神和協作能力
團隊精神和協作能力是作為一個程序員應具備的最基本的素質。
2:文檔習慣
文檔是一個軟體系統的生命力。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。
5:模塊化思維能力
作為一個優秀的程序員,其思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。
⑹ 程序員35歲後,應該做什麼
在打工的生涯中,我從一個小程序員走到了公司總監,在創業的生涯中,我從一個人單槍匹馬做到了幾十人的IT公司。活在這個圈中,每天面對著那些可愛的IT人,我不得不編造各種謊言,不斷給他們希望,卻讓他們不斷的在希望中走向失望。
我見過很多老程序員,甚至比我還老。他們曾經創造了令人驕傲的業績,那是在當他們年輕的時候。在中國,程序員的大限是28歲。看看今天的他們吧,掛在臉上的是那無法掩飾的焦慮和孤獨寂寞的迷茫。很多老程產生了種種生存的障礙,他們說著刻板的話,似乎是由程序語言結合人類文字誕生的新型語言;他們渴望和別人接觸,而他們的孤獨令所有人遠離;他們經常回憶起當年的輝煌,臉上充滿著興奮的色彩,就象吸了毒的人在巔峰徘徊。當他們回到現實,你卻能發現他們臉上那無奈慘白。他們越來越感到壓力,他們越來越發現精力不濟,他們越來越感到迷茫,不寫程序,他們還能做什麼?學習的壓力、生活的壓力、前途渺茫的壓力,把他們從陽光燦爛的臉壓成了一張張灰色的,扭曲的,無奈的和迷茫的臉。這就是程序員的悲哀。
老程序員面對著兩個選擇,要麼轉型,要麼退出這個圈子。於是可愛的IT人開始了第一次分流,他們大多處在26-28歲之間。經過放棄的痛苦和不斷的努力,他們中的很少的一部分人留了下來,繼續耕耘在這片中國IT貧瘠的土地上。能夠留下來的是那些語言功能尚未退化的人,他們不但還保留著技術的殘跡,同時他們迅速練就了聽說讀寫的能力,於是他們成為了IT公司的中流砥柱,他們通常充當著顧問、經理等重要的職位。他們也分為兩種人,一種人繼續耕耘在技術的領域中,一種人分流到了純粹業務的領域中。由於技術的封閉性,導致那些繼續從事技術領導的人逐漸產生了更大的壓力,他們在技術的漩渦中被更深的卷了進去。而那些從事業務的人,逐漸從技術的漩渦中解脫出來,步入了正常人的生活圈子。從事技術的人,無論他們從事哪種技術,在中國,他們的上限最高也就是32歲。從事業務的人,無論他們從事哪種業務,他們幾乎都沒有了上限。可以說,選擇技術的人,他們是勇敢的,無論是盲目的勇敢還是理性的勇敢,他們都將陷入更深的泥潭,面對他們,我只能敬佩的說,他們才是真正的IT人。
在中國,他們的悲劇是早就註定了的。中國的IT業是在一窮二白的基礎上來追趕第一世界的,在這個過程中,國家的投入可謂微不足道。
在這8年中,我看到了很多IT人的命運,最好的命運是出國繼續搞IT,最差的命運是消失。轉了行的人,從此在IT界消失了,幾年之後他們幾乎不會留下任何痕跡,他們的代碼早就過時了,他們的思想早就隨著程序的刪除而被永遠的刪除了。
⑺ vb中程序出錯就自動退出的處理
不建議你這么做,你這是逃避錯誤,而不是改正錯誤。真正好的程序,是完全不存在On Error語句的!所謂程序的健壯性,指的就是這些。很多錯誤並不是像你說的是無法預料的(除非是VB集成環境本身的BUG),我們應該預先設想程序可能出現的各種情況,然後逐條解決。比如要想在一個文本框中要求用戶輸入一個指定范圍的數字,結果不外乎這么幾種:空白、非數字、超出范圍的數字、完全符合要求的數字,那麼程序中就可以通過檢測把前面的幾種情況排除,只讓最後一種情況通過,而不是直接把文本框的輸入結果拿來就用,然後出了錯誤就用On Error擦屁股了事!
打個比方:是在水災發生前就做好各種防災措施,把水災扼殺在萌芽狀態,還是坐等水災的發生,然後進行各種補救措施?我相信任何正常的人都會做出明智的選擇!
程序員,尤其是初學者,最好不要習慣性地使用On Error 語句,否則的話你的程序永遠不可能提高,因為你永遠不知道你的程序是怎麼出錯的!
以上是一個做了10多年的老程序員的忠告!
⑻ 程序員過35歲就找不到工作了是真的嗎好害怕
過了35歲後,程序員真的是一個沒前途的工作了嗎?
很多過了不惑之年仍活躍於這個領域的精英
無論你相信與否,在這個領域仍有很多成功的程序員早已過了不惑之年。他們中的一些人甚至是行業內的最好的精英。
還記得你第一次寫代碼的時候嗎?那種難以抗拒的興奮和激動——不斷變化的技術,充滿挑戰的工作……
這個行業讓你看到了活力,無時無刻都有最新、最前沿的想法和不斷涌現的機會!
你說你不如年輕人敏捷了,不如他們聰明了,都不是!只是因為他們就和當年的你一樣,面對機會、學習、哪怕在這個過程中犯錯,都毫不猶豫,前赴後繼。那樣的熱情,那樣的激情澎湃充滿了夢想!
想起來了是嗎?
你要做的只是找回你當年的感覺!
2.創新需要暫時拋開已有經驗
有一句編碼格言是這樣說的:有時增加代碼並不能更好地改進軟體,刪除代碼才可以。人生亦是如此,特別是程序員的人生。這句話中蘊含的哲理遠遠超過你的想像。任何一個阻止你去「刪除你人生代碼」的因素——無論是一個你早該放棄的舊程序,或一個陳舊老套的想法——都阻礙了你的進步。
作為一個有經驗的程序員,我們的工具包里充滿了作為我們技能基礎的那些「經過檢驗而可靠的」技術。但這是福亦是禍。
舉個例子,我們自己編寫解析常式有時候要比提前導入預先寫好的編碼包更快。這往往是因為在開始碼程序之前,我們想要檢查確保這個編碼包里沒有錯誤。但是我們的本能其實是很不合時宜的。我們本應該輸入開放源代碼包並進行檢驗。如果結果是編碼包中有錯誤,應該盡力解決這個問題直到完善,可重復使用的代碼勝過重塑。
大多數時候,「經過檢驗而可靠的」經驗是創新的敵人。唯一能讓你進步的方法,只有「對你已知的經驗持懷疑態度」。只有當你嘗試了新的方式,並對它進行檢驗才能知道它是否有效,這時候你再決定如何做。
通常情況下,這種方法會花費你大量的時間,很有可能最後還是會回歸到原有的習慣。但在這個過程中,你會自己將新的創意添加到工具包中,並逐一發現哪些技術是有價值的,值得保留的。做出這些選擇是最重要的,直覺起著至關重要的作用。幸運的是,你有幾十年的經驗,有著比大多數人更好的直覺。只是不要讓偏見堵塞你的靈感源泉。
3.身體是革命的本錢
那一年,你二十齣頭,耳機里的音樂隔絕了外部世界的一切,你面前只有發著微光的電腦屏幕,那些代碼是你如今的全世界,凌亂一地的可樂罐,披薩盒裡還剩下一塊,凌晨三四點,有些餓了你吃掉了最後一塊披薩,接著肝,睡眠是什麼?管他的呢……
時光一晃,你已經老去,可不能再這樣折騰自己了。你的體重、你的肌肉、你的視力……別不把醫生的話當回事,去減肥、去鍛煉、早點睡!運動和規律的生活方式會讓你越來越有精神。你是比年輕人有更多的挑戰,但只有照顧好你自己,擁有充足的精氣神,才能去迎接這些挑戰,越戰越勇啊!
總結
程序開發最好的地方就是它只和你的激情和學習能力有關,那些數以千計上了年紀卻依舊傑出的程序員的職業生涯就是最佳證明。如果你沒有這些特質,那麼開發對你來說是無論在任何年齡都做不好的職業。但只要你有激情和能力,就無需掣肘於年齡,哪怕你四五十歲,甚至六十歲也都不算晚。
⑼ 程序員老了怎麼辦
很多人都是說程序猿是吃青春飯的,上了年紀的程序猿將會面臨著腦力或者體力不支的問題,導致一些老程序猿不再被公司重用或者重視,甚至面臨失業的危險。然而我卻不這么認為,其實程序猿老了未必就沒有用了,很多老程序還是大用用武之地的。