如何不用那麼擔心成為一個壞程式設計師

2016-06-25    分類:推薦閱讀、程式設計師人生、首頁精華1人評論發表於2016-06-25

我無意中發現了“冒充者綜合徵”的另一種表現形式,總是質疑“我是一個真正的開發者嗎,或只是一個善於網路搜尋的程式碼搬運工?”

我看到的答案忽略了要點,因此我打算接下這個爛攤子,好好解說一下,因為太多人都有著這種擔憂。

善於尋找資訊並不能說明你笨

我經常聽到的一個我認為是杜撰的,但卻揭示了一定真相的故事,它的主要內容是:當問及電話號碼的時候,愛因斯坦查詢了一下,說他為什麼要記住他可以在不到兩分鐘時間內找到的東西?

在80年代,學者的標誌是擁有一本百科全書。你甚至大部分都沒有讀過:我家最令人印象深刻的百科全書是1937年出版的,並且關於納粹黨的條目不過兩個段落,這意味著這本百科全書並不是什麼大部頭。我光知道其中一個最令人難以置信的錯誤資訊點,就讓我躋身於聰明人行列。因為當時,有趣的資訊是很難獲取的,不過一個衝擊就使得你成為一個學者。

現在,即使是最無知的平民也能得到他們想要的任何資訊,學者精英儼然敗退,但卻開始宣稱他們有一些基本的大腦功能,使得他們能夠比其他任何人更好地導航這些氾濫的資訊。在所有最有吸引力的謬論中,有一個概念上的真理:當你使用網際網路來查詢關於蜥蜴人的文章連結時,很容易萌生一種鶴立雞群的感覺。當你浪費一整天的時間來解決bug,直到去搜尋Stack Overflow,發現上面早在3年前就已經有5個人指出瞭解決方案,並且其中兩個表示要是有人不知道答案就是傻瓜的時候,也很容易覺得自己略遜一籌。

新平民主義的資訊檢索引擎可能會讓你感覺使用任何人都可以使用的東西很low,但這種糟糕的精英情緒真的是你應該抹殺的。

忘了關於愛上工作的所有廢話

我最喜歡的工作一直是洗碗。我很擅長,並且我可以在自動駕駛儀上洗,它能夠讓我的大腦自由地天馬行空。最好的情形是什麼?如果在一天結束時我為一家繁忙的餐館洗了2000個盤子,看上去憔悴不堪,卻沒人讓我坐下,還來問我為什麼不對我的洗碟子技術充滿激情。

如果熱愛你的工作成為了做這個工作的不可談判的先決條件,那麼文明就會崩潰。我敢肯定,有人會對他們for迴圈中標記i++和++i之間速度差異感到精神上的滿足,併為此感謝上帝,因為會有人來接手我們亂七八糟的程式。其餘我們這些平庸的人只要祈禱,“除錯”郵件資料夾中的未讀警告在數量不要上升如此之快,使得我們不得不應付它們。

過去的時候,在他們打包馬提尼午餐和扔掉激勵性標語之前,關於工作的重要部分,並不是你熱愛它;重要的是你不討厭並且不會讓你的同事討厭它即可。現在,為了薪酬,工作儼然已經成功地戰勝了色情書刊,讓我們孜孜不倦地裝作樂於其中。僱主告訴我們即使是在聖誕節夜晚也需要保持手機暢通,沒問題。有些程式設計師使得他人討厭他們的工作和自己也沒關係,因為,好吧,那傢伙熱愛編碼。並且如果你沒有將星期六晚上的時間用來自己學習遞迴教程則完全是你自己的錯。

和銷售不能比

現代的初創企業用最糟糕的方式呼叫高功能的冷漠。因為創造技術的人才是真正熱愛攻克基於tape的技術,所以我們有一堆由銷售部門和技術部門組成的公司,因為相關的其他工作已經外包給另一個網站,同時該網站又是由另一家由銷售部門和技術部門組成的公司執行的。如果你從事銷售,那麼熱愛或假裝熱愛你的工作是工作的一個組成部分。這就是為什麼銷售熱情高昂的原因。如果你從事高科技工作,那麼你的工作就是使一些東西工作起來,並且你可以和熱情的那些人一樣很好地完成工作,因為你銷售的唯一產品就是你實現Stripe api的能力,並且沒有人會因為做到這一點而爭強鬥勝地歡呼。

你公司的所有會議中,一邊是精神抖擻、吸引眼球的銷售人員,另一邊是精神疲憊、希望會議快點結束的開發團隊,之所以希望快點結束是他們已經在懷疑得需要多久才能指出競態條件bug,而且他們知道這其實不是真正的競態條件。

你可以不擔心這一點。也許你社交能力強,對此興致勃勃,眼神錚亮,也許你不具備這些能力。但是這和你的工作能力無關。

忽略學究人士

當然,有人會說,“每個程式設計師都應該知道X。”

我不知道X。氣泡排序?我猜那和吉尼斯有關係。B樹?聽起來像常青樹。雜湊表?我學的是PHP程式設計,所以直到兩年前我才知道雜湊表不同於陣列。當OkCupid僱用我的時候,我並不知道雜湊表和陣列之間的差異。但神奇的是,他們還是給了我一份工作。

不管你是什麼程式設計工作,總會有大量你不懂的程式設計內容。當你下定決定學會世界上的每一種程式語言時,一些十二歲大的俄羅斯小孩會嘲笑你不知道如何超頻你的CPU。同時,當一美國人吮吸著拿鐵咖啡,問你為什麼不關閉系列B的時候,韓國孩子會黑客你的PS4帳戶。法國ops人只會向你吐唾沫,當你要求她不要再伺服器房間抽菸的時候。

程式設計是新的,最初那個不得不挖掘機器程式碼的John McLanes仍然活著,並指責我們是懶惰的。但是現在的程式設計和任何其他的工作一樣,因為任何你需要做的以滿足業務開發部團隊的都可以通過學習掌握。

面試是地獄,克服它

你將走進任意給定的面試,帶著所有你掌握的知識,臨時再抱抱佛腳。大多數時候,你都想著走出面試,索性放棄得了,哪怕依然在原來的狀態上苟延殘喘。每個人都知道其他人不知道的東西,並且我們中的大多數人最終會處於由另一個人來決定我們將來去留的境地,基於我們知道別人不知道的東西。

所有面試過程都是有缺陷的。並且它們將依然有缺陷,只要我們還是缺乏一種預測候選人生產工作能力的演算法。只是一文錢難倒英雄漢,所以我們不得不硬著頭皮迎難而上。

尺有所短寸有所長。他們之所以要面試你,肯定有你的專長和閃光點和需要你做的地方。即使你覺得自己是冒名頂替綜合徵,那也別害怕,珍惜它,因為老老實實沒有冒名頂替綜合徵的才是一個傻瓜。

賺錢

你拿到你上個月的薪水了嗎?如果拿到了,那不錯。你能夠自食其力了。你是搞程式的?對嗎?ok,上個月的薪酬只是讓你領先於世界上80%的打工仔,更不要說那些找不到工作的人。所以如果你下個月依然有薪水,那麼說明你不是冒名頂替的。

如果你只是需要一份工作,能夠並願意接受計算機作為謀生的工具,那麼你擁有保持資訊時代執行的一切。

相關文章