導讀:2019就此別過,2020好好度過! 2019年註定是一個不平凡的一年,2020年又是一個積極進取,充滿希望的一年!雖然整體環境大不如前,但是IT程式設計產業依然是薪資待遇相對較好的一個產業,在2020年,如果你想成為一名程式設計師,以下作為一名老程式設計師的經驗分享,希望能幫助到你,指引你少走彎路!
從事程式設計並不容易。每年有許多人從各國的頂尖電腦科學專業畢業,這是所有人都嚮往的有競爭力的職業之一。同時,程式設計也振奮人心。隨著科技的進步,每天都有新的創新。對於喜歡編程,並立志從事程式設計的人而言,程式設計是其熱愛且為之奮鬥的事業。
本文的這個清單可以幫助新手答疑解惑,節省精力。即使目前某些內容可能暫時不需要,但總有一天它會派上用場。
1. 從事程式設計無需學位,但需要有所了解。
程式設計是少數幾個不取決於學位的職業之一。但是程式設計是一項知識密集型職業。如果你要從事程式設計行業,閱讀一些基本的涵蓋電腦科學的基本概念等書籍是必要的。除了編寫功能程式碼之外,為你的技術打下堅實基礎,對基本概念有一個深刻理解,這使得你能夠贏得技術面試有助於與同事交流。
2. 在問題解決技能上,程式設計十分有創意。
大多數人都有這樣一個先入為主的觀念,即程式設計就是分析和解決問題的能力。這只說對了一部分。程式設計還涉及許多創造性。通常,可以使用多種方式編寫給定的程式碼。當你設計出最簡單有效的編碼方式時,創意就產生了。
3. 要掌握所有程式語言是不可能的,訣竅是將一門語言學到極致。
世界上有數百種程式語言。有一些程式設計領域為特定的職業道路鋪平了道路:Web開發人員,前端開發人員,後端開發人員,軟體工程師,資料庫開發人員等。明確希望成為哪種開發人員,然後學習該職位所需的技術技能。
4. 你不需要成為一個機器,保持身為人的狀態就更好了。
請記住,你首先是人,其次才是程式設計師。初次編程時,很容易迷失在程式碼中。你是一個人,你需要笑,需要哭哭,需要減壓,需要與人交談。作為一名程式設計師,平衡生活,盡可能的發現工作以外的樂趣與熱情將為工作帶來更多創造性。
5. 程式設計是應用知識而不是死記硬背。
與發明和創造新知識領域的研究不同,程式設計就是應用現有知識。書籍,研究論文,線上文章和學習影片將成為經常使用的資源。沒有必要記住所有知識。可以透過搜尋資源找到答案。隨著處理的項目增加,知識也會自然銘記於心。
6. 你每天都會與冒牌者症候群對抗。
程式設計是所有「聰明」人都超同一個目標前進的行業。除非你是天才,否則你會每天都覺得自己不配取得成功。當你每天都為這種感受所困時,會試著想辦法解決這個問題。你可以一直將其視為學習新事物的動力,正確看待問題。
7. 身為程式設計師,你還需要有工作以外的生活,否則,你只會沉迷於程式設計。
有段時間你可能會待在家裡不出門。但是,要成為一名快樂的程式設計師,必須主動尋求電腦螢幕以外的生活。職業生涯的成功往往取決於你遇到的人。人際關係對程式設計師而言不可或缺。保持程式設計師之外的個性特徵對於防止沉迷於程式設計至關重要。當你樂在其中而非強迫自己時,工作才會更加出色。
8. 與他人合作會學得更快。
在職業生涯初期,你會想要斷開與外部世界的聯繫,沉溺於閱讀這十本有關程式設計的書籍,以建立電腦科學基礎。你猜怎麼著?如果你找到一個學習夥伴,會學得更快。當你與他人合作,所有的程式設計「缺點」都會暴露出來。編寫的程式碼會被審閱。由於有第三方的存在,你將會學著寫高效的程式碼。由於夥伴也在學習,所以你會想找到最好的方法。當你從事程式設計師這項工作時,總是會有人審查程式碼。你永遠不是獨自一人這是你需要習慣的。
9. 不需要擅長數學和科學。
在科技業會遇到各種超級明星程式設計師,他們在接受了長期的文科教育之後,發現了程式設計在邏輯思維方面的吸引力。有很多畫家和作家在追求藝術的同時以程式設計謀生。成為一名優秀的程式設計師,你需要的是堅持不懈。程式設計很辛苦。但是,一旦有了恆心,任何人都可以透過閱讀程式設計書籍來掌握基礎知識。在這個行業工作一段時間後有很多人重拾數學。最後他們甚至可以在沒有接受正式數學教育的前提下理解實施複雜的演算法。
10. 成為全明星「學習者」。
程式設計師的學習能力都很強。剛開始也許你的學習能力並不出色,但最終將會提升。有時,工作會要求你在六個月內學習三種程式語言。這就是技術創新的狀態。作為程式設計師,每天都在學習。學習就像呼吸一樣。即使你對每天都需要學習的狀態不太舒服,你也會被迫習慣。
11. 你將對完成專案上癮。
編碼成癮是真實存在的。在程式設計生涯中的某個階段,你將經歷通宵編程的馬拉松。在完成專案之前,你都不會想要睡覺。由於大腦正在處理大量的訊息,你會忘記吃飯,喝酒,甚至不會離開辦工作。不要緊,工作做完後,就到外面散步或度假吧。
12. 耗費一整天只為找一個小漏洞。
多數時候,在程式設計專案中許多部分彼此相互關聯。通常,你會發現除非修復了系統中潛藏的一個小漏洞,否則無法繼續進行下一步操作。身為程式設計師,除非找到這處漏洞,否則你會對整個專案倍感壓力。你會整天坐在電腦夜難寐,只為找到這個漏洞。這種現像只有找到它後才會消失。
13. 你將花費大部分時間在Google搜尋無人能為你解答的答案。
如果使用流行的語言編程,那麼大部分的問題都能得到解答。但是,也有例外。有時,你也會出現別人碰不到的問題。在這種情況下,參考程式設計書籍並詢問程式設計委員會通常會幫助你答疑解惑。
14. 閱讀設計模式的書
是否畢業於國內外最好的電腦科學專業並不重要。在每個程式設計師的職業生涯中,都會坐下來仔細閱讀Head First Design Patterns。它可能是新程式設計師最常閱讀的書籍之一。還在等什麼?趕緊拿起它並從頭到尾閱讀。
15. 學習專注於確切的拼字
在每個程式設計師的職業生涯中,都會用自己喜歡的語言編寫足夠的程式碼,以便按照自己的方式做事。這包括為變量,類,甚至資料庫中的表提供的命名約定的準確拼寫。仔細審查這一點。你最不想發生的就是因為拼字錯誤而產生的系統漏洞。記住,當理由充分時沉浸與值得關注事情是可以理解的。但是如果無據可依,那不過只是無意義的重複。
16. 你可能會放棄
有時你會遇到無法解決的問題。有時問題難到讓你懷疑人生,只想要辭職。有時工作環境會讓你想要放棄。熱情取決於堅持。這時候質問自己,是要堅持還是放棄?當遇到挫折和困難時,你就把它當做港灣和下一次騰飛的跳板。
17. 重頭再來
當你看到那些和從前的一樣熱愛程式設計的人,你會很羨慕接著發現自己無法放手。你不能放手。然後又會回到程式項目上來。你意識到在內心深處,和程式設計同呼吸共命運,這是你才成為真正的程式設計師。
18. 回到某種形式的學校教育,去學習系統的知識。
即使是從精英電腦科學碩士課程畢業的優秀的程式設計師也將在工作中學習。事實上,在職訓練是大型科技公司工作的福利之一。公司將送你去學習「高昂」的課程和研討會,以培訓你使用他們希望使用的最新技術。如果你碰巧在工作中沒有學到足夠的知識,你將接觸到許多線上編碼學院和免費影片教程,如php中文網,以提高你的技能。
19. 被不喜愛的公司聘用
即使你是個平庸的程式設計師,某些公司也會需要你的技能。當他們面試你的時候,試著記得你也在面試他們。根據公司的文化,你可能會發現自己想對這份看似輕鬆地工作說不。作為程式設計師,工作時間很長。找到適合自己的公司文化幾乎至關重要。幸福度會帶來好的工作表現。如果你的技能無可取代,總會有其他公司排隊挖你。非必要情況,不要輕易妥協。
20. 技術面試不合格
技術面試不是開玩笑。高級程式設計師經常以編寫技術面試問題為樂。通常,出於某些原因,這些問題總是格外難。如果技術面試不合格,這也不是世界末日。這當然不能證明你的程式設計能力。它只測試你的知識庫。試著想想正面的一面。如果個人技能出色,經理們會記得你。如果他們看好你的能力,然而你並不適合擔任這個角色,他們仍可能會聯絡你,為你提供另一個職位。
21. 被告知你很出色
在職業生涯中,有時候你會覺得自己像個明星。經理需要依靠你完成項目,他們誇讚你很棒,以激起你的幹勁。你會覺得自己處於世界之巔。注意了,這是在誘導你變得自負。請保持謙虛,畢竟學無止境,人外有人山外有山。
22. 被貶得一無是處
在職業生涯中,有時你會覺得自己一無所知。對專案沒信心人會告訴你,你什麼都不知道。也許他們這樣做是為了讓你了解自己身處的位置。但是,既然你正在閱讀這篇文章,你就會大步前進。因為你知道的可能比你想的還要多。你所掌握的知識也會隨著時間增加。一年後,人們會尊重你,所以請堅持下去。假以時日,甚至可能贏得那位曾經將你貶得一無是處的人的尊重。
23. 與你所欣賞的其他程式設計師競爭
程式設計最絕妙的方面之一就是競爭。當你編寫一個你欽佩的程式設計師認為值得的程式碼時,會開心地像贏了彩票。程式設計競爭總是很有趣。精妙之處不在於誰是最好的而是互相學習。
24. 可能理解不了同事的話
一開始,這種情況可能是每週或每月一次。在新程式設計工作中,你可能理解不了同事剛剛說的話。可能以下兩個原因。鑑於生活環境的不同,你可能聽不懂他們的口音。在這種情況下,請另一位同事翻譯。不能理解某人的言論並不可恥。很可能,其他同事也花了好幾年才得以習慣這種口音。另一個原因是同事剛才所說的完全超出了你的知識範圍。那也沒關係。畢竟,同事是專家。請同事以圖片形式解釋一下。你會想要拉把椅子坐下來詳聽,因為這可能需要一段時間。
25. 看到去年寫的麵條式程式碼,你會感到羞恥
這事兒常常發生。一開始因為Perl代碼,我被批評了。這是一個記錄良好的程式碼,設計也很好。但我卻用一種難以閱讀的語言寫出來。所以,我寫了麵條式程式碼。但是,每年,無論我怎麼努力,我仍然會找到一些我清除由於快速完成工作而編寫的麵條式程式碼。這就是程式設計師的日常。我們解決問題並修補問題。不必覺得羞愧。當你意識到這是你寫的,回到修正即可。
26. 當你厭倦了看另一行程式碼時,你將在資料庫專案中躲避#
##當你進行一次精彩的程式設計攻關時會發生這種情況。已經兩個月了。你需要休息一下。但是你喜歡這種勢頭,所以繼續前進。然後你意識到SQL很有趣。無法弄清楚為什麼你不能看另一行程式碼。但不知何故,將數據放入資料庫並再其取出使你感到愉悅。你陶醉於完全邏輯語言的簡單。27. 對程式馬拉鬆又愛又恨
程式馬拉松現在很常見。程式設計師加入團隊並相互競爭。在這個過程中,他們會在幾個小時內進行高密度學習。你會因為團隊精神愛上程式設計馬拉松,也會因為快速碼字造成的腕關節症候群而討厭它。你也會討厭工作擁擠的房間以及在程式設計時感官的過度刺激。28. 閱讀研究論文時,會覺得一個字看不懂
你會說英語嗎?好大多數人會說是的。但是,你可能會一遍又一遍地閱讀一些研究論文,並發現自己一頭霧水。對我來說,在學習基礎數學之前,大多數關於演算法的研究論文看起來都像是一片巨大的霧林。然後,突然間,一切似乎又撥開迷霧了。29. 購買耳機
在職業生涯的某個階段,當你專注於程式碼時,會發現任何類型的噪音都會阻礙你的感官。買一個能夠隔絕外部噪音的好耳機,可以讓你在吵雜房間內專心工作。在某些時候,也會發現音樂有助於編碼。編碼生涯的早期我就發現,音樂節奏有助於流暢地編碼。即使是現在,需要提高工作效率時,我還是會找些音樂來聽。30. 抓住與同儕溝通的大好時機。
在職涯的某個階段,你會成為公司非常重要的開發人員群。這時你將被邀請到異地技術專業人員將在這裡進行社交活動。高階主管會藉此機會了解你。這並非是無憂無慮、享受的時候。相反是與同伴交往、交流的大好時機。有時,外出活動也包括與其他公司的技術專家的會議。
作者:吳軍
翻譯:php中文網
原文網址:https://medium.com/better-programming/30-short-things-i-wish -i-knew-all-this-when-i-started-programming-b17667e3df0c
#