前端工程师是做什么的?前端发展之路和前景是怎么样

前端工程师做什么的?

前端工程师是互联网时代软件产品开发中不可或缺的专业研发角色。

狭义的前端工程师利用HTML、CSS、Java等专业技能和工具,将产品UI设计稿落实到网站产品中,覆盖用户PC和移动网页,处理视觉和交互问题。

从广义上讲,用户终端产品中所有与视觉、交互相关的部分,都是前端工程师的专业领域。

2005 年计算机构架是什么意思,大多数网页看起来是这样的:

当前网页一般是这样的:

1 前端开发

前端工程师的发展路径和前景如何?

前端是一个相对较新的行业。

互联网发展初期(1995~2005),没有专业的前端工程师。随着互联网的发展,大约从2005年开始,前端工程师的正式角色已经被业界所认可。到了2010年,互联网开始全面进入移动时代,前端工程师的地位越来越重要,前端领域的技术发展也越来越重要。快的。

各种新思想、新设计模式、新工具、新平台发展迅速,对前端工程师的技能要求也越来越高。

这里有一些数据可以说明前端行业的快速发展:

1

资料一

2010 年后最流行的新编程语言中有不少是与前端相关的,例如 Dart、Clojure、Coffee 和 Type。

2

资料二

Java作为最重要的前端编程语言,近年来无论是代码量还是关注量都稳居Github平台热门编程语言榜单中。

3

资料三

行业对前端的需求不断增加,前端程序员的薪酬处于行业领先地位。

近年来最流行的许多编程语言都是Java的替代品

TOP10最热门编程语言中的Java

近年来,互联网公司的前端团队每年都在翻倍

Java工程师平均薪资位居编程语言工程师前10

2 能力要求

前端工程师需要什么样的知识和技能?

有人说前端工程师的技术栈是这样的:

其他人这样说:

其实前端工程师的核心技能是:

在典型互联网公司的产品开发过程中,前端工程师与其他角色的关系大致如下:

前端是最接近产品和设计的工程师,起到连接产品和技术的作用。前端负责用户能看到的部分,所以也是离用户最近的工程师。

在多终端时代,如果一个产品同时支持PC端和移动端,前端工程师还需要处理更多的角色:

Java是前端最重要的技能,所以优秀的前端工程师必须具备扎实的Java基础技能。

Java 编程语言也是编程领域的热门话题。今天,它不仅用于开发Web,还可以用于各个方面。

Java可用于“树莓派”等智能硬件芯片的开发

前端工程师也是软件工程师,所以软件工程师的基础知识也很重要。这些基础知识包括:

数学

电脑系统

操作系统

数据结构和算法

编译原理

HTML和CSS对于前端工程师来说也是非常重要的基本技能。许多学生,尤其是那些喜欢写代码的学生,往往会忽略标记语言。事实上,ML 也是 UI 相关领域中非常重要的内容,不容忽视。

图片[1]-前端工程师是做什么的?前端发展之路和前景是怎么样-老王博客

HTML:生活标准

HTML 和 CSS

有同学问:“前端工作需求很多,而且一直在变化,实际技术点不多,产品决定业务逻辑,搞底层会不会更有挑战性和职业前途?基础服务?”

事实上,越接近业务和产品级别的工作,需求的差异就越大,变更可能就越频繁。不仅前端变了,在PHP服务器上做业务的同学也面临同样的问题,业务逻辑也变了。层数越低计算机构架是什么意思,通用性越强,变化也相对较少。

然而,事情有两个方面。首先大家可以想一想,到底是底层基础服务市场大,还是互联网业务和产品市场大。其次,基础服务的泛化很容易实现,但是如何在产品层面进行泛化,在业务驱动的产品开发中如何利用工程和工具提高开发效率,其实是一个难题。

丰富的互联网产品已经改变并且正在改变我们的生活,但是作为产品创造者,工程师如何让他们的生活变得更好,值得在这个领域进行研究。

另外,不要以为实际技术点不多,举几个例子:实现曲线曲面动画,计算地图最短路径,制作类似于gif图片的png静态图片做局部运动,彩票游戏、带有物理效果的HTML5游戏、3D图表、增强现实的WebGL视频流处理等等,这些都是前端领域遇到的实际问题。

在 Java 的情况下,设计最合适的模型来有效地解决实际项目中的实际问题本身就具有挑战性。作为典型的新一代编程语言,Java 功能丰富、使用灵活、性能卓越。面向对象、函数式编程、各种设计模式、MVC 和 MVVM,这些本身就足够吸引人。

前端需要解决界面和交互问题。其实UI层面的问题一直是软件工程中的难题,因为UI是不断变化的。

各种版本的浏览器、Web标准、移动设备的兼容、多终端的适配,给前端工程师带来了极大的挑战,对前端工程师的能力也提出了很高的要求。很多UI问题都有不止一种解决方案,很多问题都有非常巧妙的思路和绝妙的解决方案。前端是工程师中非常有创造力的群体,因为这个行业需要丰富的创造力和想象力。

前端工程师也是Web标准的制定者、实践者和推动者,而目前的W3C标准不仅限于浏览器,还包括各种手持智能设备、车载设备、智能家居等。在未来的万物互联时代,前端将不仅仅是网络工程师,而是计算机交互各个领域的工程师。

3 前端工程师的学习与成长

前端领域发展迅速,各种新技术、新思路不断涌现,这是一个很好的现象。

但是前端的快速发展也带来了一些问题。比如有同学问我应该学什么?Angular.js, React, Node.js, ES6、ES7、Coffee, Type… 好像总有太多东西要学,有些东西好像换成其他新的技术在被理解之前。被取代和“过时”。

其实还是那句话。前端工程师首先是软件工程师,基础最重要。如果基础不扎实,所有的应用技能都是“浮云”。前端的基础是什么?HTML、CSS、Java基本功,数学基本功、算法、数据结构、操作系统、编译原理。

一个优秀的前端工程师必须有自己的专业领域,并且钻研足够深入,同时要有远见,能够“跨界”。你可以把前端当成一种职业,但不要把你的技能局限在前端领域,因为有很多事情只有站在前端之外才能看得更清楚、更透彻。

学东西时不要盲目跟风。每个人都在谈论AngularJS并立即去学习。过了几天大家都在谈论 React,然后放下 AngularJS 学习 React。前端领域的知识点很多,值得学习的东西也很多。聪明的学生懂得花时间去学习系统的知识并深入研究,因为只有这样,他们才能总结出规律,形成方法论,从而最大限度地发挥学习的价值。

面试过程中,面试官询问如何优化前端性能。有的同学可以回答雅虎的性能优化军规。他们反复强调使用工具压缩静态资源,但是他们搭建的博客的nginx服务并没有启用gzip。. 我们都知道要合并静态资源,减少HTTP请求,但是为什么减少HTTP请求,减少请求后能提升多少性能,能获得多少收益呢?你需要了解这些问题,也需要对 HTTP 协议本身有深入的了解。

还有一个更有趣的问题。大家都说写HTML的关键是语义。那么语义究竟是什么?这个问题难倒了很多学生。标签必须符合语义。这个答案似乎是一个简单的标准,但是什么样的标签是语义的呢?强调使用strong而不是b?那么如果有一个外星文明,在他们的语言中strong相当于地球的bold,bold相当于地球的strong,那么他们应该用strong还是b?我们说 i 标签的意思是斜体,那为什么 fontawesome.io 用它作为图标字体标签呢?这是“反语义”吗?

讲一个故事

过去,许多农村都有民间染坊,制作染布用的染料。这个染房里有一个大铁缸。通常,一个非常强壮的工人会拿一根长铁棒在染缸中用力敲打。敲门声越大,染料产生的颜色越多。明亮的。为什么铁瓮染料打得越用力越好?染坊的人都说这是代代相传的经验,其实是真的。真染料的颜色与打浆的力度有很大关系。直到有一天,一位从村里出来学化学的大学生意识到,只需在染料中加入适量的铁屑,就能使染料与含铁氧化物发生化学反应,变得更加多彩。事实证明,“

同样,如果我们不了解技术的本质并停留在其应用上,那么我们只是技术宗教的追随者。因此,在周爱民老师的《Java语言精髓与编程实践》中,说计算机语言就像神父手中的神杖。神杖换了,神官还是神官,世人还是要敲他们的头。祭司已经掌握了与神沟通的方法,而世人只看到了权杖。

4 按兴趣选择前端

刚开始编程的时候学的是C语言,但是一整本书除了教我如何在黑色控制台上输出Hello World和其他各种字符,或者用键盘打字还是输出字符,就没有别的了。

学了一阵子,心碎了一阵子

,

因为我觉得这和我想的不一样,学了这么多知识,不知道有没有“学”过C语言,因为在我看来,那些五彩斑斓的操作系统和各种应用软件,显然有一个它和黑暗的控制台之间的巨大差距。

回想起来,当时的想法当然是幼稚可笑的。那时我不知道编程语言和操作环境的区别,对操作系统、用户API、硬件接口、网络服务等等一无所知。但这不是我的错,因为 C 教程没有告诉我任何关于它的内容,而且我不知道在学习了 C 语言的语法之后还要学习什么。

相对来说,web开发对我来说更有吸引力,因为不需要安装任何环境,只需要在文本编辑器中输入一些字符,保存后打开浏览器,立马就能看到丰富的视觉效果,这就是前端的优势结束,您的努力立即可见。

相比于死板的输入输出,web开发在界面的可见层上要丰富多彩得多,这点很吸引我。如果这也能吸引你,让你着迷,那么你很适合学习前端。

在选择前端作为职业之前,你必须清楚地判断你是真的对前端开发感兴趣。如果你选择做前端,你应该确认你喜欢并适合做前端,而不是一份看起来体面、薪水高的工作。

如果你对构建丰富多彩的界面和处理各种交互逻辑不感兴趣,甚至无聊,那么最明智的选择就是放弃成为前端工程师的想法——因为你选择了自己不喜欢的职业,忍了几十年,直到退休是一件很悲哀的事情。

所以,重点来了!

5 什么对学生很重要

对于学生来说,我们更关心的是:

关于简历,有同学提到,现在好像很多公司都希望学生能学 Node.js 和 React。我不知道该怎么办。

我想说的是,我们不要求学生知道这些东西。相反,我个人鼓励学生利用他们的时间来打基础。把你真正擅长的写在你的简历上,我们不会因为你在简历上没有看到 Node.js 或 React 而忽略你。只要你真的热爱前端,并且用心去学,你应该明白如何用前端的基础知识打动我。有些学生喜欢在简历上堆积词汇。其实这不是什么好事,因为如果你写了一些你对自己不太了解的东西,最后被面试了,你肯定会得到一个负分。

技术本身有深度。学生 A 说:“我知道 React,但我什么也没做。” 学生 B 说:“我用 AngularJS 写了一些小的个人项目。” 同学C说:“我上个月用了flexible layout,用这个idea写博客,结果Android系统4.1版本的Webkit浏览器出现显示bug,终于解决了像这样。” 你说A、B、C三个同学中,我们选哪个同学?

面试是一个相互交流的过程。我们希望看到大家在前端领域的能力和潜力。“知道”一件事并不是有价值的能力,尤其是在知识廉价的互联网时代。我们的同学不能像背书一样死记硬背,而应该真正背诵。我们的高等教育机构不只是教人们知识,而是如何实际学习和进行研究,不是吗?

如果你真的对前端感兴趣并且有潜力,稍微想一想,你应该知道如何学习它。

最后,祝大家都能成为优秀的前端工程师。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论