咨询热线:

红姐备用图库 > 前端工程师 >

一名前端工程师的职业经历

2019-07-08 12:08 来源: 震仪

  我做前端已经有五年的时间了,从大学刚毕业的时候,我是一个完全什么都不懂的小白。虽然我大学里学的是软件工程专业,但是因为在大学里荒废学业,每天只知道打游戏,基本上到大学毕业之前我是什么都不会的,而且大学里是没有教前端相关的东西的。

  我是在大学毕业之前,两三个月,自学了一点点前端的皮毛,也就是会写一点点的html和css。那个时候找工作也不容易,终于有一个公司收留了我,虽然说工资什么的我们暂时按下不提。但是至少他们要我,我就非常地开心了。

  从那个时候开始,因为有了项目要做,所以我逼迫自己,每天去学习新的内容。那个时候我从jQuery开始做,因为公司的项目比较特殊,就是单页应用,总共加起来大概就五六个页面,但是要一次性全部加载完,后续的所有数据都是根据接口去获取。那个时候没有框架,没有React,ngular也刚刚出来,还并不流行。所以那个时候我们就用jQuery。

  然后我就想办法去做,第一版做的非常的烂,就一个js文件我写了3000多行代码。所以在那个时候我逼迫自己想办法去解决各种问题。我就针对自己当时的认知,比如说js文件太大了,应该怎么办?

  然后我去网上搜,我发现了sea.js这个东西。我学习了它异步加载JavaScript的方法,后来才把它引用到项目里。

  当我发现代码量多了,很难去维护这个逻辑,还有页面的切换。于是我就去网上搜资料学习,发现有backbone.js这个东西,它可以帮我解决这个问题。

  当我再去接触到这些Vue、React这些框架的时候,我先去学习了一遍它们主要是解决了什么问题,它们主要的功能有哪些。然后我再尝试用到项目里面去。那个时候,我刚开始学的是Angular,当时也没有了解到有构建工具这个概念。那时候最多只知道有Grunt,帮你去压缩一下js。

  后来又做了一些项目,发现了很多的问题,我再去想办法去解决。这个时候才会知道有Webpack这些模块化组织代码的工具。我就是在这种环境下一步一步成长起来的。我所有学的内容,对于前端的了解,基本上都是基于我想要去解决一个问题,然后再去网上搜相关的内容,然后去想办法把这个问题解决掉。

  所以对于我来说,学习这个东西,你要知道你要解决什么问题。然后你学的这个东西,它解决了什么问题。它适不适合用在你遇到的这些问题上,以及你在学习这个内容之前,你必须要对它的整体有一个了解。不然的话,你就是瞎用。你用的方法可能根本就不是这个框架要解决的问题。

  比如Vue,大家对于vue整体有一个概念之后,再去用到一个项目里面去。而项目一开始我们做的时候并不要求做的特别的复杂。只要你基础扎实,你肯定有办法去解决这些在项目里碰到的问题。而在解决问题的过程当中,才是你掌握了你学习到的东西,巩固了你学习到的这些内容的地方。

  五年前的前端,框架之流刚刚兴起,也就是Angular带的头,那个时候刚出来没多久。那个时候流行什么呢?就是写页面模板。

  我们写好html、css,以及这个页面上简单的动画效果,比如说点击一下有什么事件之类的。然后这个东西写好之后干嘛呢?丢给后端人员他们用后端模板,比如说最多的用Java,Java有jsp模板语言,接着把数据填进去,就OK了。

  这个时候我们一个网站有很多页面怎么办呢?比如说我们写了很多的html页面,写好之后交给后端人员,然后他们整合在模板,再把数据动态插进去。这样的话,每个http的请求发送到后端那边,后端根据这个http请求,返回不同的模板,并且把数据渲染进去,最终返回给用户。

  我们把渲染模板的操作从后端挪到了前端来做。因为把模板渲染这部分拿到前端来做,所以很多业务逻辑的判断、渲染、数据获取等都要在前端来做。这个时候就大大加深了前端的业务逻辑。它包含的内容就比以前上升了好几个量级。

  在这种情况下,我们需要一个框架去整理代码。而这个时候就会出现各种帮助我们前端开发者去处理这些内容的东西,比如说我们有了前端路由的概念,我们有了store状态管理的概念。以前MVC的时候,还有过其他的处理数据的方式,反正各种各样的工具帮我们去处理这个问题。

  伴随着前端业务代码越来越复杂,我们用以前的方式去写JavaScript代码,效率非常的低。因为我们写的JavaScript代码很多都受浏览器兼容的限制,或者是它的低版本的很多功能不支持,导致我们写起来非常的蛋疼。

  彼时前端界不缺人才,他们发明了各种各样的工具,比如用babel让我们能提前享受到最新的JavaScript语法带来的很多很好用的功能。当我们有了React这类框架之后,希望前端的应用以js作为入口,而不是以html作为入口。我们html里显示的内容都是从js里面渲染出来的。

  由于整个应用基本上以js作为入口,我们就需要用js来处理css、图片等其他静态资源。这个时候我们发现,js本身不是用来处理这些东西的,而我们又迫切需要一些工具来处理这个问题,因此又出现了webpack。

  所以前端的发展速度在整个编程界来说,是相对特别快的。主要的原因就是因为以前的前端它的标准实在是太低了。现在补充的很多js 的标准、前端的一些标准都是以前发展缓慢,落下来的。所以说,现在只能说是慢慢地变成了一个正常的状态,而不是说已经超前非常多了。

  如果你之前是有基础的,那么还可以。如果你之前一点基础都没有,你会发现前端进来之后,你要学的东西特别的多,各种各样的东西。在这种鱼龙混杂的时候,你必须要保持一颗好奇心,保持一个吸收新知识的能力。你要经常去看一些文章,或者是GitHub,或者是一些厉害的程序员的博客。他们有发现新的东西,好玩的东西,都会分享出来。然后你要立马去学习,因为它有可能就是将来的主流。

  现在的前端状态有点混乱,发展节奏有点快,你仅仅是想把vue学好是不可能的。你要学vue就必须要学webpack。当然你可以直接用vue-cli去生成一个项目。但是对于好奇的你,肯定会想,vue-cli里面到底做了哪些东西。

  然后当你以后出去面试的时候,你跟面试官说,你做过vue的项目。然后面试官肯定会问你一些webpack相关的一些东西。这个时候你又说不出个所以然来。他会问你,那你的项目是怎么生成的,你会说用vue-cli脚手架生成的。他会问你,那你有没有看过vue-cli里面生成的一些代码,然后这个时候你又说没有。那么他对你的期望值就会变得非常的低。

  当然有的面试官还会不厌其烦地问你,为什么我们用webpack生成的文件名后面要带上一串哈希码?这个问题至少我问过很多初中级的童鞋,他们都是不知道的,不太清楚,或者只是清楚一些有概念叫做缓存。但是至于这个文件名后面加一堆哈希码,到底是做什么事情,他们不太清楚。浏览器如何去缓存,他们也不太清楚。

  所以webpack是一个逃不开的话题。然后还有vue-router、vuex这些已经算是vue项目开发的三驾马车。因此当你想学好vue的时候,意味着你还要学好webpack、vue-router、vuex。

  当然,服务端渲染也是值得讨论的话题。这些东西要去全部学习好,对于基础比较差的童鞋来讲,确实有点难,他一下子接收的东西实在太多了。一旦涉及到webpack,而webpack又是跑在node端的,所以你还要学习用node.js如何去写脚本。

  当然,如果对于追求上进的你来说,还想学习下SSR服务端渲染,首先你要去学习用node.js如何去写一个server,然后还有服务端的接口实现,虽然这是一个纯后端的实现内容。

  当你以为这就结束了的话,你就错了。如果你面试的是BATJ等互联网大厂,面试官可能还会问你http相关的内容。比如说,面试官会问你,像http的get、post、put、delete这些request methods它们又有什么用,有什么区别?从语义上来讲,http的code又有什么用。当这些问题抛向你的时候,如果你平时没有注意积累这方面的技术知识,此时的你是否依然会处于一个懵圈的状态?

  这些东西,对于一个纯做前端,纯做页面的童鞋来说的话,你确实不用特别的了解。但是你一旦升级为一个工程师,你要去跟后端交流一些接口,你要去思考统筹整个项目的时候,你必须要了解。不然的话,你会踩非常多的坑,犯非常多的错误。导致你的整个项目到后期维护的时候,有很多的内容到后期是没办法去升级的。

  讲了这么多关于学习、前端、面试等话题,终归学习是要讲效率的,如果你学了非常多的时间,发现自己还是不怎么会,你就会特别没有成就感。当时就不会想继续学下去了。

  课程目标带你快速了解HTML+CSS 开发Web 前段的原理和基础知识,小实例教你做京东前端的编写。适用人群零基础,we

  java虚拟机是执行字节码文件(.class)的虚拟机进程。。java源程序(.java)被编译器编....

  工作已经有半年了,突然想写点东西,大学的时候就有写日记的习惯,但是自从去Java06班学习一直到现在....

  随着信息化的发展,IT培训受倒了越来越多人的追捧。在开发领域,JAVA培训成为了许多人的首选!jav....

  自我认识的方法有很多,比较集中的有这么几种:比较法,他人评价法,内省法,实践成果法,测量法。

  工程师要生活,要满足基本需求:那就给出超出其期望值的待遇,让其衣食无忧,不再为是自己单独租房子还是和....

  无论你之前做java开发时技术有多强,换了行业之后你就是个新人。如何在一个新的行业里成为一个优秀的人....

  一个软件的生命周期中,除了开发还有很多其他步骤,也都是需要掌握的一些技术。

  各位程序员朋友们,本人立足于IT圈也快六年多了。之前也写过不少技术类的博客。技术聊的不少。什么高并发....

  在IT界,成功的完成一个项目的需要销售人员、售前人员、项目实施人员(开发人员)、售后服务人员等密切协....

  对于我们这些刚入门的运维小白来说,极强的好奇心总会驱使我们去涉猎各种技术,弄到最后很可能该学的知识半....

  经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于开始重拾面试信心,再次出征。

  一个好的硬件工程师实际上就是一个项目经理,他/她需要从外界交流获取对自己设计的需求,然后汇总,分析成具体的硬...

  重要的事情所以说三遍。如今前端圈大热,除了前端项目天生开源的优势之外,Github这个网站功不可没。....

  16年毕业到现在也近两年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点....

  领导把公司的一个重要研究项目(命名为顺耳风)交到了我手上--关键词唤醒系统,也就是当下最热门的热词唤....

  作为一名从传统行业成功转行算法工程师的老人,经常会有想转行互联网,或者是算法工程师的朋友询问我转行的....

  集成稳压器按出线端子多少和使用情况大致可分为多端可调式、三端固定式、三端可调式及单片机开关式等几种。

  计算机、统计学等相关专业,具有深厚的统计学、数学、数据挖掘知识,熟悉数据仓库和数据挖掘的相关技术;

  马上就到端午节啦,电子发烧友祝各位端午节快乐! 想必大家都被各种各样的花样粽子刷屏了吧,但是万变不离其宗,粽子还是有个...

  作为一名最基础的前端工程师你必须掌握HTML、CSS和JavaScript。三者必须同时精通,类似我....

  在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2019秋季招聘中拿到几个公司....

  推荐采用“先精后广,一专多长”的流程来学习:先在一个特定的方向上有比较深入的钻研,然后再将学习目标渐....

  前端工程师要有一个基本常识,那就是结构、表现和行为要分离。具体解释如下:

  全栈工程师(Full-Stack Engineer):一个能处理数据库、服务器、系统工程和客户端的所....

  第一次写非技术分享的话题,而促使我提笔的动力源自去巴黎参加Openstack Kilo Design....

  在工作岗位上,大数据工程师需要基于Hadoop,Spark等构建数据分析平台,进行设计、开发分布式计....

  BI工程师:主要是报表开发,需要有一定的数据库经验,掌握SQL查询优化方法,精通Oracle、SQL....

  一个程序员的成长之路,会经历多个阶段,从初级工程师、中级工程师到高级工程师再到这个领域的专家,但是能....

  我相信每个工程师都曾怀揣一个成为技术大牛的梦想,可是真正走向技术大牛这条路的少之又少。工作中我们常常....

  在开始任何其他文字之前,首先有必要正视一个根本现实:国内外软件开发的水平是有差距的。

  来了一个英国工程师(剑桥毕业,可能是78年生的),在我们公司工作1个月。我看到了不少差距。就一个词:

  毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一....

  本人,从10岁开始玩游戏 ,玩到28岁,虽然大学的时候也接触过C,但是觉得学起来太费劲,还是玩游戏好....

  方向永远比努力更重要,找准了方向,比努力更重要。比如说你去超市当个收银员,第一年老板给了2800,第....

  掌握了以下的硬件和软件知识,基本上就可以成为一个合格的电子工程师:...

  从2017年到现在,前端开发行业内并不平静。受到资本寒冬导致互联网和创业市场整体遇冷的影响,前端岗位....

  在过去的互联网时代,我们看到太多这样的例子了,举一个简单的说明:就如10多年前选择Java人和201....

  程序员的生活很简单,天天对着电脑,偶尔休息了也在家看看电影,打打游戏,作为一枚前端,我简单的说下,我....

  AI领域人才抢夺大战愈演愈烈,有的公司去年给应届生的年薪就达到了50万元。今年,待遇继续水涨船高,“....

  本人是LINUX运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一...

  十年来,我们一直在谈论数据科学和数据科学家。虽然在怎么才叫“数据科学家”的问题上始终存在着争议,但如....

  前端与后端的思维专注点很不相同,前端聚焦在如何把内容以可视化的方式展现给用户,后端聚焦在如何利用IT....

  PCB布线,即铺设通电信号的道路以连接各个器件,这就好比通过修路来连接各个城市通车。在PCB设计中,....

  硬件工程师经典笔试题集锦!下面是一些基本的数字电路知识问题,请简要回答之。

  艾迈斯半导体认为“Sensing is life”传感技术正在重新定义未来生活,为了兑现对中国市场的....

  这是一篇来自一位程序媛的投稿,记录了她从化学系转行进入IT业,制定计划学习,扎实执行,面试腾讯实习的....

  最近沉浸在代码的世界里,没什么输入,也没什么输出,今天说说码农之间对接代码的一些事吧。

  今天是 22 岁的最后一天。几个月前,我从沃顿商学院毕业,用文凭上“最高荣誉毕业”的标签安抚了已经年....

  一名一线企业嵌入式软件工程师的笔者,想通过自己的实际经历理性地评论当今嵌入式行业的真实状况。 嵌入式的定义和举例分析 ...

  这是一份攻城狮不能拒绝的福利!30份技术干货, 涉及Iot产业发展、5G、工业物联网、智能可穿戴、智慧城市等领域精细划分 由微...

  作为电子工程师,特别是电路工程师,如Analog IC, Digital IC Engineer,需要了解到电路、集成电路,数字电路、模拟电路、...

  (1)关于「开关电源工程师需要哪些知识」 以一个简单的Buck变换器的设计为例进行说明。 [图片来自:Erickson R W, Mak...

Copyright © 2002-2019 红姐备用图库 版权所有