就我自己而言, 在学校中主要做前端项目, 也因为学业要求或者是项目要求做过 Android(从不会 Java 到刷了一遍官方 Training就开始做), 或者是硬着头皮做 PHP(朋友的项目, 定制 phpwind 论坛, 稍微看了下整个项目源码, 边查 php 语法边做)
半年前开始做我的毕业设计, 一个类似 StackOverflow 的App, 定位算是用于学校内部教育用途. 也算是为了有挑战一点直接选了时下流行的 React+Redux(我主要比较熟悉Angular, 之前也不会 React 整套). 后端则选型 Express+Mongoose. 因为第一次接触到后端, 所以并没有选择 Koa 导致现在有点后悔, 当然这是后话.
虽说不能算从零开始, 毕竟也算是"会"JavaScript, 但是也是各种去 Github 看各种 Demo, 各种最佳实践. 碰到问题就 Google StackOverflow, 有什么需求加什么 npm 包. 感觉上不管是什么业务, 都不会有不能解决的问题. 对我做的项目而言, 来来回回无非就是用户系统, 增删改查等等. 似乎也没有很大的挑战.
最近在想, 就算是不是很熟悉的领域或者项目, 基本上看下官网教程, 看下各种例子, 甚至是完全不会的语言, 快速过一遍语法, 一切似乎也没有那么难. 所以, 到底技术的边界在哪? 怎样算是熟悉一门技术, 亦或是怎样才算精通?
就拿 Node 或者前端而言, 你可以倒背如流 API, W3C标准算是精通? 还是碰到问题可以凭借搜索引擎或者文档来解决就够了? 你需要知道各个库的具体实现, 还是会用它可以解决业务就行了? 或者更极端点, 你应该是个工程师, 还是科学家?
当然这也是因为最近找工作, 看各种招聘信息描述的"精通"所产生的疑问, 我又处于什么阶段, 你所描述的精通又在多远?
对招聘而言,面试官觉得你精通了,就精通了。招聘里写类似精通这样限定语句的公司,其实并不知道自己到底要招什么样的人。
对自身技术而言,你觉得自己精通了,就精通了。熟练掌握某某语言的语法可以算精通么?这里谁敢说自己精通javascript的?了解某语言的实现细节可以算精通么?这里有多少人了解generator实现的?熟练掌握某种框架的API的可以算精通么?这里谁敢说自己精通nodejs的?通读过nodejs源代码,了解其内部原理可以算精通么?精读过nodejs源代码,能够贡献一部分nodejs源代码可以算精通么?抛开nodejs,自己实现一套框架,这可以算精通么?
楼上@coordcn 说的好 ~ 精通还是不要乱说, 学无止境吗~ 但是阶级/层次 这个东西永远存在, 某些情况就得 “精通”, 比如前段时间, 简历上写
精通 JavaScript
哈哈~求不打脸~我只是为了给出我的 point
@coordcn @magicdawn 赞同. 其实我这个问题也是对于自身技术追求的一个反思, 以及对招聘者的内心的揣测. 对于自身而言, 达到什么样的技术境界才算是略有小成, 现在这样的水平还需要增强哪方面的知识? 对于招聘者而言, 什么样的应聘者怎样的技术水平才算是优秀的员工?