Soft_Job 板


LINE

不知不觉进入纯软这个业界也已经十几年,所以对於在 Soft_Job 版上常常看 到的一些议题也有了自己的想法,想说趁这个机会整理一下自己的看法,和大 家分享一下。这篇主要会先分享一下我对於读大学的看法。 要先说的是,我觉得我自己就是某种程度上的幸存者,所以这边的经验也只是 我自己的经验,但也是我最真实的想法,以及一些我实际上遇到的经历。 先交代一下背景,我自己会进入这行,大概是从小学时候就有的想法,那个时 候家里有台电脑,每天回家都在玩那台电脑,所以那个时候开始就想着长大要 靠这行吃饭,不过当然只是很粗浅的一种概念,那个时候主要还是放学就在打 电动,并没有什麽真的实际的作为。 到高中分组的时候,因为逃避自己对於数学没兴趣这件事,以及曾经有一度想 念中文系或历史系,所以选了文组。但後来还是靠申请入学上了国立暨南国际 大学资管系,在板上我想应该是会被归在後段国立大学?反正非四大四中,而 且是文组的资管系,并且最後直升该校的资管硕班。 不过这样的我,最终现在还是混到了如大家说的,在 150 左右上下挣扎的 WEB 仔,不过是个生活与工作很平衡,觉得可以做自己喜欢的事情还有薪水可 以领很开心的 WEB 仔。 在板上经常会出现的一个议题就是要不要去补大学学历。我想这个大家都很清 楚,一种看法是这行确实你可以不用相关科系也可以来做,这绝对是可行的, 也一堆人靠这种方式转行;另一种看法则是相关科系毕业是进入这行的最快的 方式。 这两种说法我认为都是对的,这行的进入门槛真的很低,只要有心,真的是一 台电脑加上毅力你就有机会进入这行。但另一方面,你有文凭再加上不要太混, 入场劵基本就到手了。 而常常看到的另一个观点,是对於大学科目的质疑,认为大学教的东西都很过 时,出来业界还是要重新学习。 关於这点其实我反而有比较不同的看法,我认为大学教的科目他的价值,正在 於他的「过时」。我认为严格来说,他应该不叫「过时」,而叫做「基础知识 架构」。 举个实际的例子来讲,前後端的 Framework 这十年来都换了几轮了?但网路 的基础架构还是没有变,SQL 的主要核心概念还是没有变。从 Web Browser 上输入网址到显示内容,基本上还是一样的流程。 更别说再更基础的计算机架构、演算法和 OS 里的多执行绪等等的概念了,这 些概念性的东西到现在,其实到现在都还是很实际的东西。反而是很多那个 时候我学的 Framework 或各个软体的版本,现在早都不知道被什麽取代了。 但电脑程式还是电脑程式,在抽象上基本还是 Von Neumann 架构,底层还是针 对记忆体中资料的各种操作,各种程式设计典范 (Procedure / Object-oriented / Functional) 的精神还是长那样。而这东西是我天天在用的,真的是天天在用, 因为这是我对自己写的每一行程式码的理解。而我自己的经验上,遇到过不少 不知道程式为什麽会坏,为什麽是那样的行为的,其实就是没搞懂程式执行的时 候,抽象上记忆体里的内容是什麽东西而已。 至於这些东西有没有用,我想应该可以用实际的例子来说明。现在做前後端,基 本上演算法都是函式库包好好,很少有机会自己写我想这应该是共识了。这十年 几年下来,我真的在工作上实作过,和演算法勾得上边的东西,大概也就只有树 的 DFS 或 BFS 而已。 那就代表大学教得演算法没有用吗?这麽讲吧,我曾经在某个线上的 Java 专案 看过这样神奇的程式码,这个专案主要是一个批次的机制,然後会需要依照顺序, 处理档案系统上的某些资料夹,对应到某个 ID 并进行处理,注意他是有顺序性 的,而且同一批次中 ID 是会重覆的。 结果呢,写这个专案的人用了一个 Java 里的 HashMap 来存要处理的 ID 和档案 系统的资料夹的对应……我看到的时候整个黑人问号。HashMap 最基本的特性不就 是一个 KEY 只会对应到一个 VALUE,而且是无序的吗?也就是说,根本就有档案 没有被处理到。我很难想像这是一个有认真上过非常基础的资料结构与演算法的人 会写出的程式。 另一个我印象深刻的例子,就是我曾在以前某间公司遇过後端工程师部署程式上去 网页伺服器後,发现从自己的机器无法连上网页时 (Connection Refused),却不知 道如何排查问题,重点是他是有 access 伺服器的权限的。 但实际上,如果有一点点对於 OS 以及网页似服器的运作原理的理解,应该会很明 确的第一步就去查网页伺服器的 process 有没有起来了。 说穿了,我觉得大学最主要的价值,就是在於「有人帮你整理好了整个知识体系, 并帮你安排进度」,而对我而言,从我工作上的经验,我真的认为大学的学习的科 目帮助我很多。特别是工作上要学习完全没接触过的新的东西的时候,因为有这些 基础,所以可以很容易抓到重点,可以透过基础的知识来借境并且理解。 另一个我觉得大学很有用的地方,是他可以让你探索对於不同的领域的兴趣。 因为我自己 Linux Kernel / Andorid BSP / Android APP / Library Design / Web 前後端 / Desktop Application 都碰过一点,所以感觉满深刻的。就是虽然都是纯 软,但每个领域的成就感、有趣的地方、烦人的地方都不太一样,而大学可以让你在 几乎没有额外的成本之下探索自己有兴趣的领域,我觉得这是很棒的一点。 最後我列一下我认为不论是走哪个领域,不管是资工还是资管,在大学都一定要学 好,而且工作上我觉得非常实用(以及面试时也常常考)的几个科目: 1. 程式设计 / 计算机组织与架构 这两个通常会是两门不同的课,但其实是一体的,这两门课是在帮你建立完整的 对於你写的程式的心智模型。 2. 资料结构与演算法 不是叫你一定要像刷题达人一样可以看到题目就实作出解法,但对於各种资料结 构和演算法的基本特性还是要有个概念。就算人家函式库都帮你包得好好的,你 也总是要知道在什麽场合下适合用什麽样的资料结构或演算法对吧? 3. 关联式资料库概论 这个不用说了吧……即便是现在一堆 Non-SQL DB,但很多时候他们也都是以和 SQL 做比较的,以及在 CAP 定理中他们想要解决哪几个问题以及放弃哪个之类 的。 4. 网路通讯概论 我认为对於各个常用的 Protocl 多少要有些了解,特别是现在几乎各个领域都 离不开网路了,特别是做 WEB 的,HTTP 怎麽一回事,和浏览器上输入网址後到 画面显示出来之间发生了什麽事,总是要有基本的了解吧。 5. 作业系统 现在愈来愈多 Multi-thread 的程式了,各种经典的 race condition / deadlock 问题等等,这些东西都是真实世界会发生的。 当然不是说我这边没列出来的科目就不重要,而是在十几年做为软体工程师的职崖 中,我认为基本上是常常都会接触到,而且从来没有让我觉得「我在大学学到的知 识是过时并且无用」的东西。 当然这个领域一直在翻新,CPU 里的真实工作情境、指令集可能也早已和我通初学 的计算机组织与架构差异很大,但抽象概念性的东西我认为并没有真的差太多。 关於大学里学的科目,大概是这些想法。我是认为,如果已经确定要走软体这条路, 有机会就去念大学,基础的科目好好掌握,然後尽可能接触多一点各式各样不同的 领域找找看自己的兴趣在哪。 至於研究所,老实说当年我并没有很强继续往上念的想法,只是顺势就读上去了。 虽然课上得很开心(我喜欢上课),但论文写得很痛苦。 基本上研究所我是混毕业的,对我来说研究所的价值真的就是那纸文凭而已,虽然 除了我後来有在中研院一段时间是靠那张文凭核薪外,我也不知道那张纸他还有什 麽其他的价值。 下一篇,应该会讲一下我真的进到这行後,一路以来对於生活与工作的平衡的一些 心路历程。 -- ~ 白马带着她一步步地回到中原。白马已经老了,只能慢慢地走, 'v' Brian Hsu 但终是能回到中原的。江南有杨柳、桃花,有燕子、金鱼…… // \\ ( 坟 墓 ) /( )\ 但这个美丽的姑娘就像古高昌国人那样固执。 【白马啸西风】 ^`~'^ http://brianhsu.moe/blog 『那都是很好很好的,可我偏不喜欢。』 --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.34.206.134 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1630926110.A.232.html ※ 编辑: brianhsu (1.34.206.134 台湾), 09/06/2021 19:02:01
1F:推 yuigahamayui: 好文先推 09/06 19:03
2F:推 ntpuisbest: 推 09/06 19:17
3F:推 gasbomb: 推 09/06 19:17
4F:推 owoer: 暨南老师其实蛮用心的,给推 09/06 19:18
5F:→ joshnash: 写web当码农真的未必需要念大学 研究所更不用说了 09/06 19:26
是不必。但这个人人念大学的时代,如果本来就已经有打算走这行,而且也有 资源读大学,这会是最直接的入场方式。
6F:推 alihue: 推 09/06 19:36
7F:推 jonyig: 推 09/06 19:59
8F:推 oopFoo: 推。学校也是建立人脉的好地方,好同学可以帮你打开视野 09/06 20:01
9F:推 jackflu: 推个 09/06 20:01
10F:推 akira01: 推 虽然是一些读了就忘记的知识 09/06 20:21
11F:推 ttsung2: 推 09/06 21:30
12F:推 nmns0110: 推 09/06 21:47
13F:推 mvpkgmax: 推 09/06 22:00
14F:推 zzshcool: 推,好文 09/06 22:19
15F:推 inte629l: 推 09/06 22:34
16F:推 kkroy: 推 09/06 22:52
17F:推 chuegou: 不同看法 程式设计的搭配我会拿计概搭 09/06 23:03
18F:→ chuegou: 计组拿去配系统程式 09/06 23:03
这个组合应该也不错,不过我是文组资管,没有系统程式这门课, 计组加减用一下。
19F:推 tennyleaz: 推 09/06 23:12
20F:推 kyrie77: 推 09/06 23:15
21F:推 viper9709: 推~这也太用心 09/06 23:16
22F:推 yehzu: 强者我同事推推XD 觉得读大学让各领域专家来导读各领域,有 09/06 23:34
23F:→ yehzu: 遇到好的老师真的是很赚的事 09/06 23:34
24F:推 mike8469: 推推 09/06 23:46
25F:→ MoonCode: 网路上资料念一念就知道了 懂怎麽google比较实在 09/07 00:00
如文,我认为大学的重点是「有人帮你整理好知识体系并进行导读」。
26F:→ MoonCode: 做web真的不需要学历吧 需要基本的英文能力跟找资料能 09/07 00:04
27F:→ MoonCode: 力 就是一堆工具让你搭起来而已 09/07 00:04
28F:推 newhandfun: 我比较好奇的是真的会碰到要这些大学基础知识”才能 09/07 00:39
29F:→ newhandfun: ”解决的问题吗?还是其实duck不必? 09/07 00:39
当然不是只有这一条路。但我自己的经验上,遇到疑难杂症的时候,有这些基础 知识的人,和没有这些基础知识的人,非常明显是有差别……
30F:→ newhandfun: 本鲁也有上过演算法跟资料结构,但越工作越觉得问题 09/07 00:39
31F:→ newhandfun: 根本不在这些东西上 09/07 00:39
32F:推 newhandfun: 要说时空间复杂度,前人的程式码也是一堆N+1,要说了 09/07 00:41
33F:→ newhandfun: 解资料库,系统一堆反正规化也是活得好好地 09/07 00:41
34F:→ newhandfun: 我才刚下订计算机网路,但还是很迷茫 09/07 00:41
35F:推 newhandfun: 更别说一堆工具的抽象化,像本鲁写的php刚好让开发者 09/07 00:44
36F:→ newhandfun: 不用面对多执行绪的问题......叹,越说越不知道补基 09/07 00:44
37F:→ newhandfun: 础知识到底有没有用 09/07 00:44
如果你写的 PHP 能够让开发者不用面对多执行绪的各种问题,那麽你势必 得先对各种多执行绪会遇到的问题以及解决的方法有所理解对吧? 如果没有,那麽要嘛: 1. 你的抽象可能还是隐含了各种问题。 2. 有更底层的抽象帮你解决了这些问题。 因为如果自己不知道多执行绪的这些问题,那麽就不可能开发出可以解决这些问 题的抽象层啊,而这些抽象层也势必得由理解并能够提出解决方法的人开发的。 有能力进到这些更底层的开发,不也正就是和没有这些基础知识的人的差别,也 是议价能力,以及能不能有更广的发展的一个差别吗? 举例来说,如文说,我自己在各个领域中都有过一点点经验,也有过上一份专案 是做 WEB 但下一份专案要去做嵌入式系统的状况,但我从来没有过觉得「无法 上手」的状况,虽然我在大学、研究所时是完全没有碰过嵌入式的。 因为在大学完整的知识体系的训练下来,我能够知道如何把过往的知识应用到嵌 入式系统上,以及知道他和我过往的工作经验的断点在哪,於是我能够很快速的 知道该怎麽去有效率地吸收嵌入式的相关领域的知识。 一点想法上的补充,给大家参考一下。
38F:推 sumsum: 推分享! 09/07 00:59
39F:推 MonkeyCL: 有机会就好好读,半路出家的还是先努力拿到offer要紧 09/07 01:41
40F:推 fly19920820: 分享心得给推 09/07 01:54
41F:推 sooge: 大学不是资工系的怎麽办= = 09/07 02:17
没怎麽办啊。我文章里也说了,我认同这行确实不是相关科系也可以来做, 只是入场的方式和成本不同。主要只是分享一些我认为读大学的价值和好处 而已。
42F:推 j355203: 先推了 09/07 03:20
43F:推 qrtt1: 有看有推 09/07 07:27
44F:推 BlacksPig: 同newhandfun大大 09/07 08:17
45F:→ matyih: 出国转软的几乎都电机自学.. 09/07 08:23
================
46F:推 qrtt1: 补基础有没有用的问题,在於是否能将知识融入思维而影响选择 09/07 09:04
47F:→ qrtt1: 像我很喜欢看 fcamel 的文: https://bit.ly/2X0BTc3 09/07 09:04
48F:→ qrtt1: 常会让我有一种,某些时候我该模仿他的思维去看待技术 09/07 09:05
49F:→ qrtt1: 以便做出更好的选择。 09/07 09:05
================ 我觉得这「在於是否能将知识融入思维而影响选择」句话超精辟!完全就 是我例子里想表达的事情,但没办法用这麽简单的一句话概括。 我想到的另一个例子是,我觉得「码农」和「软体工程师」的差别,会在 於当码农写出一个 O(n^2) 的程式码时,他就单纯的只是「会动就好」, 甚至有可能不知道这是 O(n^2)。 但当一个有基础知识的软体工程师写出一个 O(n^2) 的演算法时,他会很 明确知道他为什麽挑 O(n^2) 的写法,他用这个 O(n^2) 来交换了什麽比 执行时间更重要的东西,或为什麽这个 O(n^2) 是可以接受的,以及他会 一开始就知道将来遇到不得不调整的效能瓶颈的时候,这个 O(n^2) 的存 在。 ※ 编辑: brianhsu (1.34.206.134 台湾), 09/07/2021 09:40:56
50F:推 ClownT: 推用心 09/07 09:46
51F:→ ClownT: 好奇你从业多久了 09/07 09:46
52F:推 Kagami3421: 推 09/07 10:05
53F:推 aaa1234136: 好奇大大打算写几篇文章XD 很期待下篇 09/07 10:07
54F:推 WulinWorks: 推 09/07 11:19
55F:推 asdkmm5050: 谢谢分享 09/07 11:57
56F:推 polola6212: 说实在话,在台湾不补基础知识,後果也只是留一堆拉G 09/07 12:08
57F:→ polola6212: 给後来的人 09/07 12:08
58F:→ htury: 推,不过其实就是老板无法分辨会动就好跟效率高的差异,导 09/07 13:39
59F:→ htury: 致软工要高薪只能去美中 09/07 13:39
60F:推 chyl13579: 推推 09/07 13:52
61F:推 joshnash: 没有本科大学学历缺点还是比较不好拿面试拉 09/07 14:28
62F:推 zenithyoung: 推 09/07 15:01
63F:推 pb2201416: 大推 09/07 15:55
64F:推 PerspectiveS: 推 09/07 16:23
65F:推 viper9709: 推码农跟工程师的差别 09/07 18:37
66F:→ brandonron: 跟某楼一样想法,大学认识人跟发掘想触碰的,而硕士磨 09/07 20:02
67F:→ brandonron: 练自己处事能力跟想法 09/07 20:02
68F:推 loadingN: 毕竟是理论和实务并重的工作 有些东西你不懂就很难突破 09/07 20:12
69F:推 chen1025: 推 09/07 20:13
70F:推 whatabiggun: 推 09/07 21:41
71F:推 shieldsky: 推码农跟工程师的差别,继续努力朝工程师迈进 :) 09/07 21:54
72F:推 ejnfu: 大部分同意,不过码农与工程师的差别不同意,你举的例子一 09/08 03:29
73F:→ ejnfu: 般码农就要会了,面试都会问的。我觉得主要差异在於backgro 09/08 03:29
74F:→ ejnfu: und knowledge以及design的能力。 09/08 03:29
75F:推 godsparticle: 看来所谓的码农=低薪 XD 09/08 07:26
76F:推 shiauji: 推 09/08 09:59
77F:推 Sunal: 或与有些基础知识大家都觉得一般码农应该都要会的,但现实 09/08 10:10
78F:→ Sunal: 是很多转职甚至本科系CS在解决问题时 完全不知道背後原理 09/08 10:11
79F:推 Sunal: HTTP机制 甚至OS防火墙规则都不知道 无法独立解决问题 09/08 10:18
80F:推 alihue: 不是工作上用不到,是知识不足埋雷而不自知 09/08 11:42
81F:→ alihue: 你想一下密医也能活得好好的治疗大部分感冒头痛拉肚子, 09/08 11:44
82F:→ alihue: 但就是会误判导致延误就医被爆出来 09/08 11:44
83F:推 kevin1ptt: 好文推推! 09/08 14:55
84F:→ Hsins: 就是很多人学的不扎实而已,基础知识深深影响系统设计能力 09/08 15:08
85F:→ Hsins: 。光是查询跟排序这两件事,很多人就都写不好,以为是硬体 09/08 15:10
86F:→ Hsins: 规格问题。 09/08 15:11
87F:→ alan5: hashmap那个特别有感 遇过坚持hashmap就是比较快的 09/09 15:56
88F:推 kaiac: 推 工作後对所谓的基础知识认知和你讲得差不多 不过也同时 09/10 00:58
89F:→ kaiac: 感觉基础知识似乎用不太到 也许是能力所能到的工作环境就到 09/10 00:59
90F:→ kaiac: 这种水平吧... 09/10 00:59
91F:推 lou01: 推 期待下一篇 09/10 11:02
92F:推 johnny719top: 推推 09/11 13:10
93F:推 bbkhdh: 推 暨大大学长 09/13 11:01
94F:推 swich45314: 我是念资工的 在IT业 我必须说理解大学课程的内容 会 09/13 17:23
95F:→ swich45314: 让你比同行高一个等级 再找问题等方面都比资管的同事 09/13 17:23
96F:→ swich45314: 强 当然不会说你就不能做相关工作了只是能力会差一些 09/13 17:23







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP