十三年编程经验,前端开发心得分享

发表时间: 2023-02-13 12:02

前言

我叫定安,“提笔安天下,上马定乾坤”的定安!

34岁,半只脚步入中年。回顾过去十多年的职业生涯,我此起彼伏,于是乎我有一个想法,做一些总结,也看一眼未来的规划。

接下来我会用两部分内容说明一下,我对前端的理解和前端职业应该如何规划;

  • 第一,我结合自身的亲身经历来讲述我在前端职业生涯中是怎么一步步走过来的。
  • 第二,我会结合切身经历来聊一聊我对前端这个职业的看法,以及我对整个前端未来的看法。

每个人的经历必然都是不同的,如果我的观点和你的理念存在争议,希望大家能够求同存异,如果你能从中得到一些灵感那不胜荣幸!

亲身经历

莽夫的童年

和大部分山区、农村的孩子一样,从小的家庭教育,导致我对学习没有明确的认知,所以上学时没有好好读书,大学马马虎虎上完,就出来折腾。所幸喜欢玩游戏,爱捣鼓电脑,所以和电脑结下了不解之缘。我从小性子倔,游戏不喜欢认输,也爱钻研,所以一般的游戏我都是高手。这份小自豪,也让我觉得自己什么都能干,什么也敢挑战,现在说起来就是——莽夫!也是这样的性格决定了我后续的职业生涯。

开端:幸运与努力

我的第一份工作来的非常有趣,是一个中外新闻社,他们要招网络管理员,就是开发网站,然后发布文章,甚至还要处理一些图片后期。

当时,面试这个岗位的人挺多的,而且学历都比我高,我是朋友推荐过去的。非常巧的是,在面试时,新闻社的社长电脑总是蓝屏,摄像头也不怎么好使,我因为上学那会经常给同学做系统修电脑,我就帮他弄好了,然后问我会不会做网站,我其实当时啥都不懂,但我觉得这是一个机会,我想了不到1秒钟,我就回答说会做。当时这个社长就让我试用一个星期,如果没问题就可以正式去上班了,试用期给我安排的第一个工作就是要做一个新闻的专题页。

记得当时还是用dreamware来写页面,页面布局还用的是表格布局,那一周每天晚上去网上找资料学习,那时的资料少的可怜,很多资料都是要收费的,最后下血本买了一些,从网上找了一些,每天搞到凌晨1、2点,还真就在一个星期内给搞出来。搞出来后就开始要维护他们当时的网站,是用php写的,又开始学php和mysql,两个月时间就这样边学边实践,最后终于可以把这摊事情hold住了。这次的经历,我深刻的认识到人的潜力真的非常大,有时候你不逼一下自己,你都不知道自己有多牛逼。也是从这个时候开始进入网站开发这个行业了。

北漂:学习与机会

我2010年来的北京,在北京找的第一份工作是一个莆田系的医院,刚来北京的时候工资很低,一个月2000多,但是包吃住,但一切以先活下来为主要目的。我到这家公司的时候,他们也是刚成立,一切都处于从零开始的状态。当时电脑都是我从京东上买零件,然后自己撺出来的,办公室的网线是我拉的,网站是从零到一开发出来的。这些前期的零零散散的工作大概用了一个多月。

一切都跑顺后,医院开始正常运转,当时是需要在百度上做推广的,也就是sem,但是找了2、3个人都没搞好,后面老板让我学着试试,于是又开始学 seo和sem,学了大概一个月,开始尝试着做,经过了一个月的实践总结,然后就开始能盈利了。后面越做越大,每天操作的sem账户消费大概能到上万级别。在这家公司干了有2年时间,学到了很多东西,比如他们医院的运作模式,访谈节目怎么做,网络营销怎么做等等,后续,觉得没啥意思就想要出去看看,收入也能支撑我在外面租房生活。

创业:热忱与认知

当时,内心充斥着创业干一番大事的激情,但我清楚的知道真想要成事欠缺的东西还很多,所以当时就找了一家营销公司,就是帮其他企业出策划方案的,这家公司还是有点实力,当时暴龙、思念、雅阁等很多的全案策划都是找他们做的,我就想去这家系统性的学习一下,一个产品是如何推向到市场并且盈利的。我当时在这家公司的职位是网络主管,主要做一些网站的开发,公众号的开发等等。在本职工作外,跟他们学产品的定位,人群画像,市场营销、品牌包装等等。在这家公司算是对公司运营、对产品运营有了一个清晰的认识。

有了之前的经历,赶上14年开始的全民创业潮,也随着这波浪潮折腾了三年,做过O2O洗车、O2O医疗等等,这时才开始意识到,想要真正的创业不是简单的有一些理论就能成功的。心态、人脉、资本等等这些细节都会成为限制你成功的因素。这三年非常辛苦,但是是我觉得职业生涯中最有趣的一段经历,每天脑子里都是一些天马行空的想法,然后把这些方法和其他人探讨落地实践,虽然最后没能成功,但是给我留下了非常充实的一段人生,也让我对于创业有了更全面深刻的了解,同时也结识了一群非常有趣的创业伙伴。

稳定:积累与思维

18年结婚,因为要还房贷,需要一个相对稳定的工作。所以去了汽车之家,真正的前端深入应该说是从这段工作开始的。入职汽车之家的时候是高级前端开发的职位,做数据可视化项目。

当时思维还没有从一个创业者转变为打工者,所以跟上级相处的并不好。这个冲突的解决契机是,当时董事长有一个想法,要做一个三维的数据图表,这个活难度还是挺大的,团队中没人愿意接,最后我就给接下来了。接下来后,在市面上调研了一圈,没有可重复使用的轮子,那就只能自己造,最终锁定的是用three.js 来实现,之前也没有相关的经验,只能买书、查资料一步步的试。

历经一个月从零到一就给实现出来的,团队也因此得到了董事长的奖励,领导也开始认可我的技术能力,开始分配一些管理方面的工作,从那时开始虚线带团队,负责团队的架构工作。一些有挑战的项目,一些前沿的技术我会打头阵,把整体的框架建立起来,然后将细节部分的实现分配给其他小伙伴。在这个过程中,积累了大量的编程知识,同时也获得了团队所有人的认可。同时也认识到,创业不一定要自己成立公司才能算创业,基于平台把一件事做好其实也是一种创业,从此开始转变思维。

从汽车之家出来就想找一个独角兽公司,通过期权或股票来实现财务梦想,先后在几家公司做技术负责人和技术联创,但又赶上了资本寒冬和全球局势紧张,公司活下来都成了问题,所以,现在需要沉下心将之前的收获好好沉淀一下,并认真的研究一下未来的发展规划。

职业规划

我分析了自己性格中的让我受益的部分,也想分享给大家,希望大家也能从中获益

  • 敢于接受挑战:人与人之间的分水岭,可能也就差那么一两次挑战,跃过去以后,你可能发现后面海阔天空。同时这也决定了你看待问题的方式,你能否能从困难中看到的更多机会。
  • 满招损谦受益:当你很菜的时候,你身边都是菜鸡,如果你习惯从他们身上找优越感,那么你永远不会有很大的进步,只有你真正的有本事后,你就会发现,你要学到东西太多了,多到你根本学不完,就拿前端来说,vue全家桶、react全家桶、构建工具、ts、领域知识(数据可视化、3D)、多人协同、直播、vr、xr、小程序、app、桌面端、低代码、在线编辑器等等,这么多的东西,单说一个vue你做到精通了吗?所以你要对自己有个清晰的认知,你才能知道你欠缺的是什么,你要如何去补足自己的短板。
  • 不要给自己设限:不要仅仅把自己定位成一个前端开发,未来充满了不确定性,如果前端行业不行了你怎么办?所以,抱着这一个原则,哪有钱往哪干,不会就学。人生和职场上需要学习的东西太多了,你不但要在专业技能上能够胜任,你还要学会怎么做自我管理、如果你担任小领导,你还需要学团队管理,在生活中,你要学怎么经营你的人际关系,你还要学会理财等等,这些东西都是学校和父母教不了你的。只能你有了切身体会,才能形成自己的认识。现在比较好的是,很多知识网上都有人整理出来了体系,你只要跟着学即可。当然也需要你能够去伪存真,这都是长时间的锻炼培养出来的。

我对前端的定位,划分成了5个阶段,每个阶段我会从技能上和行为上来阐述,在当前阶段应该具备哪些要素。

1、初中级前端

对这个阶段的前端工程师,你只需要能够完成公司安排的前端工作,就可以算是合格的了

  • 技能要求
    • 前端框架:vue 全家桶 或 react 全家桶,熟悉并且能够基于此完成项目。
    • js:了解常用的DOM、BOM、ES 内置对象、熟悉js语法,能够通过js完成页面交互。
    • css:各种页面布局以及一些简单的动效都能实现,并能够使用less、sass等预处理写样式。
    • git:能够使用 git 和团队成员协作开发。
  • 行为要求
    • 保质保量完成业务需求。
    • 管好自己,和直属领导能够配合好。

2、高级前端

这个阶段,你应该是一个能够独当一面的前端工程师了,能够完成绝大多数前端需求,针对一些没有用过的库或框架,可以快速入手,并应用到项目中。同时还要肩负起指导新人的职责。

  • 技能要求
    • 初级工程师具备的所有技能
    • 构建工具:熟悉项目中使用的打包工具 如 webpack、rollup等,针对项目的定制化需要,可以通过配置或开发插件来解决,并开始关注网站的性能,知道从哪些方面可以优化这些性能。
    • 了解 C/S 的运行原理:开始了解网络协议、浏览器渲染流程、缓存策略、网关等原理方面的知识
    • 大量接触并学习第三方库,如数据可视化中的 echart、d3,如游戏 pixi、Tween 等等
    • 移动端开发| 小程序开发:能够使用框架或原生 来开发移动端页面和小程序。
  • 行为要求
    • 能够独立完成一些有难度的项目,并有攻关技术难点的能力
    • 技术水平和知识结构已经开始初具雏形,针对问题,有可以分享的观点
    • 协助领导更好的把控项目
    • 能够带新人,在新人有问题时可以给与帮助


3、前端专家

这个阶段,你应该对前端有了一个全面且深刻的认识。在面对需求时,能够拿出完整的解决方案,并能够把控整个前端项目的开发节奏,以及解决项目开发中遇到的各种问题。并且开始关注,团队成员的培养,以及新技术的攻关工作。

  • 技能要求
    • 高级前端的所有技能要求
    • 深入框架或库的原理,在需要时有改写第三方库的能力
    • 前端工具链:CI\CD,jenkins、nginx、docker等有大致的了解
    • 在某个领域内积累了丰富的知识:比如3D领域内、游戏领域内,在这个行业中可以提供成体系的解决方案
  • 行为要求
    • 能够用技术驱动业务,将技术应用到产品中
    • 关注团队建设,可以合理划分梯队,并通过机制和制度保障团队的战斗力。
    • 能够站在团队的角度,考虑整体的利益,并通过规划来创造更多的价值,从而给团队内的其他兄弟带来利益
    • 有完整的知识体系,了解前端各个环节的组成及细节部分,能够快速定位问题,并解决问题。


4、技术负责人

当你在这个阶段的时候,你就不能仅仅将自己局限于前端上了,你开始接触后端、数据库、运维这些和网络相关的所有环节。

同时你要为整个团队负责,你要有管理经验,保障团队的产出,同时你还需要为团队去争取利益等等。

  • 技能要求
    • 数据库:关系型数据库和非关系型数据库都要了解,起码知道核心能力和常用形式。
    • 后端语言:java、node等,java起码知道一些,但node必须是精通的,后端语言具备通用性,所以精通一门,再迁移理解另外的就比较容易。
    • 运维相关:nginx、docker、k8s、虚拟主机、分布式、网关等等,你需要知道大中小型公司在演变过程中,整体的技术架构变迁是如何实现的。
    • 协作相关:不单需要从技术角度考虑架构问题,你还需要从工作流上设计合理的架构,公司在不同的发展阶段,你应该选择最高性价比的方式,随着业务的发展不断的调整整体的架构。
    • 业务相关:你要深入的了解,公司的业务形态,基于这样的形态,考虑技术是否可以更好的赋能,比如将之前线下的形式迁移到线上等。
  • 行为要求
    • 你现在已经是团队的决策层了,所以你要对团队内的所有人负责,这个阶段你需要保持更 open 的心态去学习,你要接触行业内的其他大佬,保持敏锐的嗅觉,找到机会点,只有这样你才能带领团队创造出价值。
    • 开始关注团队的成长,培养核心骨干,适当的将权力下放。
    • 从具体的研发事务中抽身,将专门的事情安排给专门的人负责,通过制度保障团队的产出。
    • 给团队背锅,而不是把锅甩下去

5、一个人就是一个团队

这个阶段,基本算是返璞归真的阶段了,你一个人就能独立完成各种需求。

这个阶段要求你有敏锐的市场洞察,可以发现一些商机,通过技术手段快速变现。

刚开始时,可以做一些小需求,如果其中一两个产生了客观的收益。

你有两种选择,

一种是基于此成立公司,招人继续做大。

另一种就是自己维护着,同时再去找一些其他的方向去做一些小产品。这种形式也能带来客观的收入,相对也很自由;

这两种选择主要看个人喜好。


最后

一路走来真诚的希望大家能够在此得到一些收获。

- End -