张鑫旭对于前端问题十答的笔记

原文

1、前端为什么这么多人

以银杏树在90年代市场的兴衰来说明前端领域市场的饱和问题,在市场面前,我们都是商品,必然要面对贬值和风险两大问题,增强自身的能力才是关键,也许可能出现的情况如物联网兴起、人工智能兴起、JS已经深入到生物基因工程领域,又会出现高薪职位。

2、Web前端的路该怎么走

学习分为经验式学习和系统式学习,大部分人都是经验式学习,经验式学习可以收获很多书本上没有的知识,以及具有极高概率被重复利用的一些知识,投入产出比很高。但缺点是知识面较狭隘及工作效率较低,因此系统学习是成为一个技术能手所必须的。

非计算机专业背景学习JS要点:

1、非常重要:先要对JS这门语言要有整体、感性的认识;

2、掌握JS中的字符串、函数、对象、数组、字面量等基本概念,熟记所有内置的方法(包括参数和返回值);

3、所有继承和原型相关内容跳过,注意,是跳过,不要看!没有这些JS一样可以活得很好,你的日常工作一样玩得飞起,当然,你没忍住看了相关知识也没关系,因为你会发现自己看不懂的;

4、DOM事件和所有DOM方法一定要掌握的牢不可破;

5、学好正则表达式;

3、前端开发基础扎实的标准是什么?

前端开发分为两类,偏逻辑系的基础中的基础是JS,偏视觉系的基础中的基础是HTML,不能轻视HTML,这很可能会是一个在极长时间内一直兴盛不衰的语言,因为其重要同时上手非常的简单,并且随着发展,说不定以后会一统万端。

使用满碗的饭和粥比喻,实的基础即对知识完整、系统、一字不落的精细学习和记忆。而扎则是由表及里的深入,竭力思考为什么是这样。

4、前端新人的迷茫?

张认为自己大学生活中最大的收获是“自我认知”,通过精细阅读《人格心理学》获得。带来的好处是:

“自我认知”带来的好处是更自信,内心更强大了,比方说一些说话刻薄的人说你是“变态”,你就可以大可不必放在心上,因为你自己知道你是什么一个人;你知道自己的不足在哪里,以后就可以知道可以从哪方面努力不断改正让自己变得更好;你知道你自己的特长在哪里,从哪方面发力更容易让你走得更高更远,学习的时候不会盲目,即使是一条别人没走过的路,也会坚持走下去。

如果单看问题表面,进行不下去,肯定是因为基础知识不足,基础知识的扎实程度达到能够看懂jq、bootstrap、react等等框架的源码那么就达到了另一个世界,这和Quake里反复磨练跳跃技巧是一个道理,基础的扎实程度决定了实际展现出来的水平的上限。

5、① 前端工程师的价值体现在哪里?② 前端的意义是什么?

前端的意义:让用户在于机器交互的时候更加愉悦,让用户越来越喜欢,甚至在上面花钱,给企业创造价值。

不要高估前端这个职位的价值和意义。有种效应叫做“禀赋效应”,指的是“当个人一旦拥有某项物品,那么他对该物品价值的评价要比未拥有之前大大增加”。我们身为前端工程师,对前端这个职位的评价自然就要比真实的要高那么几分。

前端工程师的薪资水平是他给企业带来的价值决定的,因此通常前端管理人员会工资比较高(即使不参与一线开发),因为他需要让很多的前端人员一起变得井井有条,高效运转。还有一类就是前端架构人员,负责优质的类库,业务配套工具等基础建设,保证整个产品线都高质量,同时节约人力等成本,也会有比较高的收入。

6、学web前端开发,培训还是自学靠谱?

自学(完):)
张讲述了自己的黑历史:

后来毕业了,大家都快快乐乐地去上班了,我就把小作坊的工作辞掉了,裸辞,然后远走他乡闭关学习去了。可以看出我还是很有想法,很有个性的一个人,甚至很多温室中一帆风顺长大的自我感觉很好的人不理解,你一边工作一边学习就好了。正如问题五提到的,人贵自知,你希望你以后成为什么样的一个人,当时我是希望自己3年内可以成为前端技术牛人,但是,一看自己,就会写点页面,JS是个渣,后端语言是个P,弱项非常明显,要想以后高度足够高,这些基础一定要打牢实。但是,如果一边工作一边学习,考虑到之前小作坊每天都是早9点到凌晨1点,每周只有半天休息的状态,屁的时间给你学工作以外的知识,你就会发现,你的技术一定会早早遇到瓶颈,然后就成为一个普通的技术人员,和自己未来的期望背道而驰。于是倒退下来,我需要学一门后端语言,需要把JS进行系统学习,把基础夯实。

这次闭关共耗费我9个月时间,独自离家,直接去了一个从未去过的省份去闭关,9个月的时间把之前小作坊赚的小钱全部耗费光光,收获的是可以自己用php+sql做一个动态网站,基本上算是和全栈,把JS基础夯了一遍。学习的方法是看书,《php和mysql程序设计》《PHP6与MySQL5基础教程》,《JavaScript高级程序设计》和《JavaScript语言精粹》,反复看,反复理解与记忆,一页都不访问,其中实例全部都亲自跑一遍,看完后,给自己安排了个项目,从0到1把自己个人网站建起来,纯自己手写代码,算是自己闭关学习的一次考试,结果个站从设计到开发上线,共花了我3个月时间,因为包含完整的账户体系,以及诸多内部频道和外部频道。

虽然我的自学故事才说了一半,但已经足够回答这个问题了。

自学也好,培训也好,形式根本不重要,重要的是你的心到底有多勇敢。

7、前端工程师和 UI 设计师该如何选择?

设计领域有所造诣需要天赋和专业积累,现在缺少前端设计师,要代码写的好及设计敏感

真正的前端,应该是负责人机交互的,和交互与体验走的更近,而这类职位就需要兼顾代码和设计,是个是个交叉职位,和传统意义上的程序员其实并不是一路的,通常玩不到一块的,反而和设计师走的比较近,哈哈。

8、如何面试前端工程师?

我很不喜欢自己准备一些没什么养料的问题去问面试者,而总是尽可能让面试人员自己表达自己认为最厉害的地方,可以是JS的也可以是CSS的或者HTML的,SVG以及Canvas也是可以。面试的最终目的并不是一场应试考试,而是在对候选人能力等不确定的情况下进行准确评估。如果你搞几个固定的题目,那些面试党说不定正好研究了这个题目,也有能力不错的人技术栈并不在你这个点上,这招聘质量就会大大折扣。

所以,我的策略是,把你最厉害的一面展示出来,然后,让我来看看你这个最厉害的一面到底有多厉害,然后根据其表述话语中一些有意思的信息进行深入提问,为什么会这样?有没有其他策略?当时你是怎么想的?最后效果怎么样?之类的问题,可以看看对待问题的思路,技术的深度是怎样的。

千万不要拿自己的长处去面别人,而是发觉对方的长处,然后看看能否给团队带来足够的帮助。

除了技术,也会考察候选人的沟通表达能力,以及特质方面的一些东西。例如,这个人回答问题比较的油,技巧性很强,抱歉,你大概率会被毙掉,上头更喜欢简单纯粹的小伙伴,因为对整个团队而言是有好处的,因为油的人太多,团队就不好带了。

总之,就是从多个维度勾勒出候选人的轮廓,然后看看是否是团队目前需要的拼图。

对于面试者,我这里有个建议,尽量展示最真实的自己,因为你根本不知道应聘团队需要的是怎样的人,例如,本希望招一个神经刀,你反而刻意一本正经,只能有缘无分了,岂不可惜了彼此。

9、前端工程师们,你们对前端的兴趣是什么?

:)

10、Web前端开发前景如何?

:) do not give a fuck.

我们应该随时注意提高自己在软实力方面的竞争力,沟通表达、为人处事、团队协作、项目推动等等,日后即使行业不景气了,也不要担心随风而去。

推荐阅读更多精彩内容