跟着老杨学python
最近有朋友问我,什么是全栈工程师,什么是架构师等等问题。考虑到很多朋友之前并没有接触编程一行,对这行的前景发展及职业规划都是比较迷茫的状态,老杨在这里根据自己的理解,总结了一下,分享给大家。
在开发中,我们的web开发占据了半壁江山,这里老杨就以web开发为例。
首先,当我们已经准备好投身开发一行,那我们便有了一个身份:开发工程师。
在我们的开发工程师中,大概的分为三个层次,初级,中级,和高级。这三者之间并没有什么证书证明,这是一种约定俗成的分类。如果非要说怎么证明,那就是项目实战能力了。
初级开发工程师,不好意思,虽然不愿承认,但这个阶层确实属于最底层,因为技能点的缺乏,经验的缺少,人数的众多。导致的现状就是工资低,竞争大。工作上也就是完成一些项目最普通的小功能,有个称呼“CURD仔”,这一阶段你的工资和待遇,可能还无法让你感受到程序员给你的光荣感。
随着我们技能的提升,经验的增长,我们开始到了第二层次,即是中级开发工程师。这个时候,我们能够使用框架,对数据库也更加熟悉,可以完成项目的独立模块,或者在他人协助下,完成一些小型项目了。这个时候的你,才开始感觉自己是个程序员。
最后一个阶段就是高级开发工程师了,月薪过万说的也就是这个阶段了。已经完全具备项目实战能力。可以独立完成一个项目了。
初中高级的划分并没有特别明显的分界线,我们大概可以理解为,初级的技能水平大约是只会一些数据库常规操作,简单了解,利用框架。而中级基础扎实,开始注重优化。对数据库的优化,对语言的高级编程,框架的熟练利用,可以根据业务逻辑独立开发。而高级就是基础扎实,且能根据自己需求合理利用。知识深度和知识广度都足够支撑独立完成项目。
好吧,可能有人还是有点懵,那简单的举个例子吧。
公司要完成一个电商项目,作为初级开发,你可能就是在大佬引导下,根据大佬设计好的数据表,完成一些商品属性等的CURD操作。随着公司发展,产品迭代,更重要你的技能提升了,你会开始考虑怎么做好数据库的优化,加快访问速度,怎么完善你的代码,让程序更健壮。这个时候就是你的中级阶段。而随着项目体量的持续增长,你成为高级,你的格局将要变得更大,考虑的更全面。你开始去思考并实现数据库的读写分离,主从配置,缓存的设计实现,项目的各层级关系,产品的升级迭代等等问题。
这大概就是你的开发工程师的三个阶段了,在我们目前市场上,我们最需要,最缺少的也就是,能够完成模块甚至整体开发,掌握数据库优化等能力的中高级开发工程师。
上面说了开发工程师的几个层次,难道程序员注定做一辈子的程序员吗?当然并不是这样,在你的成长发展过程中,你会有多个选择。下面我就大概描述下。
在发展中,大概有两大方向,一个是专业路线,一个是其他。
专业路线,顾名思义,作为技术人,你的发展就是取决于你的技术。
在你的开发过程中,你会接触到越来越多的知识,对语言底层的设计和实现越发了解透彻,直至成为大牛。虽然可能你的定义还是高级开发,但阿里的高级开发和普通公司的高级开发,你觉得能一样吗?所以这是你的一个方向,不断学习,向更大的平台走去。
当然除了本类语言,你也可以往其他方向,比如除了后端,你熟悉了前端,可以成为全栈工程师,可以往运维方向走,如运维工程师,DBA工程师等等。
还有一个就是真正的技术牛人架构师。从初级架构师,到中级架构师,直至高级架构师。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败
而有的人不拘泥于编程与代码的,开始走起其他路线,比如说管理,从项目主管,技术总监到公司合伙人等,以及其他类似技术支持,销售管理等等。
最后总结一下。
作为开发,你的技术将是你的本钱。随着你的技术增长,你可以走向更高阶。不断专研技术和积累研发经验,往真正技术大牛的方向发展。从开发工程师走向架构师。往技术加团队管理的方向发展,你可以成为项目经理,技术总监。
其实到这里,老杨写下这篇文章的目标也只是想告诉大家,未来是多元化的,我们程序员未来的发展也是如此,你可以有多个方向,横向或纵向发展。但前提是活在当下,专注于现在。所有的机遇与选择都会在你低头努力前行之时,自然跳出来。