※ [本文转录自 Salary 看板 #1X5vQfrW ]
作者: arcade0425 (天海) 看板: Salary
标题: [心得] 文组硕士大彻大悟转职后端工程师
时间: Sat Aug 14 18:10:47 2021
第一次在salary发文,如果有违板规请提醒我,会尽快修正。另外发现电脑排版在手机上好
像有点怪怪的,请大家多见谅。
类似的文章在版上也不少,依然想借由分享自己的经验,让还在迷茫、感到不确定的你可
以从中找到一些东西,或许是更明确的学习资讯,又或许是下定决心的勇气,文章有点长
,无论你最后带走了什么,都祝福你能够在生涯的道路上能够走得更加顺利。那我们就开
始吧!
转职缘起
“等等,我好像还是不喜欢咨商”
这是一年前,好不容易考上师大咨商所,但在硕一开学一天看到课纲时在心中对自己说的
第一句话。
大学就是咨商本科的我,迷迷糊糊但认真的考上了研究所,然而面对实际晤谈一次又一次
的失败经验,渐渐找不到对咨商的热忱。不会做咨商的我,同时又面对着“自己只会咨商
”的现实,内心自然是满满焦虑。
算是很偶然的想起自己在大学时对程式有一些兴趣,同时也有一定的天份(数学逻辑能力
很强)。当时想得很单蠢。“那就从写网页开始学吧!毕竟网络上一堆成功转职前端工程
师的分享,如果努力一阵子,搞不好就能成功转职呐。”
现在看来这想法完全是天真到爆ㄏㄏ
2020/09~2020/12 累积基础实力 & 迷茫期
当时自己一边上研究所的课,一边去书局抱了 HTML CSS JavaScript 的书回来读,也去
udemy 上陆续买了几个课程。每天读一点书、上几堂线上课程,然而随着课程进入尾声、
书也读了一大半,有了一些小技能、跟着线上课程的老师做了一个小专案,却依然不知道
自己可以做些什么。唯一确定的是,只要自己脱离线上课程的引导,我连一个简单的网页
都做不出来。(简单网页示意图)
https://imgur.com/WlVW8wC
中间还去上了知名的哈佛线上课程 CS50 (有兴趣可以去查一下),但依然对于程式要解决
什么问题、网页要怎么实作没有任何想像。
这段时间是我在程式学习上最痛苦的一段时期,因为没有任何的引导,也没有相关经验的
前辈可以跟我说接下来可以做什么。相关知识的笔记不断在增加,但很少用得上。网络上
的文章无法将一个前端或后端工程师的学习路径讲得足够仔细(我的这篇也不可能),而我
就在一个不知道自己可以干嘛的漩涡中打转,也开始会质疑自己是不是不适合写程式,因
为没什么成就感,也从未靠自己完成让自己满意的作品。于是到了年底,我开始思考要加
入一个实体课程来帮助自己进行进一步的学习
曾在版上看到有些人的分享是完全自学后转职成功的,我必须要说他们是天赋英才的神人
,大部分的人是没办法自己找到方向然后持续学习的,依靠一个有完整架构的课程来学习
是非常重要的事,因为课程会不断丢给你新的目标,让你至少有一个基础的方向可以往前
走。那么,应该要依靠怎么样的课程呢?
https://imgur.com/oPRoSh2
2020/12~2021/02 寻找课程期
坊间的程式课程非常多
老牌的例如资策会、恒逸、巨匠
新兴课程有六角学院、Huli锂学院、Alpha Camp、五倍红宝石、彭彭软件工程师扶持计画
、CMoney软件工程师战斗营...(可能还有一些我不知道的欢迎大家补充
以及免钱最佛的 appwork school
在考量这些课程上,我当时的考量原则如下:
1. 能培养自己 google 独立解决问题的能力
2. 是否能做出完整的专案作品
3. 有没有和其他学员合作的机会
我最后去的是彭彭的软件工程师扶持计画,为了避免业配嫌疑,这边不附任何连结,请大
家自行对各个课程进行比较。
过了半年的学习加上实际求职面试的经验,我强烈建议各位在挑选课程时要注意以下要点
,才能选到能让自己成功转职的课程
1. 选择以“作业导向”为主的课程。老师上课的时间最好不超过1/3,甚至最好是都不要
上课,全部都派作业给学员的。你可能会好奇:“都是作业老师也太爽了吧,这样能学得
好吗?”然而软件工程师最重要的能力并不是拥有多强的逻辑思维、或是现在会多少东西
。而是你有没有办法在你“不会”的情况下靠自己来找到方法解决眼前的问题,因为在软
体产业90%的资讯都可以在 google 上找到。如果你的学习永远只依靠单一的权威灌输知
识给你,你是没办法靠自己成长的。可能从课程毕业,你还是不知道怎么看官方文件,今
天要新增一个新功能或是程式出了一个
bug,你却连怎么 google 都不知道,因为以前老师都帮你整理好、或是直接跟你说要怎
么改了。同时,你的学习也会容易被限缩于老师给予的教材,这些对于未来的发展都是硬
伤。
2. 选择“能独立完成一份完整专案”的课程。基本上所有的课程都会在中后期请学员完
成一份程式专案,这部分请读者务必对专案的内容作详细的调查,建议选择会安排4周 以
上进行结业专案的课程。曾经看过一个课程内容最后请学员完成三份耗时12小时的专案。
我直接明讲,这种成品根本不能当作专案,原因很简单,时数太少、技术含量不够。拿这
些作品找工作绝对会疯狂碰壁。而 独立完成 更是重要,假如你的专案全部都是和别人合
作出来的,虽然可以展现你的程式合作经验,但在找工作时,面试官会不
知道到底哪些部分是你完成的,反而对你的实作能力有一些怀疑。当然,课程能兼具独立
和合作开发的专案练习是最好,但两者要择一时,请毫不犹豫选择独立开发专案的课程。
2021/02 ~ 2021/08 在作业地狱中载浮载沉,成功上岸
在这段期间是我最痛苦、也是获得最多成就感的时期。由于课程都是引导式作业,只能把
一个又一个不懂的关键字丢上google找答案。课程内容我就不多提了,可以自己上网找,
会有更详尽的介绍。
很多人想转职工程师时都会看到这张图
https://imgur.com/iSzyWgz
但我觉得实际上更像是这样
https://imgur.com/5rFB0QT
过程中会有无数让你想崩溃的事情,想不出开发的方式,某个套件或功能在实作时一直有 b
ug,将专案上线时又有一堆问题,实际进入职场后还有一堆让你更崩溃的坑要去学习,但走
过这个历程的我已经不会再害怕崩溃的来临,而是拥有在汪洋大海中探索的勇气。
将近半年的扎实课程中,掉队的人也不少,一开始共300人报名课程,实际入选人数为90位
,随着训练难度不断增强,最后完成自主专案结业的人数为30位。转职从来就不是一件轻松
的事,这半年我每天都花10~12个小时和眼前的程式奋斗,因为我知道自己不够聪明,只好
花更多的时间努力,才能和训练营的同学们站在同个水平线上。转职的意愿会体现在努力的
行动,足够的恒心毅力是唯一能支撑你继续前行的养分。
这边还是很概略的提醒大家关于前后端的学习路径,让这篇文章显得有内容一点XD
1. 前端(经验不多只能简短介绍):HTML、CSS、JavaScript基本排版、操作,“JS30”是一
堂不错的免费线上课程,可以磨练你基本的JS实作。有一定基础后,三大框架 (React
、Vue、Angular) 三选一,另外Angular台湾好像用得很少,如果你不是很清楚三者的差
别可以果断先在React Vue中挑一个,反正学过一种之后要学另一种都会很快,另外 Java
Script 是一个很怪的语言,前端一定要搞懂他的语言特性。
2. 后端:选一个后端语言(C++ .net / PHP / Java / Ruby on Rails / Node.js / Pyt
hon / Golang)自己列完发现有够多(训练营用python flask 我后来有自己碰一点Node Ex
press),对初学者来说选哪个语言都可以,语言只是工具,做的事情大同小异,精熟其中
一个都能找到工作。学一个数据库(SQL / NoSQL),知道把一个网站架起来该做些什么,
有云端平台使用经验(AWS、GCP、AZURE)很加分,进阶一点可以学快取(cache),高流量的
处理、测试、容器化技术等等。
3. 两端都要会:网络安全概念(HTTPS XSS CSRF)、CORS、Git flow、前后端分离的开发
方式(ex. RESTful API)、基础的资料结构算法(可以去买书来看,leetcode easy即可)
随着前后端经验不断累积,也确定自己想要走向后端工程师的道路(我就讨厌切版),最后完
成了两个独立专案(分别耗时3周与8周)。
这边补充一下专案资讯,因为都放在AWS上(要烧钱的),再留个几周就会下架囉。
台北一日游(训练营指定专案):旅游电商网站
github:https://github.com/skysea04/Taipei_day_trip_nodeJS
专案本人:https://skyseatravel.site/
Scard(自主专案):不要怀疑 就是简单版的Dcard
github:https://github.com/skysea04/Scard
专案本人:https://scard.skysea.fun/b
最后就是去找工作啦!在7月底/8月初的这段期间陆续投递了130封履历。每天进行2~3场
面试,至今面了17间公司,拿到3个offer(42k~50k),下周还有2间公司要2面。虽然还不
确定自己最后会去那里,但也算是踏入转职成功的第一步了。
过程中感谢家人的支持,让我放心在这一年一边修研究所的课一边学习写程式,几位好友
的支持鼓励让我勇敢追梦,训练营的伙伴们彼此支持学习得到活下去的动力。也特别感谢
室友们忍受我在这半年每天写扣到早上4.5点,还在疫情期间煮三餐给我吃(*′▽`*)。回
头来看自己不只很努力,同时也很幸运,可以在一个好的环境中成长茁壮,成为自己喜欢
的样子。
祝福有心转职的人们,都能找到一个合适的归宿。