摘要:程序员
什么样的水平称得上高级工程师,什么样的水平只能称得上普通工程师?面试
为何大部分人停留在普通工程师的级别?架构
“我会作十道凉菜、三十道热菜。”这是哪一种级别工程师的自我介绍?ide
日常咱们最喜欢作的事情,哪些价值更高?哪些毫无价值?性能
如题,初级程序员和架构师的差异在哪里?学习
工做年限?经验?老板重视程度?是否作出重大业绩?blog
首先,工做年限长的技术就必定更加高深么?游戏
不见得!it
这个世界上不知道有多少人,天天只是作着重复性的工做,毫无长进。虽然说吃过的盐比其余人吃过的饭都多,但就是没记性,不断的重复着过去的错误。甚至伴随着年龄的增加、激情的磨损,反倒一年不如一年。编译
其次,工做经验,盖过100个房子的必定就比只盖过10个房子的更有经验么?
不见得!
有些人只须要盖过一个房子,就会对房子的地基、门窗、水暖管道、强弱电走线、等等了如指掌。而有些人,盖了一生的房子,连插头左右哪一个是火线哪一个是零线都分不清楚。
至于老板重视程度,这是结果,而非缘由。技术高深,天然就受到重视;而不是相反的:受到了重视,因此技术才变得高深。
是否作出重大业绩,这确实是一个足够客观的衡量指标,但依然只是结果。更况且,若是是一群人共同作出的业绩,如何区分你们彼此之间的技术高低呢?
那么,普通工程师和高级工程师,差异到底在哪里呢?什么样的水平称得上高级工程师,什么样的水平只能称得上普通工程师?什么样的人一看就知道是高级工程师,什么样的人一看就知道最可能是普通工程师?
初级Java程序员面对技术任务,至少是知道从何处入手的。
好比说修汽车,门外汉连空气滤清器在哪里都不知道,更不要说如何拆卸,如何安装了。
计算机软件专业的毕业生,至少明白作一个手机上的软件是须要安装编译环境的,一个门外汉对于几行代码变出来的游戏界面感到颇为神奇。
可是做为一个软件工程师,我真的很好奇一大堆黄豆是如何变成液体豆汁然后忽然变成固体豆腐的。
因此,初级程序员对本身所从事的行业,至少是有大概的了解的,甚至具备必定的工做经验,能够在高级别同伴的带领下完成最为基本的操做。
初级程序员刚刚入门,可以在师傅的指导下完成最最基本的流程化操做。可是因为熟练程度不足,完成任务的速度和质量没法保证;稍有遇到本身没作过,或者不熟悉的技术问题,都须要花费更多的时间学习。
在一个行业内作过许多事情以后(也能够是一个大事情内部的许多细分小事情),对各类技术问题都有接触,并都有成功解决的经历。因而,大部分的技术问题再也不陌生,甚至很是熟练。天然而然,成长为普通程序员。
二者最典型的区别有:
一、行业相关的众多技术点,是否都有了解;
二、行业相关的众多细分工做,是否都有“熟练”操做过,完成的质量是否有足够保证;
三、行业相关的不一样任务,可否给出明确的工期预测;
大部分人会停留在普通程序员的状态,由于伴随着你们对自身工做内容的逐步熟悉,伴随着你们日复一日重复一样操做的逐渐熟练,这些知识和技能足以知足一般的工做须要。
不多有人会考虑:
一、更快(效率):目前的操做流程是不是最快的?如何改进?
二、更好(效果或性能):目前的解决方案是不是最佳的?可否进一步提高性能?
三、更省(成本):什么样的方式可以下降人力成本、财物成本?
会作炸鸡的厨师不少——初级;
努努力作出口感好的炸鸡,也不是太难,只要肯卖力练习就行——普通级;
尽心专研,作出超级口感的炸鸡,真的须要好好专研、总结的——更好;
像肯德基那样,让入门级的厨师甚至门外汉都可以作出口感好的炸鸡,则须要对炸鸡的油温、时间等等作出仔细的研究,而后制做出对应的设备、操做流程。这是对一个行业的完全颠覆。这样的级别,就不只仅是高级了,而是专家级别。
如何最快速的从初级到高级?区别明确了,问题就好办了!
一、争取作本身不熟悉、不会作的;——不熟悉的熟悉了,不会作的会作了,天然就成长了;
二、多作本身不熟练的、有难度的;——不熟练的熟练了,有难度的变得轻松了,天然就进步了;
三、习觉得常的操做,多考虑一下是否可以换个方式作得更快、更好、更省;(本身琢磨也好,参考业内高手也行)
四、能够的话,思考一下如何让门外汉或初级员工更方便的作这个事情;
五、尝试解决那些你们都解决不了的甚至被认为根本不可能解决的问题。
越是有难度的问题,越是没人可以解决的问题,越是历来没有人考虑过的问题,价值越高!
一、你作过这个事情么?(或者:简历里你印象最深入的事情是哪一个?)
二、作的过程当中遇到过什么问题?
三、你是如何解决这些遇到的问题(或者其它一些奇葩的问题)的?
四、相似的事情从新让你作的话,大概须要多久?
五、大家作过的这些工做,都有哪些地方能够继续改善提高的?
六、业内的一般作法是怎样的?为何?有没有更好的方案?