写一些本身从作开发到如今一路走来所看到的种种。不知是否能帮助那些正处于起步或者半路迷茫的朋友。如下内容只表明我的观点,有意义的能够吸取,无趣的能够抛弃。程序员
由于我一直在搞.NET俱乐部,并且咱们山西.NET俱乐部经营的还算不错。500人的群满员了,再加人只有把那些不参与交流的朋友给请退了。 常常能在群里有正在从事开发者工做的朋友抱怨种种,最多的不外乎就是作为程序员之后的前途问题。在聊天记录中,多数朋友选择转行。这个状况对于我这个作了近八年的开发者来说,有点难以想象。可能每一个人对于开发者的认识不一样吧。所以,我想有必要分析一下咱们所在这个行业里的各类角色,是否真的没有前途呢?算法
1.职业及职责
(1)程序员:俱有较好的编码能力,对各处算法及俱体细节技术熟练掌握。须要有必定的抽象、执行、抗压、学习、总结等能力。程序员通常不会要求较高的沟通能力,可是如今社会,若是想要成长为资深者,就须要表现本身,获得别人的认同。那就须要有必定的写做能力。编程
(2)分析师:清晰软件业务,要精通行业领域,如医药、建材、×××等。俱有至关的沟通与描述能力,能够将客户的需求进行分析并能反馈给团队其余成员(项目经理、架构师等)。架构
(3)架构师:俱有至关的项目经验,有较好的抽象能力和大局观。可根据需求设计出整个系统的大框架。能够设计出用例、UML及应用各类模式到框架中。架构师要对软件的功能实现、延展、复用等负责。框架
(4)项目经理:软件开发项目经理,须要负责项目计划与里程碑的制定、执行、检查。在这中间所涉及的东西较多,项目经理的管理范围包括了整个项目进程中全部的人员与事务的管理(包括软测)。因此项目经理要求较高:编码能力、测试能力、沟通能力、执行能力、人员管理能力等等。也就是除了项目管理以外还要对人员进行管理。ide
(5)技术总监:负责技术管理团队的建设与维护,团队工做标准的制定与检查,完成公司赋予的工做任务,为公司创造价值。须要对软件行业的前延技术有较多的了解,时刻把握软件行业的趋势。能根据这些信息,清晰的认清本身团队现状,而且合理的进行调整。相对于项目经理来说,技术总监更注重团队人员的管理与技术执行标准的制定与检查,还有新技术应用变革的时机等等。学习
2.养成流程图:测试
3.作一些分析:
从图中所看到的每一个职位都有俱体的一些能力要求,咱们每一个人首先要作的就是认清本身。看到本身短板,从而选择本身应该走的程序员之路。有人说作为程序员30岁之后精力就不够了,我的认为这是个笑话,写程序真正靠的是积累。也许不善沟通和交流是性格形成的,咱们不适合去作分析或架构等工做,可是较好的学习力与积累会让你成为行业内的资深者,甚至成为技术专家。this
请不要为本身的不思进取找理由。人生在世须要不断的学习,无论你跳到任何行业,都是须要新的学习。我有一个朋友原来一直从事开发,在06年的时候转行去开了个店,后来由于地段很差关门了。据说最近好像又去卖药了,俱体是否挣到多少钱咱们不讨论,关健是难道在这个中间,他所要学的各类新的东西比继续学习编程所花费的精力要少?怕是不见得吧。有他那些折腾的力气,不如就在开发行业里发展,那怕是本身开公司,也有必定的行业资源和认识吧。还有一个朋友,也搞开发,他没有转行,到如今一直在作,不过我历来没见过他跳槽。搞了这么多年开发,工资没上过3000。说来你们不信,此事真实存在,那这又是为何呢? 很简单,没有学习力!原有技术固步自封,也不会与人交流分享,别人都不知道有这样一我的存在。好笑的是他还有“怀才不遇”的情节。编码
软件开发领域内,须要你能专精一门技术,了解它底层运行机制、数据存放方式以及一些必要的设计思想。那么你在学习其余技术时会很轻松的学会,“引而伸之,触类而长之,天下之能事毕矣也”古人都已经把“举一反三”这个词解释的很清楚了,咱们为何不能认清这个事实呢?
作为有的程序员朋友来说,可能本身并不太善于语言沟通,那并不表明你不可使用文字写博客或者论坛回帖这一类的交流。咱们知道各个技术领域内的技术较多,新东西也不少,如SOA、WCF、WPF等等。而且这些技术有可能让你立刻应用到要开发的项目中时,咱们须要有较好的心态,去学习认识,交流。把知识放到本身的脑子里,比什么都强。