College对于前端开发够用了吗

我看到对于读college还是university在web教育上面有很多不同的争议,作为读完加拿大college前端开发同时一直在业内工作的我来分享下自己的观点。


我看到对于读college还是university在web教育上面有很多不同的争议,作为读完加拿大college前端开发同时一直在业内工作的我来分享下自己的观点,对于从non-tech background 想转行到前端开发的朋友比较受用一点。

首先声明,我完全不能算是一个资深的前端工程师,我的技能甚至在自己目前的岗位上也仅仅是“够用”而已,而且过去一年多都是在家工作,不用想也知道除了开会必须要露脸之外,我99%都是“躺平”的状态,5点一到立马关机走人。。。

但是,我的学习和工作经历或许可以给你带来看问题的一些不同视角。

以下是这期分享的要点:

  1. 不同的前端开发学习模式下的对比
  2. college教育够用了吗
  3. 从non-tech background转行的学习体会
  4. 前端新手进入正式工作后的心态


一. 不同的前端开发学习模式下的效果对比

这个可以扩展到任何跟programming 有关的领域的学习,一般来说,有以下三种模式:

  • 传统教育 (包括university 和college教育)
  • 网上资源 (包括付费或免费的在线课程, 比如youtube videos )
  • 实际项目搭建 (包括实际职场工作)

传统教育

我会觉得传统教育在这三种模式中学习效果是最弱的。我的真实体验是,其实在college的学习中,虽然一个coding课时是三个小时,但是老师经常会因为要照顾不同程度的学生,就往往没法保证整个学习的流畅度。

还有很多时候因为要照顾教学效果,老师往往会给你一些搭建好的模版template,然后让你直接在上面修改一些代码,这节课也就算结束了。其实真正课堂上学到的东西很有限。如果让你从零开始搭配一个项目build a project from ground up,你未必能做的出来。

网上资源

所以我更喜欢从网上学习各种课程,因为我可以按照自己的节奏去学,学到的东西也更有针对性。而且网上很多免费资源比如youtube tutorial 都能把一个知识点讲得比课上老师讲的还要透彻,再加上动画的辅助,同时还可以跟着它一起做这个项目,我发现这样的学习效果比在传统教室上课好很多。

实际项目搭建

最后project building 是最能加深你对于这个知识的理解和运用的,因为你不知道你在实际搭建的过程中还会遇到什么阻碍,然后你会知道现实中你还面临什么知识的缺漏,然后再去针对性地google怎么解决的办法。必须说明的是,实际工作中是随时在google解决问题的办法,因为不可能在学习中涵盖全所有的领域,所以学会如何google是一个很重要的开发技能。 

我的结论

虽然有上面的学习效果对比,我还是会推荐传统的教育模式给刚入门的小白,这就是因为对于一个完全没有接触过前端的学生来说,你很难给自己设计一套科学的课程体系然后去找相应的网上资源,让自己循序渐进地进入这个领域学习。

如果你是从零开始完全依赖网上资源,更多情况下,你可能会overload yourself,这样你会容易受挫,或者你把时间精力都花了与你未来实际工作不那么相关的技能上面,(因为网上的资源实在是太多了, 你不太确定到底该prioritize哪个),这样又会造成不必要的浪费。

在传统的教育下,课程体系已经给你设计好了,会针对你的职业规划,具体是front end 还是back end, 又或者game development之类的,有一个清晰的课程框架。

比如前端开发,先是基础的HTML, CSS的学习,然后是JS在进入到JS的框架学习,在每进入到一个新知识点都会伴随有实际的项目让你搭建,从简单的网站开始,到web app,然后再是涉及从后端读取或者修改数据的交互性功能,最后还有portfolio 作品集的指导。

但是如果没有一套比较完善的课程体系,即便你每天花好几个小时在上面,你也会在学习过程中很受挫,会经常觉得没法progress. 这就是为什么在进入工作之后,我每次想要精进自己的技能时,因为缺乏一个完善的课程体系的设计,每次我只能看某个课程的前面一部分,然后就持续不下去了,当然,这个跟我拖延关系更大。。。

所以我的结论是,当你已经在这个领域积累一定经验的时候,你完全可以依赖网上资源甚至你的工作机会去学习更加senior的开发技能,但是对于完全小白来说,传统的教育模式还是非常有帮助的。

二.  college教育够用了吗

那么,同样是传统教育,college 和 university 选择哪个好呢?

这个讨论其实我在之前的分享也有过,但我有看到一些讨论说,能够选择uni 教育最好还是选择uni。理由大概是college教的都太简单了,然后college 里面的instructors也都是半路出家,或者是college文凭出身, not as impressive as those uni professors.

我可以理解这种思路,就像我以前学习都会觉得我要选最聪明的,最有成就的人带我,这样才能获得最好的教育质量。

但是在读完college然后真正进入工作之后,我会发现,在最开始学习的阶段,前端的这些html, css JS,这些syntax都是很简单的东西,你不需要是一个很有分量,很天才级别的人才有资格去教。就好像是You don’t need someone with a double PhD degree from Harvard to be qualified for the job of teaching code.

所以其实老师的背景没有那么重要,如果你能有一个很engaging的老师,who makes the whole learning experience more fun, 那就足够了。再加上,这些college的instructors 很多是有实际的职场工作经验的,他们或许会比一直在学术界做研究的uni 教授更能把coding相关的东西解释清楚。

Again, 我的观点还是,learning is a lifelong endeavour, 尤其是在web领域,你不太可能获得一个文凭之后就一劳永逸了,你肯定是需要持续不断的自学。所以如果你只需要有人带你入门,college足够了。

有些朋友还会质疑万一college文凭够不着公司招聘的门槛呢? ummmm, 我的观点是在web 领域,你从什么背景出来不重要,重要的是你掌握的技能,别说是college文凭,很多公司的senior dev 甚至是self-taught programmer。都2022年了,不是只有传统教育才能通罗马。

三. 从non-tech background转行的学习体会

我是从2018年9月开始进入college学习,也是第一次接触前端开发这个概念,在这之前完全没有接触过任何的前端课程,可以称得上是小白一个。(倒是本科的时候有一门coding课,所以我大概知道coding 是怎么回事)

我在college 里面是从最基本的前端语言学起的,也就是HTML, CSS 还有一些网页设计的概念,进入到第二个学期开始就有JavaScript, PHP, 再到第三学期就有前端一些框架的课程, 比如React, Vue, 也是这个时候开始接触 Node, 但也仅仅是很基础的了解。

Now this is when things get interesting… 

我刚开始学前端的时候,总是感觉很受挫,因为我会过度复杂化(overcomplicate)一个很简单的东西。。。

因为我之前学习的领域是经济学和金融学,要接触很多学术上的理论,很多的模型推理,所以我之前的学习思维模式是一定要搞清楚一个结论的来龙去脉,它的理论依据,它的模型支持,它跟之前的概念的联系和互相对比,you know, that kind of crap…

所以很显然,对于刚接触前端的学习,我也还是沿用了一直以来的思维模式,一定要搞清楚这个工具的理论依据,我把更多的时间花在了理论的研究,而不是这个工具的实际应用。

比如学习node的时候, 我就一直在纠结node.js 是如何使用V8 engine去complile JS and how is that different from SpiderMonkey used by Mozilia. ……. 就试图搞清楚它的原理,然后又牵扯到很多自己搞不懂的概念,所以就越学越受挫…..

but my point is, this is not even relevant to how you use Node, 最关键的,你只要会几个最基本的commands去使用NPM就可以了。你管它是什么鬼原理呢。

所以,这个就是应用型学科和传统型学科有很大的不同,应用型学科重在应用,你未必需要理解整个理论框架,而且也很难完全理解和跟踪整个知识体系,因为对于web 这种领域知识更新换代实在是太快了,很多时候我只能掌握bits and pieces of information,我可能在刚接触这个概念的时候还是很困惑,but it’s perfectly okay. 

只要你会如何使用它就够了,你会发现在后面知识不断丰富的过程中,之前困惑的疑点会一点点解开。你也会理解得更深刻。

四. 前端新手进入正式工作后的心态

最后来谈谈作为一个前端新手会面临什么样的心态。

拿我自己的经验来说,从25岁开始转行前端开发,从零开始学习,而且不是什么名校文凭,只是一个普通college diploma,即便是现在在职场上工作了一年,I always feel like a big fraud, that I’m not prepared to do the work I’m asked to do, that everybody else is somehow better than me. 

其实这个心态就是所谓的imposter syndrome (冒充者综合征), 在看了大量有关imposter syndrome话题的油管视频之后,我会发现,这个对于new programmer 非常常见,或者是对于任何进入到一个新的领域的人来说都很常见。

这里附上我学coding 的时候很喜欢的一个YouTube大V

Traversy Media 在这个话题的分享

Are You Too Dumb To Code? A Chat About Imposter Syndrome

是的,你可能在25岁甚至28,30岁之后才开始转行,会觉得自己起步比周围人都要晚,会质疑自己的能力,为什么别人学这个coding framework 几个小时就能掌握, 而你自己学了好几周甚至几个月还是觉得没有进步;会觉得新的领域非常intimidating, 一旦遇到障碍就有很强的受挫感,会觉得自己永远也不能fully prepared。 

但是我想说,我们都是这样的经历过来的,You can’t really compare yourself to other people, because everyone has their own pace at learning things. 

不用对自己太苛刻,don’t beat yourself up too hard.  (我发现这竟然是我的上司对我说的最多的一句话。。。) 

The most important thing is, you need to accept yourself and it’s okay to be a new beginner at anything.

It’s okay not to be okay.

Leave a Reply

Your email address will not be published. Required fields are marked *