※ 引述《blueblueChen (蓝蓝欠)》之铭言:
: 版友晚安,我是代PO
: 有个朋友想要转换领域,中文系。想转战数据库。因为她的想法很简单
: 就是建立一个 table,让写程式的人去操作..,然后可以不用碰到程式。
: 我对数据库其实也没很熟,包括大学研所全部都重修过。
: 而我的经验是
: 数据库可能在 Windows 或者其他 OS 例如 Android,都有支援的套件,然后还是
: 需要C++或者 JAVA 去写程式逻辑来操作这些数据库。不可能只有一个 table 表
: 就给其他程式设计师用。
: 然后这是巨匠课程表,想问数据库前辈,这些课程对一个外行人来说,有没有绝对帮助
呢
: 或是这些课程,是目前就业市场不可或缺的呢? 毕竟这套课程20万...
: https://goo.gl/YBcXVW
: 谢谢。
小的不才,目前也还是做系统的小小菜鸟,
但天天跟三间公司提供的DB solution(M$、甲骨文、天睿)为伍
算小有经验吧。
看到原PO的说明,觉得很多观念都怪怪的。
用个人见解来把观念先洗一下
如果有错请不要鞭太大力
关于DBA类的见解:
1. 如果是为了想不用写程式又能提升薪水才走DBA这条路,我只能说错,简直在做梦啊。
在台湾中小型企业的老板大多都请不起DBA,几乎都是由工程师兼DBA,原因是应用系统架
构较简单、数据库存放&处理的资料量少,数据库须即时反应的状况也不高,就算data mo
del设计得再烂也不会有什么问题,另个原因就是可以节省人力囉。
但有点规模的公司系统架构本身就很复杂,有些数据库须即时反应(ex:电商网站)、有些
则是分析用(ex:数据建模)。
每天光收集资料&处理资料,再加上资料分析,都是几亿笔在跑。
如果没有专业的DBA调校DB参数&维护,系统早挂了~
对大公司来说,资料是公司重要资产,老板一定请有经验的DBA,绝不会请一位XX电脑补
习班出来的菜鸟。
万一下错指令砍了整个DB 历年来的资料不就欲哭无泪?!
2. 管理数据库的DBA虽然不用写程式,除了基本的数据库建置以外,还须管理权限、调整
数据库效能参数、维护&备援、协助应用系统端调SQL执行效能...等。
3. 数据库一定会建置在OS层上,但难道你以为数据库都一定架构在windows上,所以安装
数据库就是一直按下一步就好了吗?
很多数据库的底层是linux,难道DBA都不需要会指令就能建数据库了吗?
4. 现在市场上DB solution 很多,除了基本的功能外,各家DB 的设计、特殊function的
使用...等,每家solution都不太相同。而且DB会一直推出新版本,每release一个版,有
些功能、特殊function可能都会改变。
因为做系统的工程师不太会知道这些,在遇到DB需要升版时也是必须靠DBA辅导工程师去
调整程式的。
关于应用系统工程师的见解:
1. 做系统开发的工程师,除了要写程式外,还必须了解domain know how,不了解就无法
准确设计data model。
说到这一定有人要批判设计data model是SA、SD的事,但台湾很多公司为了精简人力,做
开发工程师也是兼作SA、SD,所以没有好的data model,长久下来系统一定会有毛病(ex:
资料量大处理效能变差)。
2. 要用程式把资料存到数据库,基本sql的使用、sql explain、stored procedure…等
也要会用吧,不要跟我说写程式是工程师的事,但就是跟数据库有相关,无论是DBA还是
工程师都是要会。
说了那么多,那股热情应该会先消5成吧。
瞥了一下巨匠课程表,那个课程只是复习基础观念&辅导你去考证照而已。
我记忆中考证照就是题库背完就去考了,有一些还有考上机,但一定也会有题库,会背书
、多练个几次就会过了。
而且上课内容也包含开发,开发的意思就是要写程式喔XD ,听到写程式应该就没热情了
吧。
而且考到证照跟实际工作其实是有很大的落差der~
真的不用花钱去上课,如果有兴趣去书局翻翻“数据库系统理论与实务”这种书,确定念
的下去在继续深入,不然只会白花冤枉钱。
(原PO大大,钱难赚,不能这样乱花啊)
话说工作这几年,因为有跟几位DBA合作过,DBA的能力在哪种程度,在有障碍的时候最能
看得出来。
资深的DBA可以带你上天堂,通常他们都是有深厚的程式底子,能在DB有状况的时候快速
抓到问题点、排除障碍。
菜鸟的DBA必定会害你下地狱,当状况发生时是没有能力找到问题&处理问题,他会比你还
要慌张XD。
总结一下,
其实文组不是不能转行做工程师,
我也不是爱战文组。
(我也算文组转行工程师)
因为太多念文组的人,
总是有先入为主的观念,
觉得工程师写程式很容易啊,
写个两行就可以生出一套系统。
拜托~我每次听到文组的朋友这样说
白眼都不知道翻了几圈
看完这篇文后,以后请不要再说这种话。
程式语言只是开发系统的工具,
就像英文是跟外国人沟通的工具,
一套系统难在设计架构、流程,
这两件事没做好,系统就很难再扩充,
打掉重练是常有的事。
所以不是你随便喊一句我会用XX语言写程式,就有本事弄出一套系统来的。