最近在和領導閒聊的時候,聊到了一些關於程式設計思想方面的東西,讓我受益匪淺。尤其是有乙個問題讓我印象深刻。而且對於這個問題,在過往的面試中也被問了幾次。我就把我以往自認為不錯的回答重新說了一遍。誰知領導聽完,竟然笑了起來,這著實讓我有點摸不到頭腦。
對於這個問題,相信各位在以往的面試中,應該有被問過的吧。很明顯這個是乙個開放式的問題,沒有標準的答案。我是這樣回答的:
我覺得我是乙個中級程式設計師。為什麼這樣說呢?其實我對於初級的定義是能幹活。對於安排的任務能順利完成,並解決出現的一些bug。但是對於技術呢?可能停留在使用層面,沒有做到知其然而知其所以然。
目前的我,完成日常的工作已經不是問題。對於某些技術也有一些深入的了解,能設計一些架構,所以我覺得我是乙個中級程式設計師。那作為高階程式設計師來講,需要對技術有更加深層次的乙個理解,同時還需要有乙個強大的架構設計能力,來應對不同場景的業務的乙個考驗。
領導
聽了你說的這些啊,很明顯你的劃分是側重於技術方面。按照你說的,就好像會crud並且會使用一些工具,比如說redis,rabbitmq就是初級程式設計師。然後又學習了其他的元件,並了解了一些原理,就變成了中級的程式設計師了。學的東西多了,就變成高階程式設計師了。
按你說的這樣,那我把要學的,都列舉下來。乙個乙個學完,就成了高階程式設計師。要是這樣的話,那高階程式設計師應該有很多。 很明顯在我們這行,高階的程式設計師還是少數。你認為的高階程式設計師,在我這裡可能只是個合格的程式設計師 。並不是能說是乙個高階程式設計師。
領導:springboot是乙個優秀的框架是吧?
我:這個是的,巴拉巴拉說了一堆的優點。
領導:那開發springboot框架的程式設計師,應該是個高階程式設計師吧?
我:是的。
領導:那麼,他為什麼是個高階程式設計師呢?
我:呃呃呃呃呃!
領導:
乙個合格的軟體,並不是一蹴而就的。就以我們做的東西來說,是我們這個團隊用一行一行的**建造起來的。當我分配工作的時候,會將任務根據複雜的進行排序,然後在根據你們的能力來進行分配。比如說,把一些簡單的工作,交給實習生去做。然後把複雜一點的,交給經驗豐富的去做。當人員發生變動的是時候,其他人也能快速接手。
領導:那麼問題來了,如何能讓其他人快速接手呢?
我:這個。。。。。
領導:很簡單,要是所有人寫的**都一樣,看別人的**就像看自己的**。這不就解決問題了嗎?
我:是的。
領導:那麼問題又來了,如何讓所有人寫的**都一樣呢?
我:我們可以用alibaba開發的idea的外掛程式掃瞄**,制定相應的**規範,並進行實施。
領導:我們制定的規範,你遵守了多少呢?
我:遵守了一部分,有一部分沒有遵守。
領導:你看這不就破壞了嘛,讓**風格不一致了?
我:額,這個確實是。
領導:alibaba的外掛程式也好,公司的開發規範也罷,只能進行少量的約束,沒辦法實現強約束,你可以選擇遵守,也可以選擇不遵守。而且問起來,為啥不遵守。你們能說出一大堆的理由,比如說,專案趕,時間短。
我:哈哈哈。
領導:那麼有沒有什麼辦法來實現強約束呢?
我:這個。。。應該有吧。
領導:是什麼呢?
我:呃呃呃!這個不知道,尷尬一笑。
領導:這個東西就是框架。
框架(framework)是乙個框子——指其約束性,也是乙個架子——指其支撐性。是乙個基本概念上的結構,用於去解決或者處理複雜的問題。
領導:為什麼這樣說呢?就以你寫**來講,應該不會出現忘記寫;這個吧。
領導:這就對了,不按照規則寫,直接給你報錯。如果我們把定製的各種開發規範封裝成乙個框架,讓你們去使用,形成強約束。這樣你們寫出來的**是不是就一樣的了。這也就是我們封裝框架的原因。想要啥,都能加上去。畢竟開源的框架,面向的是絕大數人,不能面面俱到。
我:哦原來如此,學到了學到了。
我:那你是如何劃分程式設計師的等級呢?
領導:初級的程式設計師能根據自己掌握的技能完成相應的工作,然而中級程式設計師呢除了能完成工作,還能讓別人快速的接手自己工作。高階程式設計師就是把初級變成中級。
初級的程式設計師能根據自己掌握的技能完成相應的工作。中級程式設計師除了能完成工作以外,還能讓別人快速的接手自己工作。這也就意味著,寫出的**可讀性要好,要保證**可讀性,就需要付出各種的努力。比如說,命名合理,進行相應的抽象,模組劃分等等。高階程式設計師就是把初級變成中級。
說起來很簡單, 但是實現起來卻很困難,封裝框架只是其中的一種方法。你要問我還有啥方法,我也不知道,因為我不是乙個高階程式設計師。按照我目前的認知,要想成為乙個高階程式設計師,不僅要從技術的方向去考慮問題,還要更多的從人的角度考慮問題。
很感謝你能看到最後,那麼問題來了你是乙個什麼級別的程式設計師呢?
作為程式設計師,你的夢想是什麼?
撰文 alice 專欄 九章演算法 1.用我的程式設計技能或者通過程式設計賺一大筆錢來使這個社會變得更美好。贈與窮人冰箱,電視機,金子等並不能減輕他們的貧困,但教會他們如何賺錢,必定是把他們們放在了從生存到生活的快車道上。我的模型是,買很多10到100英畝的土地,只雇用乞丐工作。這些農場上種植出來的...
四個級別的 「自由」 程式設計師
這段時間,作為程式設計師的我一直在思考關於工作中 自由程度 的問題,終於我得出了乙個結論,把它分成了四個級別。這四個級別與技術無關。通常來說,只要努力追求,我們都可以成功 晉級 第一級 上班族 大部分程式設計師都是從這一級別開始的,甚至大部分程式設計師會一直停在這個層級。該級別的程式設計師沒有太多自...
如何快速鑑別「菜鳥」級別和「大神」級別的程式設計師?
很多公司在面試程式設計師的時候有的都不用筆試,直接談上一段時間就能給出結論這個人技術能力是不是適合做,能拿到多少工資,識別程式設計師水平高低談上幾句話就能搞定 如何鑑別乙個程式設計師水平的高低?1.程式設計基本功,直接用筆試題目或者面試的時候說幾個在專案中遇到的常見語法細節,這種屬於比較原始的考察方...