高級碼農(nóng)反思錄:我當(dāng)菜鳥時不懂的七件事
開發(fā)者職業(yè)生涯初始你可能會覺得有點害怕。你將面臨許多未知的挑戰(zhàn)、要學(xué)習(xí)很多東西,還要做出很多艱難的抉擇。有時我們可能會選錯。這是很正常的,當(dāng)我們面對這種情況時不要自責(zé)。
我們應(yīng)該從中吸取教訓(xùn)。在成為高級開發(fā)人員的過程中,我犯過許多錯誤。本文講述了當(dāng)我還是初級開發(fā)人員時犯過的 7 個嚴重錯誤,以及如何避免這些錯誤。
1. ***份工作中的坑
如果你一直在自學(xué)代碼,或者即將結(jié)束學(xué)生生活,那么你的首要目標(biāo)就是找到***份工作。這是漆黑隧道盡頭的一束光。
但找工作并不容易。初級開發(fā)人員越來越多。你要寫一份一擊必中的簡歷,并經(jīng)過幾輪面試,這個過程也可能會一直循環(huán)下去。
簡歷撰寫指南:
https://www.chrisblakely.dev/how-to-write-an-awesome-junior-developer-resume-in-a-few-simple-steps/
這也是你覺得自己抓住的任何工作都極其誘人的原因。
但這種行為可能并不明智。無論是從學(xué)習(xí)還是享受工作的角度而言,我的***份工作都遠遠談不上理想。開發(fā)人員抱著「呃,有態(tài)度就行」的想法,對待工作并不認真。這樣就會產(chǎn)生一種責(zé)備文化,我常常為了滿足緊迫的截止期限而被要求縮減內(nèi)容。最糟糕的是我沒能從這份工作中學(xué)會任何東西。
我在面試中忽略了這些警告信號,因為得到工作機會蒙蔽了我的雙眼。當(dāng)我收到報酬還不錯的 offer 時,我將我所有的擔(dān)憂都拋到了腦后。
真是大錯特錯。
你的***份工作非常重要。它讓你體驗到成為一名真正的開發(fā)人員的感受,你從這份工作中獲得的經(jīng)驗和指導(dǎo)也將為你之后的職業(yè)生涯奠定基礎(chǔ)。這就是為什么在接受任何工作前,你都要對你的職位以及這家公司進行全面調(diào)查。你一定非常不想從中獲得糟糕的經(jīng)驗或糟糕的領(lǐng)導(dǎo)!
所以,在申請或接受任何工作之前,你要:
(1) 研究這家公司
在 Glassdoor 和互聯(lián)網(wǎng)上搜索這家公司、登錄他們的網(wǎng)站,找一些關(guān)于這家公司的評論。如果這家公司符合你的目標(biāo)和需求,那你會得到很不錯的體驗。
(2) 詢問你認識的人
如果你的關(guān)系網(wǎng)中有人曾在這里工作,或者他認識這里的員工的話,你可以和他們聊聊。了解一下他們對這家公司的褒貶評價以及他們的經(jīng)歷。
(3) 在面試中問適當(dāng)?shù)膯栴}
面試是你了解一家公司的***機會,面試前要確保你已經(jīng)準(zhǔn)備好要提的問題了。你可以問:
- 開發(fā)過程(他們用的是什么方法?他們有代碼審核嗎?他們的分支管理策略是什么樣的?);
- 測試相關(guān)的問題(他們用什么樣的方法進行測試?他們有專門做測試的工程師嗎?);
- 公司文化(這家公司的氛圍輕松嗎?有什么針對初級開發(fā)人員的支持嗎?)。
2. 什么都想學(xué),結(jié)果什么都沒學(xué)好
毫無疑問,成為成熟開發(fā)人員的道路充滿困惑。有很多可用的語言、框架和工具。我最開始犯的一個錯誤是什么都想學(xué)。有趣的是,我***什么都沒學(xué)好。
一會學(xué) Java,一會學(xué) JQery,一會學(xué) C#,一會學(xué) C++……
我沒有專注于一種語言,而是根據(jù)那天的心情在不同語言間跳躍。相信我,這絕對是一種非常低效的學(xué)習(xí)方式。
如果在一條路上走下去或深入學(xué)習(xí)一門技術(shù),那我本能得到更好的結(jié)果,并晉升得更快。例如,如果你想在前端發(fā)展,那可以學(xué)習(xí) JavaScript、CSS 和 HTML,還要選擇一個框架。如果你想在后端發(fā)展,那就選一種語言并好好學(xué)。你不需要了解 Python、Java 和 C#!
集中注意力、選擇自己要走的路、制定計劃,并成為你選擇的領(lǐng)域的專家(這張圖可以幫助你制定計劃:https://www.chrisblakely.dev/the-10-minute-road-map-to-becoming-a-junior-full-stack-web-developer/)
3. 寫代碼的時候太「花哨」
假設(shè)你在準(zhǔn)備一個項目,這個項目可能是給面試官看的,也可能是你找到***份工作后的***個項目。你想給別人留下深刻的印象。***的方法是做什么呢?用你學(xué)過的極其花哨的編碼技術(shù)來完成項目,對嗎?
不對。
這是我犯過的一個主要錯誤,也是初級開發(fā)人員常犯的錯誤。初級開發(fā)人員常會做無用功,還會用非常復(fù)雜的解決方案來給人留下深刻印象。
***的方法是參照 K.I.S.S(keep it simple, stupid)原則寫代碼(越簡單越好)。讓一切都盡可能簡單,你就可以寫出可讀性高、可維護性高的代碼,這會帶來很多好處(在你之后繼任的開發(fā)人員會很欣賞這樣的代碼!)。
4. 不會平衡生活和工作
我早期還有一個壞習(xí)慣:沒有學(xué)會在生活和工作中切換。我會在一天工作結(jié)束后還把電腦帶回家,坐好幾個小時來解決可以留到第二天的任務(wù)或錯誤。不出所料,這樣的習(xí)慣讓我精疲力盡。
我這樣做的部分原因是我覺得要盡快完成所有的事情。但實際上,我本該意識到工作是一個持續(xù)的過程,它往往可以在下一個工作日再繼續(xù)進行。重要的是要記得生***還有別的需要關(guān)注的事情——朋友、家庭以及興趣愛好。當(dāng)然,如果你想夜以繼日地寫代碼,那當(dāng)然可以!但如果不怎么享受這個過程,那你可以考慮停下來做一些其他事。
明日何其多!
5. 不敢說「我不知道」
在你要完成的問題或任務(wù)上遇到困難是很常見的,它會經(jīng)常發(fā)生,即便你成為高級開發(fā)人員也是如此。作初級開發(fā)人員時我犯的錯誤是:我不愿意承認「我不知道」。如果管理人員問了一個我不太清楚的問題,我會糊弄一個答案,而不是直接說「我不知道」。
我覺得如果說「我不知道」,人們就會覺得我不知道自己在做什么。但事實并非如此。沒有什么都知道的人。所以如果有人問了你不知道答案的問題,直說就好。這樣做的好處是:
- 你表現(xiàn)了你的坦誠,而且不會誤導(dǎo)提問的人;
- 如果有人向你解釋的話,你也會學(xué)到新的東西。
- 你直說自己不懂這個問題的話,會得到別人的尊重。不是每個人都敢承認自己的無知。
6. 心急吃不了熱豆腐
我相信你一定聽過「在學(xué)會跑之前你要先學(xué)會走」。沒有什么領(lǐng)域比 web 開發(fā)更貼合這句話了。當(dāng)你以初級開發(fā)人員的身份獲得***份工作時,你會急于產(chǎn)出,馬上著手處理大型編碼任務(wù)。你甚至想到了如何快速晉升到下一級。
雖然有雄心壯志是很好的事,但事實是很多事情不會立即發(fā)生在初級開發(fā)人員身上。當(dāng)你剛開啟自己的職業(yè)生涯時,你可能要處理相對更小、更簡單的任務(wù)和錯誤。這可能不是什么令人興奮的工作,但卻是必須經(jīng)歷的過程。這個過程可以讓你一只腳邁進代碼庫并熟悉這個過程。其次,這個過程可以讓你的團隊和你的上級更好地評估你作為團隊一員的工作范圍,以及你的技能在團隊中處于什么樣的位置。
我當(dāng)時犯的錯誤是對處理小任務(wù)感到沮喪,而且這種沮喪的感覺影響了我的工作。耐心點,盡你所能完成你要處理的每一個任務(wù),激動人心的工作隨后就來!
沒有加入任何社區(qū),也沒有建立任何關(guān)系網(wǎng)絡(luò)
開發(fā)社區(qū)很棒。社區(qū)中總有人愿意提供幫助、反饋,甚至是動力。成為開發(fā)人員是很難的,有時候可能會付出一些代價。你加入社區(qū)越早,就越容易渡過初級開發(fā)人員的艱難時期。
參與也是一種很好的學(xué)習(xí)方式。你可以為開源項目做出貢獻,看別人是怎么寫代碼的,還可以看到開發(fā)人員是如何協(xié)作完成一個項目的。這些技能你都可以應(yīng)用在日常工作中,而且從長遠角度看,這會讓你成為更好的開發(fā)人員。
找到并加入你感興趣的社區(qū)——freeCodeCamp、CodeNewbies、100DaysOfCode 都不錯!你還可以參加一些你所在城市的線下聚會。詳情見 meetup.com。
這也可以讓你建立關(guān)系網(wǎng)。這個網(wǎng)絡(luò)基本是由你所在行業(yè)認識的一群人組成的。為什么關(guān)系網(wǎng)很重要?假設(shè)你想跳槽。通過網(wǎng)絡(luò),別人可能會推薦特定的職位給你,甚至可能向一些公司推薦你。這讓你在面試中有了堅實的優(yōu)勢,因為有人為你擔(dān)保,這樣你就不再只是「一疊簡歷中的一個名字」。
原文鏈接:
https://medium.freecodecamp.org/how-to-avoid-these-7-mistakes-i-made-as-a-junior-developer-a7f26ce0f7ed
【本文是51CTO專欄機構(gòu)“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】