來源:派臣科技|時(shí)間:2020-12-08|瀏覽:次
如果我在剛開始的時(shí)候就知道這些東西,我可能會(huì)在6年的程序員生涯中多成就300%。
編碼并不僅僅是編碼
你認(rèn)為編程是關(guān)于什么的?
寫代碼?
編寫好的代碼?
不。
這只是事實(shí)的一部分。
編程不是編碼,編程是用編碼來解決問題。
終端客戶并不關(guān)心您使用的技術(shù)、語言、框架或方法。他們只關(guān)心一件事,你的產(chǎn)品是否解決了他們的問題。
這就是為什么沒有人關(guān)心谷歌搜索到底使用了什么技術(shù)。直到人們能找到相關(guān)的信息,他們才會(huì)使用它。
當(dāng)我開始編程的時(shí)候,這是我希望知道的第一件事。
我會(huì)用更少的時(shí)間來編寫“最好的代碼”,用更多的時(shí)間來最好地解決客戶的問題。
不要為了寫代碼而寫代碼,要用代碼來解決客戶的問題。
溝通技巧比編碼技巧更重要
當(dāng)我剛開始我的職業(yè)生涯時(shí),缺乏社交技巧并不是我的主要問題。但當(dāng)我升到更高的職位,升到中級(jí)、高級(jí)和領(lǐng)導(dǎo)職位時(shí),我薄弱的軟技能成了我的致命弱點(diǎn)。
當(dāng)你和一群不同的人(工程師、設(shè)計(jì)師、經(jīng)理)一起開發(fā)一個(gè)產(chǎn)品時(shí),溝通是唯一能讓你們成為一個(gè)“團(tuán)隊(duì)”并幫助你們有效開發(fā)產(chǎn)品的東西。
缺乏社交技能反而會(huì)減少產(chǎn)品開發(fā)時(shí)間和整體生產(chǎn)力。
下面是你可能面臨的真實(shí)情況:
領(lǐng)導(dǎo)團(tuán)隊(duì)告訴你的產(chǎn)品經(jīng)理,他們想要?jiǎng)?chuàng)建一個(gè)新的產(chǎn)品特性,并將其放到下一個(gè)產(chǎn)品版本中。這并不緊急,他們只是想盡快發(fā)布它(一如既往)。
產(chǎn)品經(jīng)理在Zoom上給你打電話,告訴你需要構(gòu)建什么,并問:“構(gòu)建它需要多長時(shí)間?”
你做一個(gè)粗略的計(jì)算,然后告訴我,“我需要20個(gè)小時(shí)。”
產(chǎn)品經(jīng)理對(duì)你的回答不滿意。他希望盡快發(fā)布它,并向管理層表明他能夠快速交付結(jié)果(這是一種非常常見的情況)。
所以他問你,“你能花10個(gè)小時(shí)來完成它嗎?”下一個(gè)產(chǎn)品發(fā)布中我們真的需要這個(gè)功能!”
你知道如果你走捷徑(沒有測(cè)試,混亂的代碼),你可以做到,但是你需要重構(gòu)它,這將花費(fèi)額外的30個(gè)小時(shí)。因?yàn)槠渌こ處煏?huì)在你發(fā)布混亂的代碼時(shí)處理它。重構(gòu)之后,您需要將他們的代碼與您的代碼集成在一起。
接下來會(huì)發(fā)生什么呢?如果你的社交技能很差,你就無法說服產(chǎn)品經(jīng)理你實(shí)際上需要20個(gè)小時(shí)來構(gòu)建這個(gè)功能。
為什么?
從我的經(jīng)驗(yàn)來看,產(chǎn)品經(jīng)理通常都有很好的社交能力。所以,如果你不能說服他以后重構(gòu)比現(xiàn)在花20個(gè)小時(shí)更糟糕,他會(huì)很容易地和你爭(zhēng)論,讓你相信“以后重構(gòu)沒問題”。整個(gè)團(tuán)隊(duì)將為重構(gòu)損失額外的30個(gè)小時(shí)(我不計(jì)算之后修復(fù)不可預(yù)測(cè)的bug的時(shí)間)。
但如果你有良好的溝通技巧,你將能夠說服他相反。
因此,提高你的社交技能和編碼技能(在Slack上的群聊中發(fā)送表情包或其他東西)。
記住一個(gè)簡(jiǎn)單的事實(shí):
人與人合作,而不是機(jī)器。
有規(guī)律的休息有助于更好地規(guī)劃
4年來,我總是感到疲憊的工作后。不管怎樣,我只能高效地工作幾個(gè)小時(shí)。從那以后,我就沒有多少精力了。直到我了解了番茄工作法
這很簡(jiǎn)單。工作25分鐘,休息5分鐘。
你的工作習(xí)慣變成:
8:00-8:25——工作
8:25-8:30——打破
8:30-8:55——工作
8:55-9:00——打破
…
我試了一個(gè)星期,我驚訝地發(fā)現(xiàn)自己變得如此專注、精力充沛和富有成效(番茄工作法背后的科學(xué))
然后我進(jìn)一步實(shí)施了52+17系統(tǒng),我的工作效率提高了200%。
所以,如果你想發(fā)揮你的最大能力,就要有規(guī)律的休息。
10倍工程師是不存在的
在我職業(yè)生涯之初,我認(rèn)為一個(gè)偉大的程序員應(yīng)該是一個(gè)懂得大量編程語言、框架和方法的人。
我錯(cuò)了。
這種心態(tài)只會(huì)讓我產(chǎn)生“騙子綜合癥”。我認(rèn)為我不配得到我現(xiàn)在的職位,我的薪水,我是一個(gè)“騙子”。所以我開始在Twitter上關(guān)注每一個(gè)受歡迎的開發(fā)者,閱讀每一條技術(shù)新聞和成千上萬的開發(fā)者博客,只是為了讓自己相信我配得上我所擁有的,并感覺更接近“偉大的開發(fā)者”這個(gè)頭銜。
這是不健康的行為。
但它幫助我發(fā)現(xiàn),我追隨的很多人(我以為是10倍的工程師)實(shí)際上并不知道很多事情。他們可能知道如何做一些復(fù)雜的事情,這些事情需要很多不同領(lǐng)域的深刻知識(shí),但同時(shí)他們不知道一些原始的事情。想知道如何設(shè)計(jì)高度可伸縮的數(shù)據(jù)庫架構(gòu),但不知道如何用CSS垂直對(duì)齊元素。
非常感謝像Dan Abramov (Redux的創(chuàng)建者)這樣的開發(fā)者,他們治愈了我的冒名者綜合癥,并向我展示了不知道一些事情也是可以的。
如果你知道如何學(xué)習(xí),編程并不難
當(dāng)我開始學(xué)習(xí)JavaScript時(shí),它很難。因?yàn)槲覍W(xué)錯(cuò)了方法。
多讀理論,沒有實(shí)踐,沒有常規(guī),沒有最終目標(biāo)?;靵y。
我以為這樣學(xué)習(xí)很正常。直到我發(fā)現(xiàn)刻意練習(xí)。
這是一種有目的和系統(tǒng)的實(shí)踐(學(xué)習(xí))。
正常練習(xí)和刻意練習(xí)的區(qū)別在于刻意練習(xí)需要集中注意力,刻意練習(xí)的目的是為了提高成績。
經(jīng)過深思熟慮的練習(xí),我開始注意到我學(xué)習(xí)JavaScript的速度有多快。我的知識(shí)開始堅(jiān)持了很長一段時(shí)間,而不僅僅是5分鐘后的教程。我創(chuàng)建了最終的目標(biāo),為什么我要學(xué)習(xí)JavaScript,并且明白我需要學(xué)習(xí)什么,不需要學(xué)習(xí)什么。
快速注:我創(chuàng)建一個(gè)JavaScript課程我用刻意練習(xí)結(jié)合現(xiàn)代JavaScript和實(shí)用的理論和大量的實(shí)際練習(xí)教你如何成為一個(gè)熟練的JavaScript開發(fā)人員與現(xiàn)代語言特性的知識(shí)。加入這里。
下面是你自己進(jìn)行有意練習(xí)時(shí)需要的:
提供練習(xí)活動(dòng),旨在幫助你提高表現(xiàn)。
盡最大努力表現(xiàn):不斷地被帶出你的舒適區(qū)。
明確的和具體的目標(biāo):不僅僅是“全面的改進(jìn)”。
集中注意力:全神貫注,不分心。
做有意識(shí)的行動(dòng):沒有自動(dòng)駕駛儀。
及時(shí)回應(yīng)反饋并修改策略。
當(dāng)你開始學(xué)習(xí)一門新語言、新技術(shù)、新架構(gòu)或其他任何東西時(shí),請(qǐng)堅(jiān)持這些規(guī)則,以便盡快取得重大成果。
沒有“最好的編程語言”
世界上沒有最好的東西。只有最好的東西。
就拿汽車。我們?nèi)绾芜x擇世界上最好的汽車?的速度嗎?通過安全嗎?什么標(biāo)準(zhǔn)?
這是不可能的。
我們只能在某一類別中選擇最好的汽車。比如最安全的車。或者最好的越野車。
如果我們看得更深入一些,每個(gè)類別都解決了一些問題。
為例。
問題:我們有孩子,我們每天帶他們?nèi)W(xué)校,我們希望我們的孩子在去學(xué)校的路上安全。
解決辦法:買最安全的車。
問題:我們每個(gè)周末都去露營,所以我們需要一些交通工具,可以很容易地把我們帶到那些很難到達(dá)的地方。
解決方案:買最好的越野車。
編程語言也是如此。有些語言和工具在解決某些問題上比其他的更好。
如果我們想建立一個(gè)互動(dòng)的網(wǎng)站,我們選擇JavaScript。
如果我們想使用ML/AI,我們選擇Python。
記住,沒有最好的編程語言,只有最好的編程語言……
所以先從一個(gè)問題開始,然后選擇一種語言來解決它。
最后……
如果你喜歡這篇文章,請(qǐng)與你的朋友分享,并在Twitter上關(guān)注我。
另外,我每周都會(huì)發(fā)一份“3-2-1”時(shí)事通訊,里面有3條科技新聞,2篇文章和1條建議。