㈠ 一个程序员所要经历的步骤
程序员应具备的12种能力
毕业四年来,感觉自己也是从一名不合格的程序员一步步走过来的。回头反思一下,合格的程序员有很多标准和要求,下面是我总结的一个合格程序员应该具备的12种能力。中国软件行业的崛起,靠的是合格的程序员。任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基础。写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考。我一直以为,当程序员是很辛苦的,如果不是真正的喜欢,很难坚持下去。如果真的不喜欢这个职业,也该尊重这个职业,尊重自己,赶紧改行。
1. 编程语言能力
不用多说,作为合格的程序员,精通一门语言是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和浸淫。
2.编码能力
我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性。随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,心想做完这个项目,就拍拍屁股走人了,缺少最基本的职责素养。我经常把代码必须成程序员的孩子,你就是是孩子他爹,孩子他妈,是有感情的。对你自己的孩子,你能不仔细呵护吗?你是称职的父母吗?这是我编写的一个Java编码规范,供大家参考,这里可以下载http://gurudk.javaeye.com/blog/111734
另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。
思维的条理性,写代码之前,先简单计划一下,用自然语言把流程写下来,用于整理实现思路。不要看了需求或设计之后,马上就敲代码了,敲完代码马上就debug。花点时间思考,敲代码只是最后一个很简单的工作,不要把自己变成一个代码打字员,编写边想,写了删,删了写。安安静静把实现过程想清楚,在脑子里先实现一遍。再去敲代码,水到渠成。
3.面向对象思维能力
如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。我面试过很多程序员,没有一个能说得上几句的。
4.利用工具能力
工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。
另外一个常用的工具就是日记本,好听点可以称为知识管理工具,我用的是myBase,感觉非常好用,在之前,我的所有的片段内容都是记录的单独的文本文件里的,非常不好找,管理也很混乱。
经常上互联网,看到好多好的资料想保存下来,作为日后查看之用.一开始,我用的是firefox自带的书签,但是自己分类太累,多了之后不便于查找,很麻烦。后来用了得乐书签(del.icio.us)的firefox插件,非常方便,现在成为了我必备的一个工具。
还有一个最重要的工具就是搜索引擎了,我装了google forfirefox插件,感觉不错,还有英文翻译功能。按照我同事的说法,内事用,外事用google。很多技术资料都是英文的,用google搜索效率高一些。搜索引擎用好了,就等于打开了一扇通向知识宝库的门,使用搜索引擎,关键字选择很重要。
经常去浏览大牛的blog,逐个网站访问很麻烦,去看了又可能没有更新,可以借助于RSS订阅工具,我是用iGoogle桌面工具,每天早上花半个小时扫一下,大牛的最新文章尽收眼底了。
5. 英语能力
新的技术资料都是英文的,英语国家的IT技术走在我们前面至少10年(这是我自己估计的数字,可能正在缩小)。就连印度,一个连基础设施建设都不太完善的国家,因为其英语基础较好,其在软件外包领域的发展也非常迅猛,远远超过了我们。学英语,首先是有信心,其次就是花时间。多阅读英文资料,使用金山词霸,google的firefox插件等工具配合,贵在坚持。
6.学习能力
在IT也混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。
要想系统的学习一门技术或工具,看书是最好的方法。看完后,然后上网找相关资料,进行深入学习。学习要抓紧一切可以利用的时间,比如电脑启动要花1分多钟,旁边放一本书,可以看上几页了。公交车上,地铁上也可以看。
当然,不能只学习技术,要经常联系自己的软技能,比如沟通能力,表达能力。你可以把自己学到的东西,解释给自己的同事听,既加深了理解,又增进了同事之间的交流。学习的最高境界就是你能够把学到的东西解释给别人听,这才说明你理解了。在学习心理学上,称之为构成主义。
我学一样东西,总是先上网了解有没有相关书籍,如果想学,就买一本或者去图书馆找相关的书来读。我买的书,家里快放不下了(到目前位置,我买了1万多块的书)。我多半是把目录看完,了解这本书讲解的主要内容,然后需要的时候,我就可以立即补充它进入到我的知识结构。每个人可能都有自己的学习方法,意识到学习的重要,并能够根据需要补充自己的知识,这种能力更重要。
7.创造能力
普遍认为,东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,“这个只能这么解决了,我想不出有什么别的方法。”可能他根本都没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决办法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。
打破这一思维定势的首先的一个办法就是在面临一个问题时,首先想到的是“没有不可能”,或是“一切皆有可能”,前面那个是阿迪的广告语,后面是李宁的。只有这样去想,才能寻找解决问题的别的出路,即使最后我们试了很多种办法,还是只有着一种解决方案,但我们在这种寻找解决方案的过程中,常常会产生很多好的想法,这样才会使我们真正深刻思考一个问题。建议大家看一看《水平思考》这本书,他提供了一些进行创造性思考的方法和工具。
但我认为,坚持认为存在另一种解决方案的信念是第一位的,方法和工具都是其次。
8.文档能力
也许有人会质疑,程序员跟写文档有什么关系。大家开源软件也用过不少,看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他么的tutorial,他们的getstarted,他们的reference文档写的多么的易懂。其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的“程序”谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。
word是一个最实用的工具,很多程序员,多级编号都不会用,索引目录也不知道如何生成,更别灵活应用样式了。很多排版都是所谓的dirty work。垃圾样式一大堆。其实,静下心来,稍微学习一下,就能写出一篇格式漂亮的文档。
9.抽象能力
抽象能力是认识事物从现象到本质的能力。如果你只是停留在“见山是山,见水是水”的层次,客户说什么,你就做什么,设计怎么做,你就怎么实现,从来不过问为什么,也不去想他是满足了用户哪些方面的需求呢。这样可能只解决了表面的问题,可能会引起返工。认识到本质,才能让你的程序具备更大的灵活性和可扩展性。在做企业应用软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。
10.代码评审能力
代码评审和单元测试是保证代码质量的两种常用手段之一。代码评审能力,说明了你的审美标准,知道什么是好的,什么是不好的,什么是优雅的代码,什么是糟糕的代码,你才能让自己做的更好。
11.单元测试能力
没有单元测试的代码,只能说是半成品。因为没有什么能证明你的代码是可以运行的。测试驱动开发是一个非常好的敏捷过程的最佳实践。单元测试还可以作为回归测试,在修改代码时,起到警戒线标志的作用。是否具有单元测试的意识是区分程序员是否合格的重要标准。写不写单元测试是区分平庸程序员和优秀程序员的重要标杆。
12.DRY
DRY是一种原则,就是Don't RepeatYourself.出自《程序员修炼之道-从小工到专家》。这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。
还有一个就是我们经常在不同的地方切换IP,如果每次手工做,也非常浪费时间,写一个bat命令可以解决,找一个小工具也可以解决。
编码时,对代码的复用也是在重复你自己,虽然拷贝过程很爽,但是维护一致性就要付出巨大的工作量,特别是将来维护的人不是你的时候,使用代码生成工具可以解决这个问题。类似的例子太多了,如果你发现你经常做一些重复的工作,就要警惕了,是否违背了这个原则,想一些办法将他们自动化。
㈡ 程序员如何努力去开创自己的未来
从年少无知到心思细密,从一无是处的待业青年到如今知名软件公司的副总,当中经历了无数的跌倒,又从失败和挣扎中爬起来。总结概括,没有家庭背景,没有政治地位,没有金钱辅助的人想得到成功,必须经历以下5个阶段:
一、明确目标,脚踏实地,从低做起
世上没有不劳而获的事情,要想从一个寻常的老百姓开始做起,得到广阔的发展空间,必须比其他人投入多倍的努力。做IT行业也是如此,无论你的理想是从事技术的开发,还是从事业务的管理,都必须由低做起,脚踏实地工作。在工作的过程中了解行业的现状,业务的动向,客户的需求,未来的方向,并为自己定立一个长期的发展目标。只有有理想、有目标、有方向的人才不会在激烈的社会竞争中迷途。
古时候,一位学医的年轻人为了研制一种毒药的解药配方,不禁以身试毒,然后到深山里采集山药,以研制配方。越往山里走,他越发现有很多山药都有着其独特的功能,当他把药采回药馆研究的时候,却忘记了为自己的毒药寻找配方的事,最后不幸毒发身亡。
其实对初入社会的人来说也是如此,很多人面对这个复杂的社会会感到迷途,有时候可能会被一些眼前的利益所蒙骗而忘记了自己的目标。虽然每个人的背景,现状都不相同,每个人都有着自己的目标和抱负。但有一点都是一样的,只有坚持自己目标,努力奋斗的人才会得到成功,反之,那些随波逐流,半途而废的人最终只会面对失败。
二、发掘优点,提升能力
安于现状的人能享受知足所带来的快乐,但永远也不能突出自己特点。想在这茫茫的人海中突出自己,就应该找到自己的长处,发现自己的优势,为自己争取更广阔的发展空间。要是你口舌灵利,反应敏捷,能快速地洞察市场的走势,那你就应该把握机会,在大型的项目中好好地表现自己。要是你思维明锐,心思细密,能完成复杂的开发过程,那就应该尽量争取难度大,回报高的新型技术项目,在开发过程中吸收学习崭新的开发技术。
虽然,短期的学习并不能直接体现个人的优点,但经过长期的积累,你比别人优胜的地方就能逐步的展现。
但是光有优点还不够,还需要找到表现个人能力的机会:
三、主动争取机会,把握每个能得到发展的机遇
想要得到成功必须记住:机会不是等着别人给的,而是自己争取回来的!如果每天只坐在那里,等着上级给你机会,那你的理想最终将会变成泡影。要想得到成功就必须变被动为主动,不是等着机会的到来,而是在自己有能力,有实力的时候主动地去争取机会。世上没有免费的午餐,有时候,你必须放弃面前的一些东西,才能得到机会去发展,但只要你对自己有信心,在机会到来的时候就应该大胆地尝试,放弃面前的一些小利益,以争取更大的回报。
程序员经常被别人笑说成 “跳槽冠军”,数年间跳了好几家大公司,但还是感到不满意。其实争取机会并不是怂恿各位去跳槽,哪家公司高薪就跳哪去,而是说应该尝试寻找一个更能发挥自己能力的地方。
当你有了突出的能力却到了瓶颈的位置,长期呆在一家公司做着乏味的工作的时候,就更应该大胆地尝试,为自己的发展谋求一条合适的道路。正所谓,赛翁失马,焉知非福!不敢放弃现有的,也就失去了进一步发展的机会。
四、提升管理能力,提高综合素质
无论从事技术还是业务,无论你是技术总监还是业务总监,都只是单方面的能力。想要成为出色的人才,这是远远不够的。企业是一个运营的团体,想要一家企业能够得到长远的发展,就必须有完善的管理能力,知人善用。一个成功的企业家往往并不是样样皆能,而是他有妥善的管理才能,能有效地控制企业的日常运作,把握人才,充分发挥企业的独有优势。
古人云:得民心者得天下。回望三国,刘备虽无大才,文不能安邦,武不能定国,但却从一没落的市井草席之人成为一方之主,就是因为他能知人善用。卧龙凤雏暂倾心辅助,五虎上将暂俯首称臣,令他终成霸业。当今作为企业的领导者也该有此发掘人才能力,注重人才的管理,通过沟通提高人才对企业的了解程度,唤醒其工作热诚。
管理是一种学问,如果通过出色管理让一家不知名的小企业华丽变身成为一家上市集团更是一种艺术。这绝对不仅仅是通过技术或业务等单方面的学习就能掌握的,这必须经过长期的累积与学习,多方面的了解与实践才能从中领悟。提高个人的综合管理能力,是一个成功人才的必要条件。
五、团积资源,建立社会关系网
现今社会,光有钱并不足以成事。最重要的是必须拥有一个完善的关系网,在市场的调研,项目的研发,产品的包装,业务的推广上都必须有对应企业的支持,那产品才有可能成功地提出市场,得到丰厚的回报。所以在企业建立前,必须建立自己的人际关系网。而这资源,不单单是指钱,更重要的是市场关系,人才资源,产品信息。只有把握市场动向,了解产品信息,团结人才队伍,抢在技术前线的企业才会得到最终的成功。
自主创业,是很多程序员最终想要到达的目标,洞察市场发展,注视产品路线,发掘有用人才,团积社会关系。在创业之前一定要拥有一个完善的发展渠道,建立成熟的社会关系网,那自主创业才可能得到成功。
正所谓创业难,守业更难,在创业后,必须密切观察市场的走势,制定企业长期的发展路线,那企业才能得到迅速的发展与壮大。
其实为啥这是 “反流程” 升职记,就是因为 “升职” 不应该只是等待,而应该是自己争取。“命运” 不应该由天父来控制,而应该由自己去创造。“升职” 并不是一个已有的流程,而是由我们通过自己的努力而创造的一个 “奇迹” 。
㈢ 雷军是如何从程序员走到小米创始人的呢
随着智能手机时代的到来,中国手机市场涌现出各种新品牌。除了三星和苹果,一些国产品牌也相继崛起。没过多久,这些品牌就衰落了。金立经已经进入破产清算阶段,女性手机市场份额只剩下1%,很多品牌已经消失在我们的视野中。有这样一个手机品牌,它比市场上的手机起步晚,占有一席之地就是小米,除了在中国很受欢迎,小米在印度的手机市场占据主导地位。
三.事情细节:
当时金山软件的规模还比较粗糙,管理也不完善。100多名员工基本上都是程序员,没有人擅长管理。总经理求伯君的担子落在雷军身上,他开始白天管理,晚上编写程序。有一次他的电脑出了问题,他请同事刘光明帮他修,同事没料到自己的硬盘备份不小心,硬盘没清理好,雷军的所有手续都没了,所以他只能做一个真正的CEO。
虽然这是雷军开的玩笑,但确实是一个机会。休息了一段时间后,雷军选择将打造小米,最后成CEO而不是程序员。
㈣ 传奇程序员的传奇经历
程序员 程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。
作一个真正合格的程序员,应该具有的素质。
1:团队精神和协作能力
团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
2:文档习惯
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。
4:需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
5:模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
6:测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
7:学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:
1、 需求分析能力
2、 整体框架能力
3、 流程处理能力
4、 模块分解能力
5、 整体项目评估能力
6、 团队组织管理能力
1,激情
我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。激情是一个优秀程序员的重要指标。
2,自学好学
编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。
3,聪明
聪明包括很多因素,情绪和社会交际只是其中之一。好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。
4,隐性的经验
—好的程序员通常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。
5,技术多样性
由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。
6,资格证书
资格证书并不是识别真正程序员的方法,MCSE、SCJP说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。
原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。但相信这些对大多数真正的程序员都适用。
总结而言,优秀的程序员通常有一下特点:
对技术充满激情
将编程作为一种爱好
如果你允许会滔滔不绝地跟你谈论技术
有过个人的开发经历(与4意思相同)
坚持认为某种技术最好
如果让他用他认为不好的技术他会非常别扭
聪明、健谈、兴趣广泛
在大学和工作前就开始接触程序
[编辑本段]考试说明
1、 考试要求:
(1) 熟练掌握基本算法和数据结构,用C语言编制程序;
(2) 掌握数据结构、程序变速器和操作系统的基础知识;
(3) 了解软件工程、数据库、多媒体和网络的基础知识;
(4) 掌握数制、机内代码及其算术运算和逻辑运算的基础知识;
(5) 了解计算机的体系结构和主要部件的基础知识。
2、 通过本级水平考试的合格人员能按照软件设计说明书编制程序,具有相当于助理工程师
的实际工作能力和业务水平。
3、 本级水平考试范围包括两个模块:模块1——程序编制能力(考试时间为150分钟);模
块2——基础知识(程序员级)考试时间为120分钟)。题型为:单项选择题十多项选择题。
[编辑本段]考试范围
模块1:程序编制能力
1.1按照软件设计说明书,能熟练使用下列程序语言编制程序
1.1.1C(美国标准)
1.2理解给定程序的功能,能发现程序中的错误并加以纠正
1.3具有良好的程序编制风格
1.4基本算法
1.4.1查找、更新、排序、合并及字符处理
1.4.2迭代、插值、数值积分、矩阵计算、议程求解和搜索求解
1.5程序编制方法
1.5.1分支、循环、子程序(过程和函数)、递归
1.5.2输入输出和文件的处理
模块2:基础知识(程序员级)
2.1软件基础知识
2.1.1数据结构基础
数组、记录、列表(list)、队列、栈(stack)、堆(heap)、树和二叉树的定义、存储和操作
2.1.2程序语言基础知识
·汇编、编译、解释系统的基础知识
·程序语言的数据类型
·程序语言的控制结构
2.1.3操作系统基础知识
·操作系统的类型和功能
·操作系统的层次结构和进程概念
·作业、处理机、存储、文件和设备等管理的基础知识
2.1.4软件工程基础知识
·软件生命周期各阶段的任务
·结构化分析和设计方法
·面向对象基本概念
·软件开发工具与环境基础知识
2.1.5数据库基础知识
·数据库模型
·数据库系统的结构
·SQL的使用初步
·常用数据库管理系统的知识
2.1.6多媒体基础知识
·多媒体基本概念
·常用图象文件
·简单图形(线段和圆)的计算机图示
2.2硬件基础知识
2.2.1数制及其转换
·二进制、十进制和十六进制等常用数制及其相互转换
2.2.2机内代码
·原码、补码、反码、移码
·定点数与浮点数的机内表示
·ASCII码及汉字编码等常用的编码
·奇偶校验码、海明码、循环冗余码(CRC)等常用校验方法
2.2.3算术运算和逻辑运算
·计算机中的二进制数运算方法
·逻辑代数的基本运算和逻辑表达式的化简
2.2.4计算机的体系结构和主要部件
·中央处理器CPU、存储器和输入/输出设备
·总线结构、指令流和数据流
2.2.5指令系统
·常用的寻址方式
·指令的格式、分类及功能
·指令的执行过程
2.3网络基础知识
2.3.1网络的功能、分类与组成
2.3.2网络协议与标准
2.3.3网络结构与通信
2.3.4网络的安全性
2.3.5Client-Server结构
2.3.6Internet和Intranet初步
㈤ 问道掌门人|何小鹏:程序员改变世界
[汽车之家行业]?广州亚信是一家“神奇”的公司,“微信之父”张小龙、“UC之父”何小鹏都曾在这里工作。
2004年,程序员何小鹏转身创业者,UC踩中移动互联网风口,十年后被阿里收购。一个程序员的“造富”故事到这里终止。
2014年,小鹏汽车诞生;这些过往,由此成为另一篇故事的序章。
颠覆将分为两个阶段。未来5-10年是“第一阶段”,自动驾驶是这一阶段重点,依靠基础设施、政策支持、技术改进,高级别辅助驾驶落地,解放用户双手;10-15年是“第二阶段”,智能座舱将成为重点,交互体验、应用生态成为产品决定性差异。最终,智能汽车将成为“移动终端、储能单元、数字空间”。
在颠覆到来之前,车企首要任务,是从体系层面做好准备。很多企业不会做、不敢做,小鹏希望给汽车行业做示范,“有了领头羊之后,学习者会非常多”。
“我们希望用数据驱动智能汽车变革,最终创造更美好的出行生活”,成为中国汽车“引领者”,是何小鹏的“野心”。
何小鹏最佩服的企业是华为和特斯拉。前者改变了中国高科技产业,后者改变了全球汽车产业。“程序员”何小鹏也想成为一名改变者,摆在他面前的,是改变中国汽车产业的挑战和机会。
■改变的意义
为什么要改变?除了那些宏大的意义,何小鹏的答案是为了开心。让员工开心,何小鹏的办法给他们发钱;让自己开心,对他来说创业是最佳答案。“找到让自己开心的东西很难,但找到了就很重要”。
“创业意味着探索未知,需要很大的勇气”,张京宇认为,如果不是发自内心热爱,迈出这一步很难,取得成功更难。小鹏离成功还很远,想超越特斯拉,何小鹏预计要10-15年。乔布斯说:“过程就是奖赏”,小鹏这段旅程,对何小鹏来说又何尝不是?(文/汽车之家蒋平平)
㈥ 为什么程序员也能成为伟大的CEO – 码农网
现在对程序员的普遍(暗黑)看法是,这是一群所有时间都窝一个黑暗的房间里,与数百万行代码为伍,也许甚至不具备人际交往能力的“程序猿”。好吧,虽然我也有编程背景,所以可能会有点偏颇,但是这显然是无稽之谈。
程序员不仅能力卓绝——是创造现代生活和商业的基石,而且还参与多种社会生产活动。许多程序员同时也会去经营企业。是的,从程序员到CEO的旅途不可谓不艰辛,在某些情况下,这是一个重大的转变。但只要你这么去做,就会成就最好的公司。比尔·盖茨,马克·扎克伯格(Mark Zukerberg),Marissa Mayer(雅虎CEO)和James Dyson(戴森集团的创始人、无袋式真空吸尘器的发明者)都以一个程序员的身份取得了极大的成功!
从业务开发到电子表格分析,命名和解决问题,程序员有许多可以转移的技能能够让他们成为一家公司理想的CEO。
对技术的高瞻远瞩
一个企业的创始人可以是技术型的。当然CEO也可以找一个具有技术背景的联合创始人:所以这通常并不是太大的问题。但是,当CEO本身就具有技术背景的时候,人们却往往会质疑他们,对此我真的无法理解。
程序员不但能知道未来技术的走势,还帮助创造了技术发展的有利条件,并且他们有着强烈推动技术进步的念头。如果企业的掌舵者没有这种高瞻远瞩和内心强烈的驱动力,那么不仅技术会偏离它原本该有的路径,而且企业也会开始停滞不前。还有其他人会比CEO更有能力以这种方式推动企业前进吗?
口才要好
成为CEO最重要的属性之一,也是程序员觉得最难适应的一种能力是口才要好。想吸引有才华的人才到自己身边来,或者想争取有能力的人才,那么你需要说服他们,而这意味着编故事或“信口开河”。
不仅如此,在企业的发展成长中也需要用到此技能。接下来可能是银行经理,然后,如果你的公司正准备筹办的话,你还得与新闻报社交涉,用你“信口开河”的本领大杀四方。然后,如果到了需要投资的阶段,投资人,特别是天使投资人从根本上说投资的是你这个人而不是企业,所以你还必须得向他们展示你的激情,你的构思和承诺,所有这一切都需要良好的口才。
不要小看口才的作用。以前我也以为,成功获得投资的所有关键是你摆出的成绩。这只说对了一半,据我所知,糟糕的口才会减少20%的投资资金,而讲得好则可以增加20%。不要以为20%是个小数字,如果你正在处理一轮2000万英镑的融资,有没有好口才,会导致你最后筹到的资金大相径庭。和其他任何事情一样,口才也是可以练习和实践得。所以,尽可能多地将时间投入到这上面来,学会用你的口才说服别人。
程序员也会做生意
还有一个错误的看法是认为程序员不会做生意。比如说业务开发,就是一个程序员最初可能并没有太多接触的领域,但它也会成为程序员提升自己真正价值的领域。
将高水平的技术专长带到这类会议中去可以为自己增加天平的筹码。它对说服他人有非常显着的作用,能帮助营销团队搞定客户。
对于程序员,关于生意另一方面需要掌握的是Excel。到目前为止这是处理数据最常用的工具,或许也是很多企业生意中使用得最多的工具,虽然在程序员的世界里,Excel并不是一个非常受欢迎的产品。然而,学习使用Excel——很容易的——是程序员转职为CEO的无价之宝。在几乎每一个阶段,人们都希望能够预测某一生意的收入,并希望用一种很容易理解的形式呈现数据。 Excel就是这样一把好刀。
解决问题的好帮手
程序员在涉及到产品命名和服务时,可以说是极具创意的。他们整天都在为代码命名,所以一贯和明确地为企业的元素(内部的和外部的)命名不是问题。名字能够展现一家企业实际的行为蓝图,所以至关重要,谁也比不上在它背后用技术支持企业的程序员。
最后,编程主要就是解决问题。程序员希望能够挑战从来没有碰到过的复杂问题。要做到这一点,需要敏锐的头脑,惯于用横向的思维来解决问题。这与商业挑战真的没什么不同。CEO需要思考,沉思,讨论并制定解决问题的方法,拥有编程背景有助于你用这种方式思考问题。
我从程序员,到首席程序员,到经理,再到CEO的历程是艰巨的。但我的的确确做到了,所以没有理由其他的程序员不行。事实上,我相信他们同样可以,你也是。
㈦ 如何从程序员成功转型成为公司的老板
程序员是一个技术岗位,老板是一个经营岗位,技术人员拿的是稳定的薪酬,老板要接受的是风险很高、很不稳定的利润。技术人员的薪酬永远是正数,老板的利润有可能是负数。当老板要承受最大的不确定性。程序员要转型成为老板,需要一个磨炼的艰苦过程。你首先要很优秀,当老板不仅要懂技术,还要懂格局、懂经营、懂销售、懂管理、懂人事、懂金融,所以程序员转型成老板,挑战很大,你需要有经营管理的天赋。
如果你能在管理岗位上锻炼一个阶段最好。不能的话,你如果在某个技术领域是顶尖高手,还有很高的经营管理天赋也可以。即使你很优秀,创业也是九死一生的过程,创业死亡率非常高,成功者都是踏着死亡公司的尸体上来的,你需要面对和承受长期的这个过程。所有人创业当老板,都是一个低概率的成功事件,如果你具备条件,能够承受一切折磨,可以去投入到创业的洪流中。
㈧ 从普通程序员到今日头条CEO,张一鸣是如何做到的
可以说张一鸣的成功是凭借着自己有面对不确定因素的能力,张一鸣在没有创办头条之前,就已经连续与创业5次,在这几次创业当中,虽然都以失败而告终,但是对于张一鸣来说,却从这些创业的过程当中收获了很多的东西,能够让自己在技术上变得越来越精进,就连技术之外的其他方面也掌握的非常熟悉了,所以张一鸣后来提到自己创办头条的时候,就说如果说没有前期这4次创业的经历,那么就没有后来头条的出现,张一鸣有着非常敏锐的头脑。
张一鸣能沟通一个非常普通的程序员到后来成为头条的CEO,在这一段成长的过程当中,经历了多少的辛苦,可能只有张一鸣能够知道,所以想要成功就要付出努力。