前言:本文以《IT从业者的职业规划》一文中的职业为基础,结合笔者自身的工作学习经验,对IT从业者学习的过程进行系统规划性的分析和阐述,以期能帮助处于迷茫中的从业者们。
一直想找个时间把以前的经验总结下来,记录成系列形式的文章。我喜欢系列形式的文章。看园子里的系列文章,往往有期待感,也有满足感。一来它是一个系统的学习的过程;二来也是作者的一个系统的经验总结的过程,对人对己都有益处。系列文章是能够帮助学习者一步步的从不知道到应用高手的学习的一个过程。(在此请园子里的高手们多写系列形式的文章,多谢)
就象我写的《IT从业者的职业规划》一样,在这里,作为项目经理的我,也对IT从业者的职业学习过程做个规划,算是我个人的一个学习过程的总结,也给IT从业新人有个系统的学习和提高的过程指导,作为即将开炉的学习者系列文章的开篇。下面开始吧。该规划分的阶段不是按园子里博问的分法,各人见解不同。如有不恰当之处,请大家见谅。。。。。。
一、初学者阶段
我把刚开始学习的阶段定义为初学者阶段。该阶段学习者什么都不会,必须从摸索阶段进行系统学习,这样能少走弯路,以尽快掌握知识以达到入门,从而具有使用该知识进行工作的能力。该阶段基本上从学习、模仿开始,需要对事物的原理进行了解,以期打好基础,为以后阶段做准备。
1)在技术上。该阶段的学习者,往往技术上是什么都想学习,因为他不知道以后需要什么样的知识,往往保存了很多的代码和示例,以能进行学习整理和在工作中进行应用。尽量以数据库为开始,从基本的数据库知识入手,学习数据库的原理和实际的运行机制,这里还是推荐微软的SQL SERVER系列,和甲骨文的Oracle系列为出发点。MySQL也可以进行开发,并且是具有免费的版本,但是初始学习阶段,尽量以使用率相对较多的数据库开始比较好。然后是编程语言。个人还是推荐以C++为切入点进行。一来C++语言是面向对象的,本身需要面向对象的思想,这点很重要。二来后面的那些高级语言,比如VC,C#,JAVA等等,也是面向对象的语言,而且他们的语法上与C语言很类似,容易从C++的面向对象思想转换到这些高级语言的思想上。接着是指导老师的问题。在该阶段,最好的学习方式,一般分为自学和项目组组织的内部培训以及外部的培训三种方式。对于自学,可以通过阅读相关书籍,或者网络上的资料来进行。这部分学习的时间,可以在项目实现之余,或者自己找时间去学习了,因为工作时间相对来说是限制了学习的时间。对于交流,除了项目团队内部的交流会议之外,项目经理可以使用XP极限编程的方式来直接的使某几个人的编程风格和水平的差距进行缩小。当然了,也可以通过博客、提问等方式与网络上的友人进行交流,这样既增长了自己的见识,也使自己的朋友圈子扩大,同时也会找到志同道合的友人,且能够在实际工作中帮助自己的友人。然后是开发工具的使用问题。需要挑选合适的开发工具以进行学习。同时需要寻找一些辅助工具来进行提高工具使用的便捷性和易用性。
2)在业务上。建议初学者以项目助理的方式进行切入。因为项目助理的工作,会涉及到项目业务方向上的方方面面,对于自身的经验积累和工作难易程度的把握比较恰当。而且,也容易对业务的学习规划有个较明确的方向。同时需要积极的参与系统业务方面知识的学习和积累,这个可以通过查阅该业务领域的标准和政策等内容来进行。最好是以需求为切入点来进行分析和实践工作。如果有机会,可以与客户一起进行工作,以了解他们对业务的需求情况和实际操作习惯等内容,为下一阶段做准备。不同领域的业务需求是不一样的,建议初学者们在根据职业规划的路在发展的同时,尽量的不要更改业务领域方向,这样以坚持的态度去学习和理解该领域的业务是非常重要的,同时也利于不断的积累。
3)在管理上。对该阶段的象往管理方向发展的学习者,建议与业务方向的学习者一样,仍然以项目助理的方式进行切入比较合适。项目助理这个角色,是对于项目管理者的一个辅助的角色,对于项目管理者管理好项目的各项内容具有很好的指导价值(就象总经理办公室的秘书一样的角色)。
在该阶段,引导非常重要的,尽量以系统的学习结合实际或者自己定义的一些小系统为基础进行学习,不要一味的以某些培训为主去进行学习,虽然培训是一个快速获取知识的方法。
二、进阶者阶段
接下来,就到了进阶者阶段了。进阶者阶段, 需要摆脱初学者阶段的模仿,开始使用自己的经验去思考、处理问题。
1)在技术上。该阶段的学习者,已经能够按照自己的思想去写代码了。这时候,你需要补充高级编程相关的知识,还有系统运行的机制和底层的更深层次的原理性问题。这个是成为一个高手的毕竟之路。还有设计模式,在该阶段你也必须掌握,从而为架构设计等方向打好基础。在该阶段,你需要学会使用UML建模来进行需求分析,设计和应用。UML建模是一个能够培养你自己思维能力的好工具,个人建议还是得掌握。该阶段在高级编程方面,你需要掌握的,不仅仅是B/S架构的三层结构的设计思路,还需要C/S架构的多层次面向对象的分析、设计思想。你还需要架构方面的知识,虽然一时半会还达不到那么高的要求。这个是为了下一个阶段所需要做的准备。同时,在硬件上,你需要学会各种操作系统的安装,已经改系统上的软件安装方法,以备当你是一个技术支持人员时的应用能力问题。这些都需要花费一定的时候和精力,但是,我相信,对于努力学习的朋友们这只是一个学习时间的问题罢了。
2)在业务上。尽量以需求分析师的能力来要求自己,这样便于自己的学习和能力的培养。如果你不知道需求分析师的要求,这里大概的说一下:。因此,以高要求来对待自己,是能力培养的一个重要的方法。这样便于自己在该阶段迅速的成长为一个业务领域专家的角色。我建议大家经常和客户打交道,以知道和推断出他们在实际的业务需求方面的需要,这个对于你成为一个专家也是一个很好的学习方法,而不要把相关的问题都推到需求分析人员的身上,你同样需要做好准备。
3)在管理上。这里我把管理分为项目管理和运营管理(主要是个人的工作经验问题)。项目管理不仅仅需要项目管理的九大知识领域的。因为每个人所处的项目环境不同,所需要的项目管理领域知识也不一样,不是所有项目都需要应用这些知识,更多的是知道需要什么样的知识来把项目更好的支撑起来,更好的为项目服务,更好的把项目成员的工作分配好,更好的掌握项目的进度和费用等问题。这里就需要一些项目管理工具的配合,这个微软有Project,Visio等工具可以选择,建议大家灵活应用。运营管理,需要的是魄力和良好的市场洞察力,需要比别人更早的知道市场的需求,市场的导向在什么地方。这个没有一定的工作经验和市场调查能力是不行的。希望大家找一些案例分析来进行阅读,从而提高运营能力的培养和应用能力的发挥。
在该阶段,以自己的思想、经验去思考和解决问题是非常重要的,也是一个锻炼自己能力的过程。
三、精通者阶段
然后,就到了精通者阶段。该阶段的学习者,已经能够对所学知识进行融会贯通,达到了灵活应用和灵活思考的境界。
1)在技术上。该阶段的学习者,能够熟练使用选择的应用框架,并能够自己去定义和开发符合实际系统的框架。该阶段相比框架师,更多的是以需求为基本,而框架师是以技术为主的,比架构师更能体现出系统的需求能动性。这里提出的需求能动性,指的是系统应该不是因为设计而去设计,应该以系统更好地体现需求而进行设计、开发。不要为了模式而是用设计模式,也是一个很好的观点。为了系统的维护性,我们需要适当的牺牲一些高层次的设计应用知识和方法。
2)在业务上。业务系统的需求和设计不是一成不变的,所以,需要考虑的是,根据实际的需求去设计开发出符合业务系统的需求驱动的系统。在该阶段,你已经不仅仅是一个需求分析师等相关的角色了。这时候,你不仅需要的是客户提出的需求问题,而是你自己也要根据自己的业务知识积累,帮助客户甚至自己提出该业务系统所存在的需求功能。你要比客户更懂该领域的需求,才能够超越业务专家角色。
3)在管理上。你需要精通项目管理九大领域知识,并且能够在实际中灵活地根据所需要的部分进行应用。当然了,项目管理方向的理论知识已经很成熟,在该阶段,需要的不仅仅是理论知识,更多的是在当前所处理的项目过程中能够各取所需,更好的发挥出知识领域的思想。需要有几套自己总结下来的项目管理文档和相关的总结的经验的文档以备用。熟练地使用各种工具同样能够让你的工作事半功倍。项目管理者不需要考虑技术问题,但他同样需要对技术有一定的基础知识,才能配合开发经理等角色更好的管理好项目。
在该阶段,以灵活应用现有的知识和充分发挥已有的经验去完成工作是一个非常锻炼自己的方法。
四、思想者阶段
最后一个阶段,我把它定义为思想者阶段。主要在该阶段,已经对事物有了整体性的理解和具有丰富的经验,该阶段以思考为主要内容,能够结合实际经验进行拓展处理问题。
该阶段的学习者,以能够制定规则为基本思想,即这个IT领域的规则、规范是由他们来定义、制定和编写的,或者也可以说他们是该IT领域的领跑者。
1)在技术上。主要针对当前的技术趋势,结合自己的经验,总结和规划技术规范。比如设计模式GoF,就是经验的总结;敏捷开发等等,也是思想的一种提升和经验的总结。当前的技术的发展,往往是需要不断地进行总结和思考的。就象HTML5标准,也是对以往的应用的基础上进行的。该阶段的技术上,就是以制定标准为主。
2)在业务上。主要是当前业务系统的业务领域方面的提升和总结。我们知道,业务系统的改革和进步,也是由不断的业务提出和不断地总结该业务领域的相关进行进行的。就象在建筑领域一样,已经形成了一套的业务术语和业务知识领域。同样的,在业务领域,一样的会不断的总结业务领域知识,从而形成该领域的业务标准。比如财务的业务方向,就是一个不断总结和更新的一个过程。
3)在管理上。在管理领域,同样存在着经验的总结和思考的提升。比如项目管理知识领域,目前在国际上已经形成了标准,也已经非常的规范了,同样具有很重要的领导意义和使用价值。
在该阶段,就是一个不断的总结经验和不断的制定标准的过程,该阶段就是为了某些领域服务的,就是为了领域的良好发展和更稳定的方向而在不懈的努力。
五、总结
好了,看到这里,你已经对我所描绘的学习规划有了一个理解。在这里再强调一下,每个人的学习过程是不一样的,就象每个由同样的老师教出来的学生水平也不一致一样。所以,上诉只是一个描绘学习的过程,当然这个是基于我个人工作经验为基础,以及我个人的学习和经验的总结。希望本文能让迷茫者对学习规划有一个比较清晰的理解认识。
六、推荐网站
这里推荐一些常去的网站,希望对大家能有所帮助。
1)管理资源吧。http://www.glzy8.com/
2)青年人考试网。http://www.qnr.cn/
3)开源项目大全。http://code-open.net/
4)PHP开源项目网。http://www.coderhome.net/
5)中国论文下载中心。http://www.studa.net/
6)软件项目交易网。http://www.sxsoft.com/
7)全球软件外包项目平台。http://www.taskcity.com/
(请大家有好的网站发出来共享)
注:因为时间问题,本文也是分阶段写的,如果中间有思想跳跃的地方,请大家见谅。。。。。。
请大家不要全部抄袭我的作品,谢谢。
Austin Liu 刘恒辉
Project Manager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |