Career planning for Java engineers, if you want to be a Java programmer, you might as well take a look

- 1 -

Junior programmers: do some static interfaces;
programmers: do some small modules that add, delete, modify and check;
intermediate programmers: do modules with more complex logic;
senior programmers: do core modules;
project managers: the overall structure of the system;
departments Manager: multi-project management;
President: multi-department and enterprise development planning.


- 2 -

If you just graduated, you will spend a few more years to accumulate experience. It is impossible to rely on a stunt to eat all over the world. Don't expect more money from java or C++ or .NET. too early. Accumulate experience. Accumulate experience in design, architecture, testing, communication, management, emotional intelligence and other aspects. Then make a decision based on the accumulation of the next n years. The ideal situation is one specialization , many abilities . One must be proficient in the same, but you must know that the so-called masters are by no means only one item. When they reach their level, everything is the same, and it depends on their learning ability and reasoning ability.  
So, first calm down and gain experience.


- 3 -

1. I hope you can gain something from it.


2. Be sure to determine your own development direction and make a feasible plan for this purpose. Don't say, "I just graduated, I still don't know what I might do in the future?", "Follow your feeling, do it first." Because, such a point of view will imply through your subconscious that your actions are idle and mediocre. Always do technology, become an expert in the future? Go in the direction of management and become a professional manager? Familiarize yourself with the industry and field first, will you stand on your own? Or should I start out in the industry and change careers to do something else in a few years? This is very important, it will determine what you do in the next few years, ten years to do the right thing!


3. In the software development team, technology is not omnipotent, but no technology is absolutely impossible! In a technical team, technology and character are equally important, of course, looks are also more important, especially in teams with more MM. In the software project team, the technical level is an important weight that is valued and respected by people. Whether you do management, system analysis, design, coding, or product management, testing, documentation, implementation, and maintenance, you must have a technical foundation. Even if I am ignorant, I have never seen a layman lead a software development team to successfully complete a software development project, even if it is only one. However, I once saw a "highly educated expert" (non-technical type) lead a group of people to complete a project. On the second day after the project was delivered, the project team members threw a sentence "I can't take it anymore!" go their separate ways. The "success" of that project can be imagined.


4. Develop your own software development professional knowledge learning plan in detail, and pay attention to timely correction and adjustment (software development technology changes too fast). Remember: "If a software developer hasn't updated his knowledge in 1 or 2 years, he is no longer in the industry." Don't tell yourself that you don't have time.
The famous "three- eight principle " from the field of time management warns us: how to use the other 8 hours will determine your life or failure! Since I graduated, my average daily study time is more than 2 hours.


5. Books are the ladder of human progress, especially for software developers. Books are the most effective way to learn knowledge. Don't expect too much to meet "experts" at work and take the trouble to teach you. As for spending money on books, my personal experience is: don't buy books from those people in China! I've regretted 100% of the books I bought from those guys, no exceptions. What's more annoyed is that these books are difficult to sell on the second-hand market stalls. " Having books does not mean possessing knowledge; possessing knowledge does not mean possessing skills; possessing skills does not mean possessing culture; possessing culture does not mean possessing wisdom. "


6、不要仅局限于对某项技术的表面使用上,哪怕你只是偶尔用一、二次。“对任何事物不究就里”是任何行业的工程师所不应该具备的素质。开发Windows应用程序,看看Windows程序的设计、加载、执行原理,分析一下PE文件格式,试试用SDK开发从头开发一个Windows应用程序;用VC++、 Delphi、Java、.Net开发应用程序,花时间去研究一下MFC、VCL、J2EE、.Net它们框架设计或者源码;除了会用J2EE、 JBoss、Spring、Hibernate等等优秀的开源产品或者框架,抽空看看大师们是如何抽象、分析、设计和实现那些类似问题的通用解决方案的。试着这样做做,你以后的工作将会少遇到一些让你不明就里、一头雾水的问题,因为,很多东西你“知其然且知其所以然”!


7、在一种语言上编程,但别为其束缚了思想。“代码大全”中说:“深入一门语言编程,不要浮于表面”。深入一门语言开发还远远不足,任何编程语言的存在都有其自身的理由,所以也没有哪门语言是“包治百病”的“灵丹妙药”。编程语言对开发人员解决具体问题的思路和方式的影响与束缚的例子俯拾皆是。我的经验是:用面对对象工具开发某些关键模块时,为什么不可以借鉴C、C51、汇编的模块化封装方式?用传统的桌面开发工具(目前主要有VC++、Delphi)进行系统体统结构设计时,为什么不可以参考来自Java社区的IoC、AOP设计思想,甚至借鉴像Spring、Hibernate、JBoss等等优秀的开源框架?在进行类似于实时通信、数据采集等功能的设计、实现时,为什么不可以引用来自实时系统、嵌入式系统的优秀的体系框架与模式?为什么一切都必须以个人、团队在当然开发语言上的传统或者经验来解决问题???“他山之石、可以攻玉”。


8、养成总结与反思的习惯,并有意识地提炼日常工作成果,形成自己的个人源码库、解决某类问题的通用系统体系结构、甚至进化为框架。众所周知,对软件开发人员而言,有、无经验的一个显著区别是:无经验者完成任何任务时都从头开始,而有经验者往往通过重组自己的可复用模块、类库来解决问题(其实这个结论不应该被局限在软件开发领域、可以延伸到很多方面)。这并不是说,所有可复用的东西都必须自己实现,别人成熟的通过测试的成果也可以收集、整理、集成到自己的知识库中。但是,最好还是自己实现,这样没有知识产权、版权等问题,关键是自己实现后能真正掌握这个知识点,拥有这个技能。


9、理论与实践并重,内外双修。工程师的内涵是:以工程师的眼光观察、分析事物和世界。一个合格的软件工程师,是真正理解了软件产品的本质及软件产品研发的思想精髓的人(个人观点、欢迎探讨)。掌握软件开发语言、应用语言工具解决工作中的具体问题、完成目标任务是软件工程师的主要工作,但从软件工程师这个角度来看,这只是外在的东西,并非重要的、本质的工作。学习、掌握软件产品开发理论知识、软件开发方法论,并在实践中理解、应用软件产品的分析、设计、实现思想来解决具体的软件产品研发问题,才是真正的软件工程师的工作。站在成熟理论与可靠方法论的高度思考、分析、解决问题,并在具体实践中验证和修正这些思想与方式,最终形成自己的理论体系和实用方法论。



10、心态有多开放,视野就有多开阔。不要抱着自己的技术和成果,等到它们都已经过时变成垃圾了,才拿出来丢人现眼。请及时发布自己的研究成果:开发的产品、有创意的设计或代码,公布出来让大家交流或者使用,你的成果才有进化和升华的机会。想想自己2000年间开发的那些Windows系统工具,5、6年之后的今天,还是那个样子,今天流行的好多Windows系统工具都比自己的晚,但进化得很好,且有那么多用户在使用。并且,不要保守自己的技术和思想,尽可能地与人交流与分享,或者传授给开发团队的成员。“与人交换苹果之后,每个人还是只有一个苹果;但交换思想之后,每个人都拥有两种思想”,道理大家都懂,但有多少人真正能做到呢?


11、尽量参加开源项目的开发、或者与朋友共同研制一些自己的产品,千万不要因为没有钱赚而不做。网络早已不再只是“虚拟世界”,网上有很多的开源项目、合作开发项目、外包项目,这都是涉猎工作以外的知识的绝好机会,并且能够结识更广的人缘。不要因为工作是做ERP,就不去学习和了解嵌入式、实时、通信、网络等方面的技术,反过来也是一样。如果当别人拿着合同找你合作,你却这也不会,那也不熟时,你将后悔莫及。


12、书到用时方恨少,不要将自己的知识面仅仅局限于技术方面。诺贝尔经济学奖得主西蒙教授的研究结果表明: “对于一个有一定基础的人来说,他只要真正肯下功夫,在6个月内就可以掌握任何一门学问。”教育心理学界为感谢西蒙教授的研究成果,故命名为西蒙学习法。可见,掌握一门陌生的学问远远没有想象的那么高难、深奥。多方吸取、广泛涉猎。极力夯实自己的影响圈、尽量扩大自己的关注圈。财务、经济、税务、管理等等知识,有空花时间看看,韬光养晦、未雨绸缪。


13、本文的总结与反思:


A:不要去做技术上的高手,除非你的目标如此。虽然本文是关于提高软件开发知识的建议,做技术的高手是我一向都不赞同的。你可以提高自己的专业知识,但能胜任工作即止。


B:提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。软件专业知识的很多方法和原理,可以很容易地延伸、应用到生活的其它方面。


C:在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己的综合素质,尤其是那些目标不在技术方面的朋友。


- 4 -

最高职位是技术总监又叫(CTO)首席技术师,年薪20到60W,程序员可以分很多,底层就程序员,写底层代码,中级软件工程师,高级软件工程师,项目经理,实施,架构师,程序员到架构师一般要8到10年经验。普通人每上一个台阶都要相应的证书,不过技术强硬就免了。


- 5 -

一个优秀程序员的工作并非只是编制代码,他要完成的工作是要把人类的思想利用语言告诉计算机,来做人类想让它们做的事情。


那么,问题来了。你有思想吗?你知道要让电脑做什么吗?比如说管理、计算、统计、动画……如果到了35岁,你还是只能在他人指导下做编码工作(软件蓝领)恐怕在体力和精力上是不如年轻人的。


所以,谈到职业规划。在年轻时熟练掌握程序语言,而后是独立承担和组织一个完整的项目,在后是能够带领一个小组完成项目。在这过程中,你要与内部交流、沟通,要与用户交流、沟通,要做出项目计划并督导完成。


- 6 -

实习生----底层代码工人----底层程序员-----程序员------初级工程师------中级工程师-----高级工程师----项目经理----软件设计师-----软件架构师---(有可能的话)----创业做老板


附送大笑大笑

Java程序员职业生涯规划范文


一位哲人说过:“走好每一步,就是你的人生。”,人生之路说长也长,是因为这是你一生所要走的艰难险阻的跋涉;人生之路说短也短,因为你度过的每一天就是你的人生。每个人都在计划自己的人生,都在实现自己的梦想,而我将在规划的航线上拔锚起航。


一、认识自我

1、个人分析:

个人认为我的性格具有两面性,我喜欢在安静的环境下去看书,在有的时候与朋友聊天分享彼此的欢乐。也喜欢打羽毛球、跑步、旅游,享受大自然的美景、陶冶自己的情操。另外,我也具有团队合作精神与协作能力,比较强的动手能力与实践能力。


人无十全十美,我在做事情时,有时比较急躁,但我会在以后的工作与学习中加以改进自己的不足。


二、职业生涯条件分析

1、社会环境分析:

总体来说,我们国家面临着一个良好的社会的环境,社会安定,ZZ稳定,特别是当前经济发展迅速,法制建设不断完善,高新技术领域突飞猛进。因此,在这样一个良好的社会环境下,制定一个合理的人生职业规划是尤为必要的。


2、职业环境分析:

IT行业是随着电子信息产业的发展而逐步发展起来的,并且日益得到完善。


IT行业的平稳增长必然会带来软件工程师需求的增长,目前随着IT产品出现的技术融合,市场需求的巨大和专业人才的缺乏,由此可知,软件行业还是比较乐观的。但软件行业需要的也是复合型人才,软件工程师需要掌握更多的编程语言。


三、职业目标定位

1、职业目标的确定:


1.1短期目标(1-2年):

注重Java基础知识、多学习项目开发经验,了解项目开发业务知识,并在学习中掌握DB2数据库的SQL语句的复杂查询以及管理操作,并深入学习了解struts、hibernate、spring相关操作。


1.2中期目标(3-5年):

至少了解并熟悉2门编程语言,如。net、C++、PHP;并学习掌握Oracle、MS-SQL数据库管理操作;掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。


1.3长期目标(5-10年):

学习管理方面的相关知识,由技术型向管理型方面的转移。


2、成功标准:

只要自己尽心尽力,能力得到发挥,从实践中得到提升与自我认识,就是最大的收获。


四、评估调整

1、评估的时间

在一般情况下,每三个月对自己所做的工作进行一次总结,每半年对职业规划重新评估并进行相应的调整。


2、评估的内容与调整的原则

不论目标如何调整,每一时间段必须有明确的工作计划与目标,内容评估主要侧重于实施策略的评估和调整,随着社会以及行业的一些发展和变化,随时适时调整自己的目标实现策略,做到最简的规划最快的提高。


五、结束语

路漫漫其修远兮,吾将上下而求索。不经历风雨怎能见彩虹。我们要时刻保持一颗清醒的头脑,随时为自己的目标而奋斗。其实,每个人心中都有一幅画,描述着理想、信念、追求、抱负;每个人心中都有一片森林,承载着鸟语花香的甜蜜、阴森恐惧的彷徨。一个人,若要获得成功,必须拿出勇气,付出努力、拼搏、奋斗、成功。机遇不同情眼泪的忧伤、不相信颓废的绝望,只期待爱打拼、时刻准备着的人。

还在学习java的童鞋,在学习上遇到不懂的问题的时候可以加媛媛的java的学习裙,群里有直播课学习,如果需要资料的小媛也可以分享给大家(667292192),不管你是小白还是进阶,都可以加进来交流学习的。

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325633411&siteId=291194637