A. 前端工程师都有什么样的职业规划路线
对于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了,坚持去认真走,就好。
一、职业方向定位
首先,只有确定好自己的职业方向,才能做好职业规划。在我看来,做WEB前端技术能够找到的职业方向有以下几种:
(1)资深WEB前端工程师
这个方向算是一个WEB前端最基本的选择了,在国外,很多老外都能够把自己的专业做到极致,能一辈子就在一个专业领域不断学习和积累。主要在于内因和外因
两方面,内因是老外通常思想比较简单直接,容易一直专注于一个领域;外因是国外的环境很好,能够良好的支撑这样的职业发展道路。反观国内,从内因来
讲,WEB前端技术人员还是蛮浮躁的,通常会因为WEB前端知识的更新速度太快而觉得学习起来辛苦,最终转向后台或其他道路。从外因来讲,WEB前端人员
没有获得公平的待遇,可能从HTML页面制作就开始并沿袭下来的,从来WEB前端人员都比后端人员低一等,貌似前端就是“浅显”的代名词、后端就是“深
奥”的代名词,这也直接造就了前端人员的收入无法和后端人员媲美,同时直接影响到前端人才市场的活跃程度。另一方面,前端的技术入门较容易,造成另一个极
端情况:人员泛滥、人才稀缺。我想对所有的WEB前端工程师说:面包总会有的,要耐得住寂寞!我个人比较推荐这个职业发展方向,因为,在这个方向下,只要
足够耐心、厚积薄发,成功的概率是非常高的。同时,这是一条最单纯的路,我们更多的是花费精力在技术的钻研上,而不是办公室政治等其它琐事。
(2)资深WEB架构师
说功利点儿,我喜欢这个方向,既兼顾了工作的单纯性、又能够减少实际Coding的工作量能腾出更多时间钻研技术。在国内,WEB前端工程师遇到较多的情
况是总是反复编写着同样的代码,总是面对着同样的技术和产品,容易感觉枯燥。由于我们拥有最为广泛的WEB相关知识沉淀,使得我们更加容易成为一名架构
师。这个职业发展方向不如第一种来得平滑,主要是作为一名架构师不得不学习:后端技术、DBA、Platform等内容,而这种学习通常需要实际操刀做项
目,不是自己在家里写两个Demo就好的,这就势必会遭遇一段时间的阵痛期。虽然不是很平滑,但是,对于一个大局观好、悟性好、知识面广的前端工程师,我
推荐你们努把力,走一条光荣的架构师之路吧。
(3)自己创业
其实,自己创业是最好的道路、也是成功率最低的道路,挑战和机遇并存。这里,作为一个前端技术人员,需要将自己的视野更多放在行业的动态、产业链的动态、
相关产品领域的动态,把关注细节的优势继续保持,同时,增强自己把控一个产品乃至一个公司命运的能力。但是,这条道路和技术之路稍有分歧,后续将不再赘
述。
二、职业发展目标
我都有一个最终的目标,在这个目标之上,我们需要给自己制定一系列学习和成长计划,制定的方法如下:
第一、梳理知识架构;
梳理知识架构的目的在于,我们要了解清楚,哪些技术是前置、哪些技术是后继,那些技术是深度、哪些技术是广度,按照这两个维度梳理好知识架构之后,我们才能准确地制定清晰的成长目标、高效的成长计划。
第二、分解目标;
我认为,大抵可分解为三个阶段,包括:起步阶段、提升阶段、成型阶段。这三个阶段分别对应着不同的目标:
起步阶段:
1、基本知识的掌握
在我们梳理的知识架构中,按照我们分析的两个维度里最前置的、最浅显的部分,作为打基础的阶段,必须要在这个过程中更多投入到实践中去,我们通常做的多了、熟练了,就认为这部分知识和内容掌握了。
2、常用工具的掌握
对于常用工具的掌握应该掌握一些有大公司或专业团队背景的流行工具,这些工具的熟练掌握能够提升专业度、职业度,同时,能提升我们的工作效率。我们只有在 检验自己对于知识和技能熟练程度的时候,才会自虐式的用Notepad去编写页面、css和脚本等内容。
3、沟通技巧的掌握
通常做技术的人会被定位为“不善沟通”的人,这是为什么呢?究其原因,主要是因为多跟程序和代码打交道,跟人的沟通较少导致。这种时候我们要特别注意增加
和人沟通的机会,着重提升这块儿的能力。另一方面,我们通常被称为“不懂沟通技巧”的人。在国内,我们的技术人员通常都是自己制定方案、自己执行方案,在
执行过程中又缺乏相关产品、交互设计等人员的沟通,大多是在自己的思路贯彻下进行开
发,久而久之,我们习惯于信任自己的观点、在自己的视角看问题,对于挑战总是百般地“据理”力争。我们需要更多提升的是,如何在对方的视角看问题、如何在
用户的视角看问题。
4、良好的开发习惯
开发习惯是养成的,一旦有不好的习惯,对于将来去修正带来的将是很大的麻烦,我们在培养良好开发习惯一定要从起步时做起,例如:写代码之前先分析、先写文
档、先写注释。定义变量最好能用直接可理解的语义,最好是拼音,别整英文,尤其是生僻单词,将来自己忘了还要开金山词霸。文件最好有有意义的文件夹命名来
管理,文件名最好有意义,需要版本号的最好能和项目版本号一同更新……等等。
提升阶段:
1、高级技术的掌握
在提升阶段对于知识和技能掌握,我们需要从梳理好的知识架构中选择更深一层次的技术进行学习,选择之前,我们先通过类比或预估的方法,衡量自身学习的难
点,以学习难点和自己最不感兴趣的部分为主。这样推荐大家的原因是:这个阶段我们兴趣正浓,已经度过了苦涩的起步阶段,到达了兴奋的提升阶段,我们要用兴
趣和兴奋去挑战最困难的部分,在我们信心受挫和兴趣浓厚之中找到平衡。同时,辅以其他的深层次知识一起学习和研究。
2、产品思想的学习
没有正确的产品思想,很难设计出良好的程序,无论从界面、交互,还是接口、逻辑,不能够理解产品、理解用户需求,我们会给自己造成很大的麻烦,例如:我们
千辛万苦用最新技术、最复杂的实现做出的功能,却得不到使用者或领导、同事的认可。为了使我们的工作和学习更加有效率、避免无用功,我们需要不断的学习产
品的思想,只有理解了产品的思路,我们才知道用我们的技术去输出什么。
3、各种框架的学习
框架是我们提高工作效率的优秀手段,对于框架的学习是成长必经之路。我们学习框架的路线通常应该是:使用——》分析——》个性化定制——》模仿编写自己的
框架。只有大量的使用,才能明白设计框架者在设计背后的思路,只有了解到设计的思路,才能做正确全面的分析,只有正确全面的分析才能支撑我们去对其裁剪或
扩展,只有经过实际分析、修改别人的框架,才有可能写出优秀的、自己的框架。学习通常的路线是:学习、理解、模仿、创造。
4、富客户端应用的学习
随着带宽和计算机性能的提升,以及WEB2.0的如火如荼,富客户端应用充斥着互联网,如果你不懂得富客户端应用,你就不能称之为一个合格的前端技术人 员。可以按照:Flash动画——》Flash编程——》
Flex——》——》Air——》Silverlight动画——》Silverlight编程
的步骤学习,先学Flash后学Siverlight的原因,一来Silverlight还不太成熟,二来,实际Silverlight借鉴了很多
Flash的思想,最好在学习的时候不要本末倒置。
5、各种网络协议的学习
WEB前端技术就是云上的技术,云的协议有N种,我们应该着重学习:TCP/IP,UDP,HTTP,POP3,SMTP这几种协议,在开发WEB前端应
用过程中,这些协议是我们的技术的载体,有时候决定了我们的应用是否能实现、有时候决定了我们的应用是否高性能,同时,这些协议还是我们和后端技术交互的
重要手段,这些协议就像是密码字典,帮助我们把后端传输过来的密文解释成我们前端技术能够理解的明文。
6、程序设计
这个阶段我们需要学习OO、UML、设计模式、设计方法……,我们要让技术开发工作变成有目的性、有计划性,并且,这些目的和计划必须有理论的支持,这
样,我们设计出来的程序才能够更优秀、我们的开发才更有效率,这样,我们的技术才能有所提升。为什么要学习程序设计呢?主要是,就算我们不用Flash的
ActionScript编写程序的前端逻辑,我们至少要把我们自己的Javascript函数、包的定义规划起来,避免将来自己或他人维护代码的时候出
现问题。程序设计能力,在技术人员仍然被看作是程序员的这个年代,是灰常、灰常重要滴。
成型阶段:
到了这个阶段,我也没什么好说的了,如果能达到这个阶段,就证明后续的成长之路是异彩纷呈的,是成为一个资深WEB前端工程师,还是成为一个资深WEB架
构师,亦或其他,都要具体分析自身的特点和兴趣所在。如果是资深的前端工程师,我觉得更重要的是去作新技术的研究,互联网技术发展速度日新月异,不断学习
新技术,否则就被淘汰。此外,我建议在知识的广度、深度方面最好能挑选一个自己最擅长和最感兴趣的一两个领域深入钻研,不要挑太多,多而不精。
经验可以积累,但梦想永远不能磨灭
B. 要想成为前端架构师,应该学习哪些技术
我比较认同的有winter和贺师俊还有张云龙这三位。其他没提到的可能我不太关注,高手很多,但是能达到架构师的其实不多,最多算是高工,或者某一领域专业的牛人,我觉得就像前3位提到的大神,他们的编码能力过硬,算法能力,计算机基础知识都没的说,许多回答都是干货,有理有据,show me code风格的,而且解答不会模糊,直接简要,能做到这些必须是肚子里有货,我觉得这算是硬件基础。
2,编码能力好,熟悉各项标准,算法好,API熟练,就能成为前端架构师了么?不不,这些只能说你是个高工,你说你自己写了许多框架和开源包,各种功能,前后端都有?no no no,也是最多算是高工而已。至少我是这样认为,为什么呢?因为你踩的坑决定了你架构的能力,你的硬件基础只决定了你遇坑之后的解决能力。
打个比方,前端工作3年,一直在电商领域,或者一直在做sns,或者一直在做webview里的开发,这种经验是不具备前端架构能力的,什么?都是写js?没区别?错了,你让一个写了3年电商框架的人去写一个斗鱼tv或者搜狐视频试试,写是能写出来,但是选型问题真不会是最佳,因为他踩的坑一定没有专注这个领域的人多。什么是架构能力?其实说白了就是帮助最后项目顺利开发完成,易扩展,好维护,有规范,能解决一些刚开始人看不到的麻烦。这些能力都是从一个一个真实得项目中锻炼出来的,而不是说只做了一家公司的一个项目之后就可以说自己是前端架构师了。。
说的比较乱,其实简单比方就是个经验包的问题,你的经验比你的技能更大的决定了你的架构能力。
3,沟通表达能力,这个其实不是特别重要,但是单独拿出来说,就是因为如果你的想法不能在团队有效的执行下去是不行的,你必须也一定是最后说服团队使用你的方案的人。
所以最后,回到up主问的问题上来。
从一个前端工程师,如何根据目标,制定计划,前端架构师需要涉及哪些知识点,还有哪些知识点是前端工程师所不具备的。希望知友提点。没什么知识点,你必须对你要做的东西有经验,至少是做过1-2次(公司级项目),这才是架构师的价值,如果你根本没做过同类的工程,你有什么资格去架构他呢?现学现研究那只是高工而已。
至于题目问的如何成为一个前端架构师,我觉得那些已经被很多人叫成前端架构师的人,自己都不觉得自己算是吧,只是入行久一点,活的长一点,经验多一点,做的项目杂一点,跳槽次数猛一点,比你努力一点而已。
C. 互联网软件架构师是前端还是端的
达到架构师级别的程序员,通常不会区分前端后端的技术分类,甚至淡化编程语言本身的东西, 根据业务不同,
中小型业务架构师可能还会比较关注代码层面的东西( 怎样架构自己的系统,能够应对业务发展需求添加更多功能又或者是方便更多码农们快速使用进行业务开发而且能够在较大程度上面保证软件开发质量 ),
像大型/超大型业务的架构师通常是不去关注详细代码的,需要你对计算机通信7层协议都非常清楚,而且在应用层面上面,能够在合适的场景选择合适的IT技术方案快速作出较合理的选择。
D. 前端和后端开发有什么区别吗
Web前端和后端的区别:
1、展示方式
前端是用户可见的界面,网站前端页面也就是网页的页面开发,比如网页上的特效、布局、图片、视频,音频等内容。前端的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并配合后端做网页的数据显示和交互等可视方面的工作内容。
后端用户看不见的东西,通常是与前端工程师进行数据交互及网站数据的保存和读取,相对来说后端涉及到的逻辑代码比前端要多的多,后端考虑的是底层业务逻辑的实现,平台的稳定性与性能等。
2、技术实现
前端开发用到的技术包括但不限于html5、css3、javascript、jquery、Bootstrap、Node.js 、Webpack,AngularJs,ReactJs,VueJs等技术;后端开发以java为例主要用到的是包括但不限于Struts spring springmvc Hibernate Http协议 Servlet Tomcat服务器等技术。
3、工作内容
前端工程师负责Web前端开发、移动端开发、大数据呈现端开发。Web前端开发针对PC端开发任务;移动端开发包括Android开发、iOS开发和各种小程序开发,在移动互联网迅速发展的带动下,移动端的开发任务量是比较大的;大数据呈现则主要是基于已有的平台完成最终分析结果的呈现,呈现方式通常也有多种选择。
后端工程师负责平台设计、接口设计和功能实现。平台设计主要是搭建后端的支撑服务容器;接口设计主要针对于不同行业进行相应的功能接口设计,通常一个平台有多套接口,就像卫星导航平台设有民用和军用两套接口一样;功能实现则是完成具体的业务逻辑实现。
前后端开发的相似点:函数式编程、模块化思想、分层思想、单元测试、lint、assert 方法、日志、声明式和命令式的实践经验、数据处理的本质实践与思考、部分库的使
前后端开发的区别:前端、重用户体验、对UI库的依赖较强、界面的个性化较强、处理各个浏览器平台对界面的渲染差异、后端、并发处理、事务、部署复杂,特别是微服务出来后、具体的功能特性,如大数据分析,AI方面的工作。
通过以上总结的Web前端和后端的区别,可以看出前端开发的内容是我们在网页看到的内容,而后端开发主要业务逻辑规则。
有的人认为,前端很好学,后端不好学。也有的人认为,前端不好学,后端好学,归根到底还得看个人兴趣。
E. 前端和后端的区别,哪个好学一点
前端和后端是从开发者角度来说的,前端就是用户可见部分的优化、交互功能开发,随着软件WEB化,Html5前端开发技术的发展,前端的技术方向越来越多,可开发解决的功能很多。
web前端有广阔的发展空间,app、小程序、移动端、pc端等都是需要前端技术的开发支持才能够完成,技术门槛相对较低、需求量较大,薪资待遇良好。只要是互联网端的客户界面,就需要前端来制作完成,前端开发的编程量不大,但是需要部分编程,入门简单,但是要学的深入需要一个过程。
Web前端招聘岗位
• 前端开发工程师、Web开发工程师、网页开发工程师、HTML开发工程师...
• H5开发工程师、移动应用开发工程师、App开发工程师、小程序开发工程师...
• JS开发工程师、Vue.js开发工程师、Node.js开发工程师、前端架构师...
• 小游戏开发工程师、数据可视化开发工程师、WebGL开发工程师、WebVR开 发工程师、Web安全工程师...
在互联网行业,前端有WEB前端、HTML前端等,随着互联网技术发展,就业方向也有很多。web前端的就业方向有web架构师、web前端工程师、HTML前端开发工程师、网页设计师等等。
HTML前端开发
与Web前端开发不同的是,使用HTML5不仅仅可以开发前端,还有网页游戏,手机APP,使用浏览器进行3D渲染等一系列建立在HTML5标准与搭载其标准浏览器上的开发,而未来可能会有更多的功能分支并入HTML5标准。web前端工程师
这个方向是目前从事Web前端开发的主要就业方向
Web架构师
薪资普遍比较高,技术要求高,掌握多种技能,包括:后端技术、DBA、Platform等等,甚至包括网站优化SEO技术。
数据方向
数据研发这个是在Web开发的基础上用数据附能,懂可视化的一定是有前端能力的,懂hadoop的一定java要熟悉,属于Web开发的拓展方向。
大前端方向
比如阿里,在大量实践rn和weex;由于公司内部安卓/ios式微,一定程度上,前端把ios和安卓收编了,统称大前端。
图形学方向
前端自然是与图形学有千丝万缕的联系,除了上面提到了可视化,还有相关3d引擎的开发工作。做这一行要求也非常高了,图形学相关的算法,3d引擎的开发,这都需要图形学相关知识。
F. 前端架构师是做什么的
前端架构师的工作:
1. 他需要制订一套跟上下游环节更高效配合的技术方案。具体说有改进模板(视图层)的开发方式,团队内部开发方式,维护和测试方式等。
2. 他要把关各种技术的实施方案。哪种好,哪种有风险,哪种还不成熟,哪种成本高。需要“把握问题的关键,平衡设计”的能力。
3. 他要主动联合相关部门,从性能、易用性、安全性等方面提升产品的价值和竞争力。
4. 他要正确选择适合产品的框架和库(或设计这样的框架和库),建立建全规范体系。保证代码风格的一致性(解决开发效率的问题)。
5. 他要有前瞻性。引入先进的前端技术落地到具体的产品中。
6. 他要负责团队成员的甄选。
7. 他要能做PPT,向高层布道。
G. 前端与后端的含义和区别是什么
前端和后端是从开发者的角度来讲的
前端就是用户可见部分的优化、交互功能开发,随着软件WEB化,Html5前端开发技术的发展,前端的技术方向越来越多,可开发解决的功能很多。
web前端有广阔的发展空间,app、小程序、移动端、pc端等都是需要前端技术的开发支持才能够完成,技术门槛相对较低、需求量较大,薪资待遇良好。只要是互联网端的客户界面,就需要前端来制作完成,前端开发的编程量不大,但是需要部分编程,入门简单,但是要学的深入需要一个过程。
Web前端招聘岗位
• 前端开发工程师、Web开发工程师、网页开发工程师、HTML开发工程师...
• H5开发工程师、移动应用开发工程师、App开发工程师、小程序开发工程师...
• JS开发工程师、Vue.js开发工程师、Node.js开发工程师、前端架构师...
• 小游戏开发工程师、数据可视化开发工程师、WebGL开发工程师、WebVR开 发工程师、Web安全工程师...
在互联网行业,前端有WEB前端、HTML前端等,随着互联网技术发展,就业方向也有很多。web前端的就业方向有web架构师、web前端工程师、HTML前端开发工程师、网页设计师等等。
HTML前端开发
与Web前端开发不同的是,使用HTML5不仅仅可以开发前端,还有网页游戏,手机APP,使用浏览器进行3D渲染等一系列建立在HTML5标准与搭载其标准浏览器上的开发,而未来可能会有更多的功能分支并入HTML5标准。web前端工程师
这个方向是目前从事Web前端开发的主要就业方向
Web架构师
薪资普遍比较高,技术要求高,掌握多种技能,包括:后端技术、DBA、Platform等等,甚至包括网站优化SEO技术。
数据方向
数据研发这个是在Web开发的基础上用数据附能,懂可视化的一定是有前端能力的,懂hadoop的一定java要熟悉,属于Web开发的拓展方向。
大前端方向
比如阿里,在大量实践rn和weex;由于公司内部安卓/ios式微,一定程度上,前端把ios和安卓收编了,统称大前端。
图形学方向
前端自然是与图形学有千丝万缕的联系,除了上面提到了可视化,还有相关3d引擎的开发工作。做这一行要求也非常高了,图形学相关的算法,3d引擎的开发,这都需要图形学相关知识。
H. 前端架构师是怎样定义的在前端开发过程中,承担怎样的职能
前段构架师总体的定义是一个具有精通各种前端开发技术可以总体规划处一个网站前台项目。
1、具体的说前端构架师是一个具有网站前端基础知识如html、css、js等和一些前端框架如jQuery、angularjs等等前端技术,可以规划处一个前端项目的实施、测试、优化等过程,并且熟悉后台语言可以和后台开发人员合作达成良好的交互和数据与表现的分离。另外还需要明确网站的定为,满足客户的需求,可以留住客户,使用网站这种手段为公司提高效益,前端是直接和用户交互的媒介。
2、职能:包括规划和实施整个项目,制定项目中的一些规范,明确人员的分工,解决团队中的协作问题以保证项目的按时完成。