Re: [请益] 想问数据库的问题

楼主: littlethe (东周流浪汉)   2018-09-10 07:21:01
HI~
鲁叔又来讲数据库和人性啦~
这件事可以分为两个角度来看,
1.只是要找到工作
2.有心把数据库学好
1.只是要找到工作-
如果你朋友是年轻未婚正妹的话,
各位大大你们就别操心了,
因为正妹可以什么都不会就进到资讯业工作,
几乎公司都喜欢找正妹当PM或企划,
这种工作保证不会写程式,
会这样也算是一种迷信,
因为资讯业男多女少,很多人相信要男女平衡,
也很多人就是觉得正妹容易说服别人,或可以引诱猪哥客户,
而且也很多人莫名其妙就觉得正妹文案写得很好(这逻辑真神奇),
所以其实也不需要去学数据库啦,现在就可以去找工作了
而且最好面试要透露自己是单身,这样猪哥主管就容易上钩,
进到公司后,嘴巴甜一点,
再和某个key person搞个暧昧或交往,就高枕无忧啦!
犯再大错都会有人cover妳,
所以要学的不是数据库,而是要多看宫斗剧,
退休时就可以写一本书叫走向公司的老太后之路,
因为公司的运作方式和古代后宫87%像,
皇帝就是老板,
这方法其实大部份行业都适用,
只是这样做也有缺点,如果年纪大了,
还没有和任何key person搞上关系的话,
或关系搞砸的话,就会被赶出公司了,
我是真看过正妹老了没用处就被fire的例子,
如果是已婚有小孩或非正妹的人呢?
嗯...看有没有关系囉,
没有关系就面对现实跳过这方法呗~
除了这个,其实这做法还有个坏处啦,只是不会影响到这正妹,
那就是会这样搞的公司和明朝会很像,
动不动就杀来杀去(fire或整到离职),
清朝还会比这种公司好哦,
因为清朝皇帝的教育水平很高,后宫很小,管理也很严格,
虽然还是出了个慈禧太后,
想体验明朝宫廷黑暗的生活吗?
去爱重用正妹的资讯公司就对了!
2.有心把数据库学好-
讲完人性,这个就正题啦!
上一篇大大回文分析得很专业,
我就来讲点不一样的,
有看过足球吧?
DBA就是系统的守门员,
人数很少,但要扛的责任最大,看似简单,但里面的水确是最深的,
踢球这件事,就是coding,
大家看足球时,
一定很多人会觉得,
守门员几乎在用手挡球,
用手比较简单耶,
所以真要玩足球时,
也就会很多人觉得我不会踢球呀!所以我要当守门员,
那也很多傻乎乎的队员想,"哦,你真的不会踼球,那你当守门员好了,至少可以用手"
结果呢,就会发现守门员有和没有是一样的,对方狂得分,
为什么?
因为事实就是守门员不但要会踢球,
还要学手怎么用,头怎么用,人怎么站,时机怎么判断,
更重要的是守门员几乎没有时间可以松懈,因为球会一直踢来,
其他球员可以恍神个几秒,守门员一秒恍神都不行,
保持高专注,这恐怕已经不是技能问题,而是基因问题了,
你想练还练不起来...
大家都看过世足,都看过守门员被狂轰的样子,
守门员应该才是足球场上最难当的位置,
如果不会踢球的话...要做的事真的不是去做守门员,
而是甘脆不要踢足球,去玩其他运动
所以回到资讯业,
也是一样道理,想做技术人员,如果不会coding,
建议只有两条路走,
1个转行,另1个就是学coding,
没有别的路了,
coding之于软件开发,就是踢球之于足球,运球之于篮球,
是最基础的事,恐怕也是最简单的事,
非本科,或年纪大,走技术都不是问题,就怕不会coding,
因为最简单的事都学不会,那要怎么能学会其他的事呢?
鲁叔不才,
在我目前的人生,从前端,后端,APP,数据库,甚至接触过linux和网管,
coding本身真的是最简单的事了,
不是我在唬人,国中生可以学会coding了,
我是高中就学coding了,
教育剖规划国小学coding,这不无道理呀,国小生学coding是有可能的,
数据库我不敢说资讯界里最难,最难应该是AI,
但我敢说数据库真的很难,
从资工资管毕业的人应该对数据库这门大刀课很有印象,
一堆人补考还不过,真的很难呀!
不是说开table而已呀,
数据库是真的要懂理论的东西,
非本科去做数据库反而是不好做的,
光正规化就可以搞死非本科了,
讲个实务问题,
如果硬盘满了,
你的处理方式是什么?买硬盘吗?
如果SQL要跑很久怎么办?升级电脑吗?
如果是这样的回答,那真的不需要你来管数据库,(还真不少人这样回答)
老板自己找时间把主机升级就好了
要写SQL对吧?
写SQL其实比一般程式更难哦!因为SQL比较抽象,
不要以为SQL只是写select * from XXX,
举例来说如果要把表内容转字串成a,b,c怎么写?
那写法和一般程式差很多,
还是有人会觉得SQL是其他工程师要做的事?
NO,合理的分工应该是其他工程师不用写SQL,SQL是统一由数据库端处理,
只是大部份公司是一般工程师兼管数据库,所以写一写数据库端和应用端就"糊"掉了,
SQL也必需要写得很精简,
一般程式因为速度很快,所以不精简还可以感觉不出来,
写个1加到1百万,一般人是感觉不到用公式写和用循环写的差别,真的太快了,
但数据库效能好不好差太多了,
好SQL和差SQL跑的时间是可以差到几分钟,甚至差SQL是跑不出来的,
再讲数据库最恐怖的地方,就是责任TMD有够重大,
就像医生开刀,机长开飞机一样,压大很大!
出事的话,无法休息,
因为数据都在这,
系统都要用,
数据库出事系统就不能用,
而数据库就是非常非常非常容易出事,
因为是中心点,很多问题发生后会往中心跑,
就像足球会一直踢向球门一样,
你朋友知道什么叫做"资料错乱"吗?
"资料错乱"是数据库最恐怖又很常见的状况之一,
因为有bug,或有人资料导错了,写入的数据就会不对了,
那一错往往不会只错一笔,一错可能会错几万笔,甚至错上百万笔,
想像一下,我们台湾两千三百万人一觉醒来,发现我们的身分证都错了,
你若是DBA,就做到死也得把2300万人的身份证给更正好,
有些状况下,如果原记录是写在纸上的话,可能会要一笔一笔的去对,
对到眼睛脱窗还对不完,这可不像一般工程师代码写错了,改完就好啦,
因为这些是"数据",而且常常一错会错一大片,
你朋友若遇到"资料错乱"的话,大概会哭着喊说老娘不要管DB了,
coding真的比较简单轻松...
这里我还没讲到被骇的状况哩
一般来说,非本科想转行来当技术人员,
我会建议走前端程式,
因为前端很杂,所以理论不是那么重要,可以靠经验去补,
不少设计转程式的人也是走前端,
越往后端,效能就越吃重,数学就越重要,理论也就越重要,
本科和天份的优势也就越大了,
真的不想写程式的话,走网管也行,网管主要靠经验,本科没什么优势,
但很多网管也是会有"写程式"的时候,
反正不应该是数据库,DBA是连工程师都很难当了,
那你朋友的心态...是真的建议不要来当技术人员了,
真的就是不想踢球就想要玩足球的感觉,
那学前面讲的做法,去用姿色混个PM还比较好,
只是真正的PM又要比工程师更难当,
我自己是喜欢研究数据库,
我自己也是去补习班学过,
也考到证照,后来工作换了几次,就和数据库越来越熟,
但我心态绝对不是因为我不想写程式所以来做数据库,
相反的,而是因为我以前程式已经写到了一个瓶颈,
我在想我还可以怎么发展?
所以想到可以朝数据库发展,
因为数据库影响效能很大,又处理数据,我喜欢数学,喜欢研究效能,
也很喜欢理论的东西,所以喜欢数据库,
而且很重要的是我要告诉你朋友,
我和数据库越来越熟后,我有比较少碰程式了吗?
NO!不但我没少碰程式,我还得把程式写得更好更精,
因为目前没止,真的没有公司会只让我碰数据库,
而且前面讲的SQL的精简要求我就不再赘述了
讲白了,
程序猿是一转,DBA就是二转啦!
(其实PM,全端,前端,后端,这些专精化的工作也都是二转)
叫你朋友打电动看看,看看有没有办法没一转就直接跳二转,
没当战士就直接当狂战士,
没当法师就直接跳贤者,
除非打秘技(攀关系)
啊~~忘了回答你最后一个问题,
补习班的数据库课当然有用啦!
但是要make sense,
这些课是设计给"业界人士"上的,
也就是说,各位你们已经在当工程师的人,
用过"数据库"的人,都可以去上,
那是帮你们考取证照的课,
上课内容"有正规化","有SQL","用command line操作数据库",
当然还有其他内容啦,但光这三个东西其中一个大概就可以难倒你朋友了,
我记得10年前我那个班有超过1半是业界人士来上的,
如果是资讯小白...非常不建议上这个课,你会听不懂,
课程只有3个月,无法完全从零从细节教起,真的太赶了,
至少对业界人士来说我们会知道GUI和DB的差别,
会知道老师在讲什么,对我们来讲是种复习,所以教得快还可以听得懂,
想想看,如果没学过英文,或学校英文课都在混,你上托福班雅思班会听得懂吗?
说实话我那个班上到最后,同学大半阵亡了,很多人后面干脆就不来了,
只有很少数人最后坚持考到证照,
如果没考到证照或学好学完,那这上课钱就白花啦!
上完之后,考完证照...注意注意,
你只是从一般工程师,
变成会用数据库的工程师,
你还是工程师,还是要coding,
证照只是让你有机会"管理"DB的借口,
等干了双栖工程师干了3年,
大概才会对数据库比较了解,因为很多实务状况,
上课时不会讲到或无法体会,
最好是去大公司的资讯部或做后端工程师练,
因为这类工作接触DB的机会会很频繁,
有些工程师缺是很少碰到DB,例如APP或前端工程师,做了就和DBA无缘了...
所以选对工作内容很重要,
练了3年真的对维护DB或SQL很熟了后,才会有DBA面试的机会,
还有一种可能就是网管转DBA,但这块我不熟就不提了,
小白还是乖乖的找一般的程式基础班先练练吧,
练完去当一般工程师先磨一磨,
不然你问我们资讯相关科系花了一年时间在学数据库,
毕业完又花了几年时间在工作,
凭什么小白上了三个月的课就可以给小白管数据库呢?
何况很多人是资讯相关科系出身,有工作经验又拿到DB证照的,
当然会优先给这种人管啦,
再给个建议,要考DB证照,最好考oracle,虽然最贵,但物以稀为贵,
m$证照效果不大呀,很多公司是无视m$证照,只看工作经验
※ 引述《blueblueChen (蓝蓝欠)》之铭言:
: 版友晚安,我是代PO
: 有个朋友想要转换领域,中文系。想转战数据库。因为她的想法很简单
: 就是建立一个 table,让写程式的人去操作..,然后可以不用碰到程式。
: 我对数据库其实也没很熟,包括大学研所全部都重修过。
: 而我的经验是
: 数据库可能在 Windows 或者其他 OS 例如 Android,都有支援的套件,然后还是
: 需要C++或者 JAVA 去写程式逻辑来操作这些数据库。不可能只有一个 table 表
: 就给其他程式设计师用。
: 然后这是巨匠课程表,想问数据库前辈,这些课程对一个外行人来说,有没有绝对帮助呢?
: 或是这些课程,是目前就业市场不可或缺的呢? 毕竟这套课程20万...
: https://goo.gl/YBcXVW
: 谢谢。
作者: polozero1 (Elwien)   2018-09-10 07:55:00
写的好有趣!
楼主: littlethe (东周流浪汉)   2018-09-10 08:03:00
谢谢称赞,我希望能努力的让更多人了解数据库的观念囉
作者: s29940 (阿赐)   2018-09-10 08:16:00
作者: susaku (小草)   2018-09-10 09:40:00
作者: yougigun   2018-09-10 09:43:00
作者: Noahdot (驳二宫和也)   2018-09-10 09:48:00
举例很有趣 XD
作者: DCTmaybe (竹竹人)   2018-09-10 11:14:00
蛮有趣的~推推
作者: jj2236789 (Absinthe)   2018-09-10 12:46:00
生动推
作者: liangnash (凉奶昔)   2018-09-10 13:03:00
看到前面差点嘘,看完了以后想多推几次!
作者: sailoruranu   2018-09-10 13:38:00
作者: ian90911 (xopowo)   2018-09-10 14:07:00
作者: K415NV   2018-09-10 14:19:00
作者: teddy (这是个好问题)   2018-09-10 14:59:00
强烈觉得国小生不可能学会coding 几个苹果分给几个人的问题都解不出来… 年纪还小 逻辑还没建立起来就要反著被逻辑狗干 更不用说是全英文 可能造成童年阴影当然上述都是说一般人 天赋异禀当然不在话下 上次教小五外甥数学教到崩溃
楼主: littlethe (东周流浪汉)   2018-09-10 15:25:00
所以我反对这政策,教程式,不如教英文和逻辑补个补习班心得
作者: pttworld (批踢踢世界)   2018-09-10 15:42:00
国中生已经有算法解题的比赛了
作者: SuperCry (极度哭燥)   2018-09-10 15:46:00
二十几年前我小三上国语日报补作文,一堆小孩补程式,你家小朋友自己心智太晚熟吧
作者: NCUking (中大王)   2018-09-10 15:58:00
连除法都搞不懂是特例吧 别人家的小孩没那么...
楼主: littlethe (东周流浪汉)   2018-09-10 16:04:00
别这么说,在我老家原住民部落是真的有小孩不会除法的
作者: teddy (这是个好问题)   2018-09-10 16:44:00
不唬烂 真的没这么夸张 尤其是应用题 题目不超过30个字都看不懂 可能大家都离国小很远了 但那个年龄真的只会模仿 题目变化一下就直接死给你看 你要他们独立思考很有难度
作者: fayhong (恰似飞鸿踏雪泥)   2018-09-10 17:55:00
这真的是好评论呀,但我觉得最难的还是 PLT 跟计算理论呀
作者: atpx (秋雨的心情)   2018-09-10 20:03:00
coding很简单也可以很难, 要会动的确小学生就能做到
作者: Hevak (Arthow Eshes)   2018-09-11 00:01:00
专职管DB基本上已经是二转以上的职业了啊...
作者: ricky0050   2018-09-11 06:49:00
目前工作 前端60%后端40% 数据库也自己搞 总觉的进步很缓慢...
作者: kaosmart (smart)   2018-09-11 06:50:00
作者: kingofage111 (鸵鸟)   2018-09-11 08:40:00
真用心
作者: strlen (strlen)   2018-09-11 20:04:00
太长了不过推XD
作者: mdkn35 (53nkdm)   2018-09-11 20:24:00
原po真有心啊
楼主: littlethe (东周流浪汉)   2018-09-11 21:13:00
全部工作都一个人做的话当然效率会很差,每个地方用的技术就不同,大脑没办法记住所有技术,也就表示你公司不专业可能我真的很多想法在数据库,所以打很多,也想知道大家对数据库的想法
作者: vfhaiam (vfha)   2018-09-12 09:05:00
DB真的不简单啊...咱公司每次遇到效能问题,就只会抓RD来改select语法,select遇到重复资料也没人管,但公司不可能征个专职的DBA,对于DB的存取只能不断的踩雷.
作者: ccc1001 (你不是吧)   2018-09-12 11:28:00
做不好就是walk on thin ice的职业
楼主: littlethe (东周流浪汉)   2018-09-12 12:31:00
没有dba没关系,但要会改db,否则只动sql的话db会爆
作者: sachung28 (00)   2018-09-12 20:48:00
小孩普及coding的目的 应该不是要让每个都变高手 一万人内只要有一个天才被引导成功 创造出的经济效益就足够了吧
作者: toothlesses (toothless)   2018-09-13 13:07:00
作者: Avarsta (阿骂死塔)   2018-09-13 18:00:00
谢谢大大讲解
作者: ms0266378 (ZIllusion)   2018-09-13 19:27:00

Links booklink

Contact Us: admin [ a t ] ucptt.com