你是什麼級別的程序員?

前言

  最近在和領導閒聊的時候,聊到了一些關於編程思想方面的東西,讓我受益不淺。尤爲是有一個問題讓我印象深入。並且對於這個問題,在過往的面試中也被問了幾回。我就把我以往自認爲不錯的回答從新說了一遍。誰知領導聽完,居然笑了起來,這着實讓我有點摸不到頭腦。程序員

你是什麼級別的程序員?

  對於這個問題,相信各位在以往的面試中,應該有被問過的吧。很明顯這個是一個開放式的問題,沒有標準的答案。我是這樣回答的:面試

  我以爲我是一箇中級程序員。爲何這樣說呢?其實我對於初級的定義是能幹活。對於安排的任務能順利完成,並解決出現的一些bug。可是對於技術呢?可能停留在使用層面,沒有作到知其然而知其因此然。編程

  目前的我,完成平常的工做已經不是問題。對於某些技術也有一些深刻的瞭解,能設計一些架構,因此我以爲我是一箇中級程序員。那做爲高級程序員來說,須要對技術有更加深層次的一個理解,同時還須要有一個強大的架構設計能力,來應對不一樣場景的業務的一個考驗。架構

領導框架

  聽了你說的這些啊,很明顯你的劃分是側重於技術方面。按照你說的,就好像會CRUD而且會使用一些工具,好比說Redis,RabbitMq就是初級程序員。而後又學習了其餘的組件,並瞭解了一些原理,就變成了中級的程序員了。學的東西多了,就變成高級程序員了。ide

  按你說的這樣,那我把要學的,都列舉下來。一個一個學完,就成了高級程序員。要是這樣的話,那高級程序員應該有不少。 很明顯在咱們這行,高級的程序員仍是少數。你認爲的高級程序員,在我這裏可能只是個合格的程序員 。並非能說是一個高級程序員。工具

領導:SpringBoot是一個優秀的框架是吧? 學習

:這個是的,巴拉巴拉說了一堆的優勢。idea

領導:那開發SpringBoot框架的程序員,應該是個高級程序員吧? spa

:是的。

領導:那麼,他爲何是個高級程序員呢?

:呃呃呃呃呃!

領導

  一個合格的軟件,並非一蹴而就的。就以咱們作的東西來講,是咱們這個團隊用一行一行的代碼建造起來的。當我分配工做的時候,會將任務根據複雜的進行排序,而後在根據大家的能力來進行分配。好比說,把一些簡單的工做,交給實習生去作。而後把複雜一點的,交給經驗豐富的去作。當人員發生變更的是時候,其餘人也能快速接手。

領導:那麼問題來了,如何能讓其餘人快速接手呢?

:這個。。。。。

領導:很簡單,要是全部人寫的代碼都同樣,看別人的代碼就像看本身的代碼。這不就解決問題了嗎?

:是的。

領導:那麼問題又來了,如何讓全部人寫的代碼都同樣呢?

:咱們能夠用alibaba開發的idea的插件掃描代碼,制定相應的代碼規範,並進行實施。

領導:咱們制定的規範,你遵照了多少呢?

:遵照了一部分,有一部分沒有遵照。

領導:你看這不就破壞了嘛,讓代碼風格不一致了?

:額,這個確實是。

領導:alibaba的插件也好,公司的開發規範也罷,只能進行少許的約束,沒辦法實現強約束,你能夠選擇遵照,也能夠選擇不遵照。並且問起來,爲啥不遵照。大家能說出一大堆的理由,好比說,項目趕,時間短。

:哈哈哈。

領導:那麼有沒有什麼辦法來實現強約束呢?

:這個。。。應該有吧。

領導:是什麼呢?

:呃呃呃!這個不知道,尷尬一笑。

領導:這個東西就是框架。

框架(framework)是一個框子——指其約束性,也是一個架子——指其支撐性。是一個基本概念上的結構,用於去解決或者處理複雜的問題。

領導:爲何這樣說呢?就以你寫代碼來說,應該不會出現忘記寫;這個吧。

:這個確定不可能,IDEA會提醒,而且編譯都過不了。

領導:這就對了,不按照規則寫,直接給你報錯。若是咱們把定製的各類開發規範封裝成一個框架,讓大家去使用,造成強約束。這樣大家寫出來的代碼是否是就同樣的了。這也就是咱們封裝框架的緣由。想要啥,都能加上去。畢竟開源的框架,面向的是絕大數人,不能面面俱到。

:哦原來如此,學到了學到了。

:那你是如何劃分程序員的等級呢?

領導:初級的程序員能根據本身掌握的技能完成相應的工做,然而中級程序員呢除了能完成工做,還能讓別人快速的接手本身工做。高級程序員就是把初級變成中級。

總結

  初級的程序員能根據本身掌握的技能完成相應的工做。中級程序員除了能完成工做之外,還能讓別人快速的接手本身工做。這也就意味着,寫出的代碼可讀性要好,要保證代碼可讀性,就須要付出各類的努力。好比說,命名合理,進行相應的抽象,模塊劃分等等。高級程序員就是把初級變成中級。

  提及來很簡單, 可是實現起來卻很困難,封裝框架只是其中的一種方法。你要問我還有啥方法,我也不知道,由於我不是一個高級程序員。按照我目前的認知,要想成爲一個高級程序員,不只要從技術的方向去考慮問題,還要更多的從的角度考慮問題。

結尾

  很感謝你能看到最後,那麼問題來了你是一個什麼級別的程序員呢?

  若是以爲對你有幫助,能夠多多評論,多多點贊哦,也能夠到個人主頁看看,說不定有你喜歡的文章,也能夠隨手點個關注哦,謝謝。

  我是不同的科技宅,天天進步一點點,體驗不同的生活。咱們下期見!

相關文章
相關標籤/搜索