先上截图,
这是他向我提问的截图,我回复他说今晚的公众号文章来回复他。
为什么要单独写一篇文章呢?因为他这个问题在我个人看来,不是几句话能说清楚的。
先审题,分析一下他的描述,
1,他零基础,自学四个月;
2,他会一些这那的前端基础;
3,他没有写过demo;
4,因为3,所以写不出来任何东西;
他这四个要点围绕着的其实是同一个问题,“会,但不懂。为啥”?
首先,我愿意相信他花费了四个月的时间,肯定是有一定的自学成果。什么html,css,js,jq,angular这些东西,多少都会一些。让他说应该能说出来这些都是什么东西,但这只能算是了解。
具体怎么用?用在什么情况下?跟谁、如何搭配使用?等这类问题,相信他应该是答不出来,否则他不会问这个问题。
而且注意看他的问题描述,他把ajax和jq并列写出来了,ajax并不是一种技术,它只是一种获取数据的方式。JQ算是一种技术吧,但ajax肯定不是。他把jq和ajax并排着写,我盲目猜测他可能是分不太清ajax和jq的关系,只是把教学视频或某教程里的jquery和ajax章节看懂了而已。
当然,也许他只是想告诉我,他现在会哪些东西而已。不过无论如何,这都表明目前他所掌握的前端技术,都只是一种技术的“罗列”。
打个不太恰当的比喻,html,css,js,jq,,,等等技术,就好像五金市场里卖的各种工具,你只是把它们买回家里,放在仓库里。你只是看了工具的说明书,但并没有学会如何“使用”它们。
例如,正确使用电锤冲击钻在墙上开出整齐的电线槽。而你只是看懂了说明书,知道这玩艺儿是冲击钻,但并不会用它开槽。
与这个例子相对应的,就是你所谓“学习了的”html,css,js,jq,这些东西你只是把它们从书本上搬到了你的脑子里,你的脑子就是上面那个例子中的仓库。
你只是知道做网页,要用html,css,js,jq,angular,,,等等这些东西,它们是做什么的,你也知道,也大体上会用。然后呢?没了
就好比我现在也知道电锤要插电,然后用它可以在墙上打洞、开槽。我看过别人用电锤,也明白它怎么用。但让我用它,不会。
上面写这么多,是要把问题分析明白。因为不止你一人这样,许多人都有类似的问题,所以我干脆发在文章里让许多人看。
接下来开始回复他的问题,“怎么办”?如何才能摆脱现在的“苦难”?
他自己也知道是练的少,其实没错,就是练的少。那,然后呢?怎么办?
先来歪个楼,大家都知道练毛笔字吧,刚开始时写的烂,要浪费好多宣纸。以后慢慢的字越写越好了,这些宣纸就给裱起来,挂墙上了。刚开始时的那些写烂的宣纸呢,扔了。
而你学习前端肯定是为了就业,要找工作挣钱。你零基础,你在行业里一天一天的攒工作经验,锤炼自己的能力,以后慢慢的你越来越牛B。
你看这和练毛笔词是一个套路,问题是,但凡长点心的公司,都不愿意做“被你扔掉的宣纸”。
看到这里,不知道你明不明白,你是练的少。但不仅仅是练的少,而是“在哪练”的问题,你要做有效的练习。
现在前端开发讲究的多人协作,工程化,模块化,模板,node中间件,MVVM,单向数据流,但这些高大上的玩艺,我个人觉得对新人来讲用处不大。这些东西都是对已有业务流程的提炼和归纳。如果不了解业务而去学这些东西的话,就类似于代码才写了几百行,就开始看《设计模式》一样,学的不接地气。
那回到刚才的问题,怎么叫有效的练习呢?
前端这个东西,就算牛B到了外太空,它操作最多的依然是DOM节点和JSON数据。无论前端怎么变化,所有的框架也只是方式和方法不同,而已,无一例外。
说到这里,此文的核心观点出来了,有效的练习是“你要熟悉JS要操作的东西”。就是你要熟悉DOM和JSON这二个东西。
DOM怎么熟悉?
我建议你多练练切图、写静态页面。多研究复杂的前端页面是什么结构?例如京东,它的首页DOM结构,绝不简单。
做静态HTML页面熟悉了,你就熟悉了网页上的各种结构,你就熟悉了你要操作哪里,才能让哪里有变化。
就例如我自己吧,2002年就做网页设计,然后是网页制作,然后是JS前端开发。因为我做了好多年的静态网页制作,导致我对各种网页的DOM结构无比熟悉,一看UI,就知道它的View展现和dom结构应该是什么样子,就知道我想让这里动起来,应该把事件写在那里,。。。
JSON嘛,就简单了,看看语法结构就OK了。
静态网页的DOM结构,是前端开发的基础。这个不熟悉,你用JS操作什么呢?