前言
在海澜面试的过程中,我表明,只要是前端的东西我都有意愿学习。其实这句话的意思是,无论是在哪个平台,我觉得,比如自定义View,比如做出粒子效果,这里面涉及的恐怕是数学知识- -。所以我在哪个平台上玩都没问题。我更多的是对于如何表现出效果感兴趣,而不是只想学api。
不过,这件事情有个问题,就是我没想过要去搬砖,我的想法只是api不是问题,而不是一直去学api。
不过无论如何,既来之则安之,我现在也不知道公司是叫我干什么,毕竟我才刚刚来。既然是通过前端开发被招进去的,虽然之前对前端开发一无所知,现在就来学习一下吧。(说实话,我在想我会不会太菜了以至于无法顺利度过试用期。)
第一步是了解吧,着重是移动app的混合式开发怎么开发,不是有什么混合式开发框架吗,先了解什么是框架。然后是WEB开发框架又是什么?说到底前端开发框架到底有什么用?第二是我想知道前端的广度和深度,如何才是一个好前端。
前端知识了解
框架
为什么需要框架
面试官: 你为什么使用前端框架?
现代js框架存在的根本原因
前端框架和ui框架的区别和联系是什么?
不同的框架
vue react angularjs这三个是同一类型,是js框架,框架的目的是简化开发,但是这几个框架都是针对传统网页开发,直接用在移动端一个是慢,另一个是有些功能不适配。
weex和react native是基于vue和react改造的移动端混合开发框架,把网页包装成app,可以通过js调用原生的一些特性,同时继承原框架简化开发的目的,针对移动端app做了优化,提升了使用体验。
.
此外,以上所有都不适用于小程序,因为小程序和传统浏览器开发不同,为了性能,屏蔽了dom操作,但是也有基于vue和react改造的适用于小程序的框架,如taro,mpvue,比较成功的是uniapp,基于vue的小程序框架,还可以把小程序编译成app。
flutter与上面的都不一样,以上都是基于h5技术,本质上是js引擎渲染,而flutter是通过c/c++调用底层借口,还用了自家的跨平台2d引擎skia来渲染,所以效率很高。
什么是html5, 什么是js,什么是css
Is HTML5 = HTML + CSS + Javascript
Web 前端网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 用来定义页面的结构,CSS 用来描述页面的样子,JS 通常用来处理页面逻辑和用户的交互。
vue react angularjs这三个是同一类型,是js框架,框架的目的是简化开发。
核心竞争力
前端开发人员或许是程序员圈子里对自己的核心竞争力理解最模糊的一群人、
这篇文章认为:无论是react或者是vue,精通他们都只是成为一颗螺丝钉而已,不去改变只会技术的情况,最后的结果就是中年危机。要学会人际关系,懂市场,懂不同领域的知识。
上诉的内容,我认为有一定的价值,但是这个人其实自己多半也是懵逼的。没有一个系统的思维逻辑,大概就是想到什么就说什么。说白了,这个人的说法就是,“你全都懂了还不牛逼吗?”。那我还要你说,我全都懂了我干什么不行非得去打工?
我转了一圈,发现其实说到底,大多数前端人员和大多数后端人员说到底,根本就是熟练使用工具者。
仅此而已。
说到底技术只是工具,除非深入掌握工具,否则就是个工具人。不怪为什么会有中年危机。
技术是工具,这代表了什么呢?就是最终用户不关心你用了什么工具完成的产品,只会关心你完成了什么样的产品。
这是面向用户的人,做应用的人需要考虑的问题。另一方面,开发工具的人,比如从蒸汽机到核电站。这当然也大有可为。
简单的思考一下,我必然是属于做应用的人。
所以我需要考虑的是什么呢?
虚拟现实的应用,所有的应用,都能让你非常有沉浸感吗?现代应用,现代游戏,虽然不是VR或者AR,但是不同游戏给你的沉浸感是否不同呢?为什么同样的木头,有的做出来就是传世之作,有的就仅仅是食之无味的鸡肋?
所以需要提高审美,了解设计的知识,了解市场为什么会喜欢某个产品。
至于技术x,技术是根本,因为用户首先不会喜欢一个“未完成”的应用。UI性能奇低,不就等于买了个水杯结果漏水吗?技术只是一个开始。
往这个方向去思考吧。同时参考建筑师的现况,不要脱离社会现实,不要忘记考虑实际效用,不要一意孤行。
当然,在很多人看来,他身上的“现代主义大师”的标签,还有对建筑设计的独特理解,对建筑细节的把控,甚至是他对传统空间形式的探讨与解构,这些是他能够成功,被他人认可,以及取得如此高成就的原因。
对此,我不置可否。我认为他身上的这些品质和特点,是他成功的必要条件,但绝非是充分条件。
纵观贝聿铭的经历,我们会发现他接触实际建筑设计开发,是从加入房地产大亨威廉·泽肯铎夫的建筑公司开始的。在这里,他完成了从躲在建筑开发者背后居高临下指指点点的建筑师,到可以洞察商业价值和群众需求的一线开发者的身份转变。而更难能可贵的是,这种转变不是割裂的,他没有丢掉建筑师的身份,反而在此之上进行了身份的融合,成为了一名极为难得的可以就价值位置和资金等实际细节发表权威意见的建筑师。
当然,成功的原因还不仅如此。在2011年第1期《重庆建筑》中《贝聿铭的建筑哲学》一文中,作者顾孟潮总结了贝聿铭成功的四大因素(我颇为认同):
1.善于招揽业务;
2.善于与房地产开发者合作;
3.善于与客户交朋友;
4.善于吸引高素质人才。
总的来说则是:贝聿铭善于交际。处理好客户、建筑师、开发商三者的关系,是建筑师和开发商成功的关键,也是客户的幸运。建筑师百分之七十五的命运取决于他招揽业务的能力。
贝聿铭同时也深知建筑师是充当客户和开发者的桥梁,而客户和开发者都是建筑师的“爸爸”。建筑师想要事业有成,必须忠诚地为客户和开发者服务好,开发者更是首当其冲。
他的这种服务的观念其实跟沃霍尔和库哈斯是相同的:建筑设计行业是服务行业,建筑师是服务人员。所以我们回过头看,你会发现贝聿铭更加像一位商业领袖,一家企业的CEO。他利用自己的能力连接了手下建筑师、客户和开发者,并以此来实现自己的建筑理想。
所以,综合看来,无论是库哈斯还是贝聿铭,他们在作为建筑师的思想和技术上的能力是毋庸置疑的。
除此之外,库哈斯善于构建自身的品牌,提升自己的知名度,从而提高自身的话语权;而贝聿铭则通过与开发者身份的融合,能够很好统筹好建筑师、客户和开发者三者的关系,同时赢得客户和开发者的信任,借助他们成就了自己的事业。而套用商业上的名词则是:库哈斯在做流量,而贝聿铭则是在做内容。
如何提高核心竞争力
我需要做什么,需要学习什么?
既然决定做产品,就学习产品的设计,提高自己的审美,理解如何更好的交互。
怎么做呢?
毫无疑问,实打实的做产品,一次次的磨练,就像画画,一次次的画。同时辅之以系统的学习知识,比如罗马建筑,文艺复兴的绘画等。
想方设法的做产品,想法设法的让产品更美,想法设法的让产品更容易使用,也更实用。记录自己的灵感,想办法把他们都融入到自己的产品中
另一方面,提高手艺。就像古人画画写字,先是临摹,然后才成为书法家,才成为画家。这也是我现阶段最主要学习的东西。而技术在不同的产品里其实都一样,比如性能,比如兼容。
想法设法的让手艺更精巧,叫自定义View就自定义View,叫提高性能就能提高性能。做好兼容就做好兼容。
其他
但是高级前端开发人才缺又是十分紧缺,很多中级前端和后端都想挤入(钱多,需求多),那么高级前端开发人才的技术能力可以看做是前端开发的一些技术壁垒。这些可以从一些招聘网站上找到,搜索相关前端架构师,前端teamleader,前端高级开发工程师等职位的jd可以了解到一些。
说白了,你后端支撑再好,可用性,交互做的烂,界面难看,卡顿,性能不好,只支持ie或者只支持chrome,对服务型企业的打击都很大。而能解决这些问题的人,就是前端开发工程师。
想提高不可替代性,一是进入这种前端技术为主导向类型的公司,或者项目中。