(文长,懒得看的可以直接 end,最下面我有做个总结)
最近版上有两篇文我满关注的
第一篇是:[讨论] 高中学历、31岁,可以进这行吗?
第二篇是:[请益] 前端线上课程请益
学程式的风潮已经有一阵子了
许多人可能觉得写程式是未来,是有发展性的职业所以想转职
也有些人想说写程式薪水比较高所以跳过来
总之无论什么原因,有一大堆人都想要转职成工程师
所以时不时就会在版上看到类似的文章,且不外乎就是这两种
1. 以我的背景,可以转职成功吗?
2. 想转职的话应该去上什么课程比较好
之后应该还会看到很多类似的问题,想说干脆写一篇一起回答
这边先回答第二个问题
在“前端线上课程请益”那一篇里面,有满多人回说去买 Udemy 就好
里面课程大概都三四百块而且品质又好,英文好的话物超所值
干嘛去上那些几万块的课程,根本浪费钱
会这样说的人基本上是忽略了一些根本性的差异
直接把资源多跟学得会这两件事情划上等号
我认为现在要学程式,问题不在资源,资源已经很多了
而是在如何选择
举个例子,当你还在念高中的时候,你有考上理想的大学吗?
课本都给你了、讲义一本两三百块而已,想要写题目不怕没得写
资源这么多取得又容易,干嘛去上什么补习班浪费钱?
或是同样的例子,如果每个人真的都看 Udemy 就学得会
那 Coursera 上面这么多大学课程,我根本不用唸大学我看课程就好
我想学 UI 想学产品开发都去上 Udemy 就好,课程买越多我会得越多
听起来十分理想,但大家都知道那不是现实
强调一下,我不是说“看 Udemy 不可能学得会”
我是想说:“在资源都给你的情况下,你也不一定学得会”
买了十堂前端相关的课程没有用,你得先“修完”,修完还不够,你要能理解
这些都做到以后才有可能变成一个工程师
所以问题从来不是出在资源多寡身上
现在这个时代你想学的东西只要不是太冷门一定找得到一大堆资源
那问题出在哪里?或许是出在我们买了课程却不看?
听起来很合理对吧!
如果我们真的有把 Udemy 上面的课程看完,哪有理由学不会?
可是你买的课程有看完吗?我没有,我买了二十堂,一半我连点都没点开过
像我一样把 Udemy 当 Steam 在用的人我相信不少,搞不好还占多数
基本上我认为大多数的人都是这样
想学归想学,有动力归有动力,可是最主要的问题在于:“你有多少动力?”
那些动力能不能支持你、逼迫你把课程里的东西都学完?
那些动力是否足够到能让你按照自己规划的时程走,并顺利完成计画?
如果答案是 Yes,如果你本来就是这种自制力很强很有毅力跟执行力的人
那恭喜你,我相信 Udemy 上面那些几百块的课程确实可以让你变成工程师
或是说如果你是这种人,我相信不只工程师,你想学其他技能也不会太难
这种情况下 Udemy 真的就够了,不用花大钱去上什么培训班
你是这种人吗?我先承认我不是
那我是哪种人?我是那种课程买了不看、书买了生灰尘、计画订了不执行的人
我一直想学 Vue 想学 next 想学 GraphQL 但我始终还没学
我把那些时间拿去看钢炼动画、one outs 动画还有阿尔罕布拉宫的回忆
想学归想学,我想学的东西可多了,但那是一回事,有没有执行力又是一回事
就算你真的开始学了,有没有毅力又是另外一回事
你要先想学,再来实际去学,还要能够持续地学,否则是学不会的
所以 Udemy 课程基本上能提供给我们的只有第一点
当我们想学的时候有课程让我们看,但实际去学(打开影片)跟持续地学要靠自己
好,再来可以谈到那些培训班有什么不一样了
先讲实体的好了,实体的优点就是他强迫你每天去报到,就像补习那样
你当然可以跷课可以不去,但你的钱就白花了,所以为了不要浪费钱你就会去
这个基本上就满足了实际去学跟持续地学这两点,所以十分有用
再者是那边的环境影响也满大的,就像读书会那样
当你看到附近的人目标跟你一致,你就有人可以讨论也可以彼此互相帮忙
这种连结是 Udemy 那种线上课程没办法给予的
再来就是培训班能够帮你节省“找资源”的时间
你只要跟着他们给的路线图这样学学学就好了,甚至不用比较哪个影片比较好
因为全部交给他们就好,就像以前高中的补习班都会发给你讲义那样
你唯一要做的就是去补习班,剩下都交给他们
所以如果你真的是超级没毅力超级需要被人管
实体的培训班(例如说资策会)会是你的好选择
因为选在家自学你只会跟我一样,买了课程过了四个月只看了四分钟
而实体班级的缺点就是价格较贵,以资策会来说好像是 8w~10w 左右?
版上应该有满多资策会相关的人,价格有错可以纠正我,这块我不是很熟
但优点就是很适合比较没有毅力的人,成功机率比在家自学大很多
如果经济上真的有困难,可以考虑 Appworks School 或是 CMoney 的课程
都是完全免费的,所以想进去的话门槛也颇高,我有几个学生就被刷下来过XD
再来讲线上的培训班,这边要先讲一下跟线上课程的差异
先跟大家说一下,我跟六角跟 ALPHACamp 都有认识
偶尔会交换一些教课的心得感想
他们的课我也都有自费购买,这是我的兴趣之一,目的是观摩别人的教学
有时候还会顺便帮他们抓一些课程的 bug
不过认识归认识,底下我一样会尽量客观一点讲
例如说六角学院就是线上课程,但售后服务很完整,也很积极在做一些活动
六角比较多人可能是买单堂或是两三堂,只学某个特定主题
另外一些人是跟着六角的学习地图这样一步步学习起来,每个课程都有买
所以参加课程的人会有想学新技术的工程师跟无经验的初学者
比起培训班,六角比较像是“从基础到进阶都有课程”的线上课程网站
而且除了课程以外也会提供职涯咨询或是疑难杂症解惑的服务
价格的部分刚看了一下,大概是一万块左右
接着谈谈线上培训班,培训班跟线上课程最大的差异就是完整度
线上课程还是一堂一堂卖的,只是每个阶段都有可以上的课程
但培训班是原本就规划好整个内容要学什么以及最后的目标:求职
所以这一点是比线上课程明确很多的
在学习上也会给你比较明确的步调,这一周要干嘛,那一周要干嘛
中间会有作业、课程彼此会有衔接以及一定的顺序,这些都跟线上课程满不一样
简单来说培训班就像是补习班啦,你就去就好,其他都他们搞定
差别在于不是线下而是线上的
以培训班来说,先讲最有名的 ALPHACamp
他们原本做实体后来转线上,优点是他们走过实体那一段
所以知道线下缺什么以及线上能补什么,想办法把优点融合在一起
满注重学生的社群这一块,喜爱交朋友的话应该满适合去那里
借由参与讨论这点拉高学习意愿,除此之外也有一些助教让你问到饱
还有架了一个自制的学习系统我觉得满特别的,是其他线上培训班没有的东西
费用的话采阶段付费制,第一学期三千,之后二三四学期各两万一
想要转职的话应该要全部学完,也就是 66000 元
再来是前面龙哥有回的,五倍红宝石最近开的线上培训班
价格也在一万块左右,同样是东西都帮你规划好然后有一套完整的课程
不过我觉得 rails 要教的好很难,因为省略掉太多东西
要怎么样让新手又会基础又知道 rails 做了什么,是很困难的事
详情可参考我之前写过的这篇文章:https://pse.is/DLDEM
然后是网页基础 15 天,会归类在培训班是因为最近他们也在推培训班了
有推一个前端转职计画,费用是 40000 左右
这计画还满新的所以我也不太知道细节,没办法评论
但我看过学的东西我觉得满 ok 的
最后是我自己的课程,四个月的时间从零到一
费用的话结业两个月内没找到工作 0 元,有找到工作的话月薪*1.5
不过我这课程不是想上就能上,现在第二期进行到尾声了,不确定会不会有第三期
而我也可以坦白说计划成效目前不如预期,能跟完课程的大概 3 个人左右
我对课纲太有自信,后来才发现对学生来说其实难度太大,所以后期也做了些调整
持续有在做一些改善,课程也会再拉长一点,大概三月左右会写一篇完整的心得
想看课纲的可以来这:
https://github.com/Lidemy/mentor-program-2nd
在课程选择上面帮大家做个总结
Udemy 的课程的确是俗搁大碗,但前提是你要懂英文,也要能够主动去看
其实我觉得 300 块有点太过便宜,对整个环境来说未必是件好事
但英文课程面向全世界所以没什么差,薄利多销
但以台湾的程式课程来说,价格应该会在 1500~2500 左右
要比品质的话,大多数的确是没有 Udemy 上的好
但有些品质还是很不错,例如说吴哲宇的那两个课程我也有买
想要学一些网页动态特效的很值得参考,推推
如果有提供几天内可退费的服务,我就觉得价格是 ok 的
反正买了以后看一看不顺眼或还是觉得太贵就退货就好
如果你对自己的自制力没自信,那比较适合去培训班
经济比较 ok 的话可以考虑实体培训班,我个人觉得成功机率比较大
(不过前提是培训班教的也要不错才行啦)
否则的话可以考虑线上的培训班,算是一个折衷的选项
强制力比实体的少,但比在家自学多,价格也比较便宜而且没有地域限制
至于价格的部分我觉得就是市场机制,一个愿打一个愿挨,资讯都是公开透明的
如果真的收太贵品质又差,久了之后人少了自然就会调降价格到相对应的程度
若是人家能一直维持在那边,就代表应该是有一定的品质的
以无经验转职的一般薪水范围 30k~40k 来说,我觉得几万块的学费是 ok 的
你想转职的话,价格通常是第二个要考量的,第一考量是你能不能成功
如果你认为你自学看 Udemy 能成功的话,那当然选它
但我相信很多人都没办法,所以才需要培训班的协助
Udemy 可能省钱但花时间,培训班花钱但省时间
我们写程式的时候一样会有很多 trade-off,时间跟空间必须择一
选一个适合自己的比较重要
再来回一下第一个问题:以我的背景,可以转职成功吗?
我实际带过的学生(无基础的或是只有一点基础)大概四十几个
同样的教材同样的内容,教出来的程度还是都差满多的
这点相信大家在学生时期就能感受到了,其实是一样的
那到底是怎样的人比较有可能转职成功?
以我自己最近教学的经验来说,那些工具都是其次,核心没掌握到的话一样被刷掉
就算侥幸有公司录取你好了,之后的路一样会走得很辛苦
什么叫做“核心”?
1. 找资料能力,能够知道如何找到相关资讯
2. 分析问题的能力,能够定位问题
3. 能够知道如何解决问题
4. 解决问题后能够重新归纳并整理
我前阵子写过一篇专门在讲这件事,叫做:当我们在学程式时,要学的到底是什么?
https://medium.com/@hulitw/learn-coding-9c572c2fb2
有兴趣的可以去看看
我有看过有人学了两三个月,会切版会写 JavaScript 会用 jQuery
可是你让他写一个九九乘法表写不出来,实作字串 join 的函式也写不出来
以工程师来说,我认为后者绝对比前者重要
前者不会可以学,而且相对是容易的;但后者你没有那个概念的话,超级难学
所以工具是一回事,你有没有学到写程式真正需要的那个核心是另一回事
两者是相辅相成的
你学工具也是在帮助你培养那个核心能力,反之亦然
有些人你跟他说我想做一个留言板,他就能知道大概怎么设计怎么规划
有些人就呆在那里,完全不知道该从何开始(尽管他甚至还做过类似的专案)
同一个 bug,两个人以前都完全没碰过
A 拿去 google 或是慢慢试,一分钟就把 bug 解开
B 可能试了 30 分钟解不开,拿去 google 也毫无头绪
最后把 code 搞得一团乱,最后还是解不开那个 bug
差别在哪里?我觉得就是你有没有掌握到核心能力
看到问题以后你如何拆解、解完如何组装、该从哪里去试、如何判断哪边有问题
这些都是最重要也最基本的能力,但是很难教,而且先天的差异也满大的
同样是没基础,有些人就是很快就可以掌握这些能力
但是有些人就是进度比较缓慢,需要一步步带才能慢慢抓到那些概念
讲了那么多都还没有给一些实际的意见
所以如果你想转职的话,该怎么做?
第一步,自学那些程式基础(变量、循环、判断式、函式...)
程式语言任选,但想走前端的话可以直接去学 JavaScript
绝对不要去看那些什么 JS weird part,这不是你这时期该看的东西
你不知道 this、closure、hoisting 这些东西一点关系都没有
而且你也不该知道,否则只会混淆你
第二步是去 codewars 写题目
上面有很多我说的那些基本的题目,可以帮助你练习程式基本概念跟语法
写个二三十题应该不会太难,会让你的基础比较扎实一点
写一写发现很有趣的话可以继续写
第三步是学 HTML 跟 CSS
如果你第一步学程式的时候觉得整天看 terminal 很烦
你也可以从第三步先开始,或是两个一起学都可以
在这阶段就学最简单的那些切版,优点是看到画面较容易有成就感
资源的话我推 FCC,英文不好的话有中文版
https://freecodecamp.cn/
最后一步是学习怎么把 JS 应用在浏览器上
能够跟 DOM 操作并且写出一些基本的东西,例如说表单验证或是 todo list
这边没有要你学 jQuery,用原生的 JS 就够了
上面这些资源超多,不知道怎么选的话挑看的顺眼的看得懂的就好
不用执著在一定要找一个“最好的”,找“不错的”就可以了
看书看线上课程看文章都可以,看你自己比较喜欢哪一种,我个人比较喜欢实体书
如果这些基础学完你发现对程式有兴趣,写起来不会觉得很累反而是很好玩的话
那我觉得你就有机会能转职成工程师,至少你不排斥这个行业
反之,如果你学一学觉得很累很烦程式很无聊,那这行不适合你
以上这些目的是让你实际去体验学程式以及写程式是什么感觉
与其一直发问说:“XXX 这样的背景能够当工程师吗?”
这样直接去做会来的有效许多
尽管别人跟你经历类似,但个性或是思考方式可能差很多,没什么参考价值
有人转职成功就代表你能转职成功吗?没有人成功就代表你不能成功吗?
我多少能够理解这种发问背后的心态,想要看到一个范例给自己一点自信
但比起这些,直接先去学个程式基础我认为会更有用
等你有了这些基础,再来思考自己是不是要继续学下去
最后帮大家做个技术总结:
1. 选课程时先考量适合自己再考量价钱,要能成功转职才是有用的课程
2. 与其一直犹豫,不如自己先学一些试试看,反正成本低没损失
3. 学程式时工具是其次,背后那些核心概念才是重点