想要对自己的未来制定一些方案,得知道自己要去哪里。在团队里,可以根据自身喜好和团队的方向来找到自己在团队中的位置。但职业规划和团队中的定位不一样,首先我们要确定自己未来的发展方向。
对于每个技术人来说,都会遇到一些发展方向的选择困惑,比如“该往深度发展”还是“该往广度发展”。前端也不例外,我们的发展方向种类越来越多,但一个人的精力总是有限的,我们还是需要做出选择。
# 5.2.1 全栈与纯前端
如今随着 Node.js 的普及,也有不少的前端开发慢慢转型做全栈、大前端等方向。
的确,对于有全栈工作经验的人来说,找工作的时候会更吃香。但我们日常工作中是否都有机会去接触后台开发、客户端开发这些内容呢?是否一定需要有这样的工作经验才能获得更好的发展呢?
很多时候,前端由于门槛较低,很多的前端开发(比如我)都不是计算机专业出身。我们对于计算机基础、网络基础、算法和数据结构等内容掌握很少,更多时候是这些知识的缺乏阻碍了我们在程序员这一职业的发展,这也是为什么很多前端开发苦恼自己到达天花板,想着转型全栈或者后台就能走得更远。
这其实是个误区。后台开发由于开发语言、服务器管理、计算机资源等工作内容的不一致,对于专业基础的要求更高,因此看上去似乎比前端能走得更远。但随着成熟的解决方案的出现,像分布式部署和管理、全链路跟踪等,以及运维和 DBA 等职位的出现、后台基本框架的完善,更多的后台开发技术选型的范围不大,在开发过程中也同样会偏向业务开发,因此更多的关注点会落在业务风险梳理、问题定位和追踪、业务稳定性、效率提升等地方。对于全栈开发中的后台开发,可能涉及的内容会更加局限一些。
所以,其实我们在日常工作中也可以更多地关注后台的实现和能力,除了可以更好地配合和理解后台的工作外,还可以提升自己对后台工作内容的理解。当然,最重要的依然是扎实地补充计算机基础知识。
全栈开发经验可能让我们更容易地找到工作,但只有基础知识的掌握足够深入,才可以在接触后台开发、终端开发等内容的时候,有足够的能力去快速高效地解决问题。
相比转型全栈,其实纯前端可深挖的方向也很多,包括关注性能的各种深入的性能优化领域、关注效能的脚手架/CI/CD 等构建领域、关注可维护的项目与代码设计等架构领域、关注浏览器渲染的游戏引擎/WebGL 等特殊领域。选择走广度方向会要求有足够丰富的项目经验,而选择走深度方向只需要在某个领域有足够深刻的理解和突破,就可以建立起稳固的技术壁垒。
# 5.2.2 ToB 与 ToC
对于前端同学来说,我们也常常会纠结与 ToB 和 ToC 的工作内容选择,它们之间区别多在于用户群体和数量。
一般来说,ToB 的业务服务于某一类用户群体,因此会根据服务对象的不一样,工作重点有所区别。例如,如果服务于银行,会对技术方案/安全性要求严格;如果服务于政府机构,则可能需要兼容较低版本的 IE 浏览器(笑),技术选型比较局限。但通常来说,ToB 业务的用户量并不会特别大,对性能要求较低,有些情况下也会由于机器部署环境封闭的原因,对网络和安全性要求较低,因此 ToB 业务可以更多关注开发效率提升、技术管理选型、项目可维护性等方面。
ToC 的业务用户量较大,对加载性能、浏览器兼容性等都要求很高,因此常常需要进行性能优化、兼容性检测、实时监控、SEO 优化等工作。
找工作的时候,拥有 ToC 业务开发经验通常会比拥有 ToB 业务开发经验的优势要大一点,因为 ToC 对前端的各个角度要求都相对较高。但在真正的工作中,由于精力和工作内容分配的问题,很多参与 ToC 业务的人更多只会关注到自己负责的模块部分,因此很多时候并没有掌握到较完整的 ToC 业务相关的关键技术方案。同样,即使是在做的是 ToB 业务,也有不少小伙伴会有很多时间去研究一些新技术、做很多的选型调研,也可以在这个过程中获得很好的成长。
所以,决定我们能否掌握更多的、成长更快的,或许业务的影响比我们想象中还要小,最终还是取决于自己。
# 5.2.3 赚钱与个人成长
当一份很赚钱但没什么技术含量的工作(下面成为工作 A),以及一份有趣又具备足够挑战性的工作(工作 B),这样两份工作放在我们面前的时候,大概很多人都会犹豫。这的确是一个很现实的问题,钱可以让我们买到很多自己想要的东西,但它却没法买来成长极快的工作经历。丰富的工作经历可以给我们带来竞争力,但短期内可能会带来经济上的困扰。
# 分析每个阶段的需求
前面我有表达过自己的观点,如果我们掌握了足够的技术和能力,就不会担心自己赚不到钱。如果以这个角度来看,工作 B 显然会是我们的选择。但这个世界并不都是非黑即白的,如果我们身边大多数的小伙伴都选择了向钱看,他们每年赚到的钱甚至是我们的一两倍,大多数人都无法不为所动。当然,如果有一份工作又能成长又能赚钱的工作最好,但遇到这样的选择概率会很低。
我们可以将自己的职业发展分为几个阶段,然后针对每个阶段分析该阶段中最重要的一些目标,这些目标可以是自身能力的提升,也可以是工资的上涨,还可以是职级的晋升等等。那么,当我们遇到困扰的选择时,可以选择当前阶段中比较重要的目标相关的工作内容。
举个例子,张三家境不好,他希望毕业工作之后可以尽快帮家里还清贷款,那么张三可以先选择赚钱更多的工作 A。当贷款还清以后,张三可以进入下一个阶段,如果这个阶段他觉得自己要提升实力来维持在工作中的竞争力,那么他就可以选择成长更快的工作 B。
和张三不同,李四只想攒点钱买个房子,对他来说工作就只是一份工作。但如果他不提升自己的能力,或许就会面临被淘汰、也没法赚到足够的钱,因此李四可能需要在某个阶段选择更具挑战性的工作 B。
每个人的愿望都不一样,有些人希望攒一些积蓄、买个小房子、过点小日子,也有人希望在职场叱咤风云、留下自己的名字,还有人希望沉浸在自己的世界、一直钻研某个领域。我们的愿望决定了我们最终的目标,而为了实现这个目标,中间也可能会做些看起来与目标相背离的事情。
我们在做的事情到底有没有用、能不能到达想去的远方,这些只有时间能证明。很多时候,每个人看到的只有当下的片刻,我们不能因为现在眼里的自己不像自己,就感到不甘、难过、想要自暴自弃。同样也不能因为目前眼里其他人的趋利避害、趋于世俗而瞧不起对方。或许有些人我们无法理解也无法接受,但即使认为不是一路人,也该给予他们足够的尊重。
# 为什么不可以一边赚钱一边做喜欢的事情呢
大多数人都存在这样的误区,认为做自己喜欢的事情就很幸运了,不应该再期望能赚到多少钱。
我也看到有些人为了追求自己想做的工作,愿意“不要工资”、“只要给我做的机会就好了”。做自己喜欢的事情固然很好,但这并不意味着我们必须要付出很多很多的代价。从公司的角度看,会因为一个人零成本而录用他的几率不大,更多的时候还是愿意付出更多的成本招聘一个有足够能力的人。如果想要争取一份工作,我们要做的是努力提升自己、让自己配得上这份工作的职责要求。
当然,也有人是因为想要转行,认为自己没有相关的工作经历,被录用的概率太低,认为如果自己不要钱对方可以给自己机会去学习就足够了。对于这种想法,我依然保持上述的建议:尽可能先提升自己的能力,通过自学也好,出去从有所关联的小职位、小公司开始做起也都是可以的。不需要提出不要工资这样的条件,这样只会更让对方认为你能力欠缺。
有些时候,我们还会陷入另外一个误区:如果因为做自己喜欢做的事情而获利,这种喜欢就不纯粹了。但谁能告诉我,为什么我们不能一边做自己喜欢的事情一边赚钱呢?如果我们做自己喜欢的事情,同时还能赚到钱,那不是会让自己更有动力、有更多的成本去继续做这些喜欢的事情吗?
← 5.1 找准自身定位 5.3 如何选择工作 →