共计 4351 个字符,预计需要花费 11 分钟才能阅读完成。
谨以此书献给置信“致力有用”的你
先讲个故事
2019 年,我和机械工业出版社签了协定,约定用 1 年半工夫交付一本 15 万字的前端技术书籍,起名为《我是前端 -JavaScript 工程师的自我涵养》;
2022 年,书稿终于写完了,但编辑老师仿佛感觉原书名不太庄重,和出版社气质不符,几经商议最终将新书定名为 《前端跨界开发指南 -JavaScript 工具库原理解析与实战》,正式出版发行,历时 3 年,共计 28 万字。
我高估了本人的产能,也低估了本人的急躁。明天,我想和你聊聊对于这本书的故事。
再做个自我介绍
大家好,我是大史不谈话,是一名前端工程师,已经因为一篇《10000 小时后,我从外包走进了字节跳动》而出圈,被敌人们戏称为“万时大佬”😂。我 2017 年走进前端畛域,2018 年开始技术写作,除了产出上百篇技术博客外,大略每年会有一个小爆款,或者你也已经读过其中的一些:
- 2018 年 -《笔耕不辍,无问西东》
- 2019 年 –《俯视星空的人不应该被讥笑》
- 2020 年 –《10000 小时后,我从外包走进了字节跳动》
- 2021 年 –《字节半年,我的认知降级》
- 2022 年 – 不晓得会不会是本篇呢
有的文章点赞多,有的文章喷子多,但从题目里兴许可能拼凑出一个我的样子:
一个置信“致力有用”的、不太聪慧的、口头力还能够的程序员 。
是的,这就是我。
看完本书能播种什么
这是一本致力于拓展前端技术广度的书籍 ,我在书中筛选了 30 多个经典的 JavaScript 工具库,对它们进行了具体地解析,从根本的应用形式到设计准则,从原理源码到周边常识,心愿为读者呈现出 一个有深度、有广度的平面的 JavaScript 世界。全书分为 6 个大的局部,内容涵盖根底工具、图形学、多媒体、跨端开发、游戏开发、人工智能、物联网:
第一局部 根底篇(第 1~10 章)
笔者筛选了前端工程师日常开发中常常用到的工具,内容次要波及编写 Mock 数据、服务端开发、动态代码查看、模块管理工具、实用工具库、函数式编程等内容,帮忙高级前端工程师理解日常应用工具的原理和最佳实际,晋升开发能力。
第二局部 图形学篇(第 11~15 章)
次要介绍前端如何实现流程图绘制、Canvas 技术应用、数据可视化、SVG 技术及 3D 渲染相干的常识及实战指南,帮忙读者理解 2D/3D 渲染相干的常识,为进军元宇宙打好根底。
第三局部 多媒体篇(第 16~20 章)
次要介绍如何在网页中绘制 PPT、做高性能动画、音频解决和视频解决相干的常识和利用,在短视频技术风行的当下,一线互联网公司中有很多前端工程师专门从事音视频相干畛域的研发工作,本章的内容可能帮忙你建设对这个细分畛域的根本理解。
第四局部 跨端开发篇(第 21~25 章)
次要介绍如何应用 JavaScript 编写命令行工具、shell 自动化脚本、跨端 Hybrid 利用、桌面利用,以及如何发送二进制音讯或通过管制反转来实现代码解耦,这部分内容旨在帮忙读者晋升工程化能力和根本的跨端跨界开发能力。
第五局部 游戏开发篇(第 26~28 章)
次要介绍游戏开发相干的基本知识、开发技巧以及物理引擎相干的常识和实际,每一章都提供了残缺的可运行代码和美术素材。
第六局部 跨界实际篇(第 29~31 章)
次要介绍如何应用 JavaScript 来实现人工神经网络,利用工具库实现了一个能够语音管制的“吃豆人”游戏,并解说了如何应用 JavaScript 来进行物联网的开发。
心愿你可能看到,前端技术不仅仅是一个须要继续优化打磨的生产工具,更是一个可能陪你一起摸索技术世界的万花筒。
浏览器,并不是前端的边界。
为什么想写这本书
一半好奇心,一半强迫症
早在正式成为前端工程师之前,我就以集体开发者的身份利用框架和第三方服务实现过残缺的产品交付,这样的经验带给我极大的成就感,以至于在刚成为前端工程师的时候,其他同学都致力于探讨框架、源码和前端工程化的时候,只有我像个孩子似的乐此不疲地到处收罗“JavaScript 工具库”,想晓得前端除了开发页面以外还能做哪些乏味的事件,慢慢地我才晓得,原来世界各地的前端工程师早就在尝试把 JavaScript 利用在跨平台开发、桌面利用开发、命令行工具、AR、VR、音视频、游戏开发、神经网络、物联网等等各种不同的畛域,这时我才晓得把“前端”等同于“页面工程师”这种观点真的是有些无知。当四周的共事大多都在致力晋升本人的“技术深度”时,我却秉持着“好读书,不求甚解”的精力在技术世界里玩得不可开交,感觉这个也好神奇,那个也好乏味。我在本人的技术博客开了一个专栏——《一统江湖的大前端》(也就是本书的前身),心愿在这里记录并分享本人在摸索 JavaScript 的花花世界时的反思和播种,在那时的意识形态里,前端技术首先应该是带给我高兴的,其次才是谋生的伎俩。 当连载写到第 7 篇的时候,不晓得怎么就被编辑老师发现了,于是才有了明天的这本书。
写书的另一半起因大略是轻度的强迫症吧,在学习的过程中免不了须要查资料,那时优良的前端博主并不多,网上很多文章也都是抄来抄去的,你常常会发现那些比较简单的常识在很多文章里被翻来覆去地讲,但那些真正令本人困惑的细节却很难找到答案,同类的事件产生得多了,反而容易让人变得自我狐疑,不晓得那些细节真的是“不言自明的常识”,还是很多博客作者本人压根都没弄明确,以至于看了很多博文后,不晓得的货色还是不晓得,这令我感觉十分丧气;另一个景象就是那时前端的沙箱技术并不是很遍及,很多博客作者只会在文章里展现一些代码片段(当初能够间接接沙箱程序去运行,就不便多了),而当你尝试把这些代码粘贴下来去运行时,可能就会失去各种各样莫名其妙的报错,初学者往往很难搞分明到底是博主提供的代码有问题,还是某个工程配置或是插件导致了谬误,后果就变成了“情理都懂,就是 Run 不起来”的难堪地步。这种“只知其一; 不知其二”的体验对我来说真的太难受了,于是给本人立了 Flag,下定决心对常见的前端技术进行深刻学习,并在后续的写作中都尽量提供残缺可运行的示例代码。我始终置信,那些困扰本人的问题,绝不可能只困扰着我一个人。
为什么敢写这本书
提到写书或是技术博客,很多人可能会感觉,本人须要先成为一名专家,而后才“有资格”去写书,这种认知模式通常被称为“HAVE-BE-DO”模式,咱们来举个例子:如果我有(have)很多钱,那么我就会成为(be)一个有钱人,这样我就能够像富人那样去做(do)事件。看起来牵强附会,没故障,同理可知:如果我有(have)足够的常识,那么我就会成为(be)一名专家,这样我就能够尝试对外做(do)常识输入了,比方写书。它们之间的区别是什么呢?或者你曾经有所觉察,对于“领有更多常识”这个前提而言,实现门路是绝对清晰的,但对于“领有很多钱”这个前提,大多数人并不知道如何实现,这就造成了一个悖论,因为如果你晓得如何实现的话,实现的过程就能够间接跳到 do 的环节了,压根不须要通过 HAVE-BE-DO 的流程。
事实上,HAVE-BE-DO 这三件事并不是线性关系,而是一个反馈循环。 也就是说,DO 通常会对 HAVE 产生增益或减益的成果,继而让这个循环继续上来。于是有人提出,BE-DO-HAVE 或者会是一种更无效的认知模式 , 也就是先领有身份认同,继而去做与这个身份相符合的事件,最终领有与这个身份相匹配的回报,这份回报又会帮忙你强化本人的身份认同,从而造成循环。
以写作这件事为例,它的实现门路就变成了,我先要置信本人可能像作家一样写出好的作品(这可能自身源自于本人写博客时取得的正反馈),而后一直地尝试一直地写,如果内容优质,那么最终我会领有本人的读者粉丝。这种认知模式的益处在于它可能让你把注意力集中在“如何做无效的事件” 上,而不仅仅是看着远方的指标手足无措,而最简略的口头形式,就是找一个楷模去模拟,先动起来再优化。事实证明写博客和写书齐全是两码事,我的确也没有什么写作的天才,交付的 28 万字书稿背地,是大概 2~3 倍字数的底稿删删改改才失去的。
如果你感觉生存中有什么不如意的中央,也能够试试 BE-DO-HAVE 的思考形式,没准就可能找到扭转的契机。
推动我决定写书的另一个关键词叫做 “常识咒骂”。第一次听到这个词语是在樊登老师举荐的《可复制的领导力》一书中。“常识咒骂”是指一旦咱们晓得了某样货色后,就很难设想本人不晓得它时会是什么样子。 随着工程师技术水平的减少,越来越多的常识在他们的意识里变得“天经地义”,当你向他们征询的时候,他提供的答案可能的确是对的,但初学者听不懂可能也的确是真的,越是资深的专家,或者越难了解“为什么初学者连这么不言而喻的情理都不明确”,但事实上他们本人当年可能也面临过这样的难堪地步,对于刚刚涉足一个畛域的初学者而言,很多事件其实并没有那么“不言而喻”。从本人技术博客的浏览量上就能够看到,很多本人感觉写的十分值得思考的技术分析文章,评论区可能更多的只是点赞,而一些科普性质的文章,反而会引发更多的探讨,作为一个转行进入前端畛域的大龄程序员,兴许我更容易了解初学者所须要的货色是什么。我想,如果当初不写,当本人有一天真的成为技术专家时,可能就写不出真正对初学者敌对的内容了。我晓得成长的路有多难走,只心愿能留下一些可供参考的路标,给那些依然违心前行的敌人。
编辑说:书太厚了
本书的原稿是有附录的,其中分享了我对于成长和职场总结的四篇文章,对于高级工程师来说,它们可能比技术自身更重要,但厚度直逼 500 页的书籍受到了编辑老师的厌弃,最终还是决定将这些复盘笔记间接发表在集体掘金博客(掘金账号:大史不谈话)以及【随书代码仓】,内容包含:
- 写作那些事儿 - 讲述笔者技术博客写作的播种、心得和倡议
- 学习那些事儿 – 讲述笔者对于“图像记忆”、“疾速浏览”和“思维导图”等高效学习法的认识和倡议;
- 职场那些事儿 – 讲述笔者如何从集体开发者视角转变为团队管理者视角的反思和总结;
- 面试那些事儿 – 为筹备面试大厂的候选人提供结构化备战倡议。
- 我的技术博客 – 分享框架之外的前端常识
观点是有待验证的假如,而不是变化无穷的准则。既然是集体笔记,就未免会带有主观性和局限性,只心愿可能为初学者带来一些启发。
致谢
再次感激机械工业出版社的各位老师!
也感激所有在本书创作过程中给予我关注、激励和反馈的敌人和家人!
硬广工夫
如果你是一名 前端初学者:那么我真诚地向你举荐这本书,置信它可能无效地帮忙你扩大技术视线,进一步晋升技术能力;
如果你是一名 资深前端人:心愿你能把它举荐给其余须要的敌人,帮忙他们在肉眼可见的待业低潮期厚积薄发,静待花开;
如果你 不是前端工程师:这本书或者也适宜你,因为只须要根本的 JS 常识,就能够疾速理解前端技术的利用场景,做好跨界常识储备;
如果你 只是单纯 觉着我这人还行:那就间接 扫码买它 就完事了~