如何做一名优秀甚至卓越的WEB前端工程师Ruyn

程序设计之道无远弗届,御晨风而返。————杰佛瑞·詹姆士

我所遇到的前端程序员分两种:

第一种一直在问:如何学习前端?

第二种总说:前端很简单,就那么一点东西。

我从没有听到有人问:如何做一名优秀、甚至卓越的WEB前端工程师。

何为:前端工程师?

前端工程师,也叫Web前端开发工程师。他是随着web发展,细分出来的行业。

Web前端开发技术主要包括三个要素:HTML、CSS和JavaScript!

它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。

随着近两三年来RIA(RichInternetApplications的缩写,中文含义为:丰富的因特网应用程序)的流行和普及带来的诸如:Flash/Flex,Silverlight、XML和服务器端语言(PHP、ASP.NET,JSP、Python)等语言,前端开发工程师也需要掌握。

前端开发的入门门槛其实很低,与服务器端语言先慢后快的学习曲线相比,前端开发的学习曲线是先快后慢。

HTML甚至不是一门语言,他仅仅是简单的标记语言!

CSS只是无类型的样式修饰语言。当然可以勉强算作弱类型语言。

Javascript的基础部分相对来说不难,入手还算快。

也正因为如此,前端开发领域有很多自学成“才”的同行,但大多数人都停留在会用的阶段,因为后面的学习曲线越来越陡峭,每前进一步都很难。

Web前端技术有一些江湖气,知识点过于琐碎,技术价值观的博弈也难分伯仲,即全局的系统的知识结构并未成体系,这些因素也客观上影响了“正统“前端技术的沉淀!而且各种“奇技淫巧”被滥用,前端技术知识的传承也过于泛泛,新人难看清时局把握主次。因此,前端技术领域,为自己觅得一个靠谱的师兄,重要性要盖过项目、团队、公司、甚至薪水。

另一方面,正如前面所说,前端开发是个非常新的职业,对一些规范和最佳实践的研究都处于探索阶段。

总有新的灵感和技术不时闪现出来,例如CSSsprite、负边距布局、栅格布局等;

各种JavaScript框架层出不穷,为整个前端开发领域注入了巨大的活力;

浏览器大战也越来越白热化,跨浏览器兼容方案依然是五花八门。

为了满足“高可维护性”的需要,需要更深入、更系统地去掌握前端知识,这样才可能创建一个好的前端架构,保证代码的质量。

随着手持设备的迅猛发展,带动了HTML5行业标准的快速发展。web领域的技术,大概有10年都没有大的更新了!

现在市场很需要优秀的、高级的前端工程师。

一方面是因为这是一个比较新的细分行业,而且前端程序员大都自学一部分,知识结构不系统;另一方面,大学里面没有这种课程,最最重要的是:北大青鸟这类培训机构也没有专门的前端工程师的培训课程!!

吴亮在《JavaScript王者归来》第一张的序里面说:大多数程序员认为Javascript过于简陋,只适合一些网页上面花哨的表现,所以不愿花费精力去学习,或者以为不学习就能掌握。

实际上,一门语言是否脚本语言,往往是她的设计目标决定,简单与复杂并不是区分脚本语言和非脚本语言的标准。

事实上,在脚本语言里面,Javascript属于相当复杂的一门语言,他的复杂度即使放在非脚本语言中来衡量,也是一门相当复杂的语言!

Javascript的复杂度不逊色于Perl和Python!

如何学习前端知识?

我们生活在一个充满规则的宇宙里面。社会秩序按照规则运行,计算机语言几乎全部是规则的集合。计算机前辈们定义规则,规则约束我们,我们用规则控制数据。大部分时候,对数据的合理控制,来自于你对规则的掌握。

学习HTML,CSS应该先跟着书仔细、扎实的学一遍。然后就需要做大量的练习,做各种常规的、奇怪的、大量的布局练习来捆固、理解自己的知识。

而学习Javascript首先要知道这门语言可以做什么,不能做什么,擅长做什么,不擅长做什么!

如果你只想当一个普通的前端程序员,你只需要记住大部分Javascript函数,做一些练习就可以了。

如果你想当深入了解Javascript,你需要了解Javascript的原理,机制。需要知道他们的本源,需要深刻了解Javascript基于对象的本质。

还需要深刻了解浏览器宿主下的Javascript的行为、特性。

因为历史原因,Javascript一直不被重视,有点像被收养的一般!所以他有很多缺点,各个宿主环境下的行为不统一、内存溢出问题、执行效率低下等问题。

作为一个优秀的前端工程师还需要深入了解、以及学会处理Javascript的这些缺陷。

那么一名优秀的、甚至卓越的前端开发工程师的具备什么条件?

首先,优秀的Web前端开发工程师要在知识体系上既要有广度和深度!做到这两点,其实很难。所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。技术非黑即白,只有对和错,而技巧则见仁见智。

在以前,会一点Photoshop和Dreamweaver的操作,就可以制作网页。

现在,只掌握这些已经远远不够了。无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。

Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好。

Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。

其次,优秀的Web前端开发工程师应该具备快速学习能力。Web发展的很快,甚至可以说这些技术几乎每天都在变化!如果没有快速学习能力,就跟不上Web发展的步伐。前端工程师必须不断提升自己,不断学习新技术、新模式;仅仅依靠今天的知识无法适应未来。Web的明天与今天必将有天壤之别,而前端工程师的工作就是要搞清楚如何通过自己的Web应用程序来体现这种翻天覆地的变化。

说到这里,我想起了一个大师说过的一句话:对于新手来说,新技术就是新技术。

对于一个高手来说,新技术不过是就技术的延伸。

再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。

1、产品经理。这些是负责策划应用程序的一群人。他们会想出很多新鲜的、奇怪的、甚至是不可是实现的应用。一般来说,产品经理都追求丰富的功能。

2、UI设计师。这些人负责应用程序的视觉设计和交互模拟。他们关心的是用户对什么敏感、交互的一贯性以及整体的好用性。一般来说,UI设计师于流畅靓丽、但并不容易实现的用户界面,而且他们经常不满前端工程师造成1px的误差。

4、最终用户。指的是应用程序的主要消费者。尽管前端工程师不会经常与最终用户打交道,但他们的反馈意见至关重要。最终用户要求最多的就是对个人有用的功能,以及竞争性产品所具备的功能。

Yahoo公司,YUI的开发工程师NicholasC.Zakas认为:前端工程师是计算机科学职业领域中最复杂的一个工种。绝大多数传统的编程思想已经不适用了,为了在多种平台中使用,多种技术都借鉴了大量软科学的知识和理念。成为优秀前端工程师所要具备的专业技术,涉及到广阔而复杂的领域,这些领域又会因为你最终必须服务的各方的介入而变得更加复杂。专业技术可能会引领你进入成为前端工程师的大门,但只有运用该技术创造的应用程序以及你跟他人并肩协同的能力,才会真正让你变得优秀。

————————————

关于书籍:

这里推荐几本Javascript书籍:

初级读物:

《JavaScript高级程序设计》:一本非常完整的经典入门书籍,被誉为JavaScript圣经之一,详解的非常详细,最新版第三版已经发布了,建议购买。

《JavaScript王者归来》百度的一个Web开发项目经理写的,作为初学者准备的入门级教程也不错。

中级读物:

《JavaScript权威指南》:另外一本JavaScript圣经,讲解的也非常详细,属于中级读物,建议购买。

《高性能JavaScript》:《JavaScript高级程序设计》作者NicholasC.Zakas的又一大作。

《EloquentJavaScript》:这本书才200多页,非常短小,通过几个非常经典的例子(艾米丽姨妈的猫、悲惨的隐士、模拟生态圈、推箱子游戏等等)来介绍JavaScript方方面面的知识和应用方法。

高级读物:

《JavaScriptPatterns》:书中介绍到了各种经典的模式,如构造函数、单例、工厂等等,值得学习。

《Pro.JavaScript.Design.Patterns》:Apress出版社讲解JavaScript设计模式的书,非常不错。

《DevelopingJavaScriptWebApplications》:构建富应用的好书,针对MVC模式有较为深入的讲解,同时也对一些流程的库进行了讲解。

要做优秀的前端工程师,还需要继续努力:《高性能网站建设指南》、《Yahoo工程师的网站性能优化的建议》、“YSLOW”性能优化建议、《网站重构》、《Web开发敏捷之道》、“jQuery库”、“前端框架”、“HTML5”、“CSS3”……这些都要深入研究!

万事开头难!如果你能到这个境界,剩下的路自己就可以走下去了。

人们常说:不想当裁缝的司机,不是个好厨师。

如果单纯只是学习前端编程语言、而不懂后端编程语言(PHP、ASP.NET,JSP、Python),也不能算作是优秀的前端工程师。

在成为一个优秀的前端工程师的道路上,充满了汗水和辛劳。

THE END
1.基于C语言编写一个简单的Web服务器C语言C语言可以干大事,我们基于C语言可以完成一个简易的Web服务器。当你能够自行完成web服务器,你会对C语言有更深入的理解。对于网络编程,字符串的使用,文件使用等等都会有很大的提高。 关于网络的TCP协议在这里不在多说,大家可以查阅些资料。 工具 开发工具: CLion,编译器 演示效果图 创建socket对象 1 2 3 4 5 6https://www.jb51.net/program/3173974wj.htm
2.C++Webserver从零开始全流程记录对于想走cpp后端开发的同学来说,webserver真的是非常经典的项目,可以说是必做的项目,可以学到的知识太多太多,和纯靠看书看视频完全不一样。做这个项目给我的体验是,我在这个过程中学习的越多,我不懂的就越多。也正是因为这样,才能一直有一股力量在支撑,我要把这个弄懂,这个信念支持着我一直做下去。我觉得,这https://blog.csdn.net/qq_52313711/article/details/136356042
3.redis在yml中配置关闭mob64ca1404baa2的技术博客Web 开发分类 各种数据库对比 NoSQL 数据库 Memcache 和 Redis 的区别? 其它数据库 Redis 简介与安装 Redis 简介 Redis 应用场景 Redis 的下载 Redis 的安装 Redis 的启动 Redis 前台启动(不推荐) Redis 后台启动 Redis 的相关知识 Redis 常用五大数据类型 https://blog.51cto.com/u_16213635/12097620
4.狼叔:Node全栈为前端带来更多可能整体来看,Node.js 在企业 Web 开发领域日渐成熟,无论微服务,还是 Api 中间层都得到了非常好的落地。2017 年,唯一遗憾的是 Node.js 在 servless 上表现的不太好,相关框架实践偏少。 c)不可不见的 Api 中间层 前端越来越复杂,后端服务化,今日的前端要面临更多的挑战。一个典型的场景就是在服务化架构里,前端https://www.infoq.cn/article/node-full-stack-bring-more-possibility
5.的WEB服务器,支持C/C++PythonJava等多语言混合开发WEB应用。cppweb在读数据采用epoll网络模型,以任务队列的方式处理具体请求,回包也在任务队列中处理,理论上cppweb可支持单机10000个以上的并发连接。 cppweb易拓展,作者开发Java、Python等模块,用于支持Java、Python等语言开发cgi程序,开发者可以直接使用C/C++、Java、Python等语言进行混合开发。 https://gitee.com/wangkai0_0/cppweb
6.java从入门到精通java语言程序设计javaweb框架开发教程华C语言程序设计从入门到精通 零基础自学C语言编程入门教程 java从入门到精通 java语言程序设计 java web框架开发教程 华研教育明日科技 C语言程序设计从入门到精通 零基础自学C语言编程入门教程 java从入门到精通 java语言程序设计 java web框架开发教程 分享https://h5.youzan.com/v2/goods/277l3r9wjcx0i
7.C/CWeb框架很明显,这个框架比较的麻烦,但是就是有这些开发人员,它们坚持信念,非要完成似乎是不可能的事情。没有人怀疑C++的力量,但是没有人相信C++能够在Web的上层能够做得更好(虽然以前甚至现在还有人在用C/C++ CGI, 但是我可以想象你痛苦的表情),至少现在没有象Java和.NET那样。注定C/C++是做低层的吗?http://www.360doc.com/content/18/0701/15/6828497_766851335.shtml
8.用C一步步开发web服务器(1)对于php程序员,对于web服务器来说再熟悉不过了,apache,nginx。。但是内心一直想开发出一个属于自己的web服务器,所以借此机会,用c开发出了一款web服务器。作为1.0版本,他实现了以下功能 完成基础的tcp连接,支持基础的client与其连接 使用fork()来支持并发访问服务器 https://www.jianshu.com/p/ef6f07585b7c
9.c做网站(手把手教你做网站)网站制作知识资讯如果想要使用C++来开发Web应用程序,则需要掌握以下技能: 熟悉C++编程语言及其相关框架和库。 了解Web服务器端相关知识,如HTTP协议、Socket网络编程等。 熟悉数据库设计及操作,并掌握SQL语言。 具备前端开发知识,如HTML、CSS、JavaScript等。 C++做网站的实现方式 https://www.semjishu.com/5452.html
10.Avatar——元宇宙和Web3的超级入口拥有一个元宇宙通用avatar或将成为未来普通用户进入web3世界体验的第一站,开发类似模拟人生的游戏化机制来引导新手使用defi,nft产品,而不再进行晦涩难懂的链上交互帮助web3走向主流。 c. 社区&营销 从运营角度说avatar, 虚拟人项目的成功大部分是归功于社区和运营。通过brand & community可以找到最初的种子用户,凝聚https://www.panewslab.com/zh/articledetails/8r628qab.html
11.Python教学Web开发教学全栈开发教学C语言教学汇编教学Win鱼C工作室为大家提供最有趣的编程视频教学。http://www.fishc.com/
12.C++应用软件开发从入门到精通详解其中,Visual Studio 2010是比较经典的版本,这个版本比较稳定且使用流畅,很多公司都在用这个版本,但该版本距今已经有10多年了,很多开源的C/C++代码已经不再支持。比如著名的WebRTC库最低只支持到Visual Studio 2017,已经不再支持Visual Studio 2010了。很多公司为了使用新版本的开源库,为保持库与库之间开发工具的统一http://www.zsrm.cn/news/165779.html
13.奉贤区2022年“人人乐业”周五微聘会,为你而来3、具备视频监控平台或视频联动开发经验; 4、熟练使用Java框架和工具,如Spring boot、Spring Cloud、SpringMVC、Struts、Hibernate、Mybatis等; 5、熟悉数据清洗原理并熟练掌握相关优化方案,熟悉数据库设计,熟练掌握SQL语句。 Web前端开发 人数:2人 月薪:10000-18000元/月 https://www.jfdaily.com/sgh/detail?id=673886
14.Python教学Web开发教学全栈开发教学C语言教学汇编教学Win『用Python做植物大战僵尸』作品展示 纳尼!「FishC」AI小助手来啦!!学习/娱乐/排忧解难 必备佳品~ 【II】请用一行代码找出猪队友 Python爬取B站视频+抓包过程分享 新手必备的 Python 语法总结图|【鱼C特供】 Pygame: 康威生命游戏 【I】添加一行代码,提高10000倍以上的执行效率 https://fishc.com.cn/
15.C设计讲解C语言程序辅导讲解解析C讲解国外C辅导Web开发C设计讲解、C语言程序辅导讲解、解析C、讲解国外C辅导Web开发|调试Matlab程序程序辅导http://www.7daixie.com/2018070210833171.html
16.java中间代码生成器java自动生成代码工具java代码生成器能生成c语言代码吗?用什么方法能实现呢? 按照我的理解,可以的,代码生成器是跨平台,而且是跨语言的(至少是跨文本语言的,UML暂时不好说,)。 代码生成器作为一种开发工具,一般不直接作为程序的一部分,通常也不直接或间接(如通过AOP)被程序调用,他是通过编程的方式生成所需要的代码,然后将生成的代码https://www.xiuzhanwang.com/a1/JavaScript/17047.html
17.Web程序基本概念从事后端开发的Java程序员,目前技术栈主要涉及Java、SQL、Spring MVC、MyBatis等。 4.开发Web应用程序需要解决的三个基本问题 (1)如何将信息呈现给用户以及如何引导用户提交信息 (2)在服务器端如何获取及处理用户提交的信息 (3)在服务器端如何与数据库交互 5.C/S架构 6.B/S架构https://cooc.cqmu.edu.cn/Course/KnowledgePoint/15742.aspx
18.Linux超macOS最讨厌Angular.js框架,调查了7万名开发者的近日,全球知名程序员问答社区 Stack Overflow 对来自全球 180 个国家/地区的 73268 名软件开发者调查后,重磅发布了《2022 Developer Survey》报告,剖析当代开发者如何学习与升级技能,以及正在使用的工具现状。在此,也希望疾步行走中的大家不妨适当停下脚步看看当前的整体开发趋势。https://36kr.com/p/1797480144044544
19.今晚七点metaRTC的发展和应用嘲探讨腾讯云开发者社区点击上方“LiveVideoStack”关注我们 metaRTC是一个自主研发的支持WebRTC/Srt/Rtmp的RTC SDK库,包含多种视音频编解码和处理等,在安防监控、直播、视频会议等方面有较广泛的应用。同时,metaRTC3.0将在近期形成稳定版本,metaRTC将进入4.0时代。4月21日晚七点,我们邀请到了metaRTC作者、WebRTC自主研发资深专家 杨高https://cloud.tencent.com/developer/article/1985859