英文原文:http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/
中文原文:http://sslab.co/content/bu-yao-zi-cheng-cheng-shi-she-ji-shi-lao-niao-de-9-ge-zhi-ya-jian-yan
紅字是我加的註解
如果有一門課,我能將它加到任何工程相關的學程,它將不會涉及編譯器、閘道或時間複雜度。 這門課的名稱可能是 不可不知的產業真實面 ;我們從來不教這門課,結果造成許多苦難。 若你將成為年輕的工程師,這篇文章就是你的「讀我檔案(README)」文件。 這邊文章告訴你那些學校沒有教的事,讓你知道「真實世界」實際如何運作,目的是讓你能夠快樂工作。 從缺乏自信及商務知識的工程師開始,我大概花了十年的歲月,經歷很多次的痛苦,才能明白這些。 我並不覺得這篇文章會是終極指南,但希望能告訴你那些大學職涯中心沒有講的事。
身為台灣的年輕工程師,我覺得有些事情還是該思考的。或許這一個指南乍看之下對新手是一個不錯的方針,因為這會讓你看起來「很有利用價值」。以前有個長者告訴我,要先具備被人利用的價值,你才能有一份穩定的工作與薪水。不過當工作時間久了,就不適用於這個指南,因為你真的覺得你想要一輩子被利用嗎?或許有些人真的希望喔,因為他想要安安穩穩地過一輩子,這也是可以的。
九成的程式設計工作來自企業內部軟體
(90% of programming jobs are in creating Line of Business software)
從經濟學的觀點:任何東西(包括你)的價格,都是以它的供給和需求計算出來。 我們先來談需求面。 大部分的軟體,都不是公開販售、透過網際網路發行,或是從線上應用程式商店(App Store)下載。 多數的軟體來自企業內部需求、解決營運問題,例如追踪費用、最佳化運送成本、協助會計部門、設計新組件、計算保單價格、識別詐欺訂單等。 各式各樣的商業公司,開發內部軟件,解決它們自己的問題。市場上對程序員的大部分需求來源於此,只有極少數程序員直接編寫面向外部顧客的軟件。 內部軟件的開發,通常非常乏味,令人厭倦。因為它們的技術複雜性低、技術決策非常保守、預算很少、缺乏長遠考慮。但是,世界上大部分編程工作都是這種。軟體經常用於解決商業問題,不管它是多麼無趣或沒技術可言。 以公司內部的出差費用單為例,對於有 2,000 名員工的企業,紙上作業在電子化之後,可能節省每年 5,000 工時,以每小時 50 美元的成本計算,就可以省下每年 $250,000 的開支。 出差表單可能只是全世界最簡單的 CURD 程式,但如果它能夠為公司節省成本或增加收入,它就很重要。
這確實沒錯,即便在台灣,應用領域的軟體,大部分就是最簡單的CRUD,最好還要是Web,這就是為啥php這種語言在台灣會這樣流行。儘管我們可以在網路上,看到許多下載的,互動的,免費的軟體,但這些軟體的價值,包括他的開發時間,並沒有佔去整體太多。例如說中華電信的網路客服介面,當你開始習慣不打電話而去利用這樣方便的東西,儘管他設計不好是IE Only,省去你的時間,這樣的價值是更高的。
公司僱用你是為了創造商業價值,不是讓你恣意寫程式
(Engineers are hired to create business value, not to program things)
商業公司最關心的(或者說唯一在乎的)事情,就是增加收入、降低成本。因此,它們實際上需要的不是程序員,而是能夠幫助它們增加收入、降低成本的人。 開發優美的軟件,解決技術難題,編寫沒有bug的代碼,這些都不是商業公司的目的。它們僱傭你,是為了讓你幫牠們完成某個可以增加收入、降低成本的項目,而不是因為你是geek。 你個人對於公司的唯一價值,就在於你能多大程度上為它們增加收入、降低成本。我並不覺得很希望在台灣看這個現象,美國及一些歐洲大國,確實是以資本主義的方式在經營各種東西,但同時能夠突出的,也代表他們不光是資本主義。對許對於一個年輕工程師,我是同意的,剛從學校畢業,其實是看不清這個社會的需求,所以多半會將自己在學校長久以來的幻想加注在這個社會上。好久之前我面試到一個國立大學研究所的,他說他在團隊裡是「設計UI」的,經過詳細追究他的工作情況,他竟然只會利用介面拉UI而不太會寫程式。個人的能力,工作態度,初期確實對公司來說很重要,我並不否認這樣就是為了要降低成本,增加收入,不然薪水哪來的?但問題就是,身為雇主,也不該這樣腦殘無能地只注意到金錢的事。身為勞工,員工,他們的個人生涯規劃,技術發展方向同樣地也是重要,而適度地調整,更是可以增加公司整體的產值。如果一間公司的老闆擺出這種姿態,「我只要一堆能聽話會做事的編程機器」,那我相信你也不敢進去。
不要自稱為程式設計師
(Don't call yourself a programmer)
很多公司的主管不懂電腦,他們覺得,「程式設計師」就是一票成本很高的勞工,做一些複雜很難瞭解的事情。 如果你的職稱是「程式設計師」,當公司需要縮減成本的時候,某些主管會想要先解僱你。 有一家公司叫 Salesforce,口號是「沒有軟件」,意思就是如果經理們購買了他們的服務,就不再需要別的軟件管理銷售業務了,也就是說,不再需要自己僱傭程序員了。 正確的做法是,你應該把自己描述成與增加收入、降低成本有關係的人,比如"xx產品的開發者"或"改進者"。有一個Google Adsense程序員的自我介紹,是這樣寫的:"Google公司97%的收入,與我的代碼有關。"與上述也同樣,如果我是這個人的面試官,我一定會問他,你除了會為Google賺錢,你還會什麼?你有照顧你的同事?朋友?家人?你身為人還有什麼價值?這並非否定,而是我一定會認真地問他,而且也希望對方認真地回答我。我覺得「寫程式」的人,如果沒有具備一定的能力,包括分析產品,環境等現況,直到理解使用者,市場,是沒有資格「設計」的。確實是因為對於台灣來說,程式是一門需要非常多領域知識的學科。但我想Programmer對於歐美來說頂多就是「編程員」,雖然底薪高,但價值可能與技術員無異,這樣的現在在台灣的一些大公司也可以見到,所以台灣也開始有人就直說「他們只不過是一群工程師」。
別受限於你選擇的軟體技術
(You are not defined by your chosen software stack)
年輕工程師透過 Twitter 向我詢問職涯問題時,許多人問的是關於該學什麼程式語言或平台(例如 Java 或 .NET?),其實這無關緊要。Java 的程式設計師,是否比 .NET 的程式設計師賺更多錢?爭論的人總是說 Java 或 .NET 程式設計師已經有一大票; 若你認真就輸了,因為 (1) 你不該把自己定義為程式設計師(理由請看上一節), (2) 執著這種無意義的辯論,對於從事程式設計工作毫無建樹。 現實生活中,不管學哪一種程式語言,通常只要幾個星期就能上手,再過個一年半載,當你成為老鳥,就沒人在乎你用什麼語言了。 最近我在 2010 年 3 月,用癡肥醜陋的 Java EE 開發網站後端系統,請相信我,根本沒人在乎我用什麼技術開發。 如果用 Python 的公司想找技術高手幫公司賺一大筆錢,即使我從不寫任何一行 Python 程式碼,也同樣能夠勝任。
天才型的工程師很稀少,在就業市場根本供不應求。 在 Matasano 公司每個人都會用 Ruby,但儘管你不是天才,只要你是優秀的工程師,他們還是願意錄用你。 (優秀的工程師的履歷,就是一連串幫公司增加收入和降低成本的事蹟。) Fog Creek 公司幾乎都用微軟平台,但儘管我無法拼寫「ASP.NET」這專有名詞,他們還是錄用我。
有些公司的人資部門招聘制度很差勁,如果你的履歷缺少一些關鍵字(如 Java 或 .NET),他們甚至不會找你去面試。 你應該不會想去這些有病的公司,但如果你真的想去,你還是可以花幾個晚上或週末時間, 把那些「熱門就業關鍵字」補寫到履歷中,也可以修改一下手邊的專案,讓你的經歷和那些詞彙扯上邊。 如果你想在一家用 .NET 的公司學 Ruby,那就用 Ruby 完成那種一次性的專案, 接著你就成為專業 Ruby 程式設計師,因為你用 Ruby 寫程式,而公司也為此付給你薪水。 (好笑嗎?我在用 Java 的公司這樣做,以 Ruby 寫個小專案,幫公司賺了 $30,000 美元,我的老闆很高興,而且可以預料的,他根本從來沒問過我用什麼技術開發。)
我認為這個說法有另外一層意義,確實跨領域專業知識,跨語言的人才是必要的。當你會大多數人都會的東西,你的價值自然就低。當你會少數人會的東西,反過來也還是得找到需要的人。不管如何身為一間公司的老闆,確實是應該將錢投資在可能的跨領域人才上(就是薪水調高),因為是有機會為公司創造更高產值。
同事和主管不會一直是你的朋友
(Co-workers and bosses are not usually your friends)
你花了很多時間和同事在一起,你和其中幾位可能變成很要好的朋友,通常在這三年,你為維持親切的關係,邀請他們共進晚餐,而他們也同樣邀請你。 你認識的每個人,都會覺得你是個不錯的人,這對你的人際關係很有幫助;但是,可別妄想每個人都是你的朋友。舉例來說,你在求職面試時,正在和一位看起來和藹可親的 28 歲主管談話,他看起來有點像幾年後的你。 但你畢竟不是他的朋友,面試官只是試著想幫公司用最便宜的價格把你招募進來。 也許討論魔獸爭霸讓你覺得彼此之間存在某種情誼, 但事實上面試官真正要做的事情,雖然合乎常理,卻是你真正的朋友不可能做的, 像是希望你對薪資的要求能降低個幾千塊; 或是要你多為公司付出一些時間,而減少跟真正的朋友在一起的時間。 你會有其他待人親切、好相處的同事們,開始建議你做一些你不是很想做的事情,例如「我需要從你剛完成的這個專案多拿到一些績效」,甚至「我們必須一起完成這件事情,雖然對你沒什麼好處,但是對我的目標達成很重要」。 當這些事情發生時,可別太訝異!
當然這是對於新鮮人而言,很多人進去滾了一兩年,除了自己對人性的認知開始感到懷疑,也會變得開始不相信人。可是想當初在學校,大家都是好朋友的感覺,結果一到商場上就翻臉不認人,這種事情是常有的。這其實是考驗身為人的價值觀,我也認為並不是每個人都會做出這樣現實的選擇,有些人他是有不同的想法的,會認為施比受更有福。當然還是一樣,過度地對社會現實假設,或幻想都是不對的。不管在任何時候,不要太快有激烈的論點,去花時間看清楚了,想通了,在為自己做決定,或許是一個在這種現實社會下存活很好的方法。
別過度評價競爭者的平均技能
(You radically overestimate the average skill of the competition because of the crowd you hang around with)
許多人已經成功晉升資深工程師,卻無法正確實作 FizzBuzz 。想想看:你或許已經可以去那些你自認不夠資格應徵的公司工作,他們雖然聘用比較厲害的麻瓜,但依然是麻瓜。在台灣尤其要小心,用嘴巴在練武功,把寫程式講得像打太極拳一樣的人大有人在。
看徵才廣告求職成功是一場意外
(“Read ad. Send in resume. Go to job interview. Receive offer.” is the exception, not the typical case, for getting employment)
很多工作從來不公開招募,多數值得被聘用的人也不公開求職(參考約耳談軟體的 文章)。 職缺的資訊可以很快用電子郵件傳遞,當某家公司的決策者知道他需要找誰,只要透過他的朋友或生意夥伴,他們其中會有人認識這位要找的人,可能是家人、大學室友、會議中結識或過去的同事等。 約出來見面晤談,達成工作協議後,再交給人資部門正式聘用即可。對於大多數你想要得到的工作,「新創公司的第一位員工」實際上很難讓你的履歷可以被人資部門接受,只有兩個人的新創公司,對於人資部門來說並不算正式的工作經歷。 (你不會想成為新創公司的第一位員工,但你可以當最後一位共同創辦人。) 想要成為 Googler 的一份子嗎?只要你像其他 Googler 一樣工作,他們會有正式的程序,可以助你一臂之力。 (他們也有許多非正式的管道,給有機會成為 Googler 的你,例如:將你正在工作的公司買下來。當你被幾億美元的資金圍繞,就會有很多有趣的選項來解決問題。)
有許多理由可以說明為何求才都是私下進行,其中一點是公開求才會收到數以百計的大量履歷轟炸(特別是目前的景氣狀況下),包括許多根本不適合這項職缺的人。 另外一點是,如果你對要找的人沒有更進一步的認識,很可能找來一位平庸的資深工程師(non-FizzBuzzer)。
- 譯註:你可以創業,或是和別人一起創業,當個共同創辦人,實際創業的經驗會讓你學習到非常多;但是請避免在一家只有兩人的新創公司當員工,因為員工和創辦人是不同的心態,當一家公司還沒有任何規模,而你就只想當一位員工,那對你的履歷沒有加分效果,甚至你要避免在履歷上面出現這種工作經驗。
- 譯註:如果你想在優秀的軟體公司工作,儘管現在的公司差強人意,但最好的方法是,當下就開始學習用優秀軟體公司的方法工作,當你成為優秀的軟體開發者,你將有機會進入優秀的公司,或是你的公司被優秀的軟體公司買下,總之你有機會變成一份子。
以前也與一位長輩聊過,他覺得當你已經在創造價值,資金就會向你流過來。然而台灣年輕工程師很少看過世界,甚至害怕去看任何常用的OpenSource,他們的軟體都是怎樣寫的。這些人多數都會恐懼,當看到自己不熟悉的東西,似乎自己的存在價值也即將消失。我必須承認這是一道很難跨過的門,所以多數人也選擇建立自己的小群組小角落,在不瞭解事實真相的人身上,用專業名詞哄騙他們,來尋找安全感。別說比較有能力的年輕工程師一剛開始就會陷入這種陷阱裡,甚至許多資深工程師也都是這樣一路走過來。只要是帶著類似這樣的心態,是很難跟所謂優秀的人才並肩同行,因為這些人都不害怕去接觸他們不熟悉的東西,也不害怕將自己所知道的分享出來。這些人也都非常清楚,並不是瞭解,會講就有用,也並不是會做就有用。
如何提高求職時的談判能力?
(How do I become better at negotiation?)
(1)記住你不是在求職,不是在展示編程技巧,而是在推銷某種商業需求(增加收入或降低成本)的解決方案。 (2)面試時,要有自信,要平等的對話。你要的是一個互利的錄用合同,不要每次對方提出要求,你都說Yes。 (3)雇主可能會問"你的上一份工資是多少",他們其實在說"給我一個理由,壓低你的報酬"。你要想好如何適當地回答這個問題。 (4)要還價。這裡不僅僅指錢,還指其它你關心的方面。如果你無法要求更高的薪水,那就試著要求更多的假期。 (5)在對方決定錄用你以後,才開始討論薪水。因為那時,他們已經在你身上,投入了大量的時間和金錢,產生了一定的成本,此時他們可能覺得一些小問題已經不值得再糾纏了,比如每年的工資增加幾千元。我必須說這些都是很好用的談判技巧,不過果真要去做這樣的談判前,還是先做好對這間公司的功課,瞭解他們欠啥,瞭解你要去談判的人是誰。
創業公司是否適合應屆畢業生?
(Are startups great for your career as a fresh graduate?)
如果你一畢業就加入創業公司,最可能的結果是,接下來幾年你都工作得非常辛苦,然後公司悲慘地失敗了,你失業了,不得不又去另一家創業公司工作。 如果你真的想去創業公司,應該首先找一家大公司幹上兩年,攢一點錢,積累一些經驗,然後精心挑選後再去創業公司。 在創業公司工作,一般情況下,你遇到的都是創業者。他們大多數人沒有能力在兩年後僱傭你;而在大公司工作,你遇到的都是其他大公司的人,他們中很多人將來有能力僱用你或者幫你介紹工作。當然除非你相當有自信,自信到確定你進去那些非常缺人的新創公司,你能不眠不休單打獨鬥,然後將公司的一切東西學習起來(甚至包括別人的工作內容,老闆在幹啥)。那我想這樣的經驗值會變得比去一間大公司還要高,你升級也升得快。但如果相反,或是你有一個希望你準時回家的老婆,還是乖乖待在穩定的大企業慢慢學吧!人生還長的咧!
是否推薦在新創公司工作?
(So would you recommend working at a startup? )
選擇創業公司,就是選擇一條職業道路,而不是選擇一種生活方式。可惜很多人把這兩者顛倒了,他們推薦創業公司,實際上是在推荐一種你感興趣的生活方式。 如果你確實喜歡這種生活方式,老實說,你在大公司裡也可以得到它們。在許許多多大公司裡,你都有機會鑽研最新的技術,而且還能5點半準時回家照顧孩子。如同上述,進入新創公司,甚至你已經是這間公司的一員,是必須去修改你生活方式,甚至要家人支持。在台灣有些新創公司運氣不錯,有背後資金,也有明理的老闆,或許不會這樣累,但這是可遇不可求。
溝通技能是最重要的職業技能
(Your most important professional skill is communication)
前面說過,工程師被雇傭,不是因為會編程,而是因為能夠創造商業價值。所以,你讓人們相信你能創造價值,這是幫助你找到工作的最重要的能力。這種能力與你真的能創造多少價值,實際上聯繫不是很緊密。 我認識的一些最優秀的程序員,往往拙於表達。因此,別人不是不想與他們一起工作,就是低估了他們的價值。相反地,如果你看上去很會編程,並且很善於表達,別人就會真的這樣看待你。換句話說,你究竟是想要當工程師,還是你想問問自己能夠做什麼,以你的個性能夠去嘗試什麼,這些也都會決定你將來是否一直會當工程師下去。我相信不管是誰具備怎樣的技巧,只要是能夠創造商業價值,都會有人想要雇用。
而工程是很死的東西,必須搭配非常多其他的人際技巧,否則也甭說怎樣的商業價值了,因為會做會講的人到處都是。而就算你會做,號稱比你資深的人都有可能擋在你前頭,一邊否定你的設計,一邊利用你的一兩個獨到念頭。再說對於新鮮人而言,連自己是不是真正地「設計」都是一個問題,儘管對方可能書沒你讀得多,但你只是照抄教科書上的東西,沒加入自己的思考,總有一天還是會被抓到小辮子。而直到你修練了許多技巧,瞭解許多事情,讓你的工作發揮真正的商業價值,或許那個時候你也會考慮是不是要改行了。
Adana
回覆刪除Elazığ
Kayseri
Şırnak
Antep
61ERQ
446F7
回覆刪除Maraş Evden Eve Nakliyat
Kastamonu Lojistik
Urfa Lojistik
Erzincan Evden Eve Nakliyat
Adıyaman Lojistik
DB4D9
回覆刪除Erzurum Şehirler Arası Nakliyat
Karabük Lojistik
Isparta Parça Eşya Taşıma
Ünye Evden Eve Nakliyat
Çerkezköy Parke Ustası
Etimesgut Fayans Ustası
Bursa Şehirler Arası Nakliyat
Iğdır Lojistik
Afyon Şehirler Arası Nakliyat
92CD4
回覆刪除İzmir Şehirler Arası Nakliyat
Hatay Parça Eşya Taşıma
Mamak Boya Ustası
Eskişehir Lojistik
Sinop Parça Eşya Taşıma
Burdur Evden Eve Nakliyat
Coinex Güvenilir mi
Rize Şehirler Arası Nakliyat
Hakkari Lojistik
0584C
回覆刪除referans kodu %20
51A23
回覆刪除trabzon muhabbet sohbet
görüntülü sohbet siteleri
Mardin Canlı Sohbet Sitesi
igdir tamamen ücretsiz sohbet siteleri
Ağrı Canlı Sohbet Odaları
kırşehir sesli sohbet odası
denizli rastgele sohbet siteleri
Tunceli Sesli Mobil Sohbet
eskişehir canlı görüntülü sohbet siteleri
917AE
回覆刪除Likee App Beğeni Satın Al
Shibanomi Coin Hangi Borsada
Tiktok Beğeni Satın Al
Facebook Takipçi Satın Al
Spotify Dinlenme Satın Al
Periscope Beğeni Hilesi
Likee App Beğeni Hilesi
Binance Referans Kodu
Binance Hesap Açma
808F9
回覆刪除Bayraklı
Söğüt
Keşan
Tutak
Dernekpazarı
Tunceli
Mustafakemalpaşa
Bandırma
Yozgat
056178C317
回覆刪除Anadoluslot Giriş
Anadoluslot Giriş
Anadoluslot Güncel Adres
Anadoluslot
Trwin
Trwin
Trwin Giriş Adresi
Trwin Güncel Adres
Trwin
EA34C946A7
回覆刪除Telegram Para Kazandıran Botlar
Telegram Mining Botları
Telegram Airdrop Botları
Telegram Para Kazanma Grupları
Binance Hesabi Acma