前端知识学了却不会用,都是没走心

我发现,许多人在学习前端的时候,更多的时候是处于一种“对外宣称正在学习中”的状态。而他本人真正的学习了多少前端知识?未必。

我之前就多次说过,“学习前端开发不是学习js脚本”。学习前端开发其实是一种用分析问题、理解需求、解决问题、响应变化的思维方式,是要动脑的。这种思维方式的不是一开始就能具备的,它无疑是一种技能,它是需要大量的练习的。

就像你面对一个姑娘,第一次的时候会很笨、很腼腆,很无措。但只要你练习足够,慢慢的你就老司机了。为什么成为老司机?因为万物都有规律,刚开始跟姑娘聊天,三句话把天聊死了;到后来你可以一次聊三天了。

为什么后来你可以一次聊三天?因为你说的每句话都有它的用处,每句话都是承接下一句话,每句话说出来都勾搭着姑娘往前走。。。

不多说了,回到js这里,这种“分析、理解、解决、响应”的前端开发思维方式,要成为每个前端从业者的本能,要达到面对任何一个问题,一个需求,都能下意识的使用这种思维方式去看待它。

那么,如何做到这一点呢?我认为至少需要下面四点,

(1)、面对一个需求时,要首先理解它的运行顺序。

从第一步到最后一步,每一步在做什么?需要什么?提供什么?。。。这些东西先在纸上画出来,如果自己画不出来。看在钱的份上,脸皮厚一点,请别人帮助画出来。

在日常生活中,也要有意识的去训练自己这方面的思维。例如在厨房里,你可以这样想,厨房能做饭也能炒菜,这是它的二个方法,

function 厨房(){
 this.炒菜 = function(n){
 console.log(n)
 }
 this.煮饭 = function(){
 }
}
“我”,想要炒菜,那么就得这样,
var xx = new 厨房;
xx.炒菜('葱姜肉');

就这样,从日常的生活中,理解程序运行的规则;

(2)、一个需求之中的多个参与者之间的关系。

大到一个项目、一个应用,小到一个需求,都不是一个元素能够完成的。它里面一定有众多的“参与”者,那么它们之间的关系是什么?谁操作谁?谁是谁的前置条件?谁是谁的运行结果?。。。把它们在纸上画出来,这种能力也是要在工作、生活中不断训练自己的。

例如,厨房里,你要炒菜,参与元素有哪些:火、锅、油、菜、抽油烟机......不多写了

1,先打开火;

2,锅放火上;

3,油放锅里;

4,油烧热了,放菜;

5,酌情开抽油烟机。

它们这几个元素中,谁操作谁?谁是谁的前置条件?谁是谁的运行结果?

if( 火 == 燃烧 ){
 火(function(){
 锅(function(){
 if(油温 >= 100){
 放菜(...);
 }
 })
 });
} else {
 点火()
}
funct.. 锅( callback ){
 callback();
}
//...

尝试着用js的思路去解释你生活中的事物,因为你在工作中遇到的所有需求,全都是来源于真实生活。而js的最明显的思路是什么?回调嘛,所以你看上面那段伪代码,全都是回调。

(3)、抓住需求、业务中的那条“线”。

警察破案讲究线索,出门要确定路线,我们写代码也一样,要抓住业务中的那条线。但这条线事实客观上并不存在,怎么办?

要找“点”,每一个功能,每一个需求,每一个条件,它们都是构成线索的点,这些点连在一起就成了线。沿着这条线走下去,从头走到尾,你就理清了一个需求的业务逻辑。

当然了,实际操作中,你还要注意多个业务之间相互的影响、关系,需要你对于前端的全局有一个整体的把握和理解,这叫“大局观”。

最后再说一下,你学会一个东西的真实表现是,面对一个问题的时候,脑子里的思路马上转换为前端开发的思维方式,而不会学了一堆js,然后面对需求手足无措。

本文分享自微信公众号 - web前端教室(webfeel)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

学习 Python 编程的 19 个资源

作者 codecondo 编译 wzhvictor segmentfault.com/a/1190000004187319 用Python编写代码一点...

46660
来自专栏程序员互动联盟

给年轻程序员的几句话

我收到了不少新手的来信,他们都希望能成长为一名真正的程序员。我绝对不是第一个谈论这个话题的人,所以,我不知道应该做哪方面的补充。不管怎样,下面的是一些一直记在我...

36590
来自专栏python+iOS学习交流

滴滴在职iOS开发者,告诉你他是如何实现指数级提升开发技术的?

如何提升开发技术的方法很多,比如专注,刻苦,热情,兴趣等,不过我这里不会提这些,下面想说的是我觉得能够指数级提升的窍门和一些自己在求索路上的一些体会,也算是一个...

17000
来自专栏java工会

Go语言能够取代Java,成为下一个王者吗?

近几年来,Go语言真是越来越火了。我也做过几个Go语言的项目了,我们公司很多微服务的项目也在由Java往Go上面转了。我们来看看Tiobe世界编程语言排行的最新...

30740
来自专栏程序员互动联盟

伟大的开发者

如何成为一名优秀的开发者?你觉得自己算是一名优秀的开发者吗?如果是的话,你有没有考虑过,作为一名优秀的开发者,应当具备哪些优秀的品质?原文作者Gregor Ri...

34040
来自专栏编程微刊

程序员常用的六大技术博客类

37350
来自专栏绿巨人专栏

为什么.NET感觉上比Java差一点

38580
来自专栏Java帮帮-微信公众号-技术文章全总结

怎么才算一个合格的程序员?【大牛经验】

产品经理经常改需求这是程序员最头疼的事情,作为程序员应该也站在PM的角度思考,帮助PM分析出本质的需求,这也许可以减少需求的变更。当然,前提是得干一行爱一行,...

22620
来自专栏带你撸出一手好代码

编程语言之间的差别真有那么大吗?

软件开发是一种特殊的职业,特殊到有点匪夷所思,行业从业人员的工种分类非常的不稳定, 比如说古时候有C工程师、C++工程师、VB工程师,后来有了Java工程师、....

505100
来自专栏tkokof 的技术,小趣及杂念

移动开发之工具推荐

  相信用过cocos2d系引擎开发过游戏的朋友(什么,你听都没听过cocos2d!?好吧你可以马上看看这里、这里或者这里),对于TexturePacker这个...

12830

扫码关注云+社区

领取腾讯云代金券