IT从业人员需要哪些素质?

IT从业人员需要哪些素质?,第1张

我上班第一天我的老板让我做的第一件事

看两篇文章:

程序员随想

雷军

我不是天生的程序员,也并非天生就喜欢电脑,上高中时也没有想过将来会当程序员,接触电脑纯属偶然--小时候的一个好朋友上大学时选择了电脑专业,为了和这个朋友有更多的“共同语言”我便选择了计算机系。在大学,我略窥电脑世界,开始为之“发烧”;毕业后,开始了一个程序员的职业生涯。

从开始写程序到现在快十年了,写过的程序不少。从这些年的风风雨雨中走过来,不能不有些体会。说到体会,最大的体会就是这条路太漫长。

一、一辈子有你 苦一点也愿意

我没有奢望大家把写程序和文学创作相提并论,但其中的苦楚却不是一个普通用户能够体味的。为了写好一个程序,我们度过太多不眠之夜。有个朋友如此评价道,“写程序简直是在自杀,巨费精力巨费脑子巨累”。但还是有许多人不畏其苦,前仆后继。

我刚接触到电脑就发现电脑的妙处:电脑远没有人那么复杂,如果你的程序写得好,你就可以和电脑有着非常融洽的关系,就可以指挥电脑干你想干的事,这个时候,你是十足的主宰。每每坐在电脑面前,你就如同在一个王国里巡行。

电脑里的世界很大,程序员是活在自己想象的王国里。你可以细微到电脑里的每一个字节、每一个比特的东西。

这样的日子简直就是天堂般的日子,很多人都爱上了这样的日子。

不少人认为程序员最多干到三十五岁就可以收山,脑子也差不多该歇歇了,并认为写程序是年轻人的事情,到了一定年龄,估计没什么人再当程序员。

我刚毕业时,意气风发,也想先吃点苦,到了三十岁就不干了。年长一点后就发现了自己的无知。一个人大学毕业就二十一二岁,技术成熟一点后可能二十五,接着就是票子、妻子和房子等等诸多忙不完的事情。一切搞掂的时候,也许就是三十五岁。如果三十五岁就放弃的话,我们就不用选择程序员的道路。

电脑进入我国时间不短,但真正大规模开始用,还是八五年PC登陆我国时候的事。因此国内真正写电脑程序的人最长也就写了十几年(不知道是否还有这样的人)。由于电脑应用在国内时间比较短,国内程序开发的主力以三十五岁以下的年轻人为主,但这并不表示程序员如同红粉佳人般的容易衰老。美国和台湾地区的开发者以三四十岁的人为主。开始写程序的时候,我们觉得没有什么不能做的(现在还能听到这样的豪言壮语),而且更要命的是,好象我们特别聪明,特别适合开发软件,比老外强得多。当我们真正接触那些杰出的国外开发人员的时候,发现他们太厉害了,都有十多年的开发经验,绝对多数的产品出自这些有丰富开发经验的程序员之手。

毕业后,编程不仅仅是爱好,而且成了一辈子的工作,可以肯定会干一辈子,虽然我没有打算一生只干这一件事。用一生来编程是一件既容易又困难的事。如果碌碌无为,为交差写点程序,这样写两辈子的人都有。但如果想全身心地写程序,写十年都不是一件容易的事。现在我的不少朋友都洗手了,有时我也有这种想法,但一旦面对电脑,立刻顿悟:电脑还是自己最擅长干的事,也是最顺手的事。

二、我的未来不是梦

有的人刻苦学习编程技术,努力提高编程水平,并把高级程序员作为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,感到非常困惑和茫然。

当我上大学的时候,高级程序员也曾是我的目标。当时,我通过等级考试获得了高级程序员证书,并在自己的名片上印上“高级程序员”的字样。后来,我的水平提高了,似乎也成了大家认可的好程序员了。这个时候我却开始茫然。我希望我的技术能得到别人的承认,当得到别人的承认后,我又能如何呢?后来我发现,无论成为多么高级的程序员都没用,关键是是否能够出想法、出产品,你的劳动是否能被社会承认,是否能为社会创造财富。

我的未来是明确的,开发出高质量的适用社会的产品,为社会创造财富。

三、每一个程序都是艺术品

有人认为程序员没有什么了不起,不过是一种熟练工种而已;也有人把编程说成是艺术创作,捧上天。这两种意见争论比较激烈,甚至可以说针锋相对。

我们换个工种来看,石匠应该是熟练工种,跟艺术似乎沾不上边。;但正是这些石匠,给我们留下了数不胜数的文物古迹,如乐山大佛、莫高窟等等。应该说这此石匠给我们留下了无穷的文化财富。我认为编程的工作和石匠比较相似,是技术,也是艺术。

现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战。一名精通程序员接受编写某一块的任务后,往往只是写代码,发挥的余地很小。在大项目中,很多程序员只能了解到和自己所编模块相关的很局部的细节,另外还受到开发环境的限制,真的很难体会到自己在从事“艺术”创造,更多的时候是感到自己在从事重体力劳动。有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展、 *** 作系统的换代而过时......

编程是技术活,才有可能大规模进行,才会有软件工程的理论。也正是编程具备艺术创作的特点,我们的生活才会有如此多的好软件产品。写一个程序需要付出脑力和体力,当我—我们—某个群体完成一个程序之后,在我们的眼里,每一个程序就都是艺术品。

程序员应具备的素质

前言

程序员是一种技术工作,在IT的发展中有相当重要的地位,从底层硬件通讯协议的建立, 到数据传输层的处理,到 *** 作系统的建设,到数据库平台的建设,一直到应用层上各种数 据营销平台的搭建,程序员在里面都扮演着举足轻重的角色并为IT事业的发展做出了巨大 的贡献。

中国有很多精于编码的人,但是中国软件行业,尤其是网络应用开发方面误区很大,很难形成有规模的软件开发力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不 如。这些问题不是在于中国程序员的智商和工作努力状况,也不是在于国家和民间对开发 的投入程度,而是很大程度上,有一些对技术,对程序开发,对项目设计方面的思想误 区,这些误区,导致了软件行业的产品化能力不足,缺乏规模化和大型复用系统研发能 力,可以说,改变认识误区,是解决软件行业小作坊模式和个体英雄模式所带来的局限性 的重要工作。

中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际 上只是一些Coding fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的 CTO就是这样的coding fans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓人。

一、程序员基本素质

作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

1:团队精神和协作能力

把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最 重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有 限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球 的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软 件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺 乏这种素质的人就完全不合格了。

2:文档习惯

说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中 非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级 程序员和系统分析员,这个比例还要高很多。

缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇 到极大的麻烦。

3:规范化,标准化的代码编写习惯

作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩 进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和 纠错,也有助于不同技术人员之间的协作。

有些coding fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自 己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。

再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可 想象的。

4:需求理解能力

程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性 能指标全部归结到硬件, *** 作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾 经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情 况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太 极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程 序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险 和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经 验才有可能有心得。

5:复用性,模块化思维能力

经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写 一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成 了熟练程序员的主要工作,而这些,其实是完全可以避免的。

复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一 些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在, 是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避 免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到 这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投 入到创新的代码工作中去。

一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块 都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重 写,大部分重复性工作无谓的浪费了时间和精力。

6:测试习惯

作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专 职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特 点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行 认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效 率和可靠性就有了最大的保证。

测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常 调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务, 实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用 户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频 发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都 需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和 各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的 需求理解能力。

7:学习和总结的能力

程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有 领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。

善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高 了。

但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一 会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目 的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂 中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提 高。

善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有 目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高, 一个程序员才可能成长起来。

一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候 马上就到了。

具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决 定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。

二、高级程序员/项目设计者还需具备的素质

那么作为高级程序员,以至于系统分析员,也就是对于一个程序项目的设计者而言,除了应该具备上述全部素质之外,还需要具备以下素质:

第一,需求分析能力

对于程序员而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者, 他们不但要理解客户需求,更多时候还要自行制定一些需求,为什么这么说呢?

一般而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出的需求,这 时候对于研发部门,他们看到的不是一个完整的需求,通常而言,该需求仅仅是一些功能 上的要求,或者更正规些,可能获得一个完整的用户视图;但是这都不够,因为客户由于 非技术因素多一些,他们可能很难提出完整和清晰,或者说专业性的性能需求,但是对于 项目组织者和规划者,他必须能够清醒认识到这些需求的存在并在完成需求分析报告的时 候适当的提出,同时要完整和清晰的体现在设计说明书里面,以便于程序员编码时不会失 去这些准则。

程序设计者必须正确理解用户需求所处的环境,并针对性做出需求的分析,举例而言,同 样一个软件通过ASP租用方式发布和通过License方式发布,性能需求可能就是有区别的, 前者强调的是更好的支撑能力和稳定性,而后者则可能更强调在各种平台下的普适性和安 装使用的简捷性。

第二,项目设计方法和流程处理能力

程序设计者必须能够掌握不少于两到三种的项目设计方法(比如自顶至下的设计方法,比如快速原型法等等),并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的 整体设计。

设计方法上选择不当,就会耽误研发周期,浪费研发资源,甚至影响研发效果。

一个程序设计者还需要把很多功夫用在流程图的设计和处理上,他需要做数据流图以确立 数据词典;他需要加工逻辑流图以形成整体的系统处理流程。

一个流程有问题的系统,就算代码多漂亮,每个模块多精致,也不会成为一个好的系统。 当然,做好流程分析并选择好项目设计方法,都需要在需求分析能力上具有足够的把 握。

第三,复用设计和模块化分解能力

这个似乎又是老调重谈,前面基本素质上不是已经说明了这个问题吗?

作为一个从事模块任务的程序员,他需要对他所面对的特定功能模块的复用性进行考虑, 而作为一个系统分析人员,他要面对的问题复杂的多,需要对整体系统按照一种模块化的 分析能力分解为很多可复用的功能模块和函数,并针对每一模块形成一个独立的设计需 求。举个例子,好比是汽车生产,最早每辆汽车都是独立安装的,每个部件都是量身定做 的,但是后来不一样了,机器化大生产了,一个汽车厂开始通过流水线来生产汽车,独立 部件开始具有一定的复用性,在后来标准化成为大趋势,不同型号,品牌甚至不同厂商的 汽车部件也可以进行方便的换装和升级,这时候,汽车生产的效率达到最大化。软件工程 也是同样的道理,一个成熟的软件行业,在一些相关项目和系统中,不同的部件是可以随 意换装的,比如微软的许多桌面软件,在很多 *** 作模块(如打开文件,保存文件等等)都 是复用的同一套功能模块,而这些接口又通过一些类库提供给了桌面应用程序开发者方便 挂接,这就是复用化的模块设计明显的一个佐证。

将一个大型的,错综复杂的应用系统分解成一些相对独立的,具有高度复用性的,并能仅 仅依靠几个参数完成数据联系的模块组合,是作为高级程序员和系统分析员一项最重要的 工作,合适的项目设计方法,清晰的流程图,是实现这一目标的重要保证。

第四,整体项目评估能力

作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配 置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。评 估项目整体和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需 要大量的经验积累,换言之,这是一种不断总结的累计才能达到的境界。在西方一些软件 系统设计的带头人都是很年长的,比如4,50岁,甚至更老,他们在编码方面已经远远不 如年轻人那样活络,但是就项目评估而言,他们几十年的经验积累就是最重要和宝贵的财 富。中国缺这么一代程序员,主要还不是缺那种年纪的程序员,而是那种年纪的程序员基 本上都是研究单位作出来的,都不是从专业的产品化软件研发作出来的,他们没有能积累 那种产品化研发的经验,这也是没有办法的事情。

第五,团队组织管理能力

完成一个项目工程,需要团队的齐心协力,作为项目设计者或研发的主管人,就应当有能 力最大化发挥团队的整体力量,技术管理由于其专业性质,不大同于一般的人事管理,因为这里面设计了一些技术性的指标和因素。

首先是工作的量化,没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码 行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。

其次是对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主 程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的 需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥 组队的效率。

一个代码水平高的人,未必能成为一个合格的项目研发主管,这方面的能力欠缺往往是容 易被忽视的。

综上可以看到,作为一个主管研发的负责人,一个项目设计者,所需要具备的素质和能力 并不是程序代码编写的能力,当然一般情况下,一个程序员通过不断的总结提高达到了这种素质的时候,他所具有的代码编写能力也已经相当不简单了,但是请注意这里面的因果 关系,一个高水平的项目设计者通常已经是代码编写相当优秀的人了,但是并不是一个代 码相当优秀的程序员就可以胜任项目设计的工作,这里面存在的也不是智商和课本的问 题,还是在于一个程序员在积累经验,逐步提升的时候没有意识到应当思考哪方面的东 西,没有有意识的就项目的组织和复用设计进行揣摩,没有经常性的文档习惯和总结习 惯,不改变这些,我们的合格的项目设计者还是非常欠缺。

另外,为防止有无聊的人和我较真,补充一点,本文针对目标是作商业化的软件项目和工程,那些科研机构的编程高手,比如算法高手,比如图象处理高手,他们的工作是研究课题而非直接完成商业软件(当然最终间接成为商业产品,比如微软研究院在作的研究课 题),因此他们强调的素质可能是另外的东西,这些人(专家),并不能说是程序员,不能用程序员的标准去衡量。

三、软件项目研发的设计流程

最后补充一点东西,一个软件项目研发的设计流程是怎样的呢?以通常标准的设计方法为例,(不过笔者喜欢快速原型法)。

第一个步骤是市场调研

技术和市场要结合才能体现最大价值。

第二个步骤是需求分析

这个阶段需要出三样东西,用户视图,数据词典和用户 *** 作手册。

用户视图是该软件用户(包括终端用户和管理用户)所能看到的页面样式,这里面包含了 很多 *** 作方面的流程和条件。

数据词典是指明数据逻辑关系并加以整理的东东,完成了数据词典,数据库的设计就完成 了一半多。

用户 *** 作手册是指明了 *** 作流程的说明书。

请注意,用户 *** 作流程和用户视图是由需求决定的,因此应该在软件设计之前完成,完成 这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做的,因果颠倒,顺 序不分,开发工作和实际需求往往因此产生隔阂脱节的现象。

需求分析,除了以上工作,笔者以为作为项目设计者应当完整的做出项目的性能需求说明 书,因为往往性能需求只有懂技术的人才可能理解,这就需要技术专家和需求方(客户或 公司市场部门)能够有真正的沟通和了解。

第三个步骤是概要设计

将系统功能模块初步划分,并给出合理的研发流程和资源要求。 作为快速原型设计方法,完成概要设计就可以进入编码阶段了,通常采用这种方法是因为 涉及的研发任务属于新领域,技术主管人员一上来无法给出明确的详细设计说明书,但是 并不是说详细设计说明书不重要,事实上快速原型法在完成原型代码后,根据评测结果和 经验教训的总结,还要重新进行详细设计的步骤。

第四个步骤是详细设计

这是考验技术专家设计思维的重要关卡,详细设计说明书应当把 具体的模块以最’干净’的方式(黑箱结构)提供给编码者,使得系统整体模块化达到最 大;一份好的详细设计说明书,可以使编码的复杂性减低到最低,实际上,严格的讲详细 设计说明书应当把每个函数的每个参数的定义都精精细细的提供出来,从需求分析到概要 设计到完成详细设计说明书,一个软件项目就应当说完成了一半了。换言之,一个大型软 件系统在完成了一半的时候,其实还没有开始一行代码工作。

那些把作软件的程序员简单理解为写代码的,就从根子上犯了错误了。

第五个步骤是编码

在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/ 2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提 高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可 能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都 出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永 远存在,你必须永远面对这个问题,大名鼎鼎的微软,可曾有连续三个月不发补丁的时候 吗?从来没有!

第六个步骤是测试

测试有很多种:

按照测试执行方,可以分为内部测试和外部测试

按照测试范围,可以分为模块测试和整体联调

按照测试条件,可以分为正常 *** 作情况测试和异常情况测试

按照测试的输入范围,可以分为全覆盖测试和抽样测试

以上都很好理解,不再解释。

总之,测试同样是项目研发中一个相当重要的步骤,对于一个大型软件,3个月到1年的外 部测试都是正常的,因为永远都会又不可预料的问题存在。

完成测试后,完成验收并完成最后的一些帮助文档,整体项目才算告一段落,当然日后少 不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不停的跟踪软件的运营 状况并持续修补升级,知道这个软件被彻底淘汰为止。

写这些步骤算不上卖弄什么,因为实话讲我手边是一本《软件工程》,在大学里这是计算 机专业的必修课程,但是我知道很多程序员似乎从来都只是热衷于什么《30天精通VC》之 类的,他们有些和我一样游击队出身,没有正规学过这个专业,还有一些则早就在混够学 分后就把这些真正有用的东西还给了老师。

网上现在也很浮躁,一些coding fans乱嚷嚷,混淆视听,实际上真正的技术专家很少在 网上乱发帖子的,如笔者这样不知天高地厚的,其实实在是算不上什么高手,只不过看不 惯这种对技术,对程序员的误解和胡说,只好挺身而出,做拨乱反正之言,也希望那些还 沉迷于一些错误人士的coding fans们能认真想想,走到正途上,毕竟那些聪明的头脑还 远远没有发挥应有的价值。

职业道德的涵义包括以下八个方面:

(1)职业道德是一种职业规范,受社会普遍的认可。

(2)职业道德是长期以来自然形成的。

(3)职业道德没有确定形式,通常体现为观念、习惯、信念等。

(4)职业道德 依靠文化、内心信念和习惯,通过员工的自律实现。

(5)职业道德大多没有实质的约束力和强制力。

(6)职业道德的主要内容是对员工义务的要求。

(7)职业道德标准多元 化,代表了不同企业可能具有不同的价值观。

(8)职业道德承载着企业文化和凝聚力,影响深远。

每个从业人员,不论是从事哪种职业,在职业活动中都要遵守道德。要理解职业道德需要掌握以下四点:

首先,在内容方面,职业道德总是要鲜明地表达职业义务、职业责任以及职业行为上的道德准则。它不是一般地反映社会道德和阶级道德的要求,而是要反映职业、行业以至产业特殊利益的要求;它不是在一般意义上的社会实践基础上形成的,而是在特定的职业实践的基础上形成的,因而它往往表现为某一职业特有的道德传统和道德习惯,表现为从事某一职业的人们所特有道德心理和道德品质。甚至造成从事不同职业的人们在道德品貌上的差异。如人们常说,某人有“军人作风”、“ 工人性格”、“农民意识”、“干部派头”、“学生味”、“学究气”、“商人习气”等、

其次,在表现形式方面:职业道德往往比较具体、灵活、多样。它总是从本职业的交流活动的实际出发,采用制度、守则、公约、承诺、誓言、条例,以至标语口号之类的形式,这些灵活的形式既易于为从业人员所接受和实行,而且易于形成一种职业的道德习惯。

再次,从调节的范围来看,职业道德一方面是用来调节从业人员内部关系,加强职业、行业内部人员的凝聚力;另一方面,它也是用来调节从业人员与其服务对象之间的关系,用来塑造本职业从业人员的形象。

最后,从产生的效果来看,职业道德既能使一定的社会或阶级的道德原则和规范的“职业化”,又使个人道德品质“成熟化”。职业道德虽然是在特定的职业生活中形成的,但它决不是离开阶级道德或社会道德而独立存在的道德类型。在阶级社会里,职业道德始终是在阶级道德和社会道德的制约和影响下存在和发展的;职业道德和阶级道德或社会道德之间的关系,就是一般与特殊、共性与个性之间的关系。任何一种形式的职业道德,都在不同程度上体现着阶级道德或社会道德的要求。同样,阶级道德或社会道德,在很大范围上都是通过具体的职业道德形式表现出来的。同时,职业道德主要表现在实际从事一定职业的成人的意识和行为中,是道德意识和道德行为成熟的阶段。职业道德与各种职业要求和职业生活结合,具有较强的稳定性和连续性,形成比较稳定的职业心理和职业习惯,以致在很大程度上改变人们在学校生活阶段和少年生活阶段所形成的品行,影响道德主体的道德风貌。

职业道德的特点:

通过上述分析不难看出职业道德具有以下特点。

1 职业道德具有适用范围的有限性。

每种职业都担负着一种特定的职业责任和职业义务。由于各种职业的职业责任和义务不同,从而形成各自特定的职业道德的具体规范。

2 职业道德具有发展的历史继承性。

由于职业具有不断发展和世代延续的特征,不仅其技术世代延续,其管理员工的方法、与服务对象打交道的方法,也有一定历史继承性。如“有教无类”、“学而不厌,诲人不倦”,从古至今始终是教师的职业道德。

3 职业道德表达形式多种多样

由于各种职业道德的要求都较为具体、细致,因此其表达形式多种多样。

4 职业道德兼有强烈的纪律性。

纪律也是一种行为规范,但它是介于法律和道德之间的一种特殊的规范。它既要求人们能自觉遵守,又带有一定的强制性。就前者而言,它具有道德色彩;就后者而言,又带有一定的法律的色彩。就是说,一方面遵守纪律是一种美德,另一方面,遵守纪律又带有强制性,具有法令的要求。例如,工人必须执行 *** 作规程和安全规定;军人要有严明的纪律等等。因此,职业道德有时又以制度、章程、条例的形式表达,让从业人员认识到职业道德又具有纪律的规范性。

职业道德的社会作用:

职业道德是社会道德体系的重要组成部分,它一方面具有社会道德的一般作用,另一方面它又具有自身的特殊作用,具体表现在:

1、 调节职业交往中从业人员内部以及从业人员与服务对象间的关系。

职业道德的基本职能是调节职能。它一方面可以调节从业人员内部的关系,即运用职业道德规范约束职业内部人员的行为,促进职业内部人员的团结与合作。如职业道德规范要求各行各业的从业人员,都要团结、互助、爱岗、敬业、齐心协力地为发展本行业、本职业服务。另一方面,职业道德又可以调节从业人员和服务对象之间的关系。如职业道德规定了制造产品的工人要怎样对用户负责;营销人员怎样对顾客负责;医生怎样对病人负责;教师怎样对学生负责等等。

2、 有助于维护和提高本行业的信誉。

一个行业、一个企业的信誉,也就是它们的形象、信用和声誉,是指企业及其产品与服务在社会公众中的信任程度,提高企业的信誉主要靠产品的质量和服务质量,而从业人员职业道德水平高是产品质量和服务质量的有效保证。若从业人员职业道德水平不高,很难生产出优质的产品和提供优质的服务

3、 促进本行业的发展。

行业、企业的发展有赖于高的经济效益,而高的经济效益源于高的员工素质。员工素质主要包含知识、能力、责任心三个方面,其中责任心是最重要的。而职业道德水平高的从业人员其责任心是极强的,因此,职业道德能促进本行业的发展。

4、 有助于提高全社会的道德水平。

职业道德是整个社会道德的主要内容。职业道德一方面涉及到每个从业者如何对待职业,如何对待工作,同时也是一个从业人员的生活态度、价值观念的表现;是一个人的道德意识,道德行为发展的成熟阶段,具有较强的稳定性和连续性。另一方面,职业道德也是一个职业集体,甚至一个行业全体人员的行为表现,如果每个行业,每个职业集体都具备优良的道德,对整个社会道德水平的提高肯定会发挥重要作用。

一、专注的定义

华南虎七喜进军笔记本

张国荣风采依旧一周年

金犊奖大陆初审揭晓 AC-尼尔森互联网调查

专注,就是较长时间关注一个目标,调动一切可以调动的资源,高效益地完成既定的目标。

二、专注的度,两个境界

专注的度,可以分成两个境界。第一个境界叫“突破”,第二个境界叫“第一”。

突破,通俗地讲就是上一个台阶。考上大学、研究生是突破;英语过了四级、六级,是上了一个台阶,也是突破;又比如,体育比赛中,相持阶段,你顶住了,最后得分了,是突破;再比如,销售中,做了很多前期工作,签了订单,就是突破。第一的境界比较好理解,但要注意,范围不同,第一也会不同。在公司你是第一,在全国范围内,你未必是第一。

第一能获得的利益远远高于第二,当然付出的也比平均水平高很多。第一的好处是利润能达到最大化。软件行业的MICROSOFT,芯片行业的INTEL,通6行业的中国移动,家电行业的海尔都是第一的榜样。他们在自己的行业中有较大的市场分对价格有较高的主宰权,因此能保持较高的利润水平。在通信行业中,联通的市场分额第二,利润可能没有,甚至是亏损。没有做到第一真是亏大了。因此,利润最大化的原则要求我们追求第一的境界。

第一的另一个好处就是资源(信息、机会等)会迅速集中过来,加速成长的速度,增加学习进步的机会。

三、专注做到“第一”的方法

从专注的定义中,我们就可以看到几种具体的方法。

1、舍弃——有所为有所不为

现实中,经常会遇到大量多目标、多重选择的问题,如果没有学会舍弃的朋友,辛苦了!舍弃结识过多的人,就可以有时间和一两个知心朋友多交流。舍弃几个小项目,就可以做精一个大项目。

什么都想得到,最终是什么都得不到。

有所为有所不为,才能得到。

2、细分目标——循序渐进

有时选择的方向很好,但觉得目标太大,这时一定要细分目标。想成为公司ORACLE第一,不妨先做到小组第一。人生也是如此,一定要有远大目标,根据现阶段的能力、环境、资源等,划分为若干个阶段目标,持续投入直至突破、第一的境界。

细分目标,循序渐进,不急不躁,脚踏实地,我们就一定能实现我们的远大目标。

3、调动一切资源

调动一切资源,包括时间、空间、金钱、人力、物力、经验等资源,投入到自己的专注领域。例如,从人力资源来看,调动的人应包括所有认识的朋友、同学、同事、长辈、晚辈,包括不认识的人,包括所有网络上的朋友,包括所有网络下的朋友,包括所有活着的人,甚至包括已经死去的人。在保险、传销行业,这一常识用得很彻底。但很少有人为自己为公司得目标这么做,白白浪费了资源。很多人没有记录、维护好自己认识的朋友的通讯录或地址本,未来想调动人力方面的一切资源就无从下手了。

4、增加压强

钉子可以打入木板,锤子不行,差别就在压强。当我们的资源非常有限的时候,需要集中资源,尽量收小目标,增加压强,实现突破。

5、追求速度

高速运动的子d很有穿透力,很容易形成突破。在软件维护和开发过程中,对客户的要求响应速度快,大大提升了客户满意度,使我们向成功迈开了坚实的一步。

速度,是竞争的优势。

6、努力创新

要专注于寻找方向或目标,或事业领域,或者项目。这些目标、方向、项目、领域应是前人没有做过的。

四、专注思想的应用

1、个人目标

个人目标第一的境界,不仅指行政职位上的第一,还包括某一技术领域、人际沟通协调、创新能力、专注能力等方面的第一。

相信所有的朋友都了解人才选拔时的标准是德才兼备,以德为主。可是仍然有一些朋友在确立个人发展目标顺序的时候,还是以个人技能为主,总觉得艺多不压身,毕竟是自己的本事,甚至在与公司目标发生冲突时也不考虑调整自己的目标。这样领会专注思路,在大小得失方面,是将个人利益放在公司利益之上,最终会影响个人利益。同样,学生在学好专业的同时,要特别注意道德品质的修养。

2、实现目标的路线

有计划,有目标,调动一切可以调动的资源,专注地做好一件又一件事情,这就是我们实现目标的路线。

3、跳槽、出国的成本——人生切换成本

我们知道,CPU实现分时 *** 作是靠调度系统完成的,调度系统需要消耗资源。如果调度过度,就会发现系统性能大大下降。

出国又回国,代价更高。出国,一般准备两三年是很常见的事情,到国外后,三五年的适应期也难免,而且就算适应了,也是开始理解了别人看自己是另类的眼光的时候。如果在国外觉得不适应,再回国,则更有上不着天,下不着地的感觉。国外人看自己不顺眼,自己看国人又不顺眼,毕竟国内的发达程度比发达国家要低。一折腾,可能十年就过去了。

很多同学都跟潮流,赶出国热。可是人生有几个十年可以这么跟?

五、结语

在这里,我表述的只是广州那家软件公司关于专注的理论的部分思想。希望专注的思想能进入将来的软件人才的你的头脑中;同时也希望这篇文章对您在学习、就业和将来的工作中有所帮助。原文刊载在《中国青年科技》杂志,有改动

一个程序员要具备的基本素质主要有10点。

心怀理想

我认为优秀程序员首先具备的素质是心怀理想。我曾说过许多程序员都是冲着“比尔盖茨”而来的,是被他的巨大成功所感召的。可以说不想当比尔盖茨的程序员不是好程序员。大家要记住,比尔盖茨的成功是两个方面的成功,一个是他个人的成功,另一个是IT行业的成功。作为个人成功,只要个人能在众人中脱颖而出,应该可以说行行都可以出状元的。而行业的成功则表现出行业的生命力和朝阳性。而从事这个行业的人则能够伴随着这个行业的发展而成功。在IT软件行业中,一个好的软件通过无数复制使用能产生巨大的经济效益和社会效益,而好的软件往往是程序员所编制的,与其有很大的关联性,这就意味着程序员在这个行业存在着成功的必然可能。现实中除了比尔盖茨,还有许许多多中外IT名人都是程序员出身的,他们的成功昭示着程序员成功的可能。

既然程序员有成功的可能,那优秀程序员一定是心怀成功的理想,这种理想激励他们不断进取走向成功。我这里说心怀,是说程序员不必天天把理想挂在嘴边,而是把理想放在心里,时刻牢记自己的目标是什么!目标是成功的一半,有了目标,优秀程序员可以不断地调整自己,以最优的方式去接近和实现自己的目标。

现实中还有两类程序员,一类是也想成为比尔盖茨,但是始终是想,最终只是一种幻想。另一类知道比尔盖茨,但是望而却步,从不敢有半点奢望,做到哪就算到哪,顺其自然。这两类程序员都不具备优秀程序员的基本素质。

充满激情

优秀的程序员一定是一个充满激情的人,他们的理想和目标的远大注定了他们不能以常人的方式平淡地、机械地工作着。我们很难想象一个优秀程序员不去争做一个大的项目;我们很难想象一个优秀程序员在大家遇到困难时,无助待援时,不挺身而出;我们很难想象一个优秀程序员历经千辛万苦编制出来的程序被用户认可那一瞬间,眼泪不夺眶而出;我们很难想象一个优秀程序员在自己遇到困难的时候,不大声叫喊永不放弃。对于优秀程序员来说付出和收获都是充满激情的。而他们的激情不但感染着自己,而且感染着团队,感染着用户。

市场意识

市场意识是许多程序员最不具备的,有的程序员甚至反感市场意识,认为软件卖不卖钱是公司的事,自己只要把程序做好了就行了。借用一句“只拉车不看路”来形容这类程序员是最为贴切的。有些人从事编程的确是个人兴趣所致,他们喜欢在编程中找到自身的乐趣。但是,更多的人从事编程是为了谋生,是为了获取更多的收入。程序员树立市场意识,就是要做有市场价值的软件,做价值最大化的软件。虽然程序员在单位可能无法挑选开发的项目,但是程序员可以在有市场价值的软件开发上投入更大的精力,可以在业余时间开发有价值的软件。如果公司的软件市场没有前景,程序员应该未雨绸缪,做好最坏的打算,选择更有成长性的软件公司。否则,编程能力再强也是英雄无用武之地,达不到自己的预期。做市场价值最大的软件,让自己市场价值最大化应该是优秀程序员必备的素质之一。

永不放弃

程序员可能和其他行业从业人员不太一样,一般遇到困难,其他人员可能进行一番战斗后,无法克服就会放弃了。而程序员遇到困难就可能让程序无法进行下去,他们必须要把问题解决了程序才能完成。优秀的程序员不但敢于解决各种编程中的问题,而且还会善于解决各种问题。有的程序员遇到问题,随便找一种方法就给解决了,他可能不问解决后会带来什么新的问题,不问是否有更好的解决方案。而优秀的程序员往往追求最优的解决方案,往往在这过程中遇到千难万难,但是他们抱着永不放弃的信念,一日复一日,一月复一月,甚至一年复一年去实现自己的目标,最终他们能收获其他程序员无法收获的胜利成果,使得他们水平高高在上。

团队精神

现代的程序员和以前的程序员已经完全不一样了,原来程序员是全能性程序员,现在程序员是专业的程序员。尽管还有很少的程序员集设计、开发、销售、维护为一身,但是专业化的潮流不可阻挡,这就表示一个软件或多个软件是靠多个人开发的,他们通过分工协作从事着整个制作工作。程序员写的程序不仅要给自己看,而且要给团队其他人看,当发现程序问题的时候,团队成员可以一起帮助分析解决。如果没有团队精神,任何一个程序员也不可能有真正的成功,即使成功也是渺小的、暂时的。因此要获得事业上的成功,必须要依靠团队的力量才能达到。优秀程序员的优秀之处是可能并不只是关心自己的优秀,而是更关心他周围的程序员和其他人员是否优秀。让更多的优秀的人在一个团队中工作形成一个优秀的团队,这样的程序员才是充满竞争力的,是战无不胜的。

面向对象

很多人都是从面向过程思维方式开始学习编程的,随后也学了面向对象编程方法,也用了面向对象开发工具和语言,但是,真正的用面向对象方法来编程、来设计编程构架、来进行功能分析、来需求分析还是很少的。优秀的程序员一定具备面向对象的思维方式,从设计到编程都贯彻着面向对象的痕迹,他们把面向对象作为思维的日常化。具有面向对象思维方式的人,可以对复杂混乱的事物进行抽象,具有很强的分类能力,化繁为简,程序更加模块化,程序共享度更加提高,具有大程序、超大程序开发能力。有关面向对象的问题,我在前面的文章中已经阐述很多了,这里就不在重复了。

基础扎实

要想自己编程能力有一个持续的提高,我们就必须要注重自己的基础建设,让自己能力的提高都建筑在每一层的坚实基础之上,即使能力再高,也不会被风吹得摇晃,尽显强者的刚毅不摧。我们不要小看已经学过的 *** 作系统原理、编译原理、程序设计原理、数据库设计、数据结构设计、甚至计算机英语。这些基础是否扎实直接影响到以后的各种应用技术的掌握和掌握的程度。而大多数新的技术都是在原有技术的发展,因此掌握好原有的技术对最快掌握新技术是有很大的帮助的。此外,扎实的基础也使程序员把精力放在创新和解决疑难问题上,这样优秀程序员的处理能力将会大大增强。

条理清楚

普通的程序员则不太注重条理问题,他们对可并行处理的语句从来不进行次序的考虑;对语句使用没有一致性地使用,显得很随意;对处理流程往往一气呵成,一个函数能有上百上千条语句。他们最大的特点就是从来不多问一个为什么!而优秀程序员更注重程序条理,每个语句、语句的先后、语句的行数、函数命名等等他们都能说出为什么这样做。这种条理清楚地素质使得程序员能够把控程序的制作时间进度,也有利于大程序的任务的分隔。大凡程序员编写的程序能被其他人看懂的,基本上都是条理很清楚的。程序有条理,说明程序员的思维很有逻辑性,优秀程序员是最讲究逻辑的。一个优秀的程序员能把一个庞大复杂的程序说的有条有理,并且在程序上也显得可读性极强。条理清楚地表现形式之一,就是程序函数多,函数中的语句少。从这个意义上来说,优秀程序员也是优秀的设计师,项目经理。因为他们的逻辑是一脉相承的。

全面细致

我这里说的全面有五个方面的含义:第一、程序员要在编程过程中要全面细致,不要有遗漏,而这些遗漏往往造成了编译错误,需要花费大量不必要的时间去查改。第二,程序员要在设计过程中要全面细致,不要在功能设计方面有遗漏,尤其不要忘记例外情况的处理,许多功能上运行出错都是这种原因造成的。第三、程序员的编程技术要全面,要尽可能多掌握各种编成技术,例如,程序员不但要掌握前台开发技术,也要掌握后台开发技术,既要会文件处理,也要会数据库处理,既要会编写程序也要会制作安装盘,等等。第四、程序员的业务知识要全面,程序员不但要掌握编程技术,而且要主动学习和掌握用户的业务知识,通过对业务知识的掌握,才能更好地理解功能的意义,有助于编写更使用的程序。第五,程序员的知识面要广。优秀的程序员不但要掌握编程知识和用户业务知识,而且要有意识地拓宽自己的知识面,多关心新闻、时事、时尚、经济、技术、文艺、文学等各种知识领域,在知识的海洋中去畅游工作的轨迹,你就会有万事相同的感觉,这些知识会潜移默化地影响你编程的风格和效率。就象我写的《好的程序象一首诗》一样,程序中有诗。

求新求精

IT发展之迅速、技术更新之快捷,使得IT成为公认的追逐潮流的行业,因循守旧,固步自封,甚至年龄的增长都会导致程序员被这个行业所淘汰。有时候叹息行业无情也是情理之中。面对潮流的挑战,优秀程序员应该是无所畏惧的,他们应该始终怀有一种追求新技术的愿望,有一种追赶潮流,伴随潮流的勇气和胆识。因为这个职业就注定了这样的工作方式。当然,在新技术满天飞的情况下,我们不能也不可能有什么新技术就去学什么新技术,我们可以花很少的时间去浏览和关注各种技术的发展状况,但是对于自己所要掌握的新技术则要不惜代价,花大力气去学习它掌握它。掌握新技术的价值评判是用于软件的开发,用于更好地解决以往程序中存在不可解决的问题,用于所开发软件的销售价值。优秀的程序员会很好的选择新技术,并利用新技术立即去革新自己的程序,并使程序投向市场产生价值。那种以学习、知识储存的态度对待新技术都是不成熟的程序员。

首先,目的明确清晰。作为一名销售人员,其职责就是最大限度地销售产品或服务,为公司创造价值。这一点是毋庸置疑的。销售人员肩负企业的命运,关系到企业的发展甚至是生死存亡。同样,取得了好的销售成绩,销售人员个人的待遇各方面也自然不会差。

不畏挫折。销售肯定会遇到挫折的,不是所有的人都是你的潜在顾客,也不是所有的潜在顾客都会成为你的最终顾客。所以在这当中肯定你会遇到困难,会碰壁,但一个销售人员一定要敢于坚持,不轻言放弃。遇到一点点小困难,就停滞不前的人,绝对做不好销售。

形象很重要。在拜访客户与人沟通的过程中,存在一个个人形象和公司形象的问题。和陌生人见面,存在一个首因效应。即第一次见面的主观感觉往往会在一个人印象中长期占据。所以作为销售人员,应该注重形象,慎重对待。如果留下了不好的印象,我想一个商业合作的意向就很难达成了。

自信。这不仅仅是销售,即使是做人也应该具备的基本素质。自信,不是盲目的自大自负。首先,自信可以从自我方面给自己以动力,然后合理地表现自信可以增加自己成功推销的砝码。自己销售的产品可以不是世界上最好的,但自己首先要对自己所推销的产品有足够的自信。如果你个人都不能自信地面对你的产品了,何谈向顾客推销呢?

热情与兴趣。要想把一件事情做好,就需要投入足够的热情。提高自己对产品对公司的兴趣。有了兴趣,在遇到问题的时候你才会想办法去努力解决。

态度。态度决定一切,工作就是为了生活,工作就是生活,我想这两种态度也会影响到一个人的发展空间到底有多大。当你把工作当成一种应付差事,谋生的手段,你想有很大的成就可能吗?而当你把工作融入生活当中去,进而你能够发现工作所带来的快乐,成功的喜悦感,我想这样你可能会更出色些吧。

细节。细节决定成败。再宏大的目标也得通过一个个小细节实现。做一个有心人,对细节把握好了,往往会给你意想不到的收获,会让你离成功更近。

而成为一名优秀的IT销售人员,还需要对产品这一块有足够的认识。不一定要很精通专业方面知识,但至少要全面了解相关产品的信息,自己厂商的相关知识。同时,竞争厂商及可替代产品也应足够熟悉。知己知彼,才能百战不殆。没有针对性地研究,在和客户交谈时就很难给人以全面透彻的分析,不能很好地介绍自己产品的优点,也就很难打动顾客。

首先,对这个行业要有兴趣,人要自信。这两个方面我表现还算不错。IT行业的前景不用多说,在这个行业发展自己还是有很大的兴趣的。自己大学时关注比较多的阿里巴巴,华为都是这个行业的佼佼者。我一直都是一个很自信的人,这方面表现出来的不是自负。大学四年,自己坚持看了那么多的课外书,我的大学四年生活很充实,付出总有回报的,关注那么多,自然有收获,而体现出来的一方面就是个人的自信。

掌握推销技巧,与人沟通能力。这很大方面要通过公司系统的培训,对产品对行业有足够的认识。而与人沟通能力这块,也是可以通过讲解有个初步认识,针对不同的顾客类型,使用不同的销售方法,推销技巧。而之前一直看的美国商业节目飞黄腾达,在这方面自己也学习到很多。

注重形象,讲究礼节。在公司培训里所讲到的比如说电话交谈一般等顾客先挂了电话我们再挂,这就是电话礼仪中所讲到的让地位高者先挂电话。我是销售人员,我有求于别人,那么他地位就比我高,我就应该等他电话先挂了我再挂。包括接名片时必须用双手去接,之后要看一下不能直接放到口袋里,特别注意放到屁股后的口袋都是极不礼貌的行为。以前看过百家讲坛的金正昆谈礼仪,这些细节自己也有所关注,所以说听起来还是很有感觉的。

每一个销售都是一个专家。确实是这样,和客户沟通时,产品方面的沟通也许只占一小部分。更多的是一些其他方面的交谈。而这一方面就尽量要求销售人员是个全才,能够和客户聊得起来,让客户对你认同了,那自然就会让交易更容易达成。平时,自己应该多关注整个IT行业的相关信息,毕竟这会是交谈时最多的话题。现在信息资源获取又很方便,可以看看报纸,浏览些网站。

对困难要有充分的准备。可以说销售是很艰巨的任务,具有很大的挑战。而工作中碰壁的事情肯定也不会少,那么自己就要做好充分的准备。既然认准了这个行业,这个工作,就理所当然应该接受这些困难。问题出来了,我们就要积极地去应对。所以从思想上个人得有足够的准备。

仅仅是刚迈入社会,刚刚接触IT销售行业,自己未来的路还很长。个人只有做好足够的准备,认真学习和培训,并通过在实战中的锻炼,才能更快地成长为合格的IT销售人员。

1、养成良好的书写代码的习惯,该加注释的时候一定要加注释,该大写的地方一定要大写,变量命名不能模糊不清。这是基础,是为了让别人能看明白你所写的代码,不能你写的代码只有你自己才看的明白。

2、注意所写软件的版本控制。

3、勤奋学习最新的技术,计算机技术日新月异,这点我不说相信你也知道。

4、养成写开发文档的好习惯,再接到一个项目时,第一件事情是进行需求分析,然后写开发文档,把你每一步要做什么都先写清楚,再动手做。

5、不要怕技术难题,在计算机领域,只有不能解决难题的人,没有人解决不了的难题。

6、虚心象他人学习,即使技术实力比你差很多的人,也肯定会知道一些你所不知道的技术点。

第一种武器:开发工具

至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。

第二种武器:数据库

为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库 *** 作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。

第三种武器: *** 作系统

当前主流的 *** 作系统是Windows,Linux/Unix,熟练地使用这些 *** 作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解 *** 作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的 *** 作系统,是一个很好的学习平台,Linux几乎具备了所有现代 *** 作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对 *** 作系统有一定的了解后,你会发现自己上了一个新的台阶。

第四种武器:网络协议TCP/IP

在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/>

以上就是关于作为一个好的程序员,都需要具备哪些基本的素质和能力全部的内容,包括:作为一个好的程序员,都需要具备哪些基本的素质和能力、计算机从业人员应遵循什么行业道德规范、IT从业人员需要哪些素质等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/8865078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存