成为一名dba需要的技能哪些技能?

2014年7月荣获微软MVP称号2013年7月 荣获微软MVP称号2012年7月 荣获微软MVP称号2011年7月 荣获微软MVP称号
2012年2月 总版技术专家分月排行榜第三
2011年8月 挨踢职涯大版内专家分月排行榜第一2011年3月 扩充话题大版内专家分月排行榜第一2011年2月 扩充话题大版内专家分月排行榜第一2011年2月 挨踢职涯大版内专家分月排行榜第一2011年1月 扩充话题大版内专家分月排行榜第一2010年12月 扩充话题大版内专家分月排行榜第一2010年12月 挨踢职涯大版内专家分月排行榜第一2010年8月 挨踢职涯大版内专家分月排行榜第一
2012年9月 扩充话题大版内专家分月排行榜第二2011年11月 扩充话题大版内专家分月排行榜第二2011年10月 扩充话题大版内专家分月排行榜第二2011年9月 挨踢职涯大版内专家分月排行榜第二2011年7月 挨踢职涯大版内专家分月排行榜第二2011年4月 挨踢职涯大版内专家分月排行榜第二2010年6月 挨踢职涯大版内专家分月排行榜第二
2011年8月 挨踢职涯大版内专家分月排行榜第一2011年3月 扩充话题大版内专家分月排行榜第一2011年2月 扩充话题大版内专家分月排行榜第一2011年2月 挨踢职涯大版内专家分月排行榜第一2011年1月 扩充话题大版内专家分月排行榜第一2010年12月 扩充话题大版内专家分月排行榜第一2010年12月 挨踢职涯大版内专家分月排行榜第一2010年8月 挨踢职涯大版内专家分月排行榜第一
2012年9月 扩充话题大版内专家分月排行榜第二2011年11月 扩充话题大版内专家分月排行榜第二2011年10月 扩充话题大版内专家分月排行榜第二2011年9月 挨踢职涯大版内专家分月排行榜第二2011年7月 挨踢职涯大版内专家分月排行榜第二2011年4月 挨踢职涯大版内专家分月排行榜第二2010年6月 挨踢职涯大版内专家分月排行榜第二
2011年8月 挨踢职涯大版内专家分月排行榜第一2011年3月 扩充话题大版内专家分月排行榜第一2011年2月 扩充话题大版内专家分月排行榜第一2011年2月 挨踢职涯大版内专家分月排行榜第一2011年1月 扩充话题大版内专家分月排行榜第一2010年12月 扩充话题大版内专家分月排行榜第一2010年12月 挨踢职涯大版内专家分月排行榜第一2010年8月 挨踢职涯大版内专家分月排行榜第一
2012年9月 扩充话题大版内专家分月排行榜第二2011年11月 扩充话题大版内专家分月排行榜第二2011年10月 扩充话题大版内专家分月排行榜第二2011年9月 挨踢职涯大版内专家分月排行榜第二2011年7月 挨踢职涯大版内专家分月排行榜第二2011年4月 挨踢职涯大版内专家分月排行榜第二2010年6月 挨踢职涯大版内专家分月排行榜第二
2013年6月 Oracle大版内专家分月排行榜第二
2010年9月 挨踢职涯大版内专家分月排行榜第一
2010年12月 .NET技术大版内专家分月排行榜第二2010年10月 挨踢职涯大版内专家分月排行榜第二2010年8月 挨踢职涯大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。额头深刻的皱纹和斑驳的脸庞,让人感受到岁月的无情。
当地人给断掉的鼻子贴上了创口贴,一时在网上走红。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  一个优秀的程序员需要具备哪些技能呢?这里北大青鸟广州新嘉华为程序员们整理了12条必备技能,一起围观吧!
  1.编程语言
  不懂编程语言,怎么能成为一个真正的程序员?
  不过,关于选择哪种编程语言去学习可能并没有我们想得那么重要这一点,相反,让我们谈一谈为什么我们要从一种编程语言开始,而不是试图去学习所有的东西。
  许多新手程序员会试图一次性或在第一份工作之前学习几种编程语言,以便于有备无患。
  虽然我认为你最终应该学会一种以上编程语言,但我不建议提前这样做,因为这只会导致混乱,并且会分散你需要学习的其他技能的精力。
  相反,我建议你应该深入研究,重点学习单一编程语言的来龙去脉,这样你才能对用这种编码语言来写代码信心十足。
  2.如何构造代码
  有一个很好的资源来帮助你学习这个非常宝贵的技能:Steven McConnell的《Code Complete 》。
  很多软件开发者在他们整个职业生涯都不曾去学习这个技能,这是不幸的,因为这是我——以及其他许多人——判断一个软件开发人员技术和能力的主要方式。
  良好的代码结构展示了对这种技艺的热衷,而不仅仅是为了完成工作。构建代码是软件开发真正的艺术部分,但它也是至关重要的,因为你和你的同事得花费相当多的时间来维护现有的代码,而不是编写新的代码。
  具体应该如何正确地组织代码我就不说了,因为我已经给出了一个很好的资源,但是要努力学习如何从一开始就写出好的、干净的代码,而不是事后学习这个技能。
  3.面向对象的设计
  这一条是有争议的,特别是如果你正在学习的编程语言并不面向对象,但是有大量的软件开发世界会按照面向对象设计的思维思考,所以你需要确保你了解它。
  面向对象的设计是一种将复杂程序设计***为单独的类或对象(类的实例)的方法,其中封装功能且具有特定的角色和责任。
  在软件开发中,我们总是试图管理复杂性。
  从对象的角度思考可以帮助我们做到这一点,因为它能让我们从一堆交互组件中定义并设计一个复杂的系统,而不是作为一个整体的试图解决整个复杂性。
  现在的编程世界有着大量的函数式编程语言,但你在软件开发中找到的最流行的语言和模式,仍然深受面向对象设计和分析的影响。
  你应该好好理解什么是类,继承的不同类型——何时使用它们——还有理解像多态性和封装等术语。
  4.算法和数据结构
  如果你上传统院校学习并想获得计算机科学学位的话,那么这是一个很大的考点。算法是解决各种计算机科学/编程问题的常用方法。
  计算机科学领域有很多这样的算法,并且理解如何变化这些算法来解决你可能遇到的棘手问题也很重要,当你解决现实编程问题的时候。通常情况下,擅长这些算法可以让一个开发人员在1个小时之内就能解决可能需要另一个开发人员几天时间才能搞清楚的问题。
  除非你熟悉和擅长算法,否则你甚至不知道已经有了优雅的解决方案在那里。因此,仅仅只为这个原因,我认为这也是一个值得掌握的宝贵技能。
  数据结构也是如此,并且可以与算法结合使用。
  有几个所有软件开发者都应该熟悉数据结构中的,包括:
  数组或向量
  通过熟练掌握数据结构和算法,你可以轻松又优雅地解决许多艰难的编程问题。
  目前最好的资源是Gayle Laakmann McDowell的《Cracking the Coding Interview》。在这本书中,作者涉及了所有你需要了解的关于算法和数据结构的内容。
  如果你想通过如微软或谷歌这样的大公司的面试,那么你一定得掌握这个技能集。
  5.开发平台及相关技术
  平台是什么意思呢?通常它的意思是操作系统(OS),但也适用于其他可以充当类似于操作系统角色的抽象。
  具体确切的关于平台是什么就不讨论了——不同的人会有不同的看法——但这里定义平台为你开发的特定环境,它有自己的生态系统和特殊性。
  再者,这是另一个我认为选择并非那么重要的技术技能,只要你选择了一个就好。
  企业通常会聘请开发人员针对特定的平台或技术开发软件。
  你作为iOS开发者将更容易找到工作,如果你专业于那个特定平台的话。
  这意味着要熟悉平台本身,以及开发工具,惯用模式,还有大多数程序员在为那个平台开发时会使用的通用框架。
  你可能会认为编程语言的选择决定了平台,但实际上事实情况很少是这样的。
  就拿C#举例。如果你是一个C#开发人员,那么你可以用这种编程语言为Windows,Mac,iOS,Android,Linux,甚至是嵌入式系统写代码。
  所以,不要仅仅只是选择语言;还要选择平台。
  6.框架或堆栈
  什么是框架?什么是堆栈?
  框架就是一系列被用于在特定平台或多个平台上开发代码的库。它通常可以使得在该平台上的编程任务变得更加容易。
  看这个C#的例子。大多数C#开发人员使用.NET框架来编写C#应用程序。 .NET框架包括许多库和类,能够让C#开发人员在更高的抽象级别上工作,因为每当他想做什么事情的时候,没有必要完全重新发明轮子。
  例如,.NET框架的部分还包含了处理图像的代码。这类代码从头编写是极其困难的,所以框架极大地帮助了C#开发人员去编写需要以某种方式处理图像的代码。
  堆栈则有点不同。堆栈是一组技术,通常包括一个框架,并且常一起用于创造一个完整的应用程序。
  栈使得创建应用程序变得更容易,因为它们提供了一种许多开发者用来开发应用程序的通用范式,因此知识可以很容易地共享,并且你也能确定哪些特定的技能集市可以一起工作的。
  7.基础数据库知识
  当前主要有两种数据库技术:关系数据库和文档数据库。
  在软件开发中,数据库经常被用来存储应用程序的数据。
  当然,有些团队甚至有专门的数据库开发人员或数据库管理员(DBA),但是这并不能真正允许你不懂至少是基本的数据库知识。
  最起码,你应该知道:
  数据库如何工作
  如何执行基本的查询来获取数据
  如何插入、更新和删除数据
  如何连接数据集
  此外,你可能会想知道如何以编程方式从你的代码与你所选择的平台和/或框架检索和存储数据。
  大多数开发者被期待能够编写与数据库进行交互代码。
  8.源代码控制
  源代码控制是任何软件开发项目的组成部分。
  在我们使用源代码控制之前,我们必须在网络上共享项目的所有文件,或者通过U盘来回查看存储在上面的不同软件版本。
  当前,几乎所有专业的开发者人员都被期待懂得如何使用源代码控制来反复检查代码,并希望懂得合并来自多个源的变化。
  最基本层面的源代码控制可以让你保持在一个软件项目中对不同的文件所做更改的历史记录。它还允许多个开发人员在同一时间工作于相同的代码,然后合并这些更改。
  在当今软件开发领域,几乎所有专业的软件开发团队都会使用某种源代码控制。
  9.构建和部署
  现在,大多数软件开发项目都有着某种自动化的构建和部署系统。
  有几种不同的软件应用程序,可以帮助软对自动化这两个任务,曾经是手动,当然对于某些团队而言,现在仍然如此。
  什么是构建和部署?你知道如何写代码,并检入到源控制系统吗?拥有一些方法来确保代码可在你检入后真正能工作很不错。这就是构建系统的用武之地。最起码,构建系统将编译所有代码,并确保没有编译错误。
  10.测试
  曾几何时开发者并没有必要知道太多关于测试的内容。我们习惯于写一串代码,然后扔给测试人员,让他们去找代码中的各种bug,然后我们再来修复bug。
  切不可再如此。
  随着越来越多的软件项目开始采用所谓的敏捷过程,(后面再方法这一点中我们再细谈),软件开发人员和测试人员不得不更密切地一起合作。
  质量已真正成为了整个团队的责任——我倒是更想说,它一直都是。
  随之而来的是,你需要了解一些关于测试的东西。
  你至少应该熟悉如下基本术语:
  白盒测试
  黑盒测试
  单元测试(不是真的测试)
  边界条件
  测试自动化
  验收测试
  一个好的开发人员——我假设你至少想成为一个优秀的开发人员——会在将代码交给别人之前测试自己的代码。
  如果你真的想被认为是专业的,并非浪者虚名,那么这一条没有商量余地。
  11.调试
  每个人都希望写代码,没错吧?但好像没有人愿意调试自己的代码。
  大约90%的时间软件开发人员是用来搞清楚到底为什么代码不能正常工作。
  如果你采用如测试驱动开发这样的方法,那么你可能会少花很多时间在调试上,但无论如何,不管你做什么,不管你如何努力,你都不得不学习如何调试代码或其他人的代码。
  因此,与其采取一种随意的方式来做一些你不得不做的事情,还不如咬紧牙关竭尽全力学会如何有效地做好这件事情。
  12.方法
  最后一个,虽然一些软件开发团队才刚开始写代码,不择手段只要完成任务即可,但是大多数团队还是至少遵循某种方法的。
  出于这个原因,熟悉一些最常见的软件开发方法背后的基本理念至关重要。
  这里要说的是瀑布式开发和敏捷开发。
  大多数团队会声称他们正在做敏捷。敏捷本身是一个非常松散的概念,但也有一些做法和——原谅我的措辞——固定程序是你应该知道的,如果你不想只是纸上谈兵,想要打造一支敏捷团队的话。
欢迎举报抄袭、转载、暴力***及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
分享互联网知识技术,分享互联网正能量故事,一起学习,分享快...
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格·云顿/乔·弗拉尼甘/Bianca Bree
主演:艾斯·库珀/ 查宁·塔图姆/ 乔纳·希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬***
******:86-10-
***邮箱:职业生涯规划_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
职业生涯规划
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

参考资料

 

随机推荐