前言
本文主要包括以下内容:
分析目前程序员状况,了解市场,分析自我;
如何更快速有效率的学习一项技术;
如何提高学习及自己解决问题的能力;
市场上的薪资等级及需要的匹配能力;
如何有效合理的管理自己的知识;
如何给自己的职业做规划。
随着目前培训机构越来越多,现在程序员也越来越多,很多人在培训之后只是掌握了当时学习的一些硬技能,没有获取真正有用的软技能,导致很多时候只是在吃培训时候的那点老底,另外可能就是想学习什么但是感觉很迷茫,不知道该学什么,学习效率也跟不上,在这里我分享给大家我自己的一些见解,希望对大家有所帮助,能够帮助到大家是我的荣幸,下边先对我们目前很多人存在的问题说明一下。
不想学或不敢学
其实对于做到高效学习,就是在解决三个问题:想学(让自己真正投入学习),学什么(特别对于身入职场的人,没人指引没人督促的情况下,更是不知道该学什么提高自己),怎么学(学习方法问题);如果读者你已经在读本文,就说明“想学”的问题基本解决了,但是对于不敢学估计还是有的,什么是不敢学,其实大家想想自己是不是有这样一个问题,你看书的时候是不是很多时候看了一部分,那本书的后半部分就再也没动过,或者看到很厚的一本书就不想看,其实如果你仔细想想是什么导致你看不下去的,其实多数是恐惧感,对于怎么解决这个问题请看后边第二大点。
不知道学什么
在这里提到的不是说你真的不知道学什么,而是在整个学习体系下应该对自己的学习有合理的安排和规划,对于自己是不是做到了知道学什么,其实你可以问自己几个问题就知道了:
(1)你有没有一个阶段性的计划,例如近3个月、半年或一年内的一个学习计划。
(2)如果前一条符合,那么计划的安排够不够细化,是否能具体到每天的任务。
(3)如果前两个符合,那么你能否按照计划进行学习,学习的过程是否感觉特别吃力,正常情况应该是有所收获,而又不感觉很吃力。如果前几条不符合,那么就说明你对自己学什么还不是很清楚;如果前几条都符合,那么我个人感觉你的学习效率不会很差,下边就是怎么学的问题了。
没有养成好的学习习惯
其实我感觉在职场中多数人无法继续学习成长的原因多数是前两点没有做到,因为每个人都有自己的学习习惯,即便是没有特别好的学习习惯,成长也在慢慢积累,总有量变到质变的飞跃。对于学习习惯,在下边我会分享一些对大家有所帮助的通用学习习惯。
对于如何更快速有效的学习,其实主要是在解决上述问题。下边向大家介绍一下,如何解决和克服上述问题。
消除你的恐惧感
其实这种恐惧感来源于我们之前所受的教育导致的,从小学到初中直至高中,我们都在压抑中学习,受到老师或家长的期待,我们都处于一种强迫自己不得不学的状态,而很少处于一种渴望心态主动钻研的去学习,长久下来我们学的想吐,也对学习这个词产生了不好的定位。其实我想说的是首先在心态上要摆正,学习其实就跟吃饭一样,我们饿了就想吃饭,吃饭可以填报肚子,其实学习就是我们感觉自己某方面还不是很完善,通过看那些在这个方面已经做的很好的人,发现,哦~~~,是这样啊,进而完善自己。是不是写的有点跑题了,哈哈~,还是写在这儿吧。
对于上边说的那种看书过程遇到的问题,这点是针对技术类书籍,对于技术类的书籍看不下去有两点:
(1)这本书难度系数太高,不适合你目前阶段看。对于这样的情况,可以有相匹配知识之后再看。
(2)心态不好,看到有不会的就死磕,一次又一次的,磕到自己没有了兴趣和动力。对于这种情况,需要你放宽心态,要有遇到问题挂起来的心态,因为你需要知道在后续的学习过程中你会慢慢有新的体会,后知后觉,看完一遍后再回过头来看你之前不理解有问题的地方,你也许就理解了,而且就算不理解,在你对这项技术不断学习和实践的过程中慢慢之前不理解的地方会越来越少,有一个放松的心态很重要。
你的学习真的很有计划吗?
其实有很多人的问题出在第二点,给自己定制计划的过程要做如下几点的衡量。
(1)是否在学习区学习
美国人 Noel Tichy 提出一个理论,他将我们想学习的事物的等级分为:舒适区,学习区和恐慌区。
舒适区:学习的内容基本都是我们已经掌握的内容,没有难度,如果学习处于该区域我们的能力基本没有提高。
学习区:学习的内容有部分(基本比例在60%-80%,其实说到底是自身的一种感觉)是我们之前已经掌握的,但是还有一部分内容是我们新接触到的,有一定的挑战性,但是又不至于让我们太难受,这样的学习过程会给我们带来成长和能力的提高。
恐慌区:学习的内容有大部分对自己来说是新的,只有少部分或极少部分是自己之前没有接触过的,这样在学习的过程中就会感觉越来越难于接受,最终导致我们的学习无法进行下去,甚至挫败我们的自信心,进而影响我们之后的计划进行。
其实上一点提到的因难度系数过高看书无法看下去的原因就是在恐慌区学习的情况,而在学习区学习的过程中也会有问题有挑战,这个时候需要我们先将问题挂起来,这样不至于影响自己继续学习下去。
(2)是否是阶梯式学习
有这样一句话:会的不难,难的不会。其实这句话的意思就是,对于学习这件小事,没有难这一说,难的原因是不会,就是说,你感觉难是因为你目前还不具备条件,看下图:
你学习感觉困难,是因为你企图直接从 A 跳到 C 上去,我不是说这样不可以,如果你具备足够的耐力和毅力,是可以的,不过,如果你从 A,到 B 再到 C,会感觉轻松,而且效率没准也会高一些。
(3)是否为滚动式学习
对于滚动式学习是指,学习过程需要重复,不要企图一次性将一项知识掌握,而且我相信一般情况我们也掌握不了,因为我们不是那种过目不忘的神人,至少我不是,所以重复是需要的,重复不一定是将之前的知识重新再看一遍,其实重复最好的方式是换另一个资料再看一遍,这样可以避免信息源孤立造成知识盲点。按照理论、实践、再理论、再实践的过程重复进行。
(4)每天任务是否具体
定制计划要做到颗粒化,如果你的计划细化到月,你的拖延症可能导致你延迟一月完成,具体到周,可能导致你延迟一周完成,具体到天,可能导致你延迟一天完成。所以说任务要具体,具体到天,这样可以使你的学习更加目标化,更加可视化。在这里说明一下,任务要根据自身条件合理安排,也允许安排休息,要注意,休息其实也是自己任务的一部分。
这里分享一些我自己的一些学习习惯。
(1)学会构建知识网络
其实知识点和知识点之间是有关系的,构建一个好的知识网就不容易将知识遗忘遗漏,其实知识网我们都有,只是要看它结不结实了,举个例子,当我们提到“成都”时,我们能想到成都这个地方,也可以想到这首歌曲,也可能想到赵雷,根据赵雷我们可能想到关于赵雷的一系列歌曲等等,这些都是挂在“成都”之上的信息点,而后续的信息又是新的节点,在新的节点上又有新的信息点,所以说知识网是存在的,只是要看你的网是不是够密够结实。在这里推荐大家在学习过一项技术之后,使用思维导图整理自己的知识,让知识融入到自己的整个知识网络中,首先可以在该项技术内构建网络,之后再往外扩展,把这个小的网络编织到自己已有的大网中。
下面是结合我自身学习经验总结的知识网络图:
对上图中的技术知识体系感兴趣的朋友可以加下群:725633148。
(2)实践、实践再实践
理论实践不分家,这一点很重要,一定要实践,对于咱们程序员,要特别注意动手实现能力,这一点不多说,很普通又很重要的一点。
(3)写随笔写总结
学过的知识要落地,写随笔和写总结是一个方法,有这样一个道理就是,感觉自己会了其实不一定会了,真正能讲出来能给不懂的人讲明白才算真正理解了,写总结的过程其实就是自己在整理自己思路再学习以及整理自己知识网的过程。通过这种方式会发现自己哪里明白了,哪里只是感觉明白了。
这一点主要是因为自己在工作中发现有这样一个问题,就是有很多人遇到问题后,自己还没好好想想就求助于别人,或者有问题总是感觉无从下手。
有问题才有成长
我们很多时候对待问题的态度是怕,其实我感觉这样并不利于我们的成长,就是说,如果我们的经历都是一帆风顺的,那么我们真的就无法从中获取成长的机会,所以说我希望大家能首先在这一点上首先克服自己的心理障碍,首先我们应该在心理上战胜问题,这样才能更有效的解决问题。
透过 Debug 看问题解决思路
首先我说明一点,Debug 是一项很重要的解决问题的能力,如果我们还做不到通过目前知识去定位问题,那么这将是一项很重要的技能;下面再说一下,我们透过 Debug 可以看到什么,其实很多时候是我们从上学期间学到的技能,举个一些常见的解决问题的思路:排除法,对比法,顺藤摸瓜,找依赖等,说到底就是我们遇到一个问题,首先想想会是什么情况导致这个问题,然后逐个排除或排查,最终找到问题的根源,如果确实还是无法解决那么可以通过下一项。
学会百度
你可能会说,百度大家都会,我们一直都在用百度,但是其实我们应该可以发现,百度只是一个工具,每个人有每个人的用法,你会发现每个人的用法很多时候真的是不一样,问几个人可以测试一下:怎么只搜索 PPT 文档,怎么在结果中搜索不带某个关键词的词条,怎么搜索近期文档,有没有办法查看已经失效的网页,打开网页一篇文章你需要看多长时间或通过什么方式去判断是不是自己需要的答案等等,这些问题只是做一个测试,如果有些你不知道或者你还做的不够好可以在这方面提升一下,如果已经做的很好了,可以看下一条。
英文能力
这一点希望大家试着练习去读一些英文的文档,有些问题在你现有的条件下如果无法解决,就真的需要你去看英文的文档,这一点能力的提升,可以在你需要的时候帮住到你。
市场上我们在找工作的过程中需要合理评估自己的能力找到适合自己的工作,评估高了可能导致自己无法胜任工作,评估低了对于我们的发展也会受到影响,下面对基本薪资水平和需要的能力进行分析一下,声明一下,分析只代表个人看法,对于不同类型的公司可能有误,望理解。
低于10K:基本算是初入 Java 行业,有基本的 Java 基础能力,了解一些市场上常用的前端和后台框架,有少量的项目经历就可以。
10K-15K:对 Java 思想有基本的理解,深入了解过 Java 基础的一些实现原理,市场上流行的框架要做到熟练,对框架的核心要知道其实现原理,会基本的设计模式设计思想,掌握几项市场上常用的中间件(不在于是什么,但是要有几项做到会用并了解基本原理的程度)。
16K-20K:有熟练的 Java 开发能力,能够解决团队中的一些疑难问题,框架应用能力要强,能够将 Java 核心的面向对象思想应用到项目整体开发过程中,利用常用的设计模式组织基础代码。
21K-25K:在之前项目开发过程中带领过团队开发,在团队中担任主力角色,协助项目经理做一些公共组件开发,有过大型项目的整体开发,思想不局限于基本代码实现,更多考虑系统整体架构,这就要求用过或学习过多种相同功能框架的不同实现,并且能分辨其中各自优缺点,能为系统设计提供好的技术选型方案。
目前就给出这些,个人能力有限,只能给出这些了,如果没能解决你的问题,可以单独跟我聊,谢谢!
我们的知识大概分为:精通的、熟练的、了解的、知道的、不知道的几大类,精通的一般就是我们的生存技能,熟练的一部分归在我们的行业范围之内,了解的部分是我们只知道皮毛却没有进行深入了解的知识,知道的部分在我们印象中只是一个概念,不知道的部分还处在我们知识体系之外。对于这几大方面,我们应该怎么处理才能更有效的凸显自己呢。
做 T 型人才
T 的构成由上边的一横和下边的一竖构成,对于上边的一横,我们把它看成我们的知识横向范围,对于下边的一竖,我们把它看成我们的专业技能,我们即要把横体现出来也要把这一竖体现出来,对于横向的部分,我们需要拓展我们不知道的部分,就是要想办法去拓展自己不知道的知识,有效的方式有:多跟人交流,刷知乎等。对于纵向的专业技能,我们要想办法把我们熟练的知识转化为我们精通的知识,这个过程需要我们进行反复的练习才能实现。
学会知识迁移
目前互联网信息爆炸的时代,对于我们软件行业信息量更是大,我们不可能将所有的信息都存放在我们的大脑中,这时候我们就要学会知识迁移,将一部分知识存储起来,解放我们的大脑,具体就是我们应该将我们的知识有效合理的存储起来,我们可以通过如下方式实现:将我们学习的系统化的知识归类整理,之后我们可以写成博客,文档,发布在网上,我们要做的就是存储知识的索引(就是记下来我们把那个知识点放在了什么位置),等我们需要的时候调出来查询即可。
融入新知识
我们有时候总会有种错觉,就是我们是对的,如果真的可以将我们的知识体系摆出来看,我们真的就不敢再这么想了,因为我们每个人都会有错误的认知,所以我们需要将我们的知识摆出来,让大众看到,让大众去点评我们的对错,这样做我们有时候真的可以发现自己之前错误的认知,并且可以吸收很多新的知识进来。具体就是我们需要多去回答别人提出的问题,将自己的知识公布出来,从而有效的获得来自众人对自己知识看法的反馈,这样做可以有效优化自己的知识结构。
对于职业规划这方面,相信很多人都是迷茫的,其实很多时候迷茫来自于未来的不确定性,都说35岁时程序员的年龄危机,我们都不确定我们30岁的时候到底能达到什么样的水平,所以我们都在迷茫于未来的发展,对于职业规划这方面,我给出如下的一些建议。
眼光放长远
如果眼光局限在眼前就会有很多事我们看不清楚,也就是说如果我们以我们目前的实力去看未来10年后的自己,肯定会有很多的问题存在,但是我们忽略一点就是我们有时间啊,我们可以利用这时间提升自己的专业技能,到10年后我们如果做的不错,就算拿坏的结果我们干不了开发,也会有其他的岗位需要我们这一身的技能,即便拿再坏的情况来说我们真的找不到工作,我相信我们这10年的积累(技术、思想、认知)肯定能给我们找到一个不会很差的选择。
学会抱团
现在这个时代不再是单打独斗的时代,真的是一个1+1>2的时代,其实通过上边的那么多讲解你也应该明白,一个人是不完整的,团队才是完整的,什么意思,就是在现在这个讲究效率的时代,你就是再牛逼,牛逼的人真的很多,真不缺你,但是你再想想缺一个牛逼的团队又是一种什么概念,这样你就应该明白了,在团队中你可以比单独一个人存活的更长久。Java架构技术交流群:725633148 文章中的技术体系在群里可以免费下载。
学会经营自己
就是要学会用自己已有的钱争取更多来经营自己,我们都喜欢谈身价,其实身价都是需要经营的,我们应该在年轻的时候多提高自己,经营自己的方式有很多:例如我们可以专注于做一件事一直做下去,时间长了我们就是这个行业的专家,这就是我们的资本;再比如说,我们可以多拓宽自己的交际圈,认识的人多了我们就是信息的中转站这也是我们的资本,很多时候我们总在否定很多东西,比如我们会说“什么积累人脉的,不就是有钱嘛”等等,其实根本原因真的是我们不懂坚持,什么东西有真的不难,但是要有了一定的量,那真的是一件了不起的事,很恐怖的。
网友评论