自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

技術(shù)的成長:如何從畢業(yè)生到技術(shù)專家?

開發(fā) 新聞
對于專業(yè)的程序員來說,也存在類似的問題。我們習(xí)以為常的內(nèi)容,在一些新手看來,往往是無法理解的,我們也很難解釋清楚。
過去的一個月里,在幫助其他部門進(jìn)行畢業(yè)生培訓(xùn)。從名稱上說是培訓(xùn),但是實際上則是 訓(xùn)戰(zhàn) 結(jié)合。不想一下子給太多,這篇文章會給的建議是:
  • 尋找持續(xù)成長的動機
  • 塑造整潔的編碼習(xí)慣
  • 建立定位問題的方式
  • 學(xué)習(xí)既有的模式
  • 頻繁性自我總結(jié)

只憑這五點來說,與《福格行為模型》所定義的三要素也是頗為相似的:

  • 要素1 動機(Motivation):找到實現(xiàn)愿望的黃金行為
  • 要素2 能力:讓行為簡單到隨時順便都能做
  • 要素3 提示:善用錨點時刻讓行為立刻發(fā)生

如果再簡化來說,也可以采用和我一樣的模式,通過基本簡單的行為:每天寫代碼,每周做總結(jié)(通過文章)。

再次定義專家

再回到我們這篇文章的主題里,如何從畢業(yè)生到一個技術(shù)專家?專家是基于研究、經(jīng)驗或職業(yè)并在特定研究領(lǐng)域具有廣泛知識或能力的人。這樣的定義是如此的簡潔,以至于一個工作經(jīng)驗豐富的人都可以稱上得是專家。在這種定義之下,一個 996 的程序員的開發(fā)經(jīng)驗,可謂不比一個 965 的人差。

于是乎,我還更喜歡,我在在那篇《專家 x 抽象 x 類比》里,我們也定義了專家應(yīng)該做點什么?

所謂的專家嘛,就是在擅長的 “領(lǐng)域” 里,構(gòu)建了具有范疇化(歸類)的概念空間,并可以通過類比靈活地完善自己的概念庫。

在這個定義之下,我們行業(yè)的技術(shù)專家便是指,在軟件開發(fā)領(lǐng)域,具備豐富的軟件開發(fā)相關(guān)的知識(即概念)或者是經(jīng)驗。擁有自己的軟件開發(fā)相關(guān)的知識體系(概念庫),并且能持續(xù)不斷地完善。比如說,你是個后端專家,那么你能理解后端開發(fā)中的大部分概念,以及這些概念之間的關(guān)系。諸如于:

Spring Boot是一個可以用于幫助我們開發(fā) 微服務(wù) 的框架; 微服務(wù) 是一種基于服務(wù)的 分布式 架構(gòu)風(fēng)格/ 架構(gòu)模式 ; 架構(gòu)模式 是模式的一種,其中采用最廣泛的是 設(shè)計模式 ; 分布式架構(gòu) 通過遠(yuǎn)程協(xié)議連接多個 部署單元 。

基于 Spring Boot 構(gòu)建的應(yīng)用可以是一個部署單元,通過 持續(xù)集成 構(gòu)建 , 并 持續(xù)部署 到 容器化平臺 上。

能知曉整個體系的相關(guān)概念 ,并清晰地知道概念之間的關(guān)系,再有一定的經(jīng)驗,我們就是入門級 “專家”。而后,一旦來了一些新的概念,我們還需要能將它們納入到我們的體系中。諸如于最近在后端開發(fā)領(lǐng)域又重新火起來的 Cells-based architecture,它也是一種架構(gòu)風(fēng)格,同等于微服務(wù)架構(gòu)。我們所能構(gòu)建的是一個領(lǐng)域的思維框架,它可以幫助我們對所有的知識分門別類。

1. 尋找持續(xù)成長的動機

首先,我們要思考的第一個問題是,為什么我們要成為一個技術(shù)專家?

不管動機水準(zhǔn)的高低為何,人們?nèi)裟芫S持一定的動機水準(zhǔn),則不但能維持追求該目標(biāo)的行為,也能維持心理上對該目標(biāo)的渴望,直到人們知覺到該目標(biāo)達(dá)成為止。 —— 維基百科

六年前,我參加過一個 Management 3.0(有興趣的讀者,也可以翻看《管理3.0:培養(yǎng)和提升敏捷領(lǐng)導(dǎo)力》)。雖然,這個培訓(xùn)確信了我不適合這個無聊的工作。但是,培訓(xùn)/書中介紹了一個 CHAMPFROGS 模型,它可以用來幫助我們尋找內(nèi)在的動機。它由十種激勵因素( 好奇心,榮譽,接受,精通,力量,自由,親和力,秩序,目標(biāo),地位 ),包括內(nèi)在動機、外在動機或兩者兼有的因素組成。(有興趣的讀者,可以翻看: https://www.infoq.com/news/2013/11/intrinsic-motivators/ )

你也可以嘗試一下,從上面的十個動機,按一、二、三的順序,挑選出最與你匹配的動機。進(jìn)而,你就可以發(fā)現(xiàn)你成長的動力在哪里。我記得多年以前,我的主要動機是好奇心、自由,其中有一個我已經(jīng)忘了,估計也不重要了。

總有人會說:“hi,我成為技術(shù)專家的專家是賺更多的錢”。那么,問題來說,你如何定義多和少,怎么去衡量它們呢?對于打工人而言,你賺的錢多數(shù)時候,并不是靠你的能力決定的,而是你的行業(yè)決定的。所以,久而久之,將賺錢作為成長的目標(biāo),你會失去這種動力。因為,你的技術(shù)成長并不會從收入上得到回報。

2. 塑造整潔的編碼習(xí)慣

整潔的代碼意味著很多事情,你可以從《代碼整潔之道》得到更多相關(guān)的知識。作為一個剛?cè)胄械某绦騿T,在代碼上充斥著大量的問題,諸如于:

  • 無用的注釋
  • 注釋的代碼
  • 混亂的代碼風(fēng)格
  • 缺乏設(shè)計/重構(gòu)的代碼
  • 缺乏自動化測試,導(dǎo)致大量的println? 或者console.log
  • 不會使用工具加速開發(fā)。如 IDE 快捷鍵、snippets、emmet 等
  • ……

如果在工作一兩年之后,你依舊還是這樣,就需要警惕一下?;镜木幊塘?xí)慣都沒有養(yǎng)成,離專業(yè)的程序員的距離就更加遙遠(yuǎn)。而這些簡單的問題,大部分都可以通過 IDE 來幫助我們發(fā)現(xiàn),如 Intellij IDEA 這一類的工具。

所以,我建議新手程序員應(yīng)該優(yōu)先考慮現(xiàn)代化的 IDE,從工具上花的錢,早晚會通過其它方式賺回來的。

3. 建立定位問題的方式

我們一直在說,程序員大部分是 ctrl + c/ctrl +v ,即 Copy and paste from Google/Stack Overflow/GitHub。但是呢,能做到這一點的程序員,本身并不多。學(xué)會使用 Google,是作為程序員的一個很大的門檻,而大部分人都跨不過這個門檻。另外一個門檻,便是訪問 GitHub,大量的可學(xué)習(xí)的代碼在上面。

從查看問題的角度來說,我們可以發(fā)現(xiàn)新手經(jīng)常:

  • 忽略到錯誤信息上顯而易見的信息,如 error 等。
  • 不會有效地看錯誤信息。只看最后的結(jié)果,或者截錯圖。

從分析問題的角度來說,我們還可以發(fā)現(xiàn)新手們:

  • 不會去查看官方的文檔。哪怕官方文檔真的是最好的。
  • 不懂得如何查看文檔。
  • 忽視從錯誤信息搜索,是最有效的手段。
  • 不懂得如何使用關(guān)鍵字搜索。即采用相應(yīng)的技術(shù)術(shù)語,如:Spring Boot JPA Query
  • 不知道 GitHub issue 可以搜索

而在定位問題上,雖然對于新手有點難,但是依舊可以做一些嘗試。諸如于通過 review 代碼變更、回退,或者是自動化測試來幫助我們定位問題。

4. 學(xué)習(xí)既有的模式和最佳實踐

對于新手來說,值得注意的是,我們在這一個階段遇到的問題,大部分都是一些已知問題,往往可以搜索到資料來解決。大部分困擾你已久的問題,往往在書上,或者通過 Google 就可以得到這樣的答案。

也因此,在多數(shù)時候,我往往會通常買書來快速熟悉一個現(xiàn)有的領(lǐng)域。沒有什么能比,買知識更劃算的知識。雖然說,互聯(lián)網(wǎng)上也包含這些知識,但是搜索是需要成本的。對于編程來說,大量的知識已經(jīng)被先輩們總結(jié)過。與其再自己湯坑,還不如直接買本書方便。所以,不妨去尋找一些書單,諸如于: https://www.douban.com/doulist/121444657/

廣泛意義上的模式是一個好東西,比如如何去分析問題、拆解問題等等。

你也可以多去搜索看看,新手程序員的建議。

5. 頻繁性自我總結(jié)

不要把日報、周報視為自我總結(jié) 。這是的總結(jié)是指對于技術(shù)、模式等的總結(jié),它可以是:

  • 如何應(yīng)用某個框架和模式的總結(jié)
  • 如何一步步采用某種框架的總結(jié)
  • 分析某個框架的原理的階段性總結(jié)
  • ……

編程生涯很長,我們使用過或者將使用的技術(shù)很多。新的技術(shù)層出不窮,絕大部分的新技術(shù)都是基于已有的改進(jìn)。與此同時,我們學(xué)習(xí)過的大量有趣的東西,并不會在工作的時候用上,或者用到的概率很多。

而如果我們不去記錄這些有意思的東西,通過代碼托管網(wǎng)站或者博客的方式,那么我們再次遇到它們的時候,就需要重到再來。所以,可以多做一些總結(jié),以便于將來使用上。

其它:專家的知識詛咒

也是好久沒有接觸畢業(yè)生,所以過程中陷入過 知識詛咒 的問題。即如果我們很熟悉某個對象的話,那么我們會很難想象,在不了解的人的眼中,這個對象是什么樣子的。。簡單來說,就是無法預(yù)知畢業(yè)生的平均水平,需要多次的解釋,才能將問題解釋清楚。

對于我的文章來說,這個問題也是由來已久的。只是對于我來說,要解決這個問題并不容易,也不是我的義務(wù)。博客一直在那,或許,多年以后,讀者就能自行理解。

對于專業(yè)的程序員來說,也存在類似的問題。我們習(xí)以為常的內(nèi)容,在一些新手看來,往往是無法理解的,我們也很難解釋清楚。在解釋的過程中,還有可能帶入了更多的概念,導(dǎo)致新手程序員更加困惑。諸如于,我在解釋一個幾百 M 的文件提交到 Git 中,為什么會存在的時候,引入了 blob、索引等一系列的概念。這時候的效果反而不如右鍵 .git 目錄查看一下大小,來得簡單得多。

責(zé)任編輯:張燕妮 來源: Phodal全棧工程師
相關(guān)推薦

2010-05-25 10:44:42

畢業(yè)生求職陷阱

2013-01-14 10:01:12

求職面試Google

2012-12-31 09:38:03

應(yīng)屆畢業(yè)生成長

2021-03-10 09:33:51

技術(shù)研發(fā)管理

2012-12-27 17:17:50

畢業(yè)生職業(yè)生涯

2010-02-01 14:28:50

黑客產(chǎn)業(yè)鏈

2010-10-18 11:26:48

職場

2018-06-12 07:19:31

技術(shù)數(shù)據(jù)程序員

2012-12-29 14:29:12

應(yīng)屆畢業(yè)生求職

2018-12-29 09:58:19

碼農(nóng)架構(gòu)師Leader

2019-12-31 09:39:41

機器學(xué)習(xí)人工智能計算機

2009-09-02 13:19:40

應(yīng)屆畢業(yè)生北京求職

2012-12-27 15:14:18

應(yīng)屆畢業(yè)生簡歷

2022-04-11 00:06:19

開發(fā)服務(wù)架構(gòu)

2010-05-27 10:10:07

職場經(jīng)驗

2009-02-26 10:33:08

面試求職計算機專業(yè)

2009-09-03 10:48:24

大學(xué)畢業(yè)生職場新人

2011-11-14 09:48:29

IT計算機技能

2009-08-24 09:24:43

點贊
收藏

51CTO技術(shù)棧公眾號