最后,把每个知识点串联起来,形成线,再将线变成面,讲给别人听,或者将其形成文章分享出来
如果把每次遇到的问题都如此总结,周而复始技术/理解能力会有明显的提高
特别是有几年工作经验以后,需要针对基础的计算机知识进行系统的学习。因为基本的编程技巧和工具都离不开这些基本原理的支持。
例如:数据结构,原理,数据库设计,设计模式,算法。在这个过程中可以对知识进行重新梳理,分类,站在更高的位置审视所学知识
多向身边人学习
古人说三个臭皮匠赛过诸葛亮,三人行必有我师,天生我材必有用。每个人身上都有其对应的优点。从他们身上学习知识,技能和经验。
比如某一小组的程序员的Bug很少,学习并且模仿他的编码风格,半年以后发现我的代码质量有了明显的改善。某程序员的办公效率特别高,于是乎就学习他的办公方式,这样自己的办公方式也能得到很大的提升,从中学到别人的闪光点,久而久之结合自身的特点就形成了自己的风格
除了学习人以外,GitHub 上面一些开源项目也是学习的对象,看看别人如何构架系统,如何使用设计模式,对自己的工作也是启发。
检验自己的学习提升了多少
实践是检验真理的唯一标准学了别人的编码风格,学了别人的办公方式,怎么检测到底有没有效果?可以吧这些学到的知识,在下班以后简单的应用到自己的工作中检测是不是有效果
这些检验的方式是有特殊场景的,从问题到解决方案,是被动的验证方式
如果说在日常工作中没有那么多的问题需要解决,而又需要检验学习的知识,那应该如何操作?
这里分享一种主动验证方式,从学习知识到教授知识。在开始学习的时候,就要确定学习目的是:要教会别人也学会这个知识。
也就是,学习完成之后,你就是关于这个知识的专家了,有责任教会其他人搞懂这个知识。
如此这般,才能在学习过程中对知识精益求精。具体过程可以这样:学完某种知识以后,用自己的话,对着镜子复述一遍。刚开始的时候会结结巴巴找不到要领。
不过不要紧,针对不清楚的部分,回去查资料,再进行演讲。直到演讲的过程顺畅为止。
平时可以做个文档当笔记帮助梳理和回忆。针对自己不熟悉的一遍遍的总结,在进行补充。这是一个不断自我完善的过程,最少需要15天,因为一件事情形成习惯的最少时间是15天左右。而且在这个过程中会得到不少反馈,使你对知识的认知的程度不断提高
三丶2020职业发展和规划
职业发展路线是经常被提到的话题,针对不同阶段,职业规划是不同的。刚刚进入 IT 业的同学,可以考虑掌握一门“安身立命”的技术。能够养活自己,并且有成长的空间。
开始时候可以涉猎多一点技术,在其中选择一个觉得“舒服”的技术坚持下去。记得有本事,讲述的是一位老者 40 年学武的经历
其中有一段讲到,他刚开始学武时,他的师傅教了他好几招。然后问他:“哪一招,练起来最舒服。”他回答师傅以后,师傅就要他只练“觉得舒服”的那几招。
一年以后,才教他其他招式。他问师傅为什么。师傅说:“招式虽然变化多端,但底层原理是不变的。如果有几招已经精熟了,那么学习其他招数也就易如反掌了。
反观,学习 IT 技术不也是这样吗?学习那么多的编程语言,他们之间的底层原理都是相通的。分布式架构,通讯方式,设计模式,在思考方式上也有互通互联的地方。
所以,初进入职场的 3-5 年可以在一个垂直的技术领域深耕。精通以后,再选择后面的路如何走。
除了技术能力,综合能力也是必不可少的。例如:演讲,写作,沟通,管理。不管今后是往技术方向还是管理方向发展,这些技能都能够帮到你。
所以,在适当的时候需要锻炼自己的综合能力,比如:
- 定期可以进行技术归纳,把技术干货分享给同事。听取下不同的看法,也能从中发现自己做的好的地方,和有疑问的地方
- 将平时工作中遇到的问题,收集起来并且找到解决办法。这样下次碰到同样的问题,即使忘了也能很快的找到解决答案,从而提高工作效率
- 读几本书籍,学会如何和人沟通。工作久了很多人容易成工作狂从而忽略生活,家庭和身边的人,也可能会产生压力,多读书能缓解压力
- 定期在网上学习管理视频。不断完善自己的知识体系
在学习专业知识的同时,也要获取其他领域的知识,丰富自己的知识体系。
有了好的开始,那么具体的发展有哪些路可以走呢?下
技术路线
程序员→中级程序员→高级程序员→技术经理
这是一条技术发展路线。随着开发经验以及对架构的理解,可以先往中级工程师、高级工程师岗位方向发展。
刚开始的时候关心如何编写出代码,减少 Bug,实现功能,通过模块测试;而中、高级程序员需要从整个项目出发,考虑如何编写模块,算法。
之后,可向技术经理的方向发展。在担任工程师阶段,积累了大中型项目的经验,也熟悉了技术标准、技术规范,学会编写、审核各种技术方案和文档。
同时具备编写软件核心代码、处理软件故障和领导团队的能力,基本达到了技术经理的岗位要求。
技术经理之后,可以往技术总监、CTO 等岗位发展,这些岗位的要求会更高,因此在编程过程中要注重其他方面的积累,如算法思维、测试方法、技术文档、技术团队管理等。
管理路线
程序员→中级工程师→系统架构师→项目经理
系统架构师是一个要求兼具沟通能力,设计能力和技术能力的岗位。技术是基于业务的,因此要对业务有深入的了解,需要与客户、产品经理、技术人员、项目经理等都保持良好的沟通。
针对业务场景,设计规划系统架构和应用场景、解决开发过程中遇到的疑难问题;还要提高开发质量,推进开发进度;也要协助管理技术团队,做好技术文档、说明文件等工作。
项目经理是软件项目的组织者和领导者。对内要组织管理技术团队,制定开发计划、测试计划、培训计划、量化任务等;解决开发过程中出现的问题,保证软件按照进度推进;做好技术文档、说明文件的存档工作等。
对外要与客户沟通,了解、完善、修改需求;要与公司沟通,及时汇报项目进度、工作情况和资源需求;要做好市场调研,及时调整技术方案等。
程序员如果具备很强的沟通、设计和团队管理能力,可以考虑往管理路线发展。不具备这些方面能力的程序员,可以多考虑技术管理方向发展。
系统架构师和技术经理在工作内容上有一些区别。架构师对内负责技术架构,对外需要和业务沟通;技术经理多会专注于内部的技术规范,技术标准的制定和执行。
职业规划
有人问2020年金三银四快到了,我打算跳槽还是安逸的卧在原来公司?
程序员由于职业特点决定了是一个跳槽比较频繁的职业。特别是这几年社会对 IT 技术的需求量逐渐增大,对程序员的需求也在增大,这也导致整体行业跳槽比率偏高。那么什么时候该跳什么时候不该跳呢?
我在网上找了很多文章,发现有好多原因可以被考虑,例如:自身发展,公司发展,行业发展,老板魅力,当然也包括薪水待遇
其实,归根到底说的都是,你现在的工作和你想要的工作之间的差异。新的工作是否给你带来更多,包括薪水,发展,平台,人脉等等。
最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》
欢迎大家一起交流讨论啊~
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](https://codechina.csdn.net/m0_60958482/android_p7)**
欢迎大家一起交流讨论啊~