web前端——10个妨碍进步的学习方式

1.前言

从事web前端的人很多,每个人的学习方式,学习习惯基本不会一模一样!关于web前端(或者直接互联网),大家都知道,是做到老,学到老的一个行业。之前写文章的时候,我说过很多学习的方式和建议。今天换一下,说一下我个人不建议的学习方式,或者我个人觉得是妨碍进步的学习方式,希望大家引以为鉴!如果大家有什么补充和指点的,欢迎指出。大家一起交流意见,互相帮助!

2.具体情况

1.只看教程,不动手实战

这个可以说是学习的最大的一忌,也是提醒过最多的一个注是事项!网上的教程有许多许多,各个语言,各个知识点,各方面的都有,javascript,html5,css3等的一些,随便一搜就一大把,毕竟互联网最大的优势之一就是资源共享!但是很多人看教程就只是看教程,不动手实操。即使博客的教程,视频教程再好,自己不动手实操,写代码,这样的学习方式,记忆根本不深刻,容易遗忘,到头来,可能什么都没学会!而且有些教程,如果没有跟着动手实操,可能会蒙圈。个人建议:要挑觉得适合自己的教程,也要动手实操,写代码。即使不是边看教程编写代码!在看完了教程之后,一定要自己动手实操!过程中,可能会遇到些问题,但是这样才会学习到更多,记忆也更加牢固!

2.只学框架或者库

这个情况,针对javascript(下称:js)现在没有以前严重了,在我大学和实习期间,那个时间还是jquery傲视群雄的时候。很多人会在聊天的时候会说:有了jquery,为什么还要学js?有了vue,为什么还要学js?面对这样的提问,我那时候没有回答,心里想:jquery或者vue就是用js实现的,不会js,学jquery或者vue第一学得吃力,第二学jquery或者vue肯定不会很深入。而且,万一有时候,项目不允许用jquery或者vue,那就基本不会写代码了。这时候,如果学习其它的框架或者库,基本又等于重新学一门语言了。个人建议:先把基础(html+css+js)打牢,再学其他框架或者库。虽然在会js的情况下,我不敢说学js的框架或者库就是查文档,查API。但至少学js框架或者库可以不会那么吃力!

3.只顾着写代码

这个就是我之前的一个习惯,只顾着写代码,不知道:耦合,实例化,继承等专业术语,和别人交流,无限蒙圈!根本不知道别人在说什么!互联网的技术更新的速度非常的快,隔三差五就发布一个框架,一个库,一个工具。虽然不是每一个更新的技术都需要学习。但是如果只顾着写代码,不了解新的技术。这样很容易使自己停止不前,失去竞争力。个人建议:在写代码之余,要确保自己是不是了解代码,对代码有没有一个认识。以及多点留意消息,看下有没有什么技术更新!如果觉得更新的技术很实用,或者自己有兴趣,可以多了解下!毕竟互联网是一个做到老,学到老的一个领域,技术更新的很快,如果跟不上流行的趋势,说不定自己会被淘汰呢!

4.太早接触复杂项目

这个情况,比较普遍,无论是在学校或者是现在的培训机构。很多学习前端的人,基础没打牢,就在那里扬言要做一个大项目,我听到的有的人想做知乎,有的人想做世纪佳缘等等一些伟大的目标!但是全部人都是连网站的业务流程和逻辑都没弄清,最后越搞越乱,就放弃了!之前的伟大目标都成了烂尾楼,作用最多就是一个代码练习的作用!花了大量的时间,做了一件没很大的实际意义的事情!个人建议:从简单到复杂,复杂的网站,都是有很多简单的模块。不妨先从简单的功能做起,做完了一个功能再往里面加功能!现在所处的公司就是这样,开发的后台管理系统,开发几个月了,从一个只有员工的登录注册的功能,然后再逐一加功能,到现在项目逐渐完善!(web前端学习交流群:328058344 禁止闲聊,非喜勿进!)

5.好高骛远,急于求成

这个情况就是多见于培训机构出来的人。我不知道是不是所有城市都是这样,但是广州这边,给我的感觉就是这样。就是目标不切实际,对自己也不够认识!之前在群聊的时候,在金三银四那段时间,很多人找工作,聊天的时候也遇到过很多培训机构的人。简历上是各种精通,刚毕业在培训机构培训几个月,要么就是自带两三年工作经验,要么就是说自己培训了几个月,技术水平和市面上两三年的人差不多。总之就是把自己吹得无所不能!但是一出题,就十问九不知。问闭包是什么,不知道;问原型是什么,不知道。问继承是什么,还是不知道。这里就得说下,我印象深刻的一道题了。这道题我就是用来对付那些人的!看到哪个人各种精通,各种吹。我立马出这道题,结果没一个能回答正确,题目在下面!

上面所说的,只是一个表面的现象,更重要的就是,好高骛远这个情况,很有可能会导致自己难以找到工作!因为一些企业认为最高只能给你4000工资,但是你自己却认为自己有实力拿到9000以上的工资。这样情况,很难找到工作!给人的印象也不好!更重要的是,这可能会影响自己的职业选择!个人建议:从实际出发,评估自己。想下自己会什么,能给企业带来什么!也可以停下别人的建议,和对比下别人的技术水平和工资,或者是上网找一些面试题,看下自己能不能完成那些面试题!最后评估下自己,认为自己处于什么位置!

6.看到难点就逃避

这一点,相信很多人都有感触,就在开发上,遇到上一个或者几个自己觉得没办法实现的需求或功能。千方百计地想着逃避,比如:这个功能不是很重要,不做可以吗?这个功能我从来没弄过,搞不定的。这个功能外包给别人做吧,我们做不了!很多一些逃避话语。大家可以想下,如果每次都是逃避,那么时间一久,自己技术水平是不是还停留在基础那个阶段?以后要怎么提升自己的技术水平。个人建议:迎难而上。在web前端开发这块,如果遇上了难题是正常的,如果没遇到难题就是见了鬼!面对难题,我们应该是挑战难题,而不是逃避!大家都想提升自己的技术水平,挑战难题不就是一个很好的提升技术水平的实战机会吗?如果完成了之前认为不可能完成的难题,这样就是一个技术水平提升的见证!不是吗?我也觉得,每天就写简单的业务代码,不探索新知识,不挑战难题,这样做开发也没多少意思!

7.能用就行,不想优化

这个也是一个很常见的情况,很多人认为写的代码能用就行,能实现需求就行!根本不管日后的优化。在开发项目或者开发插件上,虽然我也是提倡:先实现,再优化这个方式!但是并不代表我开发完了就完了,不会再想优化!如果不试着去优化自己的代码,不探索写代码的更好方式,以后别说编写高质量,简洁的代码了,因为自己把学习编写高质量,简洁的代码的一个重要途径给封锁了。还有一个就是,项目上,有些问题可能是潜在的,就是现在看着项目没出现什么问题,但并不代表以后不会出现问题。反而在项目开发完了之后,试着去优化自己的代码,探索更好的实现方式,试着编写出高质量,简洁的代码。这样难道不是一个很好的学习过程吗?至于优化代码的方式,很多很多(比如常说的:代码过于重复,是否引入设计模式?网站性能一般,可否进行优化?),优化这一块,也不是说一步就优化到最好的,而是至少不会比以前差!关于优化,我之前也发过一些资源。很容易找到,网上的资源更是很多!大家挑着看便是!

8.不懂不问和不懂立刻问

不懂不问,这个大家都知道,就是遇到问题,从不问同事或者通过其他方式咨询别人。就是自己在那里苦思冥想,尝试各种解决方案。这样的方式,最坏的结果就是最终还是解决不了问题,让同事来询问开发情况。最好的结果问题解决了,但是解决问题所花的时间会肯定很多。不懂立刻问,这个就是词面的意思。遇到问题马上问别人。自己没怎么思考或者根本不思考。这样能解决问题,但是这样会导致自己可能会频繁的问同事,会搞得同事很不耐烦。如果把同事的耐心磨没了,可能回答的语气可能不会很好。这样不仅影响同事之间的关系,还会让自己之后不敢再请教同事,有让自己处于上面所说的不懂不问的风险。个人建议:适时请教。遇到不懂的问题,先自己结合上下文思考下,想下以前有没有遇到这个问题,解决不了去网上找解决方案,如果还没有解决问题,这个时候再问别人,问同事或者通过其它渠道问别人。这样自己有了思考,解决问题的时候记忆也很深刻,也不会频繁的打扰同事!

9.不懂装懂

这个次面上跟上面的差不多,但实际上不一样!不懂装懂就是去问别人的时候,实际上别人的讲解并没有完全听懂,可能是碍于面子或者是因为不好意思打扰别人那么久,或者担心打扰别人太久,所以装作很懂。但是这样可能忽悠得了一时,很快又会露出马脚。这样会搞得隔一会又要去问别人同样的问题,这样反而会搞得别人更加尴尬,更加为难!自己也会打扰别人更多的时间!个人建议:如果有问题去问别人,只要你问的人不是一个非常没有耐心的人。他都会耐心的解答你的问题!所以,当问别人问题的时候,一定要确保自己是已经弄懂了问题的缘由,同事一遍没解释清楚,自己直接回答不明白,相信很多人都会再详细的解释一遍。如果担心同事工作忙或者其它原因,可以挑一个合适的时间!我现在问同事就是,要么不问,要问就切底弄懂!当然了,我的同事都很有耐心,每次我有什么问题,他们都会耐心解答,甚至是扩展开来讲!

10.没理清楚需求就写代码

很多人在接到需求之后,第一反应就是写代码,即使是在自己没把需求理清楚之前也是照样写代码。另一种情况就是,很多人是边写代码,边想需求。这个开发方式,万一自己对需求理解有误!可能会导致自己写的代码,很大一部分都要修改,甚至是全部删除重写。没理清楚需求就写代码这个情况,发生的概率应该挺大的,但是一般来说很难发现这个情况,毕竟程序员对代码的增删改查是再正常不过了!我本身也不知道,就是在一次的技术分享中,老大提出来的,他的建议就是对于一些稍微复杂一点的需求,先理清楚需求,简单画个流程图,然后在代码里面,先写上一点注释,再开始动手写代码!对于这一点,我现在就是在执行当中!除非需求真的很简单,否则我都会在草稿本上简单画一下流程图。根据流程图,写好注释,再写代码,这样会比较有条理,代码也清晰,日后的返工也可能会有,但是不会像以前那么多!在开发时间上,效率上,都得到了一个提升!

3.小结

web前端现在的行情,我不知道其它城市,但是广州确实是不太好,竞争也很大,差不多是100人争一个职位,其中的原因就是培训机构林立以及前端入门简单。面对这样的情况,我们能做的,只有时刻学习,提升自己的技术水平。这样才能保证自己有很大的竞争力,能够从这么多人中脱颖而出。对于学习和提升自己,除了应该有适合自己的学习方式,也该对一些妨碍进步的学习方式引以为鉴!上面10点是我自己的一些想法。希望对大家有用!最后一个就是,如果打击有什么好的学习方式或者不好的学习方式,欢迎指点。让大家交流意见,相互学习!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


1==>简述一下src与href的区别 src用于替换当前元素; href用于在当前文档和引用资源之间确立联系 2==>、谈谈以前端角度出发做好SEO需要考虑什么? a. 了解搜
什么是window对象?什么是document对象? window对象代表浏览器中打开的一个窗口。 document对象代表整个html文档。实际上, document对象是window对象的一个属性
1 》vue-router有哪几种导航钩子? 第一种:是全局导航钩子:router.beforeEach(to,from,next) 第二种: 组件内的钩子 beforeRouteEnter
1=>为什么data是一个函数 【理解】 组件的data写成一个函数, 这样每复用一次组件,就会返回一分新的data。 也就说:给每个组件实例创建一个私有的数据空间。 各个组件维护各自的数据。
01 vue3的新特征 1.组合式API. setUp作为组合函数的入口函数 2.Teleport 传送门 3.片段 template下可以有多个标签 4.用于创建自定义渲染器。我的理解是 creat
// var arr=[1,2,23,23,4,5,5]; // var newarr=new Set(arr); //去重 // console.log([.
摆好姿势 摆好姿势 如何使下面的等式成立 if(a==1&&a==3&a==5){ console.log(666) } var a=[1,3,5] a.join=a.shif
1=>为什么data是一个函数 【理解】 ok 每复用一次组件,就会返回一分新的data。 也就说:【每个组件实例创建】一个【私有】的数据空间。各个组件维护各自的数据。 如果单纯的写成对象形式,
以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正。:) 在网页中,一个元素占有空间
1 Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因不是声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在s
解决js兼容性问题使用 event对象 function eventHandler(event) { event = event || window.event} 获取滚动条属性 var scrollTop = document.documentElment.scrollTop || document.body.scrollTop
浏览器的内核 IE: trident内核,Firefox:gecko内核,Safari:webkit内核,Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核,Chrome:Blink(基于webkit,Google与Opera Software共同开发) HTML中的Doctype有什么作用 此标签可告知浏览器文档使用哪种HTML或XHTML规范。(重点:告诉浏览器按照何种规范解析页面) div+css的布局较table布局有什么...
如何创建函数第一种(函数声明): function sum1(num1,num2){ return num1+num2; } 第二种(函数表达式): var sum2 = function(num1,num2){ return num1+num2; } 第三种(函数对象方式): var sum3 = new Function("num1","num2","return num1+num2");三种弹窗的单词以及三种弹窗的功能1.alert //弹出对话框并输出一段提示信...
js的垃圾回收机制是什么原理垃圾回收机制有两种方法第一种是标记清除法:当变量进入执行环境时,就标记这个变量为”进入环境”,当变量离开环境的时候,则将其标记为”离开环境”,垃圾收集器在运行的时候会给储存在内存中的所有变量都加上标记,然后它会去掉环境中的标量以及被环境中的变量引用的标记,而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了,最后,垃圾收集器完成内存清除工作,销毁那些带标记的值,并回收他们所占用的内存空间 第二种是引用计数法:当声明了一个变量并将
Ajax 是什么? 如何创建一个Ajax?AJAX全称是Asychronous JavaScript And Xml(异步的 JavaScript 和 XML)它的作用是用来实现客户端与服务器端的异步通信效果,实现页面的局部刷新,早期的浏览器并不能原生支持ajax,可以使用隐藏帧(iframe)方式变相实现异步效果,后来的浏览器提供了对ajax的原生支持其主要通过XMLHttpRequest(标准浏览器)、ActiveXObject(IE浏览器)对象实现异步通信效果实现方式(gitee上的案例):
谈一谈let与var和const的区别let为ES6新添加申明变量的命令,它类似于var,但是有以下不同: let命令不存在变量提升,如果在let前使用,会导致报错let暂时性死区的本质,其实还是块级作用域必须“先声明后使用”的性质,let 暂时性死区的原因:var 会变量提升,let 不会。let,const和class声明的全局变量不是全局对象的属性const可以在多个模块间共享const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可
解释一下为何[ ] == ![ ] // ---> true首先看一张图![ ] 是 false原式:[ ] == false根据第八条,false通过tonumber()转换为0原式:[ ] == 0根据第十条,[ ]通过ToPrimitive()转换为' '原式:' ' == 0根据第六条原式:0 == 0尝试实现new function ObjectClass() {//对象 console.log(arguments[...
谈谈对Node的理解Node.js 在浏览器外运行V8 JavaScript引擎,单线程 非阻塞I/O 事件驱动,适应于数据高并发,适合多请求,但不适合高运算,有权限读取操作系统级别的API,npm 仓库,常用框架:Express,koa,Socket.io,AdonisJs,NestJS什么是gulp?作用?机制是什么?gulp是基于node的自动化构建工具作用:1 自动压缩JS文件2 自动压缩CSS文件3 自动合并文件4 自动编译sass5 自动压缩图片6 自动刷
vue和react的区别React严格上只针对MVC的view层,Vue则是MVVM模式virtual(虚拟) DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。而对于React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制组件写法不一样,React推荐的做法是 JSX + inline style,也就是把HTML和CSS全都写进JavaScript了,即'all in
谈谈对react的理解react是基于v(视图层)层的一款框架,虚拟dom和diff算法react特点:声明式设计高效,其中高效以现在虚拟dom,最大限度减少与dom的交互和diff算法灵活,体现在可以与已知的框架或库很好的配合JSX,是js语法的扩展组件化,构建组件,是代码的更容易得到复用,比较建议在大型项目的开发单项数据,实现单项数流,从而减少代码复用react有哪几个生命周期自己的总结分为三个阶段,初始,运行中,销毁初始化: 执行getDefaultProps钩子