摘要:程序員
什麼樣的水平稱得上高級工程師,什麼樣的水平只能稱得上普通工程師?面試
爲何大部分人停留在普通工程師的級別?架構
「我會作十道涼菜、三十道熱菜。」這是哪一種級別工程師的自我介紹?ide
日常咱們最喜歡作的事情,哪些價值更高?哪些毫無價值?性能
如題,初級程序員和架構師的差異在哪裏?學習
工做年限?經驗?老闆重視程度?是否作出重大業績?blog
首先,工做年限長的技術就必定更加高深麼?遊戲
不見得!it
這個世界上不知道有多少人,天天只是作着重複性的工做,毫無長進。雖然說吃過的鹽比其餘人吃過的飯都多,但就是沒記性,不斷的重複着過去的錯誤。甚至伴隨着年齡的增加、激情的磨損,反倒一年不如一年。編譯
其次,工做經驗,蓋過100個房子的必定就比只蓋過10個房子的更有經驗麼?
不見得!
有些人只須要蓋過一個房子,就會對房子的地基、門窗、水暖管道、強弱電走線、等等了如指掌。而有些人,蓋了一生的房子,連插頭左右哪一個是火線哪一個是零線都分不清楚。
至於老闆重視程度,這是結果,而非緣由。技術高深,天然就受到重視;而不是相反的:受到了重視,因此技術才變得高深。
是否作出重大業績,這確實是一個足夠客觀的衡量指標,但依然只是結果。更況且,若是是一羣人共同作出的業績,如何區分你們彼此之間的技術高低呢?
那麼,普通工程師和高級工程師,差異到底在哪裏呢?什麼樣的水平稱得上高級工程師,什麼樣的水平只能稱得上普通工程師?什麼樣的人一看就知道是高級工程師,什麼樣的人一看就知道最可能是普通工程師?
初級Java程序員面對技術任務,至少是知道從何處入手的。
好比說修汽車,門外漢連空氣濾清器在哪裏都不知道,更不要說如何拆卸,如何安裝了。
計算機軟件專業的畢業生,至少明白作一個手機上的軟件是須要安裝編譯環境的,一個門外漢對於幾行代碼變出來的遊戲界面感到頗爲神奇。
可是做爲一個軟件工程師,我真的很好奇一大堆黃豆是如何變成液體豆汁然後忽然變成固體豆腐的。
因此,初級程序員對本身所從事的行業,至少是有大概的瞭解的,甚至具備必定的工做經驗,能夠在高級別同伴的帶領下完成最爲基本的操做。
初級程序員剛剛入門,可以在師傅的指導下完成最最基本的流程化操做。可是因爲熟練程度不足,完成任務的速度和質量沒法保證;稍有遇到本身沒作過,或者不熟悉的技術問題,都須要花費更多的時間學習。
在一個行業內作過許多事情以後(也能夠是一個大事情內部的許多細分小事情),對各類技術問題都有接觸,並都有成功解決的經歷。因而,大部分的技術問題再也不陌生,甚至很是熟練。天然而然,成長爲普通程序員。
二者最典型的區別有:
一、行業相關的衆多技術點,是否都有了解;
二、行業相關的衆多細分工做,是否都有「熟練」操做過,完成的質量是否有足夠保證;
三、行業相關的不一樣任務,可否給出明確的工期預測;
大部分人會停留在普通程序員的狀態,由於伴隨着你們對自身工做內容的逐步熟悉,伴隨着你們日復一日重複一樣操做的逐漸熟練,這些知識和技能足以知足一般的工做須要。
不多有人會考慮:
一、更快(效率):目前的操做流程是不是最快的?如何改進?
二、更好(效果或性能):目前的解決方案是不是最佳的?可否進一步提高性能?
三、更省(成本):什麼樣的方式可以下降人力成本、財物成本?
會作炸雞的廚師不少——初級;
努努力作出口感好的炸雞,也不是太難,只要肯賣力練習就行——普通級;
盡心專研,作出超級口感的炸雞,真的須要好好專研、總結的——更好;
像肯德基那樣,讓入門級的廚師甚至門外漢都可以作出口感好的炸雞,則須要對炸雞的油溫、時間等等作出仔細的研究,而後製做出對應的設備、操做流程。這是對一個行業的完全顛覆。這樣的級別,就不只僅是高級了,而是專家級別。
如何最快速的從初級到高級?區別明確了,問題就好辦了!
一、爭取作本身不熟悉、不會作的;——不熟悉的熟悉了,不會作的會作了,天然就成長了;
二、多作本身不熟練的、有難度的;——不熟練的熟練了,有難度的變得輕鬆了,天然就進步了;
三、習覺得常的操做,多考慮一下是否可以換個方式作得更快、更好、更省;(本身琢磨也好,參考業內高手也行)
四、能夠的話,思考一下如何讓門外漢或初級員工更方便的作這個事情;
五、嘗試解決那些你們都解決不了的甚至被認爲根本不可能解決的問題。
越是有難度的問題,越是沒人可以解決的問題,越是歷來沒有人考慮過的問題,價值越高!
一、你作過這個事情麼?(或者:簡歷裏你印象最深入的事情是哪一個?)
二、作的過程當中遇到過什麼問題?
三、你是如何解決這些遇到的問題(或者其它一些奇葩的問題)的?
四、相似的事情從新讓你作的話,大概須要多久?
五、大家作過的這些工做,都有哪些地方能夠繼續改善提高的?
六、業內的一般作法是怎樣的?爲何?有沒有更好的方案?