本期《IT名人堂》邀请到了Oracle开发大师苏旭晖先生,也就是ITPUB论坛中的newkid。说起newkid,在ITPUB可以说是备受大家推崇。那么这次访谈他又给我们带来了哪些内容和惊喜呢?
苏旭晖(newkid),oracle开发板块资深版主,现居加拿大多伦多,长期活跃于开发板为网友答疑解难,坚持每天贡献PL/SQL CHALLENGE 每日一题,曾参与撰写itpub系列丛书:剑破冰山:Oracle开发艺术。担任了第三届SQL编程大赛的出题与评审工作。
duke217:苏老师,您好!在ITPUB,您可是大神级别的人物,相信很多朋友对您都已经很熟悉了。但同样,我们还有很多新朋友对您不是很了解。您能否再简单的介绍一下自己?分享下您的职业经历?
newkid:应该说我是大叔级别的人物还差不多。我1992年毕业后在厦门的一家软件企业工作,一开始主要是在DOS下写FoxPro的程序,有时候也干一些诸如安装打印机、杀病毒之类的杂活。几年下来我练成了FoxPro大师,曾经用FoxPro写过一个类似WPS的文本编辑器,还写过俄罗斯方块游戏。几年后公司开始做医院收费系统,采用的是当时流行的CS架构,客户端用PowerBuilder做开发,数据库用Oracle,我被同事培训了一下就上岗,几年下来不知不觉又成了PowerBuilder大师。这两样我曾经最拿手的本领现在都已进入历史博物馆,也基本忘光了,只剩下Oracle还没丢。算起来接触Oracle的时间已经有18年了,但真正专职从事Oracle开发是从2003年移民加拿大开始。当时恰好找到的第一份工作是做Oracle开发,积累了经验后再换工作也是这个方向,算是机缘巧合吧。来到itpub的缘起也是很凑巧,2008年经济萧条时我上班很闲,到处晃悠,在别的网站看到有人在推荐itpub,进来之后才发现自己原来早就注册了账号,是有次下载电子书时偶然注册的。开发版的内容很对我的胃口,精华区里有很多奇妙的技巧贴,我花了很多时间阅读,也试着回答网友的问题,慢慢地就养成了每天必来的习惯,直到今天。
duke217:经过多年的实战洗礼,您在学习和工作的道路上有过困惑么?能否分享下您的经验和故事?
newkid:要说困惑,那就是职业转型的困惑。在国内做程序员是种吃青春饭的职业,做开发到了一定年龄之后就很难继续了,我其他方面的才能又十分有限,所以转型之后就感觉自己对公司做不出贡献了,于是选择了出国。在国外重操开发旧业之后我感觉自己的青春延续了,每天做的都是自己擅长且感兴趣的事,日子过得比较充实。现在公司里各种肤色年龄的人都有,像我这样的大叔混杂在开发队伍中竟然没有违和感。我的经历和个人性格有关,对别人不一定有参考作用,我也祝愿所有程序员都能找到适合自己的发展方向。
duke217:近年来,Oracle的自动化程度变得越来越高,很多需要人为介入的优化手段也变得越来越简单。在这种情况下,您对SQL优化的价值体现怎么看?
newkid:Oracle优化器的智能化把我们从一些低端的劳动解放出来了,比如现在我们在大多数情况下都不需要操心IN(SELECT...)和EXISTS(SELECT...)的差别,这样我们可以把精力放在技术含量更高的设计方面,比如数据结构、物理组织等等方面,设计做好了写起SQL可以事半功倍,这是SQL优化的更高境界。另一方面,任何产品都不可能是完美的,随着新功能的引入,优化器的行为也会更加难以捉摸,新版本往往会带来新的BUG,这就需要我们不断学习,掌握优化器的新特性和新的干预手段和工具,当新版本优化器不能好好干活时知道怎么“治”它,这也算是人力优化的价值体现吧。
duke217:作为一名数据库从业者,您如何看待关系型数据库和NoSQL之间的竞争?他们未来会呈现何种关系呢?
newkid:SQL不是万能的,但没有SQL是万万不能的!粗看起来SQL是一门简陋的语言,但其实它书写简洁,功能强大,有旺盛的生命力,以后也会继续生存。我对NoSQL的了解都来自于网络,据我所知它的弱点在于对事务的支持,而关系数据库在这方面是非常成熟的,有多年的技术积淀,任何颠覆者想要取代关系数据库,最后会发现只是把轮子重新发明了一遍而已,而且代价高昂,很可能还没原来做得好。世界上还有许许多多需要事务支持的应用,在这方面关系数据库的地位是很难撼动的。未来这两种阵营将会有各自的地盘,并且互相学习、取长补短,比如Oracle就一直在丰富自己的SQL功能,加入了对文本搜索、GIS、XML等等的支持,现在又推出了BigDataSQL产品,可以用SQL来访问NoSQL数据。
duke217:众所周知,您沉浸SQL开发行业已经有10多年了,那对于新进入的开发人员有什么好的建议呢?
newkid:类似的问题我在论坛上看到过几次,每次我的回答都是:兴趣是最好的老师。在我看来,SQL其实是很有趣的语言,我们历届的SQL比赛都会有意找一些标新立异的题目,让人感受到SQL的独特魅力。说实话在我刚开始学习SQL的前几年也不知道SQL可以这么好玩,可见兴趣是可以培养的。只要有了兴趣,你就会好奇,就会主动寻找学习资料,而网上的SQL学习资料是很丰富的,我甚至可以夸口,关于SQL开发的任何问题你都可以到我们ORACLE开发版来找到答案,这里有一帮高水平而又热心的网友和版主。只要有了兴趣,在别人看来枯燥无味的工作一点也不辛苦,当你把别人写的几百上千行的SQL看懂,并且用更好的写法取代,运行时间从几小时降到了几秒钟,那种成就感是无以伦比的。我希望SQL能得到越来越多的开发人员的重视,哪怕你做的不是专职的数据库开发,精通SQL对你的职业生涯也是大有裨益的。
duke217:几年前,您参与编写的《剑破冰山—oracle开发的艺术》大受业内好评,不知道您最近都在忙些什么,有没有编写新作品的计划呢?
newkid:我是个典型的IT宅男,整个人生就是上班、吃饭、睡觉,解闷的方式就是在地铁上听音乐,看视频。我的文字表达能力是短板,而且人也比较懒,平时没有写文章、写博客的习惯,零碎发帖倒是很勤,但基本上没什么积累。我要感谢剑破冰山的其他作者促成了我那次的玩票之作,如果有机会,碰到好的选题还是有可能再写的,但目前完全没有计划。