问:请问,从你写的东西可以看出你内功深厚。能否分享一下成功经验。我平时用python,看一些来源项目的代码时明显感觉到差距。如果我一个善于debug的工人,那么他们则是设计大师,这种鸿沟该如何弥补。如果能从python的角度说是最好不过了。
Friendfb: 我就从我个人及其身边很多程序员的经历来谈一点感受,我觉得这些感受是可以参考的。任何人的成长都是需要“反人性”的。第一,你要不断的跳出自己的心理“舒适区”,勇敢的走向“恐慌区”、“焦虑区”;第二,有了想法以后就要立即行动,任何成功的背后都有很多我们看不见的艰辛,他们是把“我们喝咖啡的时间都用于了学习”;第三,在正确的方向上的努力与行动才有意义,就是我们要顺势而为,把我们的努力方向与社会发展趋势、技术发展趋势结合起来。
上面都是方法论。落在我们程序员身上,以掌握技术为例来说的话就是:
1 经常问自己:我们现在学习的技术是现在工作所需吗?是行业所需吗?是符合技术发展趋势吗?
2 得到肯定答复以后,自己首先从基础开始,可以自己看书学习、看公众号文章、加入知识社群、看/调试优秀的源代码;一定要总结(写笔记、写心得,不一定要很正式);一定要多交流(多一个交流的伙伴,就多了一个看问题的角度,避免我们个人的认知误区、认知盲点,营造一个学习群体的氛围很重要);一定学以致用(能结合自己的工作那是最好,如不不能,那自己安装环境、编写一个Demo也是可以的)
3 构建技术体系。我们在学习的时候,往往都是知识点,我们需要把这些知识点串联起来,形成知识晶体(便于整块提取),最后建立知识晶体之间的联系,进而构建自己的技术体系。可以从三个角度进行:学习共性技术(设计模式、软件工程、数据库、网络、数据结构与算法等);学习相近的技术(如果你是学习python,除了掌握那么可以去尝试学习Django框架、TensorFlow机器学习框架等);学习互补的技术(可以了解一下前端技术、掌握Java技术等等)。
4 现在行业竞争越发激烈,从我们的职业长远发展来说,我们需要培养一专多能的能力,争取成为“T”型人才,那一横代表的是我的知识面的广度;那一竖就是要求我们在某个领域有深度。这样我们在解决问题的时候才能触类旁通。
5 最后,每个人有一段沉寂的岁月,好好利用这段时间,因为这是一个“厚积”的过程,鸡蛋从内部打破是成长,鸡蛋从外部打破是食物。成长的过程必然“痛苦”——人在走上坡路的时候是最痛苦的,而走下坡路的时候往往很轻松。