详细

个人对前端开发的思考

背景

我大学期间学习过java开发,写过asp网页,vb语言写过一个计算器软件。自从2014年毕业工作以来,我一直从事web前端的开发工作,在小厂和大厂都呆过。开发过上亿级用户的产品。涉及到的前端库或框架有 jQueryZepto.jsAngularJsVue.jsReactReact NativeExpressKoa等,涉及的产品形态有Hybrid AppPC Web移动端H5小程序等, 中间全栈写过一些项目,用的语言是 Node.jsPHPC#。2023年,因为个人家庭原因,从大厂离职了回到武汉。没有继续找工作,然后把个人精力投入到了新房装修、开发私人的项目里,gap到现在有近9个月的时间了,在这段时间里,对前端开发这个职业也沉淀了一些思考,因此形成了本篇博文。注意,本文不是从考究历史的角度讲解前端开发,而是从个人观点叙述,因此有些观点可能存在误区。本着哲学三大基本问题,“我是谁”,“我来自哪里”,“我要到哪里去”。我们的行文也按这种顺序,好了,废话不多说了,开始吧!

什么是前端开发

前端开发狭义上讲是指Web前端开发,广义上则涵盖了移动端开发小程序开发,使用Electron等框架的桌面端开发,还有全栈开发等,不一而足。本文提到的前端开发更加偏向于广义的前端。在找工作面试中,大家可能都会遇到一个经典的问题,“说一下你为什么选择前端开发?”,尤其是早些年的面试,好像逢面必问。以前我的回答是为面试八股文准备的,我通常是这么说的,“在大学里因为感兴趣编程,学过java开发,但是后台开发很枯燥,不像写前端页面所见即所得,非常有成就感。而且前端开发这一岗位既连接了后台、测试、产品、设计等岗位的同学,又连接了产品用户,是一个承上启下的岗位,对于产品研发线非常重要,所以我选择了它。”。不知道各位看官,通常是如何回答的呢? 上面的回答我认为是陈述了前端开发的日常工作。抛开面试和工作,前端开发对于个人的意义又是什么呢?前端开发于我而言,更像是一种技能,而不是职业,就是我可以选择不从事编程工作,但是我依然可以利用前端开发,来满足我日常工作和生活的一些需求,从而获得一种自我认可和满足感。记得我上大学的期间,我看到一篇新闻,具体内容不太记得了,大概意思就是一名程序员,为了给心仪的女生表白,自己写了一个桌面软件,打开后会有满屏玫瑰花的效果,并且会以弹窗交互的形式向女生表白。举这个例子呢,就是想具象化一下我表达的前端开发更像一种技能,而非职业性。 所以,前端开发脱离职业属性而言,可以帮助我们探索更多生活中的可能,皆因它的交互性和用户关系所决定的。工作中,曾听过一句话,大概意思是,前端开发工程师,先是工程师的身份,其后才是前端这个定语。我理解这句话的意思就是,我们不要人为的给自己设限,把自己仅仅定位于前端开发,非前端式的开发未尝不可涉足,感兴趣多探索,总没啥坏处。

前端开发的诞生

早些年间,是没有前端开发这个岗位的,只有桌面开发或Web开发这种类似的划分,比较接近前端的Web开发者,都是采用jsp形式输出前端页面的,就是我们现在前端开发者常说的服务端渲染(SSR),早期的前端页面不需要ajax等方式传输数据,在后台数据从数据库提取出来,直接塞到jsp页面中,类似于Web前端的模板引擎,然后输出静态的HTML页面。有一些用户的交互也大多都是通过表单和表格来完成的,页面的事件监听大多都是通过引用 jQuery 这个库来实现,而且页面视觉上没有太多要求,用简单的css就能满足,甚至不用css,用网页三剑客,DreamweaverFireworksFlash,网页布局,切图,动画统统搞定。 上面所述的阶段,处于Web1.0时代,用户基本都是被动地接受互联网中的内容,很少能深度参与到互联网建设中。说到了这里,我们不得不提一下Web2.0,即移动互联网,从2008年左右拉开大幕,到今天仍然精彩纷呈。智能手机具备“永远在线”和“随时随地”的特点,这让移动互联网成为很多人生活的重要组成部分。像社交网络、O2O服务(线上到线下服务)、手机游戏、短视频、网络直播、信息流服务、应用分发和互联网金融等移动互联网服务成为主流。互联网用户在这一阶段就重度参与了进来,与此同时对前端开发的要求也就更高了,因此前端开发这一职位在Web2.0时代被独立了出来。与之而来的还有,互联网里面的产品经理、产品运营、用户交互、视觉设计等职位的独立。这一转变,正是我们常提到的生产力和生产关系产生的变化带来的结果。

前端开发未来的路

在当前人口和互联网红利逐渐消失,世界经济解构的大背景下,前端开发人员也面临着被解雇,35岁年龄危机,职业内卷等等一系列问题,那么我们的出路在哪里?或者说接下来的人生发力点又在何方? 我个人的一些观点是,做点小生意。从生产力角度,Web前端开发人员(劳动者),使用电脑这一生产工具(劳动资料),开发Web应用(劳动对象)。如果可以做到全栈开发,生产力这一块就会完成闭环,可以实现“单兵作战”。从生产关系角度,Web前端开发人员,把单兵作战能力下开发的应用,商品化的过程中,调整好自己的角色定位,简而言之,不要只会开发,能够兼任商品化过程的各个角色,这样才能够突破自身的桎梏。而且要利用地理套利,把市场不要局限于国内,同样的产品国内定价9元/月,和国外9美元/月,是有着本质的不同,因此学好英语可以让我们展示的舞台更加广阔。即使我们不走做点小生意的路子,也可以去找remote的工作,同样可以给我们的职业发展,注入新的活力。

展望

看到这篇文章的读者,应该大部分和我一样都是普通人,那我们从小努力读书,为了什么?我的回答是,为了做更好的自己(小时候希望自己长大后文武双全,成家立业后,好的伴侣和孩子让我们成为更好的自己)。为了生存而赚钱时,可以有更多的方式,不仅仅依赖于体力劳动。为了能更好的去看看这个世界(可以去任何想去的地方旅游或旅居)。为了让身边的人感到幸福,为了自己的子女可以接触更多的可能,以便成人后自由的选择职业,而不必瞻前顾后。那么你的回答又是什么呢?欢迎留言分享^_^。 世界唯一不变的就是变化,未来情况如何,我们都无法去预测,我们能做的就是在变化的环境中去调整自我来适应。不要让时代的热潮裹挟,找到专注的目标,沉浸于自己感兴趣的事物或工作上,然后其他的就交给时间吧,与时间做朋友,时间才是我们人生的答案之书!