❶ 零基础学计算机编程有什么好的书籍推荐
下面这个可以参考一下,具体还要看个人的情况。
我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++和java。比如,如果你要做企业级应用的你应该学习Java和C#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习C/C++。学会这两大类中的一类,对于你学习其他语言都将是比较轻松,包括脚本语言,动态语言„„呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。
1、我的入门是从学习C语言开始的(其实课程是C++),这是我们学校的公共课,我上课比较认真(虽然老师讲得很差,而且一段时间后,我就发现自己的基础掌握比她好,当然理解深度没她好),因此,我认为对于完全没有基础的人而言,听别人讲比较容易入门。当时的教材是学校自己编的,挺烂的。
建议一(以C/C++为例),对于刚想进入编程的人(就是从来都没有接触过编程的人),最好是听课的方式(自己看的话估计要很慢,而且很痛苦),可以找视频或者培训等。C语言推荐入门教材:谭浩强的C语言,最新版是第三版,不过第二版应该也可以了(蓝色的)。说明一下:坚决不同意直接看K&R的《The C programming language》,这本书绝对不是初学者可以看懂的,里面讲语法的并不多,语法都是合在程序里面讲。不过这本书非常好,入门以后一定要看的一本书。
当然可以从C++直接入门,C++之父强烈推荐从C++直接入手。C++推荐入门教材:钱能的C++(红色的,清华大学出版),这本书第一版不是ISO C++,不过比较经典,作者现在也出了第二版了,第二版好像不是太好。国外的最好的入门教材据说是:《Acclerated C++》作者是Koenig和Moo夫妇,非常厉害。他们的着作还有《c陷阱与缺陷》《c++沉思录》。《Acclerated C++》这本入门的书我没有看过,我觉得还是先找本国内的书好好看,看的差不多了,国外的经典书籍随便看就会觉得很有味道,否则你可能会很受打击。入门的书至少要看两三遍(要彻底理解哦 ):)。如果是C++,我建议后面类的部分至少要理解三到五遍。说明一下,c++模板的部分可以先不用看,如果有兴趣的话,等把c++学的差不多了,我觉得可以把模板、STL、泛型编程结合起来学习,这个又是一个很大的工作量了,又得下很大的功夫。所以说,C++博大精深啊。
建议二、学习过程中要结合简单的算法,像冒泡还有类似c语言程序百例这样的小例子做做;更进一步应该做点大一点的项目,最好是控制台程序。或者你已经着手学习win32、MFC或linux,你也可以结合平台做点小的项目。
2、第一阶段是最苦的,接下来相对就知道应该怎么去学习了。这时候假设你已经有了扎实的c++基础。这是你可以选择也应该选择发展方向了,做企业级应用,还是系统开发,嵌入式设计或者游戏开发„„ 那时我其实并没有考虑那么多,因为我不是学计算机的,因此我就把参加一些计算机之类的考试当作学习目标。我当时其实C++语言基础已经很不错了,但是上机实践很少(那时我没有电脑),因此参加省计算机二级,全国计算机三级和全国计算机四级考试,结果上机都没有通过。我很郁闷,二级的时候是我不知道怎么样进那个DOS界面把题目调出来,三级的时候是很快就编好了,也通过运行了,可是成绩出来却不及格,四级的时候是编好了,可能是我那题目比较难,好像用了两次循环,结果那破机器竟然承受不了。后来一乱就毁了(当然主要是上机太少了)。不过我那些上机都没有去补考。二级和三级的时候是自恃水平已经远远超过考试要求了,四级的时候则因为自己已经通过高级程序员考试,觉得补考上机好像没必要。(我高程和四级都是在2003年考的)。
建议三:定位学习方向,并好好学习计算机基础知识。在你还不确定学习方向,或者你还在大学本科期间,那么我认为应该先把计算机的基础知识好好学习一下。我认为计算机必学的基础课程而且要精学——首先是数据结构,其次是操作系统、软件工程,数据库。这四门课不管你将来想从事哪个方向的基本上都会用到。当然,有时间的话,其他基础课都是应该掌握的,离散数学、组成原理、体系结构、网络、编译原理甚至跨学科的。方向是很重要的,因为知识其实是无限的,一个小小的领域就够你研究很久了。本科生可能还没有什么方向的感觉,但是到了研究生你一定要清楚自己到底想要做什么,要往哪个方面发展,不要盲目学,瞎学乱学,否则最后可能看似什么都会,其实什么都不会。
我也曾经学习过Java一段时间,这篇文章既然是谈编程语言的入门学习,我也简单说一说。因为有了比较C++扎实的语言基础,所以Java学起来比较轻松。我先找了国内一本薄薄的教材很快看了一遍(几乎都理解,但是只看了一遍),空闲的时间配合清华张孝详老师的java视频。以后其实才算我真正要开始入门JAVA的学习,我用了是《core java》中文第六版(本来想用候捷翻译的第二版的《Thinking in Java》,发现被同学弄丢了),这本书我差不多用了20天才把里面的知识都搞懂,当然包括程序风格的模拟,最重要的时我把有关GUI编程的那三章里面的程序例子几乎可以默写出来(当然,那是因为我理解了,其实这样就变成了我的知识了),里面的API我也记得差不多了。(说明:Java里面的GUI编程没什么用处了,建议大家先跳过,GUI不是Java的长处,如果以后需要的话再查手册或者再记忆学习)。
其实学习了C++以后,学习Java是比较容易了,但是建议不要两种都学啦,他们的用途是不一样的,你应该熟悉其中一种,更重要的是熟悉其应用领域所需要的专业知识甚至平台,以及使用他们的企业,有创业计划的还应该考虑一下他们的应用领域,最重要的是思考他们的潜在的应用领域。
对于初级的学习就讲到这里,接下去的学习其实都是高级部分,先不介绍了,因为:一、我自己都还没有学懂,这里乱吹会误人子弟。 二、高级东西的学习很多,有很多选择,又需要很多繁琐的知识,可能也一下子没办法讲清楚。
❷ 程序员到项目经理需要什么过程
难啊,要靠你自己,发挥你自己的特长,
让你的上司欣赏你!
❸ 从程序员到项目经理(12):如何管理自己的时间(上)
项目经理必须要主动的管理自己的时间,合理安排自己的工作,才能真正“翻身”做自己时间主人。1.谁动了我的时间时间对于每个人而言,都是最稀缺的资源,对于一个管理者更是如此,时间不够用成为几乎所有管理者共同的问题。如果要对项目经理常说的话做一个调查的话,想信“我很忙”一定可以名列前茅。以我的经验,当要求项目经理按时提交项目材料,或者临时支援某件紧急事务的时候,经常会听到同样的回答:“我很忙”。多年以前,我就从经理那里听说,厉害的管理者都是很轻松的,因为他的工作全部交出去了,根本不用自己操心,所以他们出去度假十天半个月,一切工作都会如常进行。从那时起,我就充满了对管理的神往,可是后来我才发现原来这只是个传说,现实中忙忙碌碌的经理比比皆是,而轻松自如的管理者则是众里难寻。为什么管理者都这么忙呢?是谁动了他们的时间?实际上,这是一个综合性的问题,既有内部原因,也有外部原因,既有主观原因,也有客观原因。总的来说,让经理们不堪重负的因素有三:(1)工作对于一个程序员来说,他的工作是比较单纯的,基本上是单线程运作,只需要项目经理交待开发任务即可,可是当上了项目经理就不一样了。以前好比在游泳池中游泳,现在是在大海里冲浪,各种事情如潮水一般向你涌来,让你顾此失彼,手足无措。(2)下属下属也是一种资源,即人力资源,这种资源与时间一样,同样具有稀缺性。其实我们可以设想一下极端情况,如果你的下属人数足够,能力也很强的话,你完全可以像我的经理说的一样,把你的全部工作授权给你的下属,你自己也就不用整天焦头烂额了。因为你的下属不给力,所以你总是要自己来制定计划、自己来做系统架构、自己来监控进度、自己来检查质量、自己来写文档、自己来汇报工作、自己来解决重要问题、甚至自己来编写代码,你整天忙忙碌碌,就是在忙这样的事情。然而,千万不要怪你的下属,因为他们不给力正是老板雇佣你的原因,况且资源的稀缺性是永远存在的——从原始社会到将来的共产主义社会。要知道,老板做项目为了赚钱,而不是让管理者更轻松,如果每个项目都是精兵强将,你只要一声令下工作就会自动完成,你倒是轻松了,但老板还要你来做什么?(3)自己既然资源受限是一定的,项目经理还是应该反求诸己,从自己身上找到解决之道。这就好比天下雨了,你怪老天是没有用的,只能怪你自己没有带雨伞。经常问一问自己,我对工作安排合理吗?我抓住了主要问题吗?我在旁枝末节的事情上浪费时间了吗?我有充分发挥下属的能力吗?我自己工作拖拖拉拉吗?…通过不断的自省,改善自己的管理方法和行为习惯,我们对时间利用也必然会变得越来越高效。 2.时间管理的本质是对工作的梳理要破解忙的难题,必须要有意识的对时间进行管理。其实时间本身是没法管理的,因为无论你怎样管理,时间既不会变多,也不会变少,既不会变快,也不会变慢。所谓的时间管理,其实就是如何更有效的利用时间的问题,更加直白地说,其本质就是工作管理,即通过对工作的梳理,让我们在有限的时间内,使得工作更有条理、更有成效。必须要主动、有目标地对工作进行梳理,这是对一个管理者的基本要求。工作梳理就好比整理房间,你不去整理它,杂物就会堆积得越来越多,你房子最终会变得不适合人类居住。一个好的家庭主妇,必定善于将各位物品分门别类,并且适时扔掉一些用处不大的物品。一个好的项目经理也一样,同样需要对工作进行分类,对不同类型工作采用不同的策略,有些工作要现在就做,有些可以晚点做,或者不做;有些工作一定要自己做,有些工作则可以请其他人来完成。通常对工作梳理,可以采用5W1H法,即: Why——为什么干这件事?(目的); What——什么事情?(对象); Where——在什么地方执行?(地点); When——什么时间执行?什么时间完成?(时间); Who——由谁执行?(人员); How——怎样执行?采取哪些有效措施?(方法)。在一般的项目中,Why和where往往不是什么问题,或者说对项目经理的时间管理影响较小,因此我们不妨将其简化为3W1H,也就是确定要做什么,不做什么;先做什么,后做什么;谁来做;怎样做才更有效。基于此,项目经理可以按以下三个步骤来梳理工作:(1)分析要做什么、不做什么,以及先做什么、后做什么解决What和When的问题。事有轻重缓急,事情的重要程度和紧急程序直接决定其处理的优先级。虽然很多事情来势汹汹,但并不表示一定要当即处理,有些事情只是静静的躺在那儿,也并不意味着要“等有了时间再做”。(2)分析由谁来做解决Who的问题。虽然我们提倡项目经理要以身作则、亲力亲为,但并不是说每件事项目经理要亲自去做。对于下属可以胜任的事情,就把它分配出去。如果出现项目经理很忙、下属很闲的情况,那就说明项目经理你做得太多了,不要和你的下属抢事情做。(3) 如何让工作更有成效做不做、什么时候做以及谁来做的问题都解决了,剩下就要解决怎么做才能让工作更有成效的问题了。在这里我们不是要讨论编码或写文档的技巧,而是个人的习惯和认识,这对工作成效的影响更是本质上的。 3.做事要分轻重缓急老外就是善于总结,中国有词语叫“轻重缓急”,可是到了国外摇身一变,变成了“时间管理四象限法”——自从美国总统艾森豪威尔提出以来,人人将其奉为圭臬,成为时间管理领域最重要的方法论。所谓的“四象限法”,就是将工作按照重要程度和紧急程度两个维度进行分类。我们找一张白纸,以紧急程度为纵轴,以重要程序为横轴,在纸上划上一个十字,将纸面分为四个象限,然后将当前所有要做的工作放到这个四个象限中。一个典型的项目经理四象限图如下所示: (1) 第一象限:重要紧急这一类往往是火烧眉毛的事情,需要马上去处理,否则项目会受到重大影响,比如客户服务器崩溃。(2) 第二象限:重要不紧急这类事情一般是预防型的工作,例如制定项目计划、团队建设等,它们不需要你停下手上的工作马上去做,但如果没做好的话,可能就会导致产生项目危机。许多第一象限工作产生的原因,正是因为第二象限的工作没有去做。(3)第三象限:不紧急也不重要这类事情看上去最不需要做了,例如上网偷菜、看新闻、写博客等,但如果你在办公室走上一圈,就会发现很多人正在干着这些不需要干的事情。 (4) 第四象限:紧急不重要这类事情虽然不重要,却需要马上去处理。一个典型的例子就是桌上的电话响了,你接还是不接?当然要接,因为你不知道是谁。接通后,发现是推销保险的,你又不好意思立即挂掉,只好被对方折磨一番了。 我们到底该怎样安排四个象限的工作呢?对于一个普通的管理者,其工作的优先级一般是这样的:第一象限>第四象限>第二角限>第三象限。可是,等做完了第一、四象限的工作,根本就没有时间来人做第二象限的工作,于是项目到了后期项目经理只好四处救火。管理大师彼德.德鲁克十分推崇“时间管理四象限法”,并将其总结为“要事第一”的原则。根据这个原则,每个象限的工作处理策略是不一样的。(1)重要紧急优先级最高,需要尽快处理。很多人都玩过《植物大战僵尸》的游戏吧,那你一定知道“一大波僵尸正在逼近”的感觉,是的,你必须要马上打死它们,不然它们就会冲进你的房子,吃掉你的大脑!(2)重要不紧急这类事情看上去可以暂缓,但考虑到其重要性,应当与第一象限的工作并行去做。如果不及时去做,它们就会转移到让你头疼的第一象限中去,或者在第一象限产生更多新的“僵尸”。所以,要在僵尸还没有逼近的时候,就好防御工事,并尽快打死它们,如果等到它们冲了过来,你还能不能保住大脑,就要看你的运气了。(3)紧急不重要它们就像是在你耳边“嗡嗡嗡”地叫着的苍蝇,你必须要花时间去赶走它们。这多少让人有些无奈,但这些事情确实层出不穷。有些公司在实施紧急项目时,经常采用封闭式开发,这样做的一个重要原因就是要回避那些紧急不重要的事情。很多管理专家建议我们在必要的时候勇敢说“不”,其实就是针对这类事情。如果实在无法说不,建议安排或委托其他人来做。(4)不紧急也不重要如果不是时间充裕的话,建议不要去做。如果碍于人情的话,建议安排或委托其他人来做。它们就像一群在几百米远处飞的苍蝇而已,你完全不必要放下手中的饭碗,举起苍蝇拍跑过去和它们决斗。因此,对于一个卓有成效的管理者,其优先级应该是这样的:第一象限=第二象限>>第四角限。第三象限就像数学中的无穷小一样,被舍弃了。写到这里,我想起了前不久一位项目经理的故事:项目定于当天上线,项目组决定搬到客户现场办公,以应付可能出现在的突发事件。项目成员电脑已经全部打包好,都围在项目经理周围等待。原来项目经理正在理一大堆发票准备报销,于是发生了这下面这样的对话:我:“大家都在等你,怎么还在填报销单呢?”项目经理:“今天是公司的报销日,不填好单子,又得推后很久。”我:“你的电脑打包了没有?”项目经理:“没有”我:“放行条开了没有?”项目经理:“没有”我:“申请用车了没有?”项目经理:“没有”我不知道说什么好了。要知道公司的报销单粘贴和填写非常严格,经常被打回重新弄,那一堆发票,显然不是十几分钟可以搞定的事情。还有公司的用车也比较紧张,不赶紧申请,说不定就没有了,到时就只能租车或打的,这无疑又会耽误更多的时间。更何况六七个同事都在等项目经理一个人,耽误的时间还得要乘以他们的人数。万一系统上线,状况频出,客户火烧眉毛,项目组却仍然在路上,这样的后果是很严重的。贴报销单看上去一件重要紧急的事情,实际上它既不重要也不紧急,因为今天不报销,以后还是可以报销,可是因此耽误的宝贵时间,却无法再要回来。
❹ 当程序员变成软件项目经理怎么办
当你预期的那一天,也许是害怕的那一天,终于来到了:从工程师的队伍里你被提拔到了软件项目领导或者团队领导的位置。这也许就是你选择的职业道路,或许你不太情愿,将就尝试一下。无论在哪种情况下,你都可能缺少工程学科、人员管理以及领导能力的相关教育。 这需要更多的领导能力和管理(它们不是一回事),而不能象Dilbert(译注:着名IT漫画主角)那样简单地和老板对抗了。当你考虑新的目标时,请考虑下面的活动计划列表。一次就抓住了每个亮点,这是不可能的。但是这份建议说明可以帮助你将注意力放在可以提高你和你的团队绩效的活动上。 建立优先级 作为经理,首先要做的、最重要的事是你需要有意识地建立优先级。当你仍陷于繁重的软件开发活动中时,你需要一套新的职责。过多的经理新手不能抗拒技术的吸引而陷于此类活动,这将导致项目组的其他人员想要获得经理的帮助时,却得不到帮助。 有成效的领导知道他们首要的任务是为其他组员提供服务。这些服务包括训练和指导、解决问题和冲突、提供资源、建立项目目标和优先级、提供适当的技术指引。要使每个组员都能清楚的知道,你总是可以帮助他们。我发现将自己定位于为被我监督的人工作是非常有意义的,而不是相反的。在你所作的事情中,对于组员要求你帮助他们这件事,应该具有非屏蔽中断的优先级。 第二重要的,是使你的客户满意。作为一名经理,没有直接的能力使客户满意,因为你已不再是作为个人提供产品和服务完成这点。相反,你必须建立一种环境,准许你的组员最大程度上满足客户的需求。经理提供了强有力的方法,有效地提高客户的满意度。 第三重要的,是为你的项目工作。因为也许还有其他许多技术上的项目,或者其他经理的请求帮助,诸如为指导委员会工作。当这些和二个高级别的发生冲突时,都要准备推辞掉。 很明显,使其他经理满意的事情是你最不重要的事情。在一个有秩序的组织里,如果你在三个以上的重大环节上获得了成功,其他的经理都会很激动的。我们并不都能很幸运地工作在一个良好的环境里,但一定要对你任务单上排在最前面的工作任务努力尽到最大的责任。集中精力有效地、快乐地、尽可能地帮助你的组员,不要将精力放在使你上司满意的上面。 分析你的技能差距 除非你已经为新位置做好了准备,否则相对于你当前的领导能力和管理技能,你会感到一些差距。出色的技术背景或许是你被选为领导角色的一个因素,但是你要想干得出色,你需要更多的技能。针对别人的评论和项目,真实地列出你的长处和短处,然后减少差距。 软件人员并不以令人满意的人际关系技能出名。你会希望增强处理人际关系的经验:解决冲突、说服以及灌输想法。你也不得不处理包括招聘、解雇、商谈计划表,以及在你的办公室里评论某人业绩使其伤心落泪等一些事务。 我发现从一堂倾听技能课开始我的管理职业是非常好的。当作为个体提议人,积极地将我们自己的技术议程提交小组时,我们经常对此感到非常惬意。有效的管理要求更多的合作和善于接受的人际关系方式。要花点时间学习如何(何时)巧妙地引导自己的自然判断。倾听技能课提供了一种交流机制,我已经发现在许多场合下都很有用。 接着,到讲台的另一侧,提高你的演讲能力。如果你真的不适应公开场合的讲话,学习戴尔.卡内基的课会有帮助的。你会发觉,通过这样的培训获得的经验,以及获得提高的交流能力,都可以帮助你更好地适应将来的工作。 作为项目领导,为了计划和跟踪项目,以及当需要项目回退而采取修正措施时,你有责任调整其他人的工作。参加项目管理的培训课,阅读一些有关项目和风险管理的书籍和文章。参加项目管理学会,阅读其月刊--PMNetwork。SEI的软件能力成熟度模型对于软件项目计划和项目跟踪提供了很多有用的建议。建立优先级的能力、控制有效果的会议、清晰的交流,对于你,作为一名经理的绩效将会有实质上的影响。 定义“质量” 几乎每个人都会认真地对待质量问题而且都希望生产出高质量的产品。然而,对于软件的质量含义,没有一个统一的定义。传统上的软件质量观点和“足够好”的软件观点有着激烈的争论。为了帮助小组走向成功,需要花一些时间和你的组员、客户共同探讨质量的含义。 这两种阵营在思想上经常不会有相同的定义,可以很容易的就不同目的开展工作。关注交付计划的经理对于想正常地检查每行代码的工程师会不耐烦的;认为可靠性非常重要的客户对一个带有很少使用但带有很多bugs的特性的产品是不会满意的;一个很好的GUI也许会让用户厌烦,因为用户已经熟记了如何有效地使用前一个版本的产品。 为了更好的理解客户对软件质量的看法,在Kodak,我的小组曾经邀请了我们的客户和他们的经理就这个议题在一个开放的论坛展开讨论。这个论坛是很有意义的,那些使用我们产品的人有着自己的理解,通过讨论,我们可以知道我们制定质量的思路有哪些和他们是不相符的。明白了不同,就可以使你集中精力,照顾客户的最大利益,而不是使开发人员获得最大满意。 软件质量的传统描述包括要与说明书一致,满足客户的需求,代码和文档没有缺陷。“六个∑质量”(six-sigmaquality)这个流行词,建立了一个非常高的尺度,用于监测失败的频率和密度。但它不适用于如快速产品交付,可用性,充足的特性集,已支付价钱的交付意义这样的质量尺度,。对于我们生产和购买的产品,我们总是热衷于尽可能涵盖所有的这些质量特性,然而,妥协总是必须的。 在一个项目的需求阶段,我们制定了包括十项质量属性的一个列表,如效率,协同性,正确性以及宜于学习,我们认为这对于用户来说是最重要的。我们请客户关键人物代表小组以1到5的尺度评估每项属性。一旦我们决定了哪些属性是最重要的,我们就可以设计并实现这些目标。如果你在了解了对于客户的质量含义并在设计实现质量属性的过程中没有麻烦的话,而且客户对质量属性表示满意,那你是很幸运的。 在众多关注的质量说明中,我曾听到过一个:“客户回来了,但产品没有”。和你的客户、开发人员一起对每一个产品都确定适当的质量目标。一旦决定了,就给出达到质量目标的明确的最高优先级。以身作则,按很高的质量标准要求你自己的工作。采用这个座右铭:“力求尽善尽美,满足于优秀。” 表彰成绩 对你组员成绩的表彰和奖励,是激励他们的一种很重要的手段。除非你的小组中已经有了一种表彰程序,否则这应是你最重要的事情之一。表彰包括象征性的东西(证书,旅游奖励)以及实际的东西(电影票,餐馆礼品券,兑现奖)。在送赠品时要说一些亲切的话语:“感谢你所给予的帮助”或者“祝贺取得了成绩”。在表彰和奖励上花费很少的心思和钱,就可以获得很多的友好和将来的合作。包括客户代表,以及为项目成功做出过贡献的支持人员等等开发组外的人员也可以获得表彰。 和你的组员讨论,了解他们感兴趣的表彰和奖励的方式。使得无论大小成就的表彰活动成为小组文化的一个标准组成部分。对每位组员对其所作的工作表现出发自内心的兴趣也要给与含蓄的表扬,为消除所有影响他们战斗力的障碍尽你的力量。表彰是展示组员以及小组外的其他人的一种方式――你要知道并感谢他们为小组成功所作的贡献。 学习过去 你的小组在过去承担的一些项目有可能没有取得完全的成功。甚至在成功的项目上,我们也能经常认为一些事情我们下次会作得更好。当你进入了新的领导角色,需要花点时间了解早期的项目为什么失败,并要计划避免犯同样的错误。对于软件开发,每位经理花时间处理每种可能要发生的错误是非常困难的,学习过去的成功和失败就是个成功的开始。 可以从过去你们小组承担的一个没有经过检查评估的项目着手,不要管其成功还是失败,实施项目后的回顾(有时称作事后调查分析)。你的目标不是判定责任,而是为了在将来项目中作得更好。借此,可以了解什么已经作得很好,什么应该作得更好。在当前每个项目的主要里程碑时,通过集体讨论或公平的组织者,用同样的方式,领导小组用头脑风暴的方式对其展开分析。 另外,要了解领悟已有的软件工业的最佳准则。一个好的起点是SteveMcConnell的JoltAward获奖作品:快速开发(RapidDevelopment,MicrosoftPress,1996)的第三部分,叙述了27个最佳准则。也要避免McConnell叙述的36个常见的软件开发错误。你的组员也许反对新的工作方式,但是你的角色是作为一名领导,要确保团队一致连续地使用最佳可用的方法、过程和工具。积极促进组员之间的信息共享,这样局部单个最好的实践经验就能成为每个开发人员的工具箱的一部分。 建立改进目标 一旦你对过去的项目建立起了回顾,确立了质量对小组的意义,你就要建立短期以及长期改进的一些目标。目标要尽可能量化,所以你要划分几个简单的阶段,标明你是否采取了适当的过程朝着目标前进。 例如,如果你认定由于需求的不稳定导致项目经常延期,你可以建立一个改进需求稳定的目标,在6个月内提高50%。这样一个目标需要你确切知道每周或每月需求的变化数,清楚他们的出处,采取行动控制那些变更。这可能要求你要改变与那些提交需求改变的人的交流方式。 你的目标和阶段是软件过程改进程序的组成部分,你要使之有序。作为缺乏创造力的官僚主义的最后避难所,轻视“过程”很流行。虽然事实上,每个小组都能找到改进其工作的方式。当然,如果你总是用已有的工作方式工作,你也就不要期望你会得到比以前更好的结果。 有两个强烈的原因要求改进过程:校正问题,防止问题。确保你的改进努力要围绕着已知的或可预知的可能威胁项目成功的问题。领导你的小组找出当前正在使用的方法的长处和短处,以及项目面临的风险。 我的小组召开了一次“两段式头脑风暴”练习,来确定改进软件生产力和质量过程的绊脚石。在第一次会议中,参会者在便条上写出他们关于会议主题的想法,一个便条一个想法。组织者将他们写在便条上的想法收集上来并分组。最后,我们就会得到一打主要的分类,并将其记录到活动挂图上。 第二次会议,相同的参会者在便笺上写出解决这些障碍的思路,并贴在挂图的合适位置。进一步细化,归纳出一些详细的活动,就可以成为我们努力的一部分,清除障碍,帮助组员实现软件的质量和生产力的目标。 建立可度量和可达到的目标,便于你集中精力实现改进。要使目标具有明显的优先级,并可周期性地监视过程。记住你的目的是,提高你的项目和公司完成的技术和业务上成功,不要满足于一些过程改进书籍里提到的期望细节。要把改进的工作视为迷你项目,具有可分发、资源、计划和有责任的小项目。否则,过程改进活动将总处于比诱人的技术工作低的优先级上。 缓慢的开始 这篇文章提供了许多建议,帮助你,一位软件经理新人,带领你的小组走向伟大的成功。在日复一日新的工作压力面前,要努力保持你的头脑清醒。在长时间的塑造软件开发小组的文化和习惯上,你还是个非常重要的角色。你不必一次性都作完,可以选择跟环境最相关的的几个开始。 作为软件经理,除了项目要按时按照预算完成外,你要担负的责任还很多。你还要:领导技术人员,将他们形成一个具有凝聚力的团队;建立协同团队工作的环境;鼓励和奖赏高级软件工程师的实践应用;平衡来自客户、公司,组员和你自己的需求。 这是项重大的任务,祝你好运。
❺ 能给我推荐几本适合初学者的计算机方面的书吗
我本科不是学计算机的,后来自学计算机,然后考研考上了计算机专业。其实,我个人认为应该从基础开始学起。先介绍几本基础的书吧:
《计算机组成原理》,主要是从整体计算机方面的很好的介绍原理的书,我看的是唐朔飞的那本,写的比较容易理解,但是看起来蛮枯燥的,自己要努力去感觉一下。
《C语言程序设计》,一般都是谭浩强的,是编程方面比较基础的书,里面的一些算法要去好好理解下,便于以后学习。
《计算机网络》,谢希仁的用的比较多,内容很全面,网络方面比较容易理解与学习,相对是比较简单的一门了吧,里面大部分的知识是记忆性的,容易学习。
《计算机操作系统》,汤子赢,从os 的几大功能方面进行分析,能对os有一些比较深入的认识。
在这些 的基础上,就可以看一些有点提高的,如《数据结构》与《C++》《java》等等,看你自己的兴趣了!还有,英文中我觉得最好入门的是《Computing Essentials》内容通俗易懂,后面的问题也是一些发散性的问题,适合作为英文的入门书书籍,也能学习计算机专业英文。
之后就是一些比较好而专业的书,中英文都有,只要你有兴趣,都可以找相关领域的书看看啦,然后,学习是靠自己的,希望你能好好努力!
❻ 不想做程序员,程序员如何转行
不想做程序员,程序员如何转行?真的很难。如果从事机械设计,我们也可以在那里做一天,但有时需要去现场看材料和机器,但不需要加班,也可以转行做相关销售。反正我打算做机器对外贸易。也许你不能接受从头开始。如果不能承受开发事业的压力,可以去企业管理公司网站。这是为了管理一家公司的网站,但通常负责公司的信息技术工作。
同时要学会及时消除工作中的各种困难和障碍。只有这样,你才能轻装上阵,走得更远。很多人在编程行业感到迷茫。其实造成混乱的有内因和外因。内在原因可能是随着年龄的增长,不能及时更新知识体系,被自己的不安所打败。至于外部刺激,我们现在每天都收到很多信息,所以程序员到了一定的年龄,不能上夜班,学习能力下降,体力和精力跟不上,所以程序员一定会被年轻人淘汰。
❼ 在公司程序员的升职步奏
大公司
1,打下手(1-3月)-----代码工(3-8月)----
程序员(1年到?)------项目组长(1年半以上 看机遇)
------项目经理(3年以上 看机遇)
小公司
1,代码工(1-3月)----程序员(3月到8月)------
项目组长(1年左右 优秀的)-----项目经理(2年以上)
虽然小公司容易成骨干 但项目组长拿的钱也行没有大公司程序员的高
-------------------------------------------------------
以上是正常发展顺序
以外:机遇好、跳槽可以打破上面的
PS:如果不是比较大的公司 在30岁还不是项目组长的话 建议转行或做生意
-------------------------------------------------------------------
软件测试师、软件工程师、系统分析师、软件架构师
前两者那个好 目前不好说
后两者级别高点。。。处于CTO级别
❽ 程序员转项目经理
能不能,是能力的问题。这是不关键,因为只要有意愿,能力是可以培养的。程序员连复杂得让人琢磨不透的软件都能搞定,还有什么搞不定的?
因此最后落实在需不需要这个问题上。这个问题很棘手,需要从程序员自身以及外部环境等方面进行分析。要讨论这个问题,就要弄清楚它和想不想的关系。想和需要是紧密相关的,但并不是一回事。想不想,主是感情的因素,而需不需要则要进行理智的分析的了。理智与感情,并不总是一致的。有些东西,是你需要的,但你未必想要。比如,被困沙漠的时候,有时被逼喝自己的尿液,这是理智战胜了感情。电影《色戒》中的汤唯,则是感情战胜了理智,爱上了敌人,最后造成了悲剧的结局。因此,我们还是少说气话了,不要冲动,冷静的分析自己的处境吧。
❾ 程序员过渡到项目经理
协调能力和解决问题的能力!!