作为一个在开发行业摸爬滚打10余年的程序猿,对于如何提升自己还是有些经验可以分享一下,希望能帮助到迷茫的码友们。程序员加班严重确实是普遍现象,主要集中在互联网行业和初创
谢邀!程序员加班严重时要如何自我提升?我想这是大多数程序员都面临的一个大问题!个人总结来说应该做到以下两点:
1、从工作内容上”深挖“下去
2、时常记录自己的“不知”
从工作内容上“深挖”下去
怎么理解“深挖”这个词?换句话说,其意思是要我们能知其然而知其所以然。举个栗子,比如我们做Java开发时,经常会用到线程池,那么不能只停留在会运用Executors.newFixedThreadPool()来创建线程池以及提交任务给线程池;一定要搞清楚几个问题:
1. 我们的系统是什么性质,CPU密集型还是IO密集型;从而决定线程池的合适大小;当然实际调优还是得不断的优化线程池大小的
2. 线程池的工作原理到底是什么?提交一个任务后,他是怎么运行的,会不会出现死锁,什么情况下会发生阻塞等
3. 线程池中内部运行的线程时具体工作的?主存和工作内存的区别?何时需要使用ThreadLocal?如何防止共享变量与预期不符的问题?
4. 。。。。
以上几个问题都是我们需要搞清楚的,这样能让我们更好的开发,并减少一些不必要的bug。
再拿我一个同事来举例,他每天都工作到11点多,但是他的成长是很快速的;出于好奇,我每次去装水的时候都会关注一下他在干啥,和他聊聊。发现他遇到一个问题时,就会去不断的尝试,写的代码也会请教一些工作多年的同事,看下是否合适,是否覆盖到未知场景等等,这些其实都是他在不断成长的过程。所以说,成长是靠个人的,要在工作内容上”深挖“下去。
时常记录自己的“不知”
记录自己的”不知“是一个非常好的习惯,这能让你不断的成长。具体怎么说呢?比如说你在工作过程中,发现一些自己不懂的内容,但又不影响你现有开发进度,那么一定要及时记录下来,等你有时间的时候尽快把这块内容搞懂;再一个,比如你在技术选型的时候,选Mysql还是Hbase,这里面又涉及到行存储和列存储,分布式和非分布式存储的不同,也许你选型的时候不需要关注那么多点,但是有些”不知“都是需要记录下来的;
我自己就有一个关于”不知“的备忘录,每次把自己不懂的东西记录下来,空闲下来的时候一定会花时间去学习;我相信随着时间一天天的过去,会慢慢的把“不知”转为已知,从而提升自己的专业能力。
总结
在工作忙,加班严重的状态下,能做到以下几点,我相信你的成长与进步也都是能做到飞跃的:
1、自律
2、不断学习
3、记录“不知”
希望每个人都能一起加油,共同成长。
每天进步一点点!我是90后IT男,日常分享原创或转载的知识!!