① 有部電影中有個瘸腿的計程車司機綁架了女孩子
對自己的職業不滿意是人之常情。有一些職業,特別能引發勞心勞力﹑沒有前途沒人愛的自我認同,從而被歸為屌絲職業。從程序員到搬磚工,這些職業不光在現在存在著,在未來也會存在。如果你正好擁有一份屌絲職業,不要自暴自棄,且看這些屌絲職業是如何大翻身,成為英雄甚至救世主的——當然是在科幻片里。 程序員 翻身難度:★★★★ 在某財經研究數據發布的一份「中國屌絲群體的行業分布調查」中,程序員的屌絲自我認同度不負眾望名列榜首。雖然這個調查有不科學的地方,僅供參考(人家搬磚的根本不上網),不過「程序猿」身為屌絲職業的中流砥柱這個事實是無可爭議的。 《黑客帝國》 在電影《黑客帝國》里,因遲到被老闆威脅炒魷魚的程序員尼奧,那時還叫安德森,又接連著被人追殺,被人「放盅」,還疑似被人用低端騙術呼來騙去,最後證明,那隻是成為救世主的試煉。尼奧憑借程序員的悟性,迅速接受了任何一個頭腦正常的人都不能接受的世界觀,還悟出了突破母體規則的方法。這下不但翻了身,還能學有所用,獲得升職技能,妹子也有了,可謂是最幸福的翻身了。在電影《獨立日》里,程序員也大大風光了一把,雖然這成為電影的最大bug所在。程序員炮製了一個地球病毒感染了外星人的電腦主機,破解了防護罩。 學生 翻身難度:★ 《蜘蛛俠》 學生是所有職業中最容易遇見奇跡的,因為他們什麼都相信。從《變形金剛》里的高中生薩姆,到《蜘蛛俠》里的高中生彼得·帕克,這些走狗屎運的學生們擔當了各種科幻片的主角。如果你是一個學生,想翻身的話,你只要保持天真愛幻想的本性就行了,然後就等待吧,等待著壞蛋從天而降,等待著超能力或神奇小夥伴從天而降。由於被蜘蛛咬而具有超能力的高中生,對抗由於吸入毒氣而具有超能力的邪惡科學家諾曼,他們真是什麼都信啊。 服務員 翻身難度:★★★★ 從《終結者》到《終結者2》 不要覺得服務員低聲下氣沒氣場更不可能有前途。當你看了《終結者》中跟人合租公寓、上班打卡遲到、被小朋友欺負還不敢吭聲的服務員莎拉·康納,是怎麼蛻變為《終結者2》中的女悍將,然後又怎麼衍生出自己的劇集的,你就不敢隨便小看一個端菜的小服務員。渺小的人物更知道為生存去做什麼,一旦翻起身就是驚天動地。 保安 翻身難度:★★★ 《生化危機》 你一定聽過不少保安考上名校的勵志故事,其實還能更勵志一點。《生化危機》的主角愛麗絲是一個公司保安,她不光要防著撒潑找碴的,要防著商業間諜(沒防住),在危機時刻還要能防……喪屍。身為一個保安你要能打,非常的能打,從一個小小的保安打到絕對主角。至於有沒有美腿,這根本不重要。那些看到美女被喪屍追還有心情欣賞美腿的人,在生化危機到來的時候一定會變成喪屍的。 計程車司機 翻身難度:★★ 《第五元素》 《第五元素》里有個計程車司機,他有一天接住了一個從天上掉下來的穿得很少的美女。當你接住了一個身份和片名一樣的美女,你就該知道好運氣找上你了。趕緊地,不顧一切送她去她要去的地方,告訴她地球人是很棒很值得拯救的。我才不會告訴你這個計程車司機是退役特工呢。 搞藝術青年 翻身難度:★★★★ 《雲圖》 搞藝術青年羅伯特·弗羅比舍忤逆了家庭,交了男朋友,住在廉租房裡,夠落魄了吧。他終於找到一份為音樂大師記錄曲譜的工作,受到半本旅行日記的啟發,創作出了恢宏壯闊的《雲圖六重奏》。當你寫出一部和片名《雲圖》一樣的作品,你也該知道你翻身了,雖然後來你了。一部作品串連了六個時空的毀滅與重生,兼濟天下能兼濟到時間軸里,也算是搞藝術青年的最高榮耀了。搞藝術,要有用生命去搞的覺悟。 油井工人 翻身難度:★★★ 《世界末日》(《絕世天劫》) 一個隕石要撞地球了,鑽油井的工頭和他的下屬臨危受命接受美國航空航天局的高強度訓練,以期一夜之間從打井工人變成救世英雄,最後他們做到了,用核彈炸掉了隕石。《世界末日》(又譯《絕世天劫》)講述了一個油井工人到太空里打井的故事。不管你干著多面朝黃土的工作,你也要練就一身隨時能上天的本領。 犯人 翻身難度:★★★ 《星際傳奇》 《十二猴子》里,囚犯科爾被派回1990年去阻止毀滅世界的病毒災難。《星際傳奇》里,重刑犯雷迪克在三體行星上勇斗怪物,並且打出了兩部續集。犯人總是置之地而後生的,不管拯救世界還是拯救美女什麼的都是小菜一碟。如果你是一個犯人……請你好好改造。 科幻作家 翻身難度:★★★★★ 《2012》 在講述世界末日的世界末日大片《2012》里,科幻作家傑克遜在世界末日來臨時,憑借驚人的想像力拯救了家人,和他的滯銷書一起登上了延續人類文明的大船。科幻作家想要翻身,除非是世界末日。
② 如何用各種編程語言殺死一條龍
噢,我昨天剛完成這個任務,具體如下:
有一位美麗的公主,被關押在一個城堡中最高的塔上,一條凶惡的巨龍看守著她,需要有一位勇士營救她…下面是各種語言如何想辦法將公主從巨龍手中營救出來的。java – 趕到那裡,找到巨龍,開發出一套由多個功能層組成的惡龍殲滅框架,寫幾篇關於這種框架的文章…但巨龍並沒有被消滅掉。.NET – 趕到哪裡,看到了Java程序員的做法,完全拷貝過來,試圖去殺掉巨龍,但巨龍把他吃掉了。C – 趕到那裡,對巨龍不屑一顧,舉起劍,砍掉巨龍的頭,找到公主…把公主晾在一邊,去看看有沒有最新提交的linux內核代碼。C++ – 先打造出一根針,然後在上面添加各種功能特徵,直到最後匯聚成一把復雜的劍,這把劍復雜到只有他能理解其中的功能…殺死龍,但他過橋時遇到了麻煩,因為內存溢出了。COBOL – 趕到那裡,看到巨龍,認為自己太老了,殺不死這條巨龍,營救不出公主,於是離開了。Pascal – 他花10年時間開發出一套巨龍殲滅系統…當戰斗開始時,他發現這套系統只能關住蜥蜴。VB – 使用各種組件開發出一套巨龍毀滅武器,他跳到巨龍的後面,在最關鍵的時刻,他發現這種武器只能在雨夜裡工作…PL/SQL – 分析其它屠龍者的數據,創建出具有多維數據、n向關系的數據表模型、OLAP,花15年時間分析這些數據…當結果出來時,公主已經變成了同性戀者。Ruby – 盛大出征,號稱自己不管做什麼都是最強的,當面對巨龍,他亮出了一張畫有他殺死一條瘸腿的巨龍的圖片…巨龍懶洋洋的吃掉了他。Smalltalk – 趕到那裡,分析巨龍和公主,轉身走了,它們是次要問題。shell – 創造一個超級強大的滅龍武器…但當面對龍的時刻,他忘了如何使用它。Assembler – 他認為他的方法是正確的,而且是最高效的…但他把D寫成了A,殺死了公主。Fortran – 趕到那裡,開發出來一套4萬5千行的解決方案,殺死巨龍,與公主見了面…但公主認為他是懦夫,反而傾心於高富帥的Java程序員。FOX PRO – 開發出一套殺龍系統。外表看起來華麗好用,但實際內部到處補丁,所以,當開始運行這套殺龍武器時,他才發現忘了給DBF加索引。Lisp:這是一位著名的游俠騎士,在跟很多的屠龍專家交談後,將他們的技巧模型化,他開發出這套系統,當開始運行系統時,他認識到,他少寫了一個括弧。HTML: 用各種著名的殺龍的劍拼裝成一個網頁,但他忽視了W3C標准。在跟龍相遇的時刻,他發現他的代碼跟瀏覽器不兼容,於是他變成了赤手空拳。巨龍把他當成小甜點吃了。Prolog: 他認為需要有一件殺龍的武器。於是在一個有182014件武器的目錄里搜索。截止到公主死的那一年,他的成就包括:通曉了各種武器的製造方法,從索引A開始:Atomic Bombs, Anti-Air Weapons, Arches, Ammunition, Axes…PHP: 開發出一個web網頁,當這個運行時,它能通過一個Apache伺服器從一個MySQL武器資料庫里檢索出武器消滅掉$dragon。然而,他在DELETE語句里忘了寫WHERE語句,於是殺死了公主,巨龍,女侍,女巫,魔法師,和程序員自己。JavaScript: 他創建了腳本網頁,當網頁運行時,腳本會除掉巨龍,他一載入頁面,一些美麗的少女就向他拋來了鮮花,發出來尖叫。不幸的是,他沒有認真分析這個類似蜥蜴的怪物——也被稱作Mozilla,他得到的只是讓控制台里填滿了error信息,《Book of Mozilla》記載了他是如何被吞掉的。Basic:他開發出來一種能夠殺死紙龍的武器,但不論他如何改進,他發現,他都不能殺死一隻比捲毛獅子狗大的龍。Matlab: 他寫出循環語句能計算出用巨箭射死巨龍的彈道。這個程序運行的完美無瑕疵。現在需要的是人能有這樣大的力量按這種精度發射這支巨箭。
③ 如何用各種編程語言殺死一條龍
這篇有趣的文章編譯自一篇西班牙博客。
有一位美麗的公主,被關押在一個城堡中最高的塔上,一條凶惡的巨龍看守著她,需要有一位勇士營救她…
下面是各種語言如何想辦法將公主從巨龍手中營救出來的。
Java – 趕到那裡,找到巨龍,開發出一套由多個功能層組成的惡龍殲滅框架,寫幾篇關於這種框架的文章…但巨龍並沒有被消滅掉。
.NET – 趕到哪裡,看到了Java程序員的做法,完全拷貝過來,試圖去殺掉巨龍,但巨龍把他吃掉了。
C - 趕到那裡,對巨龍不屑一顧,舉起劍,砍掉巨龍的頭,找到公主…把公主晾在一邊,去看看有沒有最新提交的linux內核代碼。
C++ – 先打造出一根針,然後在上面添加各種功能特徵,直到最後匯聚成一把復雜的劍,這把劍復雜到只有他能理解其中的功能…殺死龍,但他過橋時遇到了麻煩,因為內存溢出了。
COBOL - 趕到那裡,看到巨龍,認為自己太老了,殺不死這條巨龍,營救不出公主,於是離開了。
Pascal - 他花10年時間開發出一套巨龍殲滅系統…當戰斗開始時,他發現這套系統只能關住蜥蜴。
VB - 使用各種組件開發出一套巨龍毀滅武器,他跳到巨龍的後面,在最關鍵的時刻,他發現這種武器只能在雨夜裡工作…
PL/SQL – 分析其它屠龍者的數據,創建出具有多維數據、n向關系的數據表模型、OLAP,花15年時間分析這些數據…當結果出來時,公主已經變成了同性戀者。
Ruby - 盛大出征,號稱自己不管做什麼都是最強的,當面對巨龍,他亮出了一張畫有他殺死一條瘸腿的巨龍的圖片…巨龍懶洋洋的吃掉了他。
Smalltalk - 趕到那裡,分析巨龍和公主,轉身走了,它們是次要問題。
shell - 創造一個超級強大的滅龍武器…但當面對龍的時刻,他忘了如何使用它。
Assembler - 他認為他的方法是正確的,而且是最高效的…但他把D寫成了A,殺死了公主。
Fortran - 趕到那裡,開發出來一套4萬5千行的解決方案,殺死巨龍,與公主見了面…但公主認為他是懦夫,反而傾心於高富帥的Java程序員。
FOX PRO - 開發出一套殺龍系統。外表看起來華麗好用,但實際內部到處補丁,所以,當開始運行這套殺龍武器時,他才發現忘了給DBF加索引。
Lisp:這是一位著名的游俠騎士,在跟很多的屠龍專家交談後,將他們的技巧模型化,他開發出這套系統,當開始運行系統時,他認識到,他少寫了一個括弧。
HTML: 用各種著名的殺龍的劍拼裝成一個網頁,但他忽視了W3C標准。在跟龍相遇的時刻,他發現他的代碼跟瀏覽器不兼容,於是他變成了赤手空拳。巨龍把他當成小甜點吃了。
Prolog: 他認為需要有一件殺龍的武器。於是在一個有182014件武器的目錄里搜索。截止到公主死的那一年,他的成就包括:通曉了各種武器的製造方法,從索引A開始:Atomic Bombs, Anti-Air Weapons, Arches, Ammunition, Axes…
PHP: 開發出一個web網頁,當這個運行時,它能通過一個Apache伺服器從一個MySQL武器資料庫里檢索出武器消滅掉$dragon。然而,他在DELETE語句里忘了寫WHERE語句,於是殺死了公主,巨龍,女侍,女巫,魔法師,和程序員自己。
JavaScript: 他創建了腳本網頁,當網頁運行時,腳本會除掉巨龍,他一載入頁面,一些美麗的少女就向他拋來了鮮花,發出來尖叫。不幸的是,他沒有認真分析這個類似蜥蜴的怪物——也被稱作Mozilla,他得到的只是讓控制台里填滿了error信息,《Book of Mozilla》記載了他是如何被吞掉的。
Basic:他開發出來一種能夠殺死紙龍的武器,但不論他如何改進,他發現,他都不能殺死一隻比捲毛獅子狗大的龍。
Matlab: 他寫出循環語句能計算出用巨箭射死巨龍的彈道。這個程序運行的完美無瑕疵。現在需要的是人能有這樣大的力量按這種精度發射這支巨箭。
④ 我是一名java程序員,想在幾年內成為一個架構師,我應該怎麼做看什麼書注重些什麼東西,請高手指點一二
小蔡:我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自
小蔡:「我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自己的角色做分析呢?」
銳哥順手在紙上畫了幾個圖,說:「確切地說,你應該問程序員通常的發展路線是怎樣 的?你們可以看看這個圖(如圖3-1所示),當一個初步的職業規劃方案已經成型時,如果制訂者目前已在一個軟體公司工作,那麼,對他來說進一步的提升非常 重要。首先要做的則是進行角色分析,反思一下這個職業環境對個人的要求和期望是什麼,如何使自己在單位中脫穎而出。
圖3-1
「通常,軟體技術人員的職業發展有幾個選擇:專注於技術,成為技術專家;轉型到技術 型銷售、技術支持等;隨著技術成長,從技術性管理到高級管理。這是大家都看得清楚的方向,也都在向這些方向的金字塔尖努力。
「就像烹飪魚一樣,每一個階段目標都需要你進行角色分析,找出這一角色需要的『配 料』,當你注意收集技術、素養等相關『配料』後,就會成功烹飪出你所需要的目標魚。前提是你一定要了解自己的特點和優勢,就好比黃瓜種子是不可能培育成西 瓜一樣。」
銳哥繼續說:「這歸根結底,都是以技術為基礎。在扎實的技術基礎上(高級軟體工程 師),如果有著比較強的抽象設計能力,又打算專注於技術開發,架構師是個好的選擇;如果性格更適合做管理,情商能力突出,技術型管理應該是下一步的方向。 這種發展規劃屬於『瘸腿走路』的類型,各有側重主攻發展的職業方向,也是目前一般程序員普遍採用的發展路線規劃。」
小蔡認真地看著圖說:「程序員職業規劃還有這么多學問!我看到每個角色配合的學歷, 那麼學歷和認證證書真的很重要嗎?還有必要花錢參加社會技術培訓嗎?」
銳哥:「決勝點在於長期的點滴積累,認證證書、成績、豐富的經歷是求職的表面文章, 在目前軟體行業里不是很看中這個,真正的『內功』是需要規劃的。至於培訓,我倒是很建議直接加入軟體公司,你就會學到很多實際的東西。不過,學歷教育雖然 在職業生涯里不是主要的,但是隨著職位的提升卻有很重要的意義,能輔助拓展你的職業發展空間,而不是以此為阻礙從而失去更多的機會。 」
「已經工作兩年以上的程序員可以有幾種基本的職業規劃:技術專家、軟體架構師、實施 顧問或銷售。其中程序員最主要的發展方向是資深技術專家,無論是Java、.NET還是資料庫領域,都要首先成為專家,然後才可能繼續發展為架構師。盡管 架構師的職位可以工作一輩子,待遇也非常好,對於科班出身的程序員最為適合,但這種工作職位非常有限,因為在中國目前的IT行業,架構師需要的條件比較復 雜,而且需求量也比較少,這也是我國軟體行業走向國際並有待成熟的因素之一。」
大熊指著另外一張圖說:「這個是綜合才能型發展路線圖(如圖3-2所示),我聽說目 前國內缺乏的是管理能力和專業知識技能並駕齊驅的IT人才。是不是指著這種復合型人才?」
圖3-2
銳哥說:「是的,特別是懂得運用目標管理技術的項目管理人才,既掌握核心技術又有全局掌控能 力的項目管理人才,非常難找。我建議對於大多數人來說,首先是要專,只有在技術方向上做得比較深入,才能適當做工作調整,把自己轉變為某個領域的專家。
「然後,根據自己的情況,決定自己做軟體架構師還是高級的顧問銷售,另外一部分人可 能就會走向管理,這和個人性格與情商有關。軟體優秀的管理者都必須懂得技術,掌握核心技能的人才向管理崗位轉型有很大的優勢,因而提升管理能力成了轉型的 關鍵。譬如,當唐駿還是微軟一名普通程序員時,就從公司發展的角度考慮,向老闆提議開發了中文版Windows,最終使他從幾萬名工程師中脫穎而出,成為 部門經理。正如他所說,雖然是程序員,但自己不能只把自己當程序員,你可以為老闆和公司著想。
「調查研究後,帶著解決方案去找老闆,就會得到老闆的重視和信任,所以一定要增強工 作主動性和參與性。無論是軟體開發還是項目管理,國內員工大多隻是做好份內事或完成交派任務,很少能主動發現問題。其實,只有擁有更高眼界,才能謀取大發 展。
「總之,程序員要根據本身的基本素質、技術能力選擇開發層次,由低到高,逐步發展。 也是一名程序員本身具備相應素質的循序漸進的發展軌跡,包括很強的技術背景和綜合管理才能等素養,這也就是所謂『兩條腿走路』的職業規劃發展路線。」
小蔡:「原來技術轉型還有這么多學問,受益匪淺。我打個比方,如果只是一名程序員, 但仍需要站在項目經理的層面上看自己的工作,這樣才能更好地合作,融入團隊中,並且鍛煉自己的思想境界,從而提高自己。」
銳哥:「小蔡說得是。另外,在未來發展上首先確定自己的發展方向和研究方向,在學習 技術的同時還要為以後做准備,做好以後的技術轉型。廣度和深度是相對的,先廣還是先深實質上從某種意義來說取決你的工作性質,如果你是從事單一工作的,多 半你會短暫先深,因為這是你立足的根本;而如果你選擇的職業是綜合性的,比如管理、講師等,那麼你必然要先有廣度才可以,但一段時間後,你都要轉入深度, 只有你在某一方面或領域有一定的深度後,你才能繼續尋求廣度,否則,你將什麼都會,但什麼都不精,這樣的人在市場上是最難以立足的。」
大熊:「這張程序員發展路線圖挺有意思,國際人才型(如圖3-3所示),一定要求外 語口語流利吧?」
圖3-3
銳哥:「是的。如果說前面『兩條腿走路』要求的綜合能力成分多,隨著國際化相互聯系 越來越緊密,那麼國際化人才可以說是當前更為便捷的程序員職業規劃發展之路。目前,國際化軟體項目經理是人才市場上炙手可熱的人才,有豐富經驗、外語口語 好的軟體項目經理是搶手的香餑餑,供不應求,薪水自然也是水漲船高。最重要的是,一個優秀的項目經理可以在這個崗位上長久工作下去,並且有向高層進一步提 升的可能。外語好、技術又好的程序員發展路線很廣,是目前國內外軟體企業需要的熱點人才。」
小蔡:「銳哥跟我們說了這么多,感覺對程序員、對軟體行業的整體發展路線清晰了很 多,但是我該用什麼方法進行選擇呢?」
銳哥:「要想正確地選擇,你得必須充分地了解、分析自己,你要學會SWOT職業規劃 自我分析法。」
總結與提升
成功與失敗的區別在於,成功者選擇了正確而失敗者選擇了錯誤。因此,我們常常能夠看 到一些天賦相差無幾的人,由於選擇了不同的方向,人生卻迥然相異。選擇正確的方向尤為重要,希望不同的程序員根據自己不同的優勢和特點能畫出適合自己的程 序員職業規劃圖。
軟體開發也是有層次區別的,比如,按層次從高到低通常可分為:
系統開發:如操作系統、資料庫系統、伺服器系統開發;
專業開發:如網路安全、游戲、人工智慧開發;
應用開發:如MIS、BI、ERP等系統開發;
普通開發:如網站、簡單應用系統開發。
不同的層次,難度系數不一樣,對技術要求、個人素質要求也不一樣。要成為系統開發 者、專業開發者、高級應用開發者,需要有很高的專業知識和很強的邏輯、抽象、空間思維能力,這就要求具有很好的基礎,同時具有較大的提升潛力。而要成為簡 單開發者和初級應用開發者則相對容易些,正是這樣,才使很多人走上了軟體開發的道路。