{eval=Array;=+count(Array);}

亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

問答專欄Q & A COLUMN

身為程序員的你,用了多長(zhǎng)時(shí)間學(xué)習(xí)研究某一框架、軟件,才達(dá)到該領(lǐng)域技術(shù)專家的水平?

RindiaRindia 回答10 收藏1
收藏問題

10條回答

rainyang

rainyang

回答于2022-06-22 19:41

從事軟件開發(fā)十幾年了,對(duì)于程序員的工作有一點(diǎn)自我的見解,首先程序員的工作屬于一個(gè)技術(shù)活,技術(shù)類的工種需要時(shí)間的積累,但要達(dá)到某個(gè)領(lǐng)域的技術(shù)專家,首先是時(shí)間層面的積累,但僅僅是積累是不夠的,不是達(dá)到多少年一定成為技術(shù)的專家,成為某個(gè)領(lǐng)域的佼佼者,時(shí)間只是其中一個(gè)因素。

如何成為某個(gè)技術(shù)領(lǐng)域的專家?

牢固的基本功。要達(dá)到某種境界沒有牢固的基本功做鋪墊幾乎是不可能的事情,程序員要說到基本功其實(shí)是一種很籠統(tǒng)的說法,基本功不僅僅是編程語言的語法,還包括常見的一些編程技巧,還包括一些基本的算法基礎(chǔ),不同的人對(duì)于基礎(chǔ)的理解也不相同。對(duì)于初學(xué)者理解基礎(chǔ)就是編程語言的語法,從心理上覺得編程語言的語法搞定了,但在真正意義上的編程的時(shí)候,只是掌握基本的語法是實(shí)際的編程經(jīng)驗(yàn)需要在項(xiàng)目中提煉。

如果放在技術(shù)專家的要求來定義基本功又會(huì)是另外的一個(gè)境界,從心理上要認(rèn)識(shí)無論哪個(gè)層次的程序員都要重視基本功的積累,在平時(shí)工作之余要拿出時(shí)間來溫習(xí)基本功,按照一個(gè)標(biāo)準(zhǔn)的程序員的要求看認(rèn)識(shí)基本功,常見的項(xiàng)目有編程語言的語法,項(xiàng)目操作過程中遇到的一個(gè)困難的總結(jié)匯總,數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)算法,常見的編程場(chǎng)景處理能力,這些都屬于編程基本范疇。

編程框架能力。這點(diǎn)就足夠拉開了和普通程序員的區(qū)別,之所以能夠在一個(gè)行業(yè)內(nèi)成為頭部的玩家,就需要具備一定的高層設(shè)計(jì)能力,這種能力不僅僅是簡(jiǎn)單的模塊設(shè)計(jì)能力,還需要具備整個(gè)系統(tǒng)的設(shè)計(jì)開發(fā)能力,有些程序員做一輩子都未必真正設(shè)計(jì)搭建過一個(gè)框架,所以不能簡(jiǎn)單的認(rèn)為能夠設(shè)計(jì)好一個(gè)模塊的框架就能把事情做得非常利索了,不能簡(jiǎn)單的認(rèn)為。

其實(shí)框架能力在行業(yè)內(nèi)講就是造輪子的能力,當(dāng)然不是每個(gè)人在自己的技術(shù)生涯中都有設(shè)計(jì)框架的機(jī)會(huì),如果能夠趕上一次也是不錯(cuò)的機(jī)會(huì)。

堅(jiān)韌不拔的意志。這點(diǎn)主要是在精神層面的,不是每個(gè)人都能在一個(gè)領(lǐng)域長(zhǎng)期堅(jiān)持不懈的待下去的,能夠數(shù)十年如一日?qǐng)?jiān)持做好一件事都是對(duì)人毅力最大考驗(yàn),能夠一直堅(jiān)持做這件事人數(shù)已經(jīng)不多了,如果在加上做的出色的數(shù)量將會(huì)變得更少了,所以講工匠精神不是每個(gè)人都能堅(jiān)持做到最后的。

要想成為程序員里面某個(gè)領(lǐng)域的專家,不是僅僅靠時(shí)間來積累出來的,但時(shí)間的積累達(dá)到的一個(gè)典型的基礎(chǔ),不要覺得入行的時(shí)候自己的基礎(chǔ)不好,但時(shí)間長(zhǎng)了堅(jiān)持的長(zhǎng)了,常見的編程模式或者套路也都能掌握清楚了,不是誰天生就是某個(gè)項(xiàng)目的專家,什么事情就怕一個(gè)堅(jiān)持的勁頭,一股不服輸?shù)木?,?jiān)持的時(shí)間長(zhǎng)了在理論上還能縮減成為專家的次數(shù),希望能幫到你。

評(píng)論0 贊同0
  •  加載中...
khlbat

khlbat

回答于2022-06-22 19:41

我是不太敢稱自己為專家,對(duì)于一些軟件、框架的掌握,我甚至都不敢說自己“精通”,最多也就是熟練掌握,倒不是因?yàn)槲抑t虛,一方面確實(shí)認(rèn)為想要在一個(gè)領(lǐng)域達(dá)到專家的水平是非常有難度的,自認(rèn)為達(dá)不到這個(gè)程度,另外一方面,就是覺得如果是軟件、框架這個(gè)層次,不一定非要做到專家水平,設(shè)置可以說沒必要做到專家的程度。


01. 需要多長(zhǎng)時(shí)間才能熟練掌握一個(gè)軟件或框架

具體給一個(gè)時(shí)間長(zhǎng)度沒有意義,因?yàn)殡y易程度不同、每個(gè)人的基礎(chǔ)不同、學(xué)習(xí)的背景和出發(fā)點(diǎn)不同:

  • 我認(rèn)為最快掌握一個(gè)框架,就是“被逼無奈”、“走投無路”的時(shí)候,為了解決項(xiàng)目上的某個(gè)棘手的問題,學(xué)習(xí)一個(gè)作為解決方案的框架或軟件,這個(gè)過程是最快的;我曾經(jīng)開發(fā)一個(gè)新項(xiàng)目,時(shí)間周期特別的緊,項(xiàng)目中需要使用 Kafka,從搭建、集成、使用,再到略加深入的研究,前后大概花了兩周的時(shí)間;當(dāng)然,也只能算作“熟練掌握”罷了;

  • 在學(xué)習(xí) Kafka 的過程中,因?yàn)橹拔覍?duì) RabbitMQ 有一定的了解,所以學(xué)習(xí)起來會(huì)比較快,很多的時(shí)候我是在比較兩者的不同,而如果對(duì)消息隊(duì)列沒有一點(diǎn)了解的程序員學(xué)習(xí) Kafka,可能會(huì)花費(fèi)更長(zhǎng)的時(shí)間;

  • 如果工作中沒有特殊的要求,我學(xué)習(xí)一門框架的時(shí)間可能就長(zhǎng)短不一了,可能幾天、幾周,甚至是幾個(gè)月,而更多的時(shí)候,因?yàn)闆]有碰到過實(shí)際的問題,所以你很可能不會(huì)把每一個(gè)框架都做深入的研究。


02. 為什么說軟件、框架這個(gè)層次,不一定非要做到專家水平

跟其他的行業(yè)相比,軟件行業(yè)的變化很快,技術(shù)更新的頻率極高,比如醫(yī)生可以始終在某一個(gè)非常小的領(lǐng)域進(jìn)行研究,我就研究眼科,或者就一直做牙醫(yī),做一輩子,成為眼科的專家,但是程序員不行,你說我一輩子就研究 Spring 吧,將自己的技術(shù)積累押寶在當(dāng)前某一個(gè)流行的軟件或框架上,這個(gè)風(fēng)險(xiǎn)非常大;短期內(nèi)可能會(huì)有成效,但是我們的職業(yè)壽命要四十年甚至更長(zhǎng)。

有些程序員在某些大公司混的風(fēng)生水起,非常熟悉公司的技術(shù)棧,但是當(dāng)他換一個(gè)公司、換一個(gè)平臺(tái)的時(shí)候,可能就會(huì)遇到發(fā)展的瓶頸;這是因?yàn)樽鳛榈摹澳骋活I(lǐng)域的專家”,只是依賴于當(dāng)前公司這個(gè)平臺(tái),但不一定可以匹配市場(chǎng)的需求,錯(cuò)把平臺(tái)資源當(dāng)成自己的能力。


那我們究竟應(yīng)該學(xué)習(xí)什么?

我十幾年前剛成為 Java 程序員的時(shí)候,最流行的就要數(shù) SSH 了,也就是 Spring 、Struts 和 Hibernate,現(xiàn)在再看看,Struts 幾乎絕跡,Hibernate 半死不活,Spring 雖然很火,也是因?yàn)榘姹镜暮芸欤?/p>

所以十年前我要是選擇了一直研究 Spring 還好,要是選擇押寶了 Struts ......


軟件、框架的更新時(shí)很快的,我們不能把主要的精力放在它們身上。

  • 在學(xué)習(xí) Spring Cloud 、Dubbo 的時(shí)候,也要學(xué)習(xí)架構(gòu)設(shè)計(jì)和演變;

  • 在學(xué)習(xí)編程語言的時(shí)候,也要學(xué)習(xí)設(shè)計(jì)模式;

  • 在學(xué)習(xí)通信框架的時(shí)候,也要把網(wǎng)絡(luò)模型學(xué)習(xí)好;

  • 學(xué)習(xí) Angular、React、Vue 一堆框架,不如先把精力放在 HTML/CSS 上...


總之,基礎(chǔ)打得牢,框架學(xué)的快,不要把百分百的精力都放在這些不斷變化的框架上。


我將持續(xù)分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注。

評(píng)論0 贊同0
  •  加載中...
jcc

jcc

回答于2022-06-22 19:41

邊學(xué)邊在項(xiàng)目中使用,半年已經(jīng)足夠了。不實(shí)際使用,可能十年也就了解的程度,所以,能動(dòng)手就別bb,跑一跑什么知識(shí)都了解了。生產(chǎn)上出了問題,部門老總在你背后看著解決,幾次你就成專家了。


評(píng)論0 贊同0
  •  加載中...
張遷

張遷

回答于2022-06-22 19:41

因人而異,如果有基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)+算法基礎(chǔ)好,學(xué)習(xí)框架很快,1-3個(gè)月即可熟練運(yùn)用,而如果缺乏基礎(chǔ)可能得半年、一年。從我自身來講學(xué)習(xí)某一框架需要學(xué)習(xí)1個(gè)月到1年不等,再實(shí)踐3年,才可以說是非常熟悉,了然于胸了。

當(dāng)然也看框架和軟件本身的復(fù)雜度,越復(fù)雜自然學(xué)起來越難,同時(shí)框架跟某特定業(yè)務(wù)有關(guān),如果你從事這個(gè)方向自然就容易熟悉。比如做Web要熟悉Spring全家桶、Nginx,做大數(shù)據(jù)熟悉Hadoop系列,做ai熟悉PyTorch或TensorFlow等。框架或軟件是分領(lǐng)域的,如果所從事的非這個(gè)方向,往往學(xué)起來很費(fèi)勁。但如果是同一方向,是手到擒來,輕松無比。

評(píng)論0 贊同0
  •  加載中...
liaosilzu2007

liaosilzu2007

回答于2022-06-22 19:41

每個(gè)人對(duì)專家都有不同的定義,我眼中的專家則偏向于能夠看清楚當(dāng)前領(lǐng)域方向,能引導(dǎo)未來設(shè)計(jì)的,這種才可以稱為專家,專注點(diǎn)是可以設(shè)計(jì)和行業(yè)未來的人,甚至是根據(jù)paper設(shè)計(jì)出行業(yè)領(lǐng)先系統(tǒng)的人

大多數(shù)人的水平我感覺都不足以達(dá)到這個(gè)水平,大多數(shù)人的程度就是能夠看懂源碼和關(guān)鍵核心就可以成為大多數(shù)人眼中的小專家了,比如消息隊(duì)列,你可以看懂kafka源碼里面的關(guān)鍵設(shè)計(jì)比如怎么設(shè)計(jì)磁盤存儲(chǔ)?利用操作系統(tǒng)特性?怎么設(shè)計(jì)高性能、高可用架構(gòu)?怎么提高系統(tǒng)的吞吐?如何應(yīng)對(duì)故障處理?這些其實(shí)就可以滿足大家工作中80%的場(chǎng)景了

達(dá)到這個(gè)水平應(yīng)該并不需要幾年的時(shí)間,首先看下官方文檔的核心特性介紹與使用,然后在自己的項(xiàng)目中去實(shí)踐,最后去讀一下核心流程的源碼, 這個(gè)過程其實(shí)也并不是那么漫長(zhǎng),但是有一個(gè)問題,就是你到底能讀懂多少?

從計(jì)算機(jī)底層開始說起(別說微機(jī)電路與CPU硬件那些),最下層可能就是操作系統(tǒng)了,操作系統(tǒng)如何提供內(nèi)存、IO、CPU、網(wǎng)絡(luò)等資源的抽象,這里面有那些特性是我們可以借鑒的?然后就是linux內(nèi)核的一些設(shè)計(jì),再網(wǎng)上層就是各種數(shù)據(jù)結(jié)構(gòu)和算法,然后就是各種模式,并發(fā)模式、設(shè)計(jì)模式、架構(gòu)模式?再接著如果是分布式系統(tǒng)還有各種分布式、網(wǎng)絡(luò)、共享等問題,最后特定領(lǐng)域往往還有專門的設(shè)計(jì),這些基礎(chǔ)你掌握的多少,直接回決定你讀源碼能夠讀懂多少,路漫漫何其遠(yuǎn)兮,但是你會(huì)發(fā)現(xiàn)這方面其實(shí)外面的機(jī)構(gòu)基本不會(huì)講,其實(shí)這些才是真正的核心,但是很少有人會(huì)修煉,祝你好運(yùn)

評(píng)論0 贊同0
  •  加載中...
Lionad-Morotar

Lionad-Morotar

回答于2022-06-22 19:41

從這個(gè)問題的描述來看,顯然是有一個(gè)前提的——程序員。

那么針對(duì)“程序員”這個(gè)稱號(hào),顯然還應(yīng)該再?gòu)膬蓚€(gè)方面來將問題分解。


一、初級(jí)程序員

作為一個(gè)剛剛?cè)胄胁痪玫某跫?jí)程序員,他自身可能對(duì)某一個(gè)編程語言的編程語法和 API 比較熟悉,但是對(duì)基于這門語言實(shí)現(xiàn)一些實(shí)際的項(xiàng)目和應(yīng)用,可能還停留在瞎子摸象或者井底青蛙的層面(這里沒有貶義,只是做一個(gè)比喻)。那么這種情況下,要研究某一個(gè)框架、軟件,他就會(huì)缺少很多其他層面的知識(shí)、技能、經(jīng)驗(yàn)的儲(chǔ)備。比如你只是一個(gè)初級(jí)的前端開發(fā)者,剛剛熟練編寫 HTML/CSS/JavaScirpt前端 Web,那么要研究 nginx、Node.js、Vue.js、Angular 4+、Flask 等等,可能前期就會(huì)顯得比較吃力。因?yàn)檫@些軟件、平臺(tái)、框架里,包含了關(guān)于負(fù)載均衡調(diào)度、request/response、依賴注入、Component、Python裝飾器、路由、重定向等基礎(chǔ)知識(shí)。

那么要達(dá)到該領(lǐng)域的技術(shù)專家的水平,因?yàn)檫@位程序員可能平時(shí)還要上班,所以在保持勤奮的前提下,大約需要 3 個(gè)月左右的業(yè)余時(shí)間完整的學(xué)習(xí)有關(guān)的知識(shí)。

但是僅有這些還不夠,還不能形成你的能力。另外還需要 2~3 個(gè)月的時(shí)間,好好利用新的框架去開發(fā)實(shí)現(xiàn)若干個(gè)項(xiàng)目,而且這些項(xiàng)目還不能太簡(jiǎn)單,必須要有一定的復(fù)雜度。

只有這樣,你的開發(fā)經(jīng)歷才能更全面的覆蓋到這個(gè)框架的更多的方面,才能稱之為技術(shù)專家。


二、中高級(jí)程序員

這類人群已經(jīng)在程序員領(lǐng)域有了一定的工作年限,也有了一定的開發(fā)經(jīng)驗(yàn)。他們已經(jīng)掌握了一些框架和軟件等技術(shù)。那么他們面對(duì)新的框架和軟件,會(huì)根據(jù)自己以往的經(jīng)驗(yàn)和技術(shù)邏輯去領(lǐng)會(huì)新框架的原理。古語中對(duì)于一項(xiàng)技能有“道”與“術(shù)”的區(qū)別。那么這些中高級(jí)程序員對(duì)新框架的“道”的方面已經(jīng)了然入心,因?yàn)檫@些新的框架其實(shí)與他們以前掌握的那些在邏輯架構(gòu)和運(yùn)行原理方面都是很相似的,他們需要學(xué)習(xí)的僅僅是原理上的不同,還有在編程語法、實(shí)現(xiàn)方式上的不同而已,那么這就是“術(shù)”的層面,而“術(shù)”是很容易掌握的,就好比是從模仿到掌握的過程。

評(píng)論0 贊同0
  •  加載中...
stackvoid

stackvoid

回答于2022-06-22 19:41

我在做開發(fā)的頭三年的目標(biāo),是讓自己成為垂直業(yè)務(wù)方面的開發(fā)熟手。

4-5 年,我讓自己成為了專家,人家有問題了常常來問我,業(yè)務(wù)和架構(gòu)上我也有自己的見底與把握。

6-8 年,梳理業(yè)務(wù)、做架構(gòu)、帶團(tuán)隊(duì),總結(jié)和提煉技術(shù)能力與思想。

從開發(fā)生涯伊始,學(xué)習(xí)方法論、各種思想、最佳實(shí)踐(包括看源代碼),嘗試一些新東西,這個(gè)階段漫長(zhǎng)而有彈性,不斷實(shí)踐與總結(jié),行事方式固化為習(xí)慣,最大的收獲就是開始做某一項(xiàng)事情時(shí),心里有底,有思路有方向有方法,不會(huì)抓瞎,少走彎路。

學(xué)習(xí)代碼的人和編寫代碼的人如果不在一個(gè)理解層面,閱讀并不能幫到你什么,更不能說通過了解了代碼的實(shí)現(xiàn)就成為了這個(gè)領(lǐng)域的專家。了解代碼實(shí)現(xiàn)頂多只能應(yīng)付面試問題,當(dāng)別人問題為什么的時(shí)候,答案并不在代碼實(shí)現(xiàn)當(dāng)中。

閱讀代碼的精髓在于你完全了解了作者在領(lǐng)域中面臨的問題,并在紛繁復(fù)雜的代碼邏輯中抓出了作者解決這個(gè)問題的關(guān)鍵。自稱熟讀過的人,其實(shí)少有人能做到

這個(gè)收獲很難用量化來衡量,但就像蓄水池,越蓄越多的感覺。

所以題主你提的三個(gè)“明白”,不是說不重要,但太死板,天天坐在那里看源代碼看書是看不出什么來的,必須定好眼下要達(dá)標(biāo)也可操作的 Flag,結(jié)合業(yè)務(wù)去追求跟實(shí)現(xiàn),不斷實(shí)踐與總結(jié)。

天天看框架源碼,即使你寫出一個(gè)框架來,在業(yè)務(wù)實(shí)現(xiàn)方面你可能仍是 newbie;你就算花再多時(shí)間在編譯器知識(shí)上,但是業(yè)務(wù)跟編譯器毫無關(guān)聯(lián),你的編譯器知識(shí)也不可能提升。

總之先考慮好第一步——定好眼下要達(dá)標(biāo)也可操作的 Flag,結(jié)合業(yè)務(wù)去追求跟實(shí)現(xiàn),不斷實(shí)踐與總結(jié)。想太多會(huì)提升焦慮感,虛無還沒好處,目標(biāo)定得太完美就是失敗。

評(píng)論0 贊同0
  •  加載中...
plokmju88

plokmju88

回答于2022-06-22 19:41

框架就是別人給你制定的條條框框,學(xué)會(huì)了就像工廠的流水線上的操作工一樣會(huì)干活了,不過換一個(gè)流水線你還得掌握另一些條條框框,專家、架構(gòu)師就是給你制定條條框框的人。很多程序員以掌握某個(gè)架構(gòu)然后自稱架構(gòu)師然后指點(diǎn)江山,指責(zé)其他不會(huì)某個(gè)架構(gòu)的人,心中充滿了偉大感,是不是很可笑;如同一個(gè)生產(chǎn)線上的操作工自稱掌握了這條生產(chǎn)線。

評(píng)論0 贊同0
  •  加載中...
Hwg

Hwg

回答于2022-06-22 19:41

從來不覺得技術(shù)專家是研究哪個(gè)框架,那種設(shè)計(jì)語言就可以。①你需要多接觸大項(xiàng)目,你才有可能理解什么叫“”業(yè)務(wù)需求不是你的技術(shù)需求”。②獨(dú)立思維能力,能從復(fù)雜的業(yè)務(wù)場(chǎng)景中梳理出一定的邏輯順序,預(yù)見一些別人想不到的業(yè)務(wù)場(chǎng)景,之后提交不同領(lǐng)域去討論,這個(gè)過程中,你會(huì)體會(huì)什么叫“說人話”。③分水嶺。如果你執(zhí)著技術(shù),你會(huì)發(fā)現(xiàn),想做專家,你需要重新學(xué)習(xí)你大本時(shí)候最討厭的一門課程,“高等數(shù)學(xué)”。如果你轉(zhuǎn)向業(yè)務(wù)實(shí)現(xiàn),你會(huì)發(fā)現(xiàn),想做專家,你可能要不斷深入現(xiàn)實(shí)中的業(yè)務(wù)場(chǎng)景,甚至掃垃圾這種最低級(jí)的工作,你都應(yīng)該有切身的體驗(yàn)才可以。

評(píng)論0 贊同0
  •  加載中...
terasum

terasum

回答于2022-06-22 19:41

你說的專家不知是個(gè)什么概念,如果只是能夠做到熟練運(yùn)用,那不是太難,一個(gè)能力尚可的程序員一般都能一通百通,學(xué)習(xí)和精通一門語言、框架從幾個(gè)月到二三年不等,但這絕對(duì)算不上專家,也就普通軟件工程師水平。

要達(dá)到計(jì)算機(jī)領(lǐng)域的專家絕非易事,而且也不是精通某一框架或軟件這么簡(jiǎn)單,至少得要在某一領(lǐng)域取得一定的技術(shù)成果,我覺得一般擁有正高職稱的稱之為專家應(yīng)該不心虛,副高職稱的免強(qiáng)也算。

絕大多數(shù)程序員有生之年都達(dá)不到專家水平,不是能力問題,而是為了生計(jì)不得已在技術(shù)層面停留太久,沒機(jī)會(huì)鉆研更深層次的東西。相反有些科研機(jī)構(gòu)鉆研某一技術(shù)時(shí)間長(zhǎng)了能夠成為這一領(lǐng)域的專家。

最后,真正的專家是沒功夫長(zhǎng)篇大論在我們上寫問答的,寫問答的都是閑著沒事裝B的。

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<