我们根据职场发展通路和能力水平,把程序员分成如下四个等级:
创新互联长期为近1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为梅列企业提供专业的成都网站设计、网站建设、外贸网站建设,梅列网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
普通开发者
熟练开发者、高级开发工程师、技术组长
技术专家、架构师、一线经理
科学家、首席(资深)架构师、部门研发总监
今天这篇文章,我们来讨论普通开发者如何进阶为熟练开发者。
我们会先定义普通开发者应该达到的能力水平,然后再介绍他应该在哪方面提升才可能进到下一个阶段。
普通开发者的能力水平
先看我经常提到的一张图——技术成长阶段图:
普通开发者处在第一个成长阶段:专项能力提升。
专项能力提升阶段是初级阶段,你为了搞定事情,必须先具备某些基础能力,比如某种编程语言(Java / C++/ Python / JavaScript 等)、某个IDE (Visual Studio / Qt Creator / Android Studio / Eclipse / WebStorm 等)、某种技术框架(Netty / Qt / SSH / MyBatis / AngularJS 等)。
这个阶段最重要的就是提升专项能力,让自己能够迅速搞定一些别人安排给你的事情,体现出你的价值。
在这个阶段,最起码达到下列水准:
能理解并完成别人分解好的叶子任务
能自己完成一个功能模块的开发
以前端开发者为例,在这个阶段,你必须能将从 UI 过来的某个页面原型转换为可运行、可操作的真实 Web 页面。比如登录页面、比如商品详情展示页面,要能做到实现可视化页面和业务逻辑跳转。
以 Android App 开发者为例,在这个阶段,你必须能搞定类似登录、支付等这类功能。以 App 的登录功能为例,你要能使用特定的布局和组件实现自适应的登录界面,还要能学习使用类似微信、微博等第三方账户的 SDK ,实现第三方账户登录。
你可能很难自己设计一套完整的登录功能(包含口令加密、单点登录、Cookie 使用、验证码、密码找回、第三方登录、多终端同步、角色鉴权、用户数据存储等),但是当熟练开发者或者高级开发者完成了设计,把某个小功能分配给你的时候,你要能够理解这个设计,并将这个设计实现出来,和整个登录系统整合在一起,能够正常运转。
当你能够搞定这些事情的时候,你的专项技术水平起码是这样的:
能熟练搭建需要的开发和测试环境
熟悉所用编程语言的基础语法,有这门语言的知识地图,熟悉该语言本身的各种基础功能,了解这门语言的高级功能
能调用已有技术框架的 API 来实现特定功能
能在实现同一功能的多组 API 之间选择合适的那一组
能熟练使用开发环境和各种辅助工具进行调试
可以解决易复现的、逻辑简单的软件 Bug
能自主学习某个新框架的基础 API ,参考 DEMO 完成某个功能的基本实现
我的总结可能不完善或存在 Bug ,请大家在留言区指正、补充。
我想到一个身边的例子,刚好和我们讨论的这个话题契合。
有一次和朋友 G 聊天,他说他部门有位做前端开发的程序员 X ,一直在用 jQuery 实现各种页面,代码冗余,结构凌乱。Vue.js 出来后,G 想在新版本中使用,就安排 X 学习 Vue.js ,让他参考公司产品某两个页面的功能和布局,简化设计,做两个带异步数据请求功能的页面出来看看效果,结果一个星期过后,X 告诉 G ,Vue.js 太复杂,开发文档看不明白,代码也搞不懂,进行不下去……
如果你像 X 这样的状态,就说明你还停留在普通开发者阶段,只能在他人指导和安排下编码实现特定的细分功能。
要想进阶,就要先在专项技术能力上达到我们前面所列清单描述的水平(那是基础要求),然后再对照熟练开发者的能力要求,有针对性的去学习提高,稳步进入下个阶段。
普通和熟练的关键区别
对照前面的技术成长阶段图,熟练开发者处在中间阶段,拥有自己的技能体系。
为了搞明白拥有自己的技能体系是什么概念,我们先来看两组概念:
知识、知识体系
技能、技能体系
简单说,知识是能引发改变的信息,技能是运用知识解决问题的一系列思维和动作的组合。但这样讲不大容易明白,我们举个软件开发领域的例子。 C++中的虚函数是一个知识点,用虚函数这个特性定义模块接口,实现模块的动态加载,就是技能。
接下来为了行文方便,我不再区分知识和技能,直接把知识等同于技能,甚至用知识一词代替技能。请在阅读时根据上下文加以区分。
知识和知识体系的关系,技能和技能体系的关系,就像树木和森林的关系,就像瑞士军刀上小刀、小剪子、小螺丝刀和瑞士军刀的关系。
这样打个比方,应该可以体会到“体系”是什么了。
所谓知识体系,就是若干相互联系的、可以用来解决特定场景问题的知识的组合。
Ok,现在回头来看普通开发者和熟练开发者的区别,就简单多了。
普通开发者因为不断完成任务,不断做项目,接触、使用了各种各样的“知识点”,于是拥有了各种离散的知识,但这个知识和那个知识很少关联,他拥有的知识,是散兵游勇,如下图所示:
当你的知识点各不关联时,你在遇到问题时,就很难进行系统思考,就很难获得解决办法。
而熟练开发者,则(被动或主动)经历了知识点的梳理、整合过程,把零散的知识点围绕着某个应用场景联系起来,形成了知识体系。就像下图:
当你有了知识体系之后,遇到和你知识体系对应的场景相关的问题,就可以快速找到相关的知识,系统的分析问题,最终解决问题。
你看,是否拥有知识体系,导致了熟练开发者和普通开发者的一个非常重要的区别:熟练开发者能够独立负责一个模块或子系统的设计和开发工作,拥有分析问题、解决问题的能力和任务分解的能力,可以分配任务给普通开发者。
进阶修炼方向
好啦,从技术水平的角度讲,普通开发者和熟练开发者的区别就在于:普通开发者的知识不成体系,而熟练开发者构建了与某个应用场景相关的知识体系。
这样看来,普通开发者要想进阶,方向就非常明确了:构建自己的知识体系。
那么,怎么构建知识体系呢?先参考我的另一篇文章:构建知识图谱,让自己更值钱。如果后续有机会,我会重构一篇新的文章,再聊聊构建知识体系这个话题。
防水涂料种类很多,主要施工对象也不同,室内防水涂料和室外防水涂料有很大的区别,以晨光500防水为例:以优质水性丙烯酸酯乳液及多种助剂配制而成的有机液料,并以特种水泥及多种填充料配制的无机粉料,经一定科学比例配制而成的双组份水性防水涂料。涂刷于基体表面,固化后可形成柔韧、高强的防水涂膜。主要用途适用于厨房、卫生间、阳台、楼地面、地下室及水池的防水、防潮等地方。
接着就是关系图谱了
使用d3主要需要掌握svg,jquery,cytoscape和d3这几个知识点。
本次使用的是 v5版本的。
HTML
JS
这里有一张3D家族图谱,three.js是基于WebGL的3D图形引擎库,和Unity 3D是类似的渲染器。
Three.js解决了WebGL开发复杂的难题,它封装了场景、相机、几何、3D模型加载器、灯光、材质、着色器、动画、粒子、数学工具等概念,开发流程如下:
这里涉及到一个规律,越底层的技术,如OpenGL、DirectX、Vulkan,用起来就越困难,基本上也很少有开发案例,因为这个并不实用。Javascript封装库更简单,以便降低开发门槛,并不存在必须要把所有底层技术学会,才懂用three.js开发的说法。学习新技术要注意:
学习的目的
是技术探索?还是3D项目开发?技术理论知识的学习需要很长时间,而且很枯燥,最好是完成一个3D项目作品,从手动实操中解决问题,连点成面。一个完整的软件生态至关重要,好的软件往往是成千上万个项目淬炼的成果,three.js都有很多优秀的开发项目让你汲取营养。
先做出一个作品
作品是可以为简历加分的,同时也能够验证你的学习能力,现在的软件生态不缺乏学习资源和技术资料,项目案例是非常好的参考素材。出作品的过程也是在解决技术问题,初学者不要怕麻烦!
选择有前景的应用市场
three.js是一个开源技术,重要还是看应用到哪个技术模块,是否产生商业价值,个人的职业前景也会越来越好。推荐物联网3D可视化,面向城市可视化大屏客户端应用开发,常用于安全消防、城市交通领域,更多案例ThingjS客户都有上传到【官网】。
基于three.js的优秀学习资源,在学习three.js之前先问自己这三个问题,相信会事半功倍。
城市可视化大屏项目示例,【3D演示】
请点击输入图片描述
图谱分为初低中高四个档次,分别需要4/5/6/7个经络属性激活,每个档次分别有虎熊鹿鸟猿各一本(共20本图谱),每个人最多激活三张图谱,每个图谱激活必有生命经络,必有禁卫或仙法或都有,每个高级图谱激活必有教化。人物总共只有18个经络,每处经络有俩属性二选一修行,需要130级全部解锁,经络初始可以修行18次,18次以后每周可以修习四次,每修行一次升级一层,第一周可修行22次。修行必须要按照从上往下修行,下一处经络层级不能大于上一层,比如第一处经络修行到3层,第二处才能修行到3层。第二处如果为2层,那么第三处也最多修习到2层。需要扣除大量经验的可以第一处直接修习到5层然后第二层、第三层类推,最快扣除经验。需要快速激活图谱,那就1-18处都学到1层,然后再从上往下学2层(遗忘的次数不计算再每周上限里面)目前针对全部解锁经络的朋友,图谱组合只有两种方案分别为:方案一(低级图谱+中图谱+高图谱)方案二(初级图谱+高级图谱+高级图谱)如果选择2个以上高级图谱是不能全部激活的,激活一个高级图谱需要7个经络属性,三个高级图谱需要21个经络才能全部激活,18处经络还不够。(并不是高级图谱属性就好,很多蓝色中级图谱属性比紫色高级好很多)在学习每个经络属性的时候需要考虑自身所需要的属性以外还需要考虑激活图谱所需的属性,所以再选择自身适合的图谱之后在按照所需属性进行学习。下图为高级图谱激活所需属性和阶层技能,(初级中低级游戏中按Y直接看)所以经络点击方案。
物系遇奋迅武力必选,法系遇妖法智力必选;
通用属性有禁卫选禁卫,有仙法选仙法,两个都有物系选仙法,法系选禁卫;
教化是为了激活图谱才学习,后期有出入的就是生命或教化不够,只能通过遗忘抗性(禁卫仙法)来凑;
因每个图谱必有生命经络,目前看前期最好舍弃一个禁卫或仙法来多学习一个生命属性。