原文连接: https://dsx2016.com/?p=719微信公众号: 大师兄2016前端
非器非术非道,仅聊聊一些方向.java
不少事物均可以按进度和阶段来划分,如程序员的小白,初级,中级和高级.python
可是这种层次之分也有内外之别.git
公司招聘的中高级职位取决于业务的能力需求和薪水发放的高低,是市场的宏观定义.程序员
我的的中高级之分在于自个人能力进阶,来源于技术但不只仅限于技术,有多个维度综合衡量.github
先有分阶,才有进阶.面试
学会分阶,找到本身当前的定位,了解本身的长处和不足,才有下一步.算法
高级,优秀之类的词汇是一个很抽象的概念.编程
以可量化的事物来描述,一些描述高级程序员的答案:后端
5
年以上一次面试的流程不足以表现高级所在,一次协做的失误也不能代表才不配位.
层级之分为纵,差别之别为横.
不论程序员的职位和技术栈如何,总有一些共同的地方.
就如前端开发和后端开发:
Git
和Svn
是必知必会,其余的不在考虑范围.debug
调试和面向搜索引擎,定位和排除问题也是技术能力之一.这些能力是基础.
即使是基础,可调节的空间仍然形成十分巨大的差别.
调试能力80
分的人工做效率每每是60
分人的几倍甚至十几倍.
其余的以此类推.
可是在纵向扩展上,通常到80
分就要考虑适可而止,由于日后加1
分,付出的时间精力和收获不必定成正比.
只学习一门语言能够胜任常规业务的需求,多学一些语言,有助于扩展思惟的边界.
但凡你了解过两门以上的语言,你就会发现,语言之间有不少共通的地方.
汉语和英语,python
或java
,不外如是.
注意,是通,不是同.
如编程语言,它们共通的地方:
甚至于一些常见的条件控制,循环语句,逻辑运算,模块等都是大同小异.
了解原理和思想后,几乎只剩下语法不一样,或者语言独有特性的差别.
在进行纵横扩展分析后,进阶方向仍然比较模糊.
站在高处的人一眼就能全览低处的风景,可是低处望高处,一般是一叶障目,难易窥探全貌.
回到可量化的高级,什么是别人具有而你没有的.
如下是一些临时的整理:
没写过框架和库,没了解设计模式就不是高级开发了吗?
会数据结构和算法就必定是高级开发吗?
高级开发工程师频繁使用if else之类的就是才不配位吗?
凡是以点概面的,请慎而远之.
生活中很难证实你的能力或者自我了解.
刷题不表明什么,刷的多了同样也全知全会.
面试不表明什么,面向面试编程的多了去.
工做不表明什么,完成任务又不是秀代码.
一些临时的整理:
github
的时间线,也是不一样时期技能能力的佐证记录.10万+
,基于相似公众号的时间也是一个筛选值,书籍是知识体系系统,博客是技术成长路径.可以量化和分析的,必定是基于分享和面向公众的,还有依赖于第三方做为筛选值.
github
和公众号的发布时间没法更改,每一步记录不一样时间的变化,展现的是代码层面的细粒度.外有一套,内有一道.
清楚的了解内外定位和进阶,平衡取舍之道,才是王道.