<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          和大家聊一聊,什么是工程師成長路上的最大絆腳石

          共 2532字,需瀏覽 6分鐘

           ·

          2020-09-30 00:35

          從一道面試題說起


          關于成長和思考的話題,我們先以一個很常見的面試題來說起,“請談談vue的雙向綁定的原理是什么?”。

          網(wǎng)上很多博客,很多面經(jīng),給出了一個比較“標準”的答案:
          vue.js 是采用數(shù)據(jù)劫持結合發(fā)布者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個屬性的setter,getter,在數(shù)據(jù)變動時發(fā)布消息給訂閱者,觸發(fā)相應的監(jiān)聽回調。

          這也是面試中有絕大部分同學給出的答案,當然還會有些同學很優(yōu)秀,能把整個數(shù)據(jù)驅動視圖的過程說的很詳細。

          但是即使說的再好再詳細,最多也只能得一半的分數(shù)。為什么呢? 因為問題是雙向綁定的原理,只要略加思考,就應該知道此問題應該從兩個方面來回答:

          1. Model變化如何驅動View的更新

          2. View的更新后如何使數(shù)據(jù)也進行更新。


          而上面的答案,只回答了Model變化驅動View更新的過程,是不完整的。

          為什么這樣一個很明顯存在問題的答案,會頻繁的出現(xiàn)呢?主要是有很多同學缺少思考,遇到問題直接百度或gogole搜索,或是直接問其他人,缺少自己思考的過程。


          缺少思考的表現(xiàn)有哪些


          同樣一個需求,有些人,可能拿到需求后就直接去想辦法實現(xiàn)了。 而有的人,會首先考慮這個需求是否有做的必要,這樣交互是否合理,是否有更好的方式來完成同樣的目的而花費更小的代價,然后去和產(chǎn)品經(jīng)理進行溝通。

          在開發(fā)時,有些人,只是完成了開發(fā)任務。而有的人,卻能夠在開發(fā)過程中封裝出幾個通用組件,整理出一些通用的方法,甚至整理出一套適用自己業(yè)務的腳手架。

          除此之外,還有很多缺少思考的例子,比如:

          1. 實現(xiàn)一個功能,只要能實現(xiàn)就好,而不考慮是否有更優(yōu)雅的方案。
          2. 只完成需求,需求稍有變更,代碼就沒法直接支持。
          3. 只能解決一個問題,而不是去想辦法解決這一類問題。
          4. 每天C+V大法,不考慮是否應該封裝成通用的方法或組件。
          5. 有些事情是否可以通過工具解決,而非人工操作。
          6. 只知道完成任務,而不去發(fā)現(xiàn)提出問題,遇到問題后不去復盤。
          7. 問及下半年或下個月計劃時,自己也不清楚

          能否做好上面這些,也可以作為區(qū)分初級和高級工程師的一個衡量標準不過,并不是只有高級工程師才需要思考。

          善于思考總結的人,可能工作2-3年,就成了高級工程師,而有些人可能工作了7-8年,也還是在原地踏步,所以并不是所有時間上的增長都能帶來經(jīng)驗和能力上的成長

          我們并不是流水線上的工人,不能去做編寫代碼的“機器”或“碼農(nóng)”,而是應該做一個具備能獨立思考和解決問題能力的“工程師”。


          思考不出東西怎么辦


          之前有公眾號上的同學加我聊過關于成長的事,他也知道多思考會對成長有幫助,但是他很苦惱,自己就是沒有別人想的多,代碼上設計的總是不夠合理,開會時別人總是侃侃而談自己卻不知道說什么。

          當我們腦子里的東西比較少的時候,確實很難意識到技術設計上存在的問題,或者有什么好的點子,這時,可以通過以下途徑來提高自己。

          向優(yōu)秀的人學習


          閱讀優(yōu)秀的人的代碼,觀察他們是怎么設計代碼的,而你又是怎么做的,有什么可借鑒的地方。 和你認為的大牛交流,交流中,可能很多你困惑的地方都會迎刃而解。

          更好的辦法是去向優(yōu)秀的人請教問題,當然這個問題一定是經(jīng)過深度思考后,有了自己一定的理解,但還是有些困惑的時候。請教問題時,最重要的不是關注結論本身,而是看一下對方是如何思考的。這也是為什么有些人問我問題時,我不會去具體幫他解決,而是去提供一個解決的思路,授人以魚不如授人以漁。

          這里也談簡單聊一下對大公司還是小公司的選擇,大公司技術更成熟,能了解更多的東西,身邊的大牛也會很多,可以方便向他們學習,各項規(guī)范,流程也比較完善。而小公司,什么都不完善,但卻能提供一個更廣闊的空間,可以自己做更多的事情。

          當自己技術和見識還沒有達到一定的水平時,盡可能的還是去一個大公司,大公司能夠讓你了解到規(guī)范的做法是怎樣的,技術氛圍也會更好,有更多的分享,有人會review你的代碼,有更成熟的技術架構,有成熟的晉升機制,也會有人和你一起討論你后續(xù)的規(guī)劃,還有機會參與到團隊的基礎建設上。而如果一開始就進入了一家小的公司,可能每天都只專注于完成業(yè)務需求,并且一直這樣下去,很可能自己做的很low卻不自知。

          當有一定能力的時候,去大公司還是小公司就看個人選擇了,小公司會有最大化的發(fā)揮空間,可以做更多想做的事情,綻放出自己的光和熱。

          如果你身邊沒有牛人,也沒有很好的技術氛圍,那也是有辦法向優(yōu)秀的人學習的。
          首先,可以到github上,看優(yōu)秀開源項目的源碼,好的代碼是最好的老師,尤其是自己開發(fā)時遇到不知怎么設計更好時,從這些項目中可以Get到很多好的設計思想和思路。其次,可以通過各個平臺,去認識一些技術牛人,向他們學習,探討問題。

          堅持總結輸出


          另外一個可以逼著自己去思考的方式,就是強迫自己進行總結輸出。

          比如學習了什么知識,那么一定要在項目中進行實踐,如果是無法實踐的,那就產(chǎn)出一個分享,或是輸出一篇文章。

          當我們在學習某些知識時,可以理解成是一個輸入的過程,而只有將這些輸入經(jīng)過我們自己的思考總結,并產(chǎn)出自己的東西時,這才算是將所學的東西變成了自己的東西。無論是產(chǎn)出分享還是輸出文章,都能夠幫助我們有一個更深的認知和思考。

          以閱讀vue源碼為例,如果閱讀的同時進行總結輸出,就能在工作或面試中對自己整理思考過的東西侃侃而談,甚至還能說出其中實現(xiàn)不夠優(yōu)雅的地方,自己有什么更好的方式。


          結語


          不止技術需要我們?nèi)ニ伎迹绾螠贤ǎ绾螀f(xié)調工作都需要我們?nèi)W習和思考,甚至生活,理財?shù)鹊龋残枰覀兯伎己涂偨Y。

          常思考,明天會更好!

          最后



          如果你覺得這篇內(nèi)容對你挺有啟發(fā),我想邀請你幫我三個小忙:

          1. 點個「在看」,讓更多的人也能看到這篇內(nèi)容(喜歡不點在看,都是耍流氓 -_-)

          2. 歡迎加我微信「qianyu443033099」拉你進技術群,長期交流學習...

          3. 關注公眾號「前端下午茶」,持續(xù)為你推送精選好文,也可以加我為好友,隨時聊騷。


          點個在看支持我吧,轉發(fā)就更好了



          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲无码视频播放免费 | 性爱18p| 亚洲内射电影 | 免费欧美一级视频 | 97青娱乐|