我在coding的路上:Alpha Camp 学期一回顾
我在coding的路上:Alpha Camp 学期一回顾
简介
切入正题之前,我想先回答 「为何要学写程式」 这个问题。相信这三个理由大家一定都听到烂了,但请容许我再说一次:
- 程式语言是世界的共通语言 :不管你在美国或是日本,python语法永远都会是python语法,javascript也不会因为你在法国就变成了bonjourscript。因此,当你学会了程式语言技能,你就获得了在全世界走跳的门票。身为文组的我,英文能力已经不是问题,若能学习一个全世界通用的技能,那么国界对我来说将不再是阻碍。
- 比其他产业更合理的薪资待遇 :尽管谈论薪资有点市侩,但根据调查,软体工程师的薪资起跑点确实是较高的,有时候junior的薪资甚至会高过于其他产业资深人员的薪资。此外,业界对于软体工程师的需求一直都很高,随着更多产业的转型,未来程式能力仍会是十分抢手的技能。
- 永远不怕没有东西可以学 :很多职业在做到某个程度之后,便只是日复一日重复同样的事情。然而软体产业变化速度非常快,两三年之间技术可能完全改朝换代,若没有持续学习的意愿,很快便会被时代淘汰。对于喜欢学习各式各样的事物的我来说,一直有新东西可以学是一件非常正面的事。另外让我喜欢的一点是,软体社群一直有都很活跃的社群能量,open source projects、Hackathon之类的活动都可以让你在精进技术的同时,还认识来自四面八方的人们。
在学程式的路上跌跌撞撞
在开始Alpha Camp的学习之前(后面简称AC),我已经有过与程式交手的经验,并不完全是个程式小白。
- ✏️ 大四时选修python通识课 :因为对程式语言感到好奇,加上身边有朋友也在学python,所以毅然决然报名了这堂与数学、逻辑分不开的通识课(必须刺激一下已经僵化的文组脑),没想到开课后意外地投入,每次作业都卯足全力,还完成了两个小个人专案。这堂课也让我重新去思考,写程式在我人生中并非完全不可能的option。
- ✏️ youtube 彭彭的前端基础课程 :学习了python之后,我对于网页也开始感到好奇,于是在网路上找到了 彭彭的前端教学影片 ,一边看一边跟着练习,也对网页如何组成有了一个初步的概念。
- ✏️ Udemy上的 网络开发者训练营 课程 :这堂课算是Udemy平台上最受欢迎的课程之一,由讲师Colt Steele 手把手带你走过全端开发的过程。老实说,我自己并没有把课程全部看完(剩下1/4),也没完成最后的大专案,毕竟这种没有作业或是进度要求的影音课程,真的很容易怠惰啊~ ̶(̶很̶明̶显̶就̶是̶自̶己̶自̶制̶力̶不̶够̶)̶ 但在走过大部分的内容之后,对于全端开发背后到底蕴含着哪些技术也算是有个底了。
(圖1:Udemy課程頁面)
总结过去的程式学习经验,虽然看似已经学到很多东西,但在缺乏有效练习、进度督促的情况下,能深刻留在脑海中的,实在不多。因此,我希望寻求一个有进度、有作业、且有时间限制的课程,来改善我的学习效率。
Alpha Camp是一个好选择吗?
近几年台湾的软体线上课程、实体bootcamp持续蓬勃发展,选择五花八门。在经过多方比较后,我决定试试AC的课程,以下简述我选择的理由。
进度制、大量实作练习、助教24小时内回馈
有了前面自学的经验后,我首先考虑的点就是如何有效改善自己的学习效率。而AC的进度制刚好符合我的需求。例如, 学期一分为三周,在正式开始上课之后,内容必须一周周解锁,无法一开始就狂飙车看完三周的内容。这样的设计可以保证每周内容都确实吸收后,再进入下一周的学习 。当然,AC也为进度较快的同学,贴心准备了「 超前进度申请 」的机制,只要完成某些条件,就能提早修习下一周的内容。 (但最多只能提前一周,不能飙车飙太多XD)
除此之外, AC的课程设计了大量的实作练习,在讲解过概念之后,通常都会配合一两个小习题或作业,去验收学生对概念的吸收程度 。实作在学习程式的过程中是很关键的环节,毕竟只看影片就想学会写程式,就像在旁边看别人滑板就觉得自己也会滑了一样。
当然,花时间写作业却没有人批改、给予回馈的话,也无法达到最佳的学习效果。在这方面,AC备有强大的助教大军(?),在学生缴交作业后24小时内就会进行批改。而 助教的批改并非单纯的合格、不合格制式化答案,他们会依据学生的答题状况给予回馈,提出做得好、或需要改善的地方 ,一些例如coding style的细节也会注意到,帮助学生在答题的过程中建立实务上的好习惯。
(圖2:助教超級用心的回饋)
纯线上教学、规划完善的教学平台、作业观摩
坊间的软体bootcamp很多都仍以实体为主,但个人因为未来规划因素,所以必须选择一个可以在线上进行的bootcamp,而AC便是首选。不过,虽然课程是纯线上进行,规划完善的教学平台完全不会让你有缴了钱、看完影片就被放生的感觉。
除了包含文字与影音的教材内容之外,作业缴交、批改、留言讨论都是在同一套系统内进行。课堂作业方面,平台不但会记录你的作业缴交状况,累积的XP点数,还可以看到所有同学的作业。 当作业卡关的时候,可以透过观摩的方式看看同学是如何解题的,也可以在完成作业之后,从同学的创意中得到启发,并激励自己下次一定要做得更好 XD 此外,系统会记录每位同学的发文次数,最常发文的同学还会出现在排行榜中,这样的正向回馈机制让同学自然而然养成与其他人线上互动的习惯。
(圖3:可以看到其他同學的作業)
简而言之,身为一个纯线上的bootcamp,AC完全不会让你有独自一人孤军奋斗的感觉,除了在汪洋中点起盏盏明灯的助教们之外,还有一大群同学与你一起并肩前进。
活跃社群、线上工作坊、直播讲座
另一个对于线上bootcamp可能产生的疑虑就是,无法累积社群资源、认识学长姐或其他班级的同学。然而, AC有一个很活跃的Discord社群,几乎每天都会有学长姊、甚至是已毕业的学员在里面分享学习进度、回答其他人的问题、提供求职与职缺资讯等等 。
在一般的课程之外,AC还有不定期的 线上工作坊 ( 例如学期一有「前端基础工作坊」)。助教会带领学员一起在线上进行实作,实作完可以即时向助教提问、互动,并且会后还有回家作业可以进一步练习。
(圖4:學期一前端基礎工作坊大合照)
直播讲座的部分,AC会邀请已经成为资深工程师的校友,或是业界有名的讲者来分享关于科技业工作的方方面面。例如:国外企业求职经验、区块链技术在不同产业的应用等等。讲座都是开放给所有人报名的,因此不管是还在观望中的路人,或是已经在路上的转职者,都能在讲座中有所收获。
学期一究竟在学什么呢?
学期一内容是为「 完全没有任何程式基础 」的人所设计,即便我在上课前已经有接触过程式,在这三周的学习过程中,我仍然有学到不少东西,并且真正觉得自己有把基础重新打好。
1️⃣ Week 1:电脑与程式语言基础
**重点** :什么是电脑?什么是程式语言? / 程式语言基础:变数、资料型别、条件式、回圈等/ 如何debugging / 认识运算思维与演算法/ 练习写虚拟码
了解程式语言却不了解电脑本身,绝对是件违背常理的事,因此第一周从电脑开始讲起,了解为何我们需要程式语言来和电脑沟通,并尝试用演算法与虚拟码来模拟电脑的思维模式。这些都是学习程式语言路上很核心的能力。
(圖5:運算思維四步驟)
2️⃣ Week 2:程式码实作和网页介面基础
**重点** :用JS写出符合规格的程式/ 思考如何优化演算法/ 实作自己设计出来的演算法/ 认识codepen开发工具/ 学习基础html和css概念与练习/ 使用DevTools观察网页并尝试修改内容/ 学习开发设计思维/ 了解user story、wireframe的概念并实作
在初步了解程式基础后,便要学习如何运用程式来解决问题。以「 如何有效地猜中数字? 」这个问题为例,在拆解问题之后,要先试着把设计出的步骤转化为清楚的流程图(如下图所示)和虚拟码,最后才是将程式码实做出来。
(圖6:猜數字流程圖)
这周的后半则是进入网页三剑客的html与css,毕竟若没有视觉呈现,网页就不网页了啊!然而,这两者的概念并不难、也很直觉,却都易学难精,必须要透过大量的观摩、实作来磨练技巧。
3️⃣ Week 3:网页切版实战
**重点** :如何分析设计稿,定义HTML架构/ 运用外部资源如字体等/ 遵循上至下、左至右顺序调整CSS排版与样式/ 根据设计稿完成简单的切版任务/ 深入了解CSS重要观念,例如:display、Flexbox、box-sizing等
如前述,html和css如果没有大量的实作练习是不会进步的。因此,这周的内容就是跟着教练一步步实作出一个网页,并在过程当中很自然地吸收重要的观念和技巧。
教練手把手一起完成的個人履歷頁面
经过教练的指导后,就要试着活用过程中学习到的技巧啦! AC为此安排了一个小作业:我们必须做出与设计图一样的画面。当然,很多人一看到设计稿时脑袋瞬间变得一片空白,因此,作业要求学员从wireframe着手,先分析完页面的架构后,再进行html和css的实作。
(圖7:依據設計稿畫出的wireframe)
英雄頁面實作成果
前面有提到,学期一有一个「 前端基础工作坊 」,而会后的回家作业就是依据规格实做出小卡,也可以加入自己的创意。以下便是我绞尽脑汁,翻遍youtube和google之后做出的成品XD (后来还被选为学习周报的范例,好害羞啊!) 在查找资料、思考解方并努力实作出脑海中理想画面的过程中,我确实获得了满满的成就感。
前端基礎工作坊會後挑戰
学期的末尾,学员可以自由选择是否参加 期末考 来检核自己的学习成果。已完成前几周指标作业的学员并不强制参加,但在时间允许的情况之下, 非常建议完成期末考的所有题目,因为你可能早就已经忘记最前面学过的内容 !
毕竟,师父领进门、修行在个人,想不想要扎实地学好所有的内容,只有你自己可以决定。
结语
走完这三周的学习,可以肯定的是,我将要继续踏上成为工程师的旅途,也谢谢AC帮我重新打好基础、下定决心。尽管未来的修练还很漫长,但我愿意接受所有迎面而来的挑战!
至于学期一到底推荐什么样的人来尝试呢?我想有三个:
- ✅ 需要明确进度、作业鞭策的人 :迷失在茫茫的教学影片轮回中,却不知道到底有没有学到东西?你需要的是明确的课程进度与规律的学习作息,在AC,每周的进度、作业都事先安排好了,绝对不会再有无所适从的感觉。
- ✅ 时间地点上有限制,无法上实体课的人 :AC是纯线上bootcamp,所有的课程、工作坊、讲座都是在线上进行,无论身在地球的何处,只要连上网路就可以开始学习。此外,学员中有很多人是在职进修、转职,AC没有固定的上课时间,因此便能利用下班的时间学习。
- ✅ 不知道自己是否对写程式有兴趣的人 :学期一的内容是为完全没有接触过程式的人所设计,尽管一开始可能需要花点时间适应,但在助教的引导和社群的帮助之下,小白们肯定能走完这趟新手村之旅。当然,如果已经有点基础,也还是能透过复习与实作去检视自己的基础究竟扎实与否。
OK,那就先说到这,我要继续埋入浩瀚的程式知识之海了,共勉之!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明