第八期 沸点,掘金团队请来了知乎专栏《V8 引擎》、LibrarySniffer 做者 -- justjavac 作了为期三天的 Ask Me Anything (AMA) 活动(已结束)。html
咱们在此精选了一些来自用户的提问及 justjavac 的回答。前端
- 掘金专栏地址:juejin.im/user/55b9d2…
- 我的博客地址:justjavac.com/
- 微博地址:weibo.com/justjavac
- GitHub 地址:github.com/justjavac
很是想系统学习一下 V8 引擎,可是总是看文章,总感受少点什么,学的不深刻,请教一下 justjavac 大大 V8 学习经验,怎么系统有效的去学习? 须要什么前置知识的vue
我学的也不系统,九牛一毛而已。V8 确实太复杂了,并且里面的奇技淫巧太多了,若是仅仅是想知道 es 规范是如何被引擎实现的,那不如是看 jsc。但毕竟 V8 是 js 引擎界的一匹黑马,吸引着不少人来研究。java
- 官博 v8project.blogspot.com/
- youbute 视频,我整理了一个 V8 相关的播放列表 www.youtube.com/playlist?li…
- Google I/O 或 Developer 的 V8 介绍
- 博客:
- 源码
看了全部的问题,你的最有意思,第一个回答你吧。node
- 我不是 V8 的贡献 / 维护者,我只是一个 V8 的业余爱好者,喜欢把本身的空闲时间拿出来研究一下 V8/Chrome/Node,也喜欢把本身的心得写成文章分析给你们,只是作了一些 trivial 工做。 参与一个大型项目,能够从提 bug 和修 bug 作起,这也是不少人参与开源项目的入手点,由于大部分 further 都是核心开发人员在维护,不过也得看运气,我曾经给 Babel 提交过些 bug,随后贺老修复了 bug 并提交了 pr,可是官方迟迟没有合并,最后核心团队直接在 bebel 7 的重构代码里面修复了。 注意开源礼节,好比仔细阅读 CODE_OF_CONDUCT.md 和 CONTRIBUTING.md。
- 尤大的一句调侃,其实咱们在微信里面,不乏有比这更过度的调侃。而这个称号也是我最初自嘲时发明的,这一点不少人都知道,根本缘由是我在 github 的一篇 markdown 得到了国内的 star 数最高榜。以前有人嘲笑「首席 webpack 配置工程师」时,我回了一句,我仍是「首席 markdown 程序员」呢,后来就一发不可收拾,被人作成了表情包。
- 第三个问题很难评定。"但行好事,莫问前程"吧。关于"技术产出",你大概指的是狭隘的 github 上的开源项目吧,那个人产出确实很少。关于"社区的知名度",我没有以为个人知名度有多么高,若是你有这种错觉,多是咱俩的社区圈子重合度过高了。我混的社区很少,知名度大多有早期红利在里面吧,若是简单的评价下:
- 掘金社区:个人产出 > 知名度,我是掘金的早期用户,到底多早呢,比掘金还早。看到我此次的 AMA 照片了吗,这是我多年前来掘金是照的,那时候还叫稀土,公司都尚未成立,而掘金上线后,文章都是由联合编辑来发表,我是早期的联合编辑之一。我在掘金有什么知名度吗,没有。
- iteye:我混的第一个社区,当时也只是作作笔记而已。10 年时间写了 600 多篇文章,总访问量近 500 万次,我以为个人文章应该帮助了很多人。至于社区知名度,我不知道那是啥。只知道我朋友被异乡好居诬告时,我写了篇文章,而后给 iteye 创始人范凯发了条信息,问他能不能帮忙转发一下,他回复我:"没问题。你这个 id 我看这特别眼熟"
我在知乎回答了 500 个问题,在 sf 回答 1000 个问题,我私觉得我对社区的贡献不小,即便在社区得到了某些所谓的知名度,不也是很合理吗。python
刚看了评论 为何不建议作外包?是由于对于技术要求比较低吗?react
这么跟你说吧,有不少 5 年以上经验的开发者,其实呢,他们只有半年经验,而后重复了 5 年。在个人招聘要求中,不招 2 种人:一种是培训机构的,另外一种是一直作外包的。webpack
是由于他们对技术要求底吗?是的,并且一年作几十个项目,大多也都是同一个技术用 N 年。为何呢,稳定,成本低。有 code review 吗?没有。有重构吗?没有。有 UT 吗?没有。。。git
对比一下产品和外包的开发流程。当最终开发完上线后,意味着项目(外包)结束了,能够验收交付了。而产品呢,当最终上线后,才是刚刚开始。不停的反馈、迭代、打磨、……把一个十几人用的软件作到几万人,几十万,几百万,每一个阶段都是不一样的技术,不一样的架构。程序员
作完一个能交付的软件 vs 持续不断的打磨一个软件
1.虽然外包公司很大一部分像您说得那样,但是并非作外包的公司依然没有像样子的code review,项目虽然是迭代了,但是每次的迭代都是草草上线,并不会给你太多的时间去怎么优化代码 怎么codereview的 并且 来北京后 我发现很大一部分公司都这样 不过只是我从面试上来推测得出的。全部的公司产品都是业务导向的。具体代码层面那一块就看技术领导的技术能力 方向 责任了。
万事没有绝对,只是“半年经验,而后重复了 5 年”在外包型公司的比重很高而已。即便作产品,也不必定会持续优化代码,大部分公司还只是注重最终结果,也就是最终的产品质量,而无论代码质量和开发流程。
即便我带过的团队,作过的产品,也同样。我以为产品 v1.0, v2.0 没有必要作 review,也没有必要重构,这个阶段的产品,目标是“能用”,可以快速投入市场。若是被市场承认了,再持续迭代优化,达到第二个目标“好用”。在这个过程当中 codebase 也愈来愈大,愈来愈复杂,也慢慢开始注重代码的质量和开发的流程。
外包也分不少种,也不能一棒子打死。有些是长期型的服务外包,项目周期是几年甚至不按期。可是大多数外包公司的项目都是中短时间的,项目周期是1-3个月,甚至更短,包括但不限于公司官网建设、企业 app、小程序、商城、等等。还有一些是作某个行业的项目,好比餐饮业。就是接各类餐饮业的项目,具体开发流程就不用细说了,基本都是套模板再加一些定制化开发。和流水线上的操做工没有啥区别。
诱人的地方就是面试简单,容易进,这也成为了不少应届毕业生的选择。薪资方面,一般每一个项目作完都会有或多或少的项目奖金。我有一个高中同窗,比我晚毕业一年,当时我工资只有 3k 的时候他就已经7-8k了(这个对比可能有些不公平,他在北京,我在天津),后来个人工资达到 20K+ 时,他也终于突破 10K 了。后来整个外包行业不景气,他们公司的业务也不行了。好在他自学了 iOS 编程,跳槽去了一家手游公司。
阅读一些逐渐深刻的书籍,如何有效处理长篇大论枯燥难寻。
停下来,思考一下,玩会游戏,而后继续。给本身定个目标,一次读 20-30 分钟,硬着头皮读,而后思考 10 分钟。我用这种方式,花了3个月的时间并行读完了爱因斯坦的《相对论》和 Harari 的《人类简史》,而后整理了 200 多页的笔记和草稿。
也有一部分缘由是生活和工做压力太多了,让不少人有了焦虑感。当读书读不进去时,就增增长了本身的挫败感,最终造成的恶性循环。尤为是随着年龄的增长,接受新事物新观念新知识也变得愈来愈难。
我上大学时,从图书馆借了 2 本 Martin Fowler 的《重构》,一本英文原版,一本中文翻译版。两本书对照着看,大概用了不到一个月的时间吧,就把英文版读完了。
工做后,就只能利用天天的早起时间读书了。再后来我和老婆定了一个家庭读书日,每个月选出一个周末,这天一块儿看书 4 个小时以上。若是再加上选书、布置环境、营造氛围什么的,基本上得耗费一天的时间。
阅读是一种习惯,坚持下来就行
再补充一句,其实仪式感也很重要,忽然就以为读书变得很神圣了
再再补充一句,找个女友,一块儿学习更有动力
我进入编程彻底由于兴趣,相对别人而言,很没有天赋,可是一直在坚持,如今的公司属于成长期,没法锻炼技术,想重新捋一遍前端技术,又没有时间,请问大神你有什么好的建议吗
“公司属于成长期”我是否是能够理解为公司的开发流程各类不规范,没有提高的空间了。
我通过了好几家成长期的小公司,也在大公司带过百人以上的团队。其实规范不规范彻底不在于公司的规模。并且从不规范到规范的过程也是一种成长。
而你说的"又没有时间",这就彻底是借口了。只要你有时间刷微博朋友圈,就有时间学习。只要你有时间刷掘金,就有时间学习。只要你有时间打游戏,就有时间学习。天天两个小时,挤挤就出来了。
你可能还年轻吧,我像你这个岁数时,有的是时间。现在有了家庭,有了孩子,时间忽然就少了不少,可是晚上依然有时间打打游戏,刷刷知乎,我通常都是早上 5 点半起床读读书,写写代码,写写文章。
若是老板告诉你把 xxxx 学完,给你涨薪2W,我猜你立刻就有时间学习了。说白了,仍是动力不够。
从头学一遍前端技术,这个没有必要,你能够从新学,可是没有必要从头学。仍是基于你目前学习的技术,继续学习相关的技术吧。或者以前没有深刻学习的知识点,如今再进行深刻学习。
前端只是一小部分而已。先作一名合格的程序员,而后才是合格的前端程序员。有不少技能是不限于语言和平台的。
jjc老师好 个人技术栈是Node.js 和 React各一半。 若是接下来继续将时间分给两个技术栈一家一半, 感受哪边都无法作出点名堂。 但愿能得到您的一些建议,谢谢。
并不须要放弃一半,只是把其中的主要精力投入到一家,而次要精力投入到另外一家而已。有侧重点的学。即便那些所谓的全栈工程师,也都有侧重点,好比狼叔,号称Nodejs全栈,可是他的技术栈的侧重点则在后端。
什么是全栈,就是不要给本身设限,从一个技术点辐射出其余相关的技术点,而后不断精进,这就是全栈。那些个既会react,又会vue,还会nodejs,还会MySQL,还会python的,……是全栈吗,不是,那是打杂的。全部技术都学个皮毛,那学的再多又有什么用呢。
若是你定位为后端 nodejs,那么就学习 js 语法,nodejs,平台,类库,框架;而后是内存管理、http协议,缓存策略;而后负载均衡,高并发,高可用;再慢慢一层一层的深刻,技术是一个由点到网的过程,学的越多,就会发现本身欠缺的越多。
前期能够追求广度,都多多几门框架或者技术。可是后期必定要追求深度,把一个技术栈和相关的周边技术学精学透,不要永远停留在"会用"的水平。
本期 AMA 社区小伙伴提了许多实用问题,感谢 justjavac 认真地为掘金小伙伴解答了很多疑问。浏览更多的问答,能够到 justjavac 的 AMA 进行阅读和讨论。
justjavac 从全部提问中选择 2 个提问者赠送他的书籍《人工智能》。记得查收通知哟~