前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【思路】学习前端的思路问题

【思路】学习前端的思路问题

作者头像
web前端教室
发布2018-09-29 16:40:26
6090
发布2018-09-29 16:40:26
举报
文章被收录于专栏:web前端教室web前端教室

大家好,今天是周五,祝大家周末快乐,今天我们聊一下《学习前端的思路问题》。为什么要聊这个呢,因为群里的小伙伴经常会问我,前端怎么学,学了很久没方向啊,学什么东西好呀,等等,所以今天主要聊一下四个问题,

(1)前端的核心是学什么?

(2)学会JS了,但却动不了手?

(3)解决问题不知如何动手做东西的思路是什么?

(4)要提升JS,怎么作?

// 1,前端的核心是学什么?

这个问题我个人主观的理解,其实是分成二个层面的。一是学习用JS操作HTML和CSS;二是要理解前端UI的操作流程。

第一,用JS操作CSS和HTML。怎么操作?首先就是获取DOM节点,然后就是对DOM节点的“增删改查”,这就是具体的JavaScript知识,这是硬指标,必须搞定。

第二,要理解前端UI的操作流程,就是要懂“业务”。懂业务,才能明白“为什么”要这么做;才能明白你的JS要如何设计;才能懂得哪些个JS要单独写成模块给多个地方调用。懂业务的重要性比懂JS还要重要,因为业务决定了JS脚本的使用场景和方式。

以上二点,是我目前以为的前端的核心,就是“技术+业务”。

<!-- -->

那么前端开发到底是在做什么?

简单的说,前端开发人员是要在有限的业务场景中,去实现产品经理和UI设计人员的设计意图。而这些设计意图,有可能是无限发散的。

在这里如果前端开发人员不懂业务,那你就会很被动。因为你无法从业务的角度,去讨论或是修改他们的设计。网页技术嘛,说起来理论上是什么需求都可以做,但事实上总是有一些需求是不合理做不到的。

要明白,有些产品经理和UI设计的脑子里,是不管什么需求什么问题,技术人员都能搞定的,如果你说这个搞不定。他们第一反应就是,你是不是技术不OK?第二反应就是,你根本就不明白做的什么东西,你还想改?这时因为第一他们不懂技术;第二他们认为你不懂业务。

如果你想修改某个功能,那你必须能说到位,怎么说到位呢?就是从业务的角度去说明,他们的某个设计需求是不合理的,也是做不到的。否则,就变成,他们什么都想好了,就差个写程序的了。

前端开发的工作流程,这个说的范围就可大可小了。先说小的工作流程,就是产品经理出需求,UI出设计图,前端岗切图和写JS,后端同学准备好后台环境和数据接口,然后前端读取接口获取数据,生成页面DOM,并控制相关UI交互。

如果往大了说,那就前端的技术选型,工程化,包括自动构建,打包,压缩,上线,测试,发布,问题回滚,nodejs服务端渲染,前端路由等等,内容很多,这里不展开了哈。

html,css,js,这三者之间的关系,可以用一栋楼来比喻,html是楼的主体钢筋水泥;CSS是楼的外观装修;JS是电梯,开关一类的东西。当然这个比喻并不完全,它只是要说明一个大概意思,并不能教条死板的去理解。

// 2,为什么学会了JS,却动不了手?

这里包含了二个意思,第一是学会了JS,你是如何定义学会二字的?简单的讲,哪怕你会写简单的JS的例子,也算是学会JS了。JS是一门技能,不是一个学科考一个证,就是说它没有一个点,说你越过了这个点就算学会JS,没越过就是没学会。它的内容就是那么多,只是你对它的理解会越来越深。所以,只要你能做到把网上常见的JS例子都理解,都能照着做出来,你就应该具备了基本的JS开发能力。所以我认为,JS不存在一个会不会的问题,而是说“你现在的JS开发能力是什么程度”。

第二是动不了手,说的是面对一个需求或任务的时候,不知从哪里开始做,不知道先做什么。那这二种情况综合起来,就是你只是学会了JS的语法,和一些JS的例子。但并没有学会用JS去解决问题,完成需求。外在的表现,就是JS会,但不知道怎么用,也不甚清楚什么情况下用什么JS功能。

// 3,解决问题不知如何动手做东西的思路是什么?

通过刚才对第二个问题的分析,相信我们已经在一定程度上找到了问题的原因,那么如何解决呢?首先要多看相关的文章,目的是通过这些文章了解它的使用方法,去做的哪些功能。第二是要多关注它的使用场景,这个场景是指这个网站或是应用是在什么样的外部条件下使用,例如碎片时间?第三是要通过大量的阅读相关文章,搞清楚它是为了解决什么样的业务问题而出现。例如JQ,它的出现背景是为了抹平JS在不同浏览器的区别;MVVM类双向绑定的框架是为了解决单页面应用webapp而出现的。。

// 4,要提升JS,怎么做?

说到提升,就是要有目标,有时限,要分阶段来实现。并且这个目标和时限,要具有可操作性。例如你是前端新人,那你的目标就不能脱离“新入行”这个现实基础。就是说,你不能定一个不现实的目标。例如一年成为前端架构师。所以说,要提升JS怎么做?这个问题最好修改为“我想在一年内JS达到什么程度”。

说到这里,就引出了下一个问题“提升JS的路径”?首先要明确一点,JS是前端的一部分,但前端不是JS,前端往最小里说,它也是html、css、js三者的组合。所以提升你的目标可以是提升JS,但眼睛不能只盯在JS上面,就是说你前端的格局要大。这个“前端格局”,咱们以后再聊,这里不展开了。

说回提升JS的具体路径,至少在目前,我个人认为,在工作中提升是最好的方式。因为可以面对真实的业务,真实的需求,真实的压力。虽然有可能工作中遇到的东西,是你不太感兴趣的;或是你感兴趣的在你当时的工作学不到。但前端知识面本来就很广,你现在不感兴趣的东西,只不过是把你将来要学的东西拿到了现在而已。

而且工作,并不是只有前端,只有JS,它还有各种关系需要你处理。同事关系,上下级关系,工作与爱好的关系,还有各种你喜欢不喜欢,习惯不习惯的事情需要你去感受,处理。比如总加班,总出差,你能不能习惯接受?JS啊,前端你可以自学,但加班,出差这些工作上的事务,你自己只能在工作中去体会。而这些东西也是工作能力一个组成部分。

最重要的是,工作中的压力,比你自学时的压力要大的多。而且工作中用到的技术,就算它low一些,但也基本上是市场需求比较大的。例如jQuery,现在已经不新潮了。但如果你jQuery用的比较6,基本上你在前端行里找个工作问题不大,贴近市场么。

刚才说的那一段,也就是我不太赞同前端新手通过在家自学的方式,来提升JS的原因。就是压力小,动力就小,进度就小。而且方向容易跑偏,就是说,你在家里自学呢,你怎么就能确定最新的技术,就是市场上最需要的呢?

例如,如果我说现在jQuery是市场上使用最多的,你可能会说JQ现在一点也不潮,很low了。但它现在确实非常可能是使用量最大的前端库。

(未完待续)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 web前端教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档