给新书写的初版前言

1,285 阅读14分钟

悄咪咪的,我的第5本用心之作《HTML并不简单》已经上架了。

基本上每一本技术书籍都有前言,本书也不例外,不过,正式出版的前言并不是第一版内容,因为我没把住门,写太多了。😂

又不想埋没在草稿箱,所以主动曝光出来,或许大家可以从中得到一些有用的信息。

正文开始

最近又有人向我寻求人生发展的帮助与建议了,洋洋洒洒写了好多好多。

与之类似的求助还有很多,基本上都是工作找不到,迷茫焦虑,不知何去何从。

而这些求助者不仅有超过35岁的大龄开发,还有不少不足30岁的开发人员。

表面原因是互联网行业发展进入平稳期,前端岗位需求开始供大于求,次要原因是运气差一点,根本原因则是自身的竞争力不足,至少从简历中看到的竞争力是不够的。

行业的问题往往与大环境有关,暂时无解。

运气的问题,这个好处理,广撒网即可。也就是一两次求职受挫也完全不要放在心上,真的,互联网相关的企业真的还是非常多的,多尝试,想尽办法尝试,哪怕失败99次,只要1次OK不就成了。

至于竞争力……嗯,短期且快速方法包括:

1. 增加表面竞争力,也就是简历中学会充分体现自己的战果、成果、亮点与特质,而不是做了啥啥啥;

2. 增加真实竞争力,即适当降低自己要求,说白了,就是接受平薪或降薪。

而长期方法则是提高自身的综合能力。

注意这里,我说的是综合能力,而不是专业能力,实际上,在我看来,只要提高专业能力,就能转变当前的困境。

但是,恕我直言,根据这么多年的观察下来,那些不爱学习的人,你再怎么跟他讲基础很重要,细节很重要,平时一定要利用课余时间提高自己,没用,东耳朵进西耳朵出,内心知道需要这么做,但是行动上完全不动。

而唯一学习热情高涨的时候就是面试之前的那段时间。

原因很简单,日常的学习所带来的价值短期不可见,但是面试学习关系到成功就职与否,效果立竿见影,因而特别认真,虽然明知道那些面试题大部分都不会被问到,且实际工作也不会用到。

短视,急功急利,导致在职业生涯的中后期早早遇到发展的瓶颈,而此时,往往是上有老下有小的阶段,难免心态的波动会比较大。

当然,还有一个很重要的原因,那就是很多人其实根本就不知道自己的技术是真的不行。

我与很多人交流,得到的反馈就是,我干活很认真负责,交代的工作都很好地完成,速度快,质量也好,就是因为我年纪大……就是因为我之前在家待了大半年……

让我想起了大学那会儿,自己DIY出了一个网站觉得自己很厉害,刚工作那会儿CSS写得飞起,日更网页三大个,以为自己天龙人。

碰壁、写作以及持续的研究改变了自己的认知,因为知识积累多了,就会发现,哦,原来不是这样的。

常年待在一个熟悉的环境,做着自己熟练的事情,虽然人舒服,但无形中眼界也受限了,尤其当一个人不会去主动接触外部信息,或者主动学习其他知识的时候。

我觉个简单的例子:

现在很多前端都是从Vue、React等框架入行的,无论是小程序开发,还是Web网站,还是WebView开发都是走的数据驱动的那套模式,得心应手,并乐此不疲。

其实,从开发成本和产品体验的角度来看,DOM驱动的开发也很高效,甚至体验这块还有优势。

诶~是不是触及知识的盲区了?我估计很多前端从业这么多年,压根就没开发过DOM驱动的产品,甚至部分DOM驱动的产品。

——————

这里我要专门划一个分隔线强调下。

很多人对DOM的认知还停留在10年前,实际上,如今的DOM其自观察自渲染能力、数据的收集与处理能力以及性能都是非常强的。

除非是那种后台系统、平台工具这种具有大量数据交互的产品,否则,就开发层面而言,常规的Web网页肯定是DOM驱动的更合适。

但是,注意,我要转折了,这仅仅是开发层面,就学习层面,DOM驱动和数据驱动相比,那就是隔了座山。

数据驱动的学习成本非常低,处理数据,DOM渲染,over~

而DOM驱动,你需要了解很多很多的HTML属性和DOM特性,对了,还有CSS的能力,例如浏览器自带的行为特征去简化我们的开发与实现,同时带来最好的体验。

这对于新人而言,非常不友好。

因此,虽然Web领域CSS、HTML和DOM近10年一直在不断发展,各种新特性层不出穷,但是开发者的感知都很弱,就是这个原因。

你再牛逼,我不需要了解你,我使用框架就能实现产品需求,你也没用啊!

——————

再举个例子,对产品的边界场景、资源占用、安全、无障碍访问的关注与实践。

很多前端开发就没做过这样的事情,原因也很简单,大多数公司是中小企业,成本优先,优先关注是功能跑通,这些细节优先级低,没有相关需求。

没有需求,也就没有了实现的动力。

他娘的,老子花大把时间把产品性能和体验做到宇宙第一棒,996狗sun的资本家又不会给我加薪升职,我做他干甚。

PS:以上内容临时添加

大多数人的成长是开发需求驱动的成长,大多数人的工作是为了应付需求,而不是为了自我成长。

所以,一旦总是做类似的需求,这个人的成长也就停滞了,同时由于不主动学习,常年泡在自己的一亩三分地里,自然会高估自己在整个行业中的水平,以为自己拥有的是全世界!

优秀的团队会安排组内的成员去接触不同类型的项目,以获得广度上的成长,优秀的leader会对组内成员的品控有高质量的要求,强迫成员实现专业成长。

但要进优秀的团队本身就要求你自身综合能力突出,这就陷入一个死循环。

所以啊,工作的时候还是少点功利心,多点长远的眼光,我学习不是为了当下这家公司,是为了进入更优秀的团队,我花很多时间做要求以外的事情,不是为了应付996资本家,而是迫使自己技术成长。

这样才能跳出应付工作养家糊口的死循环。

例如,强迫自己负责的产品在弱网情况下也运行良好(Chrome开发者工具可以调节网速和CPU性能),很简单的一个用户体验点,想要做好并不容易。

它需要知道HTML中的预渲染和预加载,知道DOM中的离线存储(又分临时存储和持久存储,持久存储又有本地存储和数据库存储),JavaScript的分步加载,CSS的图形构建与减小图片尺寸技巧,而本身的专业技能的储备量又决定了能够写出足够精简高效的业务代码。

由此可见,看似不起眼的那点体验优化,背后往往需要前端各个领域的知识去支撑,而这些知识又往往都不是你平常使用的那些知识,而前端领域至少80%的知识都属于这类知识。

成长其实就是这么来的,主动学习,打破常规。

同时,上面的案例也可以说明那些自我感觉良好但又找不到工作的的人,你们的技术其实真的不怎么样。

所以,一定要学会利用工作之余的时间学一些看似工作中用不到的知识,最好是系统学习。

感觉绕了一圈,又回到了一开始的那个问题,无论我再怎么苦口婆心,该不学习的,还是不会学习,尤其那些35岁之后的,精力更少,一看到技术书籍就更是头大。

那么那些还未工作,或者是工作还没多久的年轻人呢,如果他们有幸看到我写的序言,他会去好好学习HTML,CSS以及JavaScript基础吗?会去认真把那些受益匪浅的书反复阅读吗?

我当年学《JavaScript语言精粹》,可是翻了不知多少遍,书本上是无数的勾勾画画。

不会,大多数人都不会。

因为说服一个人的绝不是道理,而是南墙,能点醒一个人的不是说教,而只是磨难,只是往往这些人意识到自己的专业学习不足的时候,已经太晚了。

但是,有一部分聪明的人,他知道会利用前人的经验,去避免踩坑,去更加快速地成长。

我当年从前辈身上学到的一个受益一辈子的经验叫做“虚怀若谷”,就是技术人员工作三五年之后,一定会形成一套自己的技术世界观,并天然排斥与这个世界观不一致的技术,这些技术可能是另外的框架,另外的语言,甚至是新技术,或者是现有技术更深更广的知识。

因为一旦接受这些外来的东西,就会打破现有的舒适圈,产生强烈的不安全感,于是天然排斥,而这是心态是非常阻碍技术成长的。

就比方说,很多人前端工作三五年,觉得自己和HTML打交道多年,对其已经很了解了。

此时,出了一本关于HTML的书,那些不“虚怀若谷”的人就不会去了解,也不会去学习,因为里面的东西有可能会打破自己内心塑造的美好的认知。

然而,成长这种事情,总是伴随着痛苦的,所谓不破不立。

在专业成长的道路上,一定要谦逊,我一定还有很多我不知道的知识,我一定要静心了解,静心去学习。

出现了新的语言,新的框架,也要去积极了解。

AI出现了,也不是本能地排斥,哎呀,这玩意会不会代替自己的工作啊,而是去积极的去学习,利用他更好地帮助自己,而不是害怕他拒绝他。

这是我在前端技术领域不断精进,一直不断成长的非常重要的一个经验心得,就是当年看了一个前辈的文章记下的。

同样的,我也希望本文的序言能够点醒那些聪明的年轻人,职业生涯40年,如何能够确保自己在如此漫长的岁月中走得比别人更稳更顺,其核心关键其实就是专业知识的深广度的积累程度。

这会是一个漫长的过程,并且是一个短期看不到明显效果的过程,但是,当你的技能储备达到一定程度,你会发现,你的工作效率上去了,你的解决方案是最好的,这些东西,你就算不说,都会被同事和领导看在眼里的,竞争力就这么上去了。

且有些知识,不要以为用不到就不学习,不要功利,不要短视,以我自己为例,最近一次在公司成功晋升的主要原因就是解决了Web防盗的问题,而其中所用到的核心知识是SVG与字体底层绘制外加CSS和JavaScript的混淆处理,而所有这些知识我学了10年之久,之前一次都没有在实际生产环境应用过,但就是因为我有前期的积累,搞定了这个事情,顺利晋升成了公司专业方向级别最高的人。

记得很多年前,有人评价我,张鑫旭就会些HTML和CSS,对对对,你们都说得对,我就会点HTML和CSS,而且我还真就靠着HTML和CSS让自己的职业生涯顺利发展的,没想到吧。

说实话,你们这是赶上了好时候,我当年研究HTML和CSS,可是没有领路人的(JavaScript不是如此,相对成熟,著作多),都是我自己探索,哪个东西实用,哪个东西鸡肋,都是要实操的,花了非常多的时间,每天都凌晨一两点睡觉可不是开玩笑的。

现在不一样了,你们无需要自己踩坑,无需像我当年一样,那么低效地学习了,因为我给大家写了这本书《HTML并不简单》(一开始名叫《你并不精通HTML》,临出版被改了),一本去粗取精,系统介绍HTML的书籍。

HTML看似简单,实则不然,他并非简单的标签,而是和整个Web知识体系紧密连接的东西,牵扯甚多,影响甚广。

我可以说,书里面很多的知识,如果不是阅读了本书,你一辈子都不会知道。

你会发现,哦,原来Web中还有这么多特性和方法,原来我平时使用的那一套东西只是冰山一角,某些特定场景还有更加精妙的用法。

另外,再次提醒,千万不要认为,我学了这本书,我就如何如何,像是升职加薪,走上人生巅峰这种,帮助自然会有的,书中所讲述的都是可以在生产环境使用的实用知识,至于那些不实用的内容,我也给大家指出来了,让大家的学习有的放矢。但是,这种帮助并不是那种短期可以体现的。

要知道,一个人专业技术的扎实,并不是知道某一两个生僻的知识点,或者精妙的小技巧就能体现的,它是一个长期积累与学习的过程。
HTML如此,CSS如此,包括DOM和浏览器特性也都是如此,它是一整个Web体系的东西。

另外,据我所知,本书是目前市面上唯一一本全部围绕HTML讲解的书籍,内容精心编排,知识系统且稀缺,可以说,学习HTML,这本书就够了,你要相信,持续近20年一直专注于一线前端开发人员的专业积累,一定可以对你Web开发技术的精进带来明显的帮助。

末了,我再重复一遍很多人都听不进去的说教,保持谦逊,虚怀若谷,静心学习,持续学习,走长期路线,一点点提高自己,会让自己在职业生涯中后期,更加的自由,这种自由不仅是工作的自由,更是心灵的自由,人这一辈子,其实追求的不就是这些吗?

感谢语

这个大家不感兴趣,略……

(完)