寫給軟件工程師的 30 條建議

本文爲 CSDN 翻譯,轉載請註明來源出處。做者 | Periklis Gkolias,譯者 | 彎月,責編 | Elle,出品 | CSDN(ID:CSDNnews)原文: https://dev.to/perigk/30-tips-for-software-engineering-careers-after-30-years-of-life-5ddf

努力工做

沒有人會無緣無故地給你升職或加薪。然而,光是努力工做還不夠,你還須要提升效率。程序員

努力地工做卻沒有提供任何價值的人一無可取,不要成爲這種把坐在椅子上的小時數看成生產力的人。編程

順便說一句,你也須要避免與這種庸庸碌碌的人一塊兒工做,一般他們所在的公司也超級有毒,會讓你苦不堪言。值得慶幸的是,這樣的人已經在咱們這個領域絕跡了。安全

不要執着於編程語言

過於執着某一種語言毫無心義。大多數編程語言都大同小異,並且有各自的優點。這也就是爲何咱們有不少種語言,由於沒有一種語言是完美的。框架

可是,請確保你至少了解每種範式內的一種語言。例如,函數式編程、面向對象編程等。編程語言

每一年學習一種新的技術語言

你應該嘗試每一年學習一種新語言(理想狀況下應該選擇流行的語言,並強迫本身走出溫馨區),只有這樣才能保持大腦敏銳並跟上市場趨勢。編輯器

另外,若是你發現某種語言的價值,則能夠將其做爲解決特定問題的工具,推薦給公司。函數式編程

對本身的職業生涯負責

你的童年很心酸,你的前任經理(或現任經理)是一個混蛋,你經歷了3段婚姻,離婚5次,你付出了2年時間才掌握的Web框架現在卻不流行了。你的生活一團糟,看不到一絲曙光。函數

即使如此,你是成年人,應該靠本身打贏這場戰鬥。過去的種種艱辛不是不求上進的藉口。盡心盡力提高自我,纔能有更好的明天。工具

不用擔憂沒法控制的事情

你只須要考慮本身力所能及的事情。如前所述,你付出了2年時間才掌握的Web框架現在卻不流行了。那麼該怎麼辦?再學一種啊。這一次能夠選擇一個發展前景更好的框架。你可能須要在職業生涯中經歷不少次這樣的情形。單元測試

也許你(摯愛)的技術主管離開了公司。雖然很是傷心(過去我也有過這樣的經歷),但如今你須要打起精神,給新主管留下好印象。

若是你作不到,那麼也能夠離開公司。可是,請千萬不要由於沒法控制的事情而煩惱。你須要調整你的狀態,由於「表演必須繼續」(英語:The Show Must Go On,英國搖滾樂隊皇后樂隊的歌曲)。

不要與人結仇

若是某人在某方面比你強,不要恨他們,你應該向他們學習。一般,咱們會將比本身優秀的人視做威脅。而我會將他們視做提高自個人動力源泉,你也應該這樣作。

我記得過去有幾位同事很是擅長應對壓力,他們甚至能夠在危在旦夕之際力挽狂瀾。我從他們身上學到了不少東西,我歷來不嫉妒他們,由於我知道我也能夠培養這樣的能力。

若是周圍無人可以超過你(在技術上),那麼請小心,也許是時候爲本身和事業尋找新的機遇了。相信我,除非你身居高職(如CTO),不然你不想成爲公司裏最強的員工。俗話說得好,寧爲鳳尾不爲雞頭。

仇恨會毀掉你的生活,打擊你的生活積極性。仇恨並不能給你帶來任何好處。

勇於肩負重任,就不用擔憂薪水的問題

很遺憾的是,不少人眼裏只有錢,卻沒能磨練本身的技術,創建強大的形象。

你認爲下面哪一種人將來的薪資會更高:是薪水低於平均水平的CTO,仍是薪水高於平均水平的初級工程師?因此,要明智地選擇本身工做。

辜負技術力的人,終將被技術力辜負

不少人覺得計算機科學學位可讓本身身價倍增,各大公司會求着你去他們公司,並且就憑着一張紙就能夠輕鬆得到一切。

不要誤會個人意思,我相信一個好的學位能夠證實你學習了大量有用的知識,可是不少人都止步於此了。

在這方面上,我很欣賞自學成才的程序員。可能他們缺少對計算機科學理論知識的瞭解,可是他們知道迎難而上,由於他們成功的點點滴滴都是靠本身的拼搏換來的。

另外,若是你對於流行趨勢的一些基本知識缺少了解,那麼就表明你的作法有問題。你無需成爲專家便可掌握周圍的世界。

廉價的硬件不只質量堪憂,並且對你的健康有害

你應該花錢買一些高質量的鍵盤、鼠標和顯示器。你的事業須要大量依賴於你的手和眼睛。

降噪耳機值得擁有,但若是你沒有前面提到的高質量硬件,那麼就不要由於盲目跟風。

除非你的工做環境很是嘈雜,不然就沒有必要專門買降噪耳機。

出去走一走,也許問題就解決了

好吧,我有點誇張,可是我想強調發散模式的必要性,Barbara Oakley在她的課程中講述了學習的方法,我強烈推薦。

現在,人們不過重視發散的思惟方式。至少我知道不多有公司會贊成你在上班期間睡覺(或進行其餘發散性的活動),但事實上咱們都須要發散思惟。實際上人們嘴邊常掛着的「之後再說」就隱含了發散模式的重要性。

將一部分收入投入到專業教育中

若是你的公司願意支部費用,那就更好了。

YouTube是一種絕佳的學習資源,可是若是你真的想認真學習一門技術,並且收入容許的話,仍是應該訂閱高質量的培訓服務,例如O'Reilly / Pluralsight。

找到適合本身的學習方法,而後學習更多知識。

避開沒有培訓政策的公司

可能我在這一點上持有強硬且帶有偏見的見解。若是這家公司相對較新或資金不足,那也能夠例外。

因爲科技領域須要不斷學習新知識,跟上最新的潮流,因此我認爲不該該考慮沒有適當培訓/教育政策的公司。

對我而言,最低限度的教育政策是每位員工都有專門的預算,至少每一年能夠支付下面的部分費用:

• 參加會議

• 購買書籍

• 購買O'Reilly learning等高質量的培訓服務

• 進行認證

固然,因爲種種緣由,大多數人不會在一年中把上述全部的事情都作一遍。也許是由於他們已進入穩按期,或者是由於他們有家庭,他們不能投入大部分的業餘時間,但若是員工有這個意向,公司就應該全力支持。

我對大公司的要求更高,我但願大公司可以舉行一些講座,特別是在領域關鍵的問題上。例如,若是公司想採用Scrum,那麼最好能邀請一名敏捷教練來幫忙作準備。

使用金錢能夠買到的最好的工具

例如IDE。與硬件同理,不該該在IDE上貪便宜。正如《程序員修煉之道》所說,你須要選擇一個編輯器,而後學習如何用好它。高質量的工具能夠節省你寶貴的時間。

不要忘記,時間就是金錢。如今你支付了高昂的價格,之後就能夠節省時間。

忽視動力

人們須要很大動力才能實現重要的人生目標。

動力很重要,但也是一種情感。和全部的情感同樣,動力也會忽有忽無。

你須要找到一種更好的方式來指引本身前進的方向,至少在一些重要的事情上明白本身須要作些什麼。

當一切順利時,人們很容易滿足常樂,可是當你失去動力或進入倦怠期時,又能作些什麼呢?

保持活力與熱情

雖然我不建議你時刻像打了雞血同樣積極發展事業和生活,但我認爲每一個人都應該有本身的事業遠景規劃。

你應該清楚本身的發展方向,只有這樣才能知道作出的每一個決定是否可讓你的事業更快、更安全地發展。正如2000年英國著名的划船手獎牌得到者所說,這個決定是否能夠加速船的前進?

瞭解哪一種類型的公司更適合你,並專心作好這類的工做

創業公司、中型公司和大公司,都有各自的福利和消極的方面。

若是你更喜歡在大公司工做,那麼不必定可以處理好創業公司的平常工做。

你須要進行一番研究,確保你瞭解你有哪些選擇,而你的每一個選擇能得到什麼以及失去什麼。不幸的是,這個問題沒有統一的答案。

趕上一位好經理是健康的工做及生活的基礎

你可能對這一點並不陌生,趕上一位通情達理、能與之有效溝通的經理,並且還能從事本身喜歡的工做,那將是人生一大幸事。

不少人辭職都不是由於公司,而是由於他們的經理。你須要確保本身能和經理愉快地相處。理想狀況下,在進入公司以前就要確認這一點。

要想給別人一碗水,本身就得有一桶水

這是我最初開始寫博客的緣由。

若是我得知了一些有趣的事情,那麼我能夠經過博客分享。

我認爲這種方法的效果很好。至少對我來講是如此,雖然我從未問過個人讀者:)

只有堅持學習纔不會被時代淘汰

與軟件行業相關的高薪領域的變化相對也不少。該領域的發展如此之快,因此一旦你中止學習,就會被時代淘汰。

這並不意味着你應該將全部的工做時間都用來閱讀和編寫代碼,但也不要走向另外一個極端:安於現狀,無視周圍的變化。

學習是一個長期堅持的過程,不要急於求成

至於學習的心態,與平日荒廢到了週日就一成天都坐在電腦前相比,天天花30-40分鐘學習的效果更好。

上大學時你就對此深有感觸,不是嗎?若是你平時就按時作做業,那麼考試前的壓力就會小不少,知識須要一點一點地積累,沒法一蹴而成。

先讓程序跑起來,再考慮正確性,最後再考慮速度

Kent Beck的這句話是我最喜歡的名言之一(還有一句是Unix哲學)。我對軟件開發業界缺少務實的思想感到震驚。

人們過於強調空格與製表符、下劃線分割與首字母大寫以及接口的命名方式。

我沒有說這些問題不重要,只不過咱們首先須要保證程序可以運行,不是嗎?

我最喜歡觀察別人,往往看他們代碼都沒有經過編譯,就加了大量的註釋,也挺無語的。朋友,請務實。

花在社交媒體上的時間應該物有所值

只關注那些值得你花費時間的名人。我關注了Twitter上的不少名人,包括許多dev.to上的做家。

即便我並不常用推特,但我也喜歡讀到不一樣的觀點,由於他們能給我很好的視角。

勇敢發問

不管你在公司中處於哪一個職位,即使你是CTO,也不會有人認爲你理應掌握全部信息。相反,研究代表,人們更喜歡你向他們尋求幫助。

並且,計算機科學領域如此之大,沒有人能無所不知。就像其餘被堆積如山的案牘所累的行業同樣。

原理和頭腦風暴不能決定成敗

可以決定成敗的只有最終的結果。你已經離開了學校,沒有人在意你浪漫的編程方式,這些理論不適用於行業問題或假設。我並非說它們並不重要,可是企業界更加劇視結果,而不是抽象的討論。

這是一個可悲的事實。若是你不喜歡,那麼也許企業生活不適合你。最好仍是找一處以研發爲導向的科研或大學吧。

嘗試軟件行業以外的業餘愛好

最近,我有點後悔沒有遵循這條建議。

我並無成功地在全職工做、健身訓練和碩士學位之間創建平衡,現在正在想法修復。

這條建議能夠幫助你避免過分疲勞,並且也能從不一樣的角度考慮事情。

例如,我見過許多文章探討發散思想與樂器之間的聯繫。

不要在技術上剛愎自用

這就不必解釋了吧。因爲某種緣由,軟件技術中有不少選擇。不要鼓吹某個編程思想或技術,或將其視爲惟一的解決方案。這種作法只會讓你招人煩,或顯得本身很無知。

切勿在辦公室中觸碰不能容忍的行爲

性別歧視、種族主義、欺凌行爲、反感本身的事業或者老闆休假就拖欠工資(我就有過這樣的經歷)。有些公司的人認真、成熟且專業,他們懂得尊重別人。你須要找到這樣的公司。讓那些不懂得尊重別人的人們在他們狹小的圈子裏尋找優越感和獨特性吧。

單元測試很無聊,可是...

遇到產品快速增加或大規模重構即未來臨等狀況時,單元測試能夠救你一命。

就像生活中的全部事物同樣,只有辛勤播種,纔有收穫。

有效的時間/任務管理很是重要

有效的時間/任務管理與最新和最熱門的技術同等重要,甚至比它們更重要。

爲何?由於若是你不能有效利用本身的技術按時提供價值,那麼對別人來講你一文不值。若是你以爲本身這方面的能力有待培養,那麼能夠從《Getting Things Done》(簡稱GTD)和《15 secrets of time management》入手。

重視軟技能

除非你是不須要公開競標的自由職業者,或者將銷售和客戶處理工做委託他人,不然你會很是須要軟技能。

咱們天天都須要與人合做,咱們須要知道如何與不一樣的人有效地溝通,並用對方聽得懂的語言與之交談。

若是全部人的軟技能都不強,那可能也不會有問題,可是這就有點反烏托邦了,我仍是但願你能務實一點,努力培養這方面的能力。

至於如何培養軟技能,我推薦你能夠從如下三本入手:

• 《Soft skills》

• 《How to win Friends & Influence People》

• 《The charisma myth》

總結

感謝您的閱讀,但願你喜歡本文提到的技巧。若是你有其餘能夠分享的點,請在下方留言。

相關文章
相關標籤/搜索