简单概括这几年的项目技术架构经历:
单体应用(外包、创业)->前后端分离实践(创业)->变相微服务实践(创业)->分布式微服务实践初级(教育saas)->分布式微服务实践全权把控(当前所在公司)
总的来说,走了很多弯路,填了很多坑。走弯路和填坑的原因,有很多。虽然都说,成长就是经历,有些坑是无法避免的。但其实有不少是我自己的独断专制造成的,这一点我至今仍要反思(虽然目前没有犯类似的错误,但我仍要反思,反思的目的,在于不能再走老路了,同时也是为了让新路更加通顺)。
二、我对学习的思考人从出生就开始不断学习,从走路到识字,再到独立生活和工作,再到生儿育女等。
我在博客园写了800多篇的博客文章,最开始我没想写这个:
觉得没时间(最大的理由是工作太累不想写,懒惰);
觉得没意义没价值(最大的理由是有很多现成的,人家写好了,我为什么还要写呢,不想重复造轮子)。
一切源于我的导师,他当初给我说过这样的话(导师说过话很多,我也记不清,但核心的意思是这样的):
写作的目的,不仅仅在培养形成解决问题的良性循环,同时更关键在于培养自己深度思考和善于总结的能力。
我的写作和我的学习历程很相近。我的博客写了800多篇文章,大多是技术学习和问题解决等内容,少部分是一些职业思考、读书新的/笔记等内容。
我的写作间接反映出我是一个持之以恒且热爱技术、热爱学习的人,但同样也反映出我在学习过程中的很多不足。
以下是写作中暴露的问题(这里就不谈写的语句通顺方面的问题):
1. 欠缺较为深度的文章;
2. 刻意练习过于简单;
3. 读书笔记欠缺自己的思考;
4. 解决问题类问题欠缺较为详细的错误原因分析(为什么会报错,原因是什么等,缺乏对错误原因的深究)。
深度的文章在于思考,思考的关键在于提问。
爱因斯坦曾说过,提出问题比解决问题更重要。
我觉得原因应该是因为提出问题能让思维更加发散,思维发散能让视野更加广阔(因为它可以让人从多个角度来看问题)。
深度的文章在于深度思考(思考的关键在于多提问)。
我的导师曾用《论语》中一句话,来概述我目前所存在的问题,“学而不思则罔,思而不学则殆”。
这句话的解释如下:
指的是一味读书而不思考,就会因为不能深刻理解书本的意义而不能合理有效利用书本的知识,甚至会陷入迷茫。而如果一味空想而不去进行实实在在地学习和钻研,则终究是沙上建塔,一无所得。告诫我们只有把学习和思考结合起来,才能学到切实有用的知识,否则就会收效甚微。
关于学习提问,很多人不知道提出什么样的问题才是好的问题,我个人觉得刚刚开始不应该执着于这个,越是执着,越难以落地。刚刚开始,应该在于做。就像我当初写博客那样,如果我一昧的以高质量作为前提的话(而忽略自身实际情况),恐怕很难坚持到现在,任何事情都是一个循序渐进的过程,不能揠苗助长。
在写的过程中,每天一点一滴的积累,有读者朋友会提出一些问题启发我思考,也有像我导师这样的,指出我写作欠缺深度。
2.刻意练习过于简单《异类》的作者马尔科姆·格拉德威尔说过这样的话:
“人们眼中的天才之所以卓越不凡,并非天资超人一等,而是付出了持续不断的努力。只要经过1万小时的锤炼,任何人都能从平凡变成超凡。
以写博客文章为例,当初我在写学习类的教程文章时,不乏有这样的意识,“只要我将例子正常运行并写出相应的步骤来,加上笔记记录,我就能充分地掌握这门技术框架。”
但事实真的如此吗?
然而并不是这样。基于上述这种意识,我学习了Python和Node.js,我的学习步骤很简单,例子敲一遍,正常运行出来,然后记点笔记,遇到错误,记录错误。经过这样的步骤,然后我觉得我掌握了。
当初没被打脸,是因为当时没人知道我会Node.js和Python,后来呢,因为要做一个在线测评(OJ),当时参考的OJ是一个青岛大学的开源项目,于是我开始接触,起初运行起来还是比较简单的,用Docker一键就能启动。但后来了,领导发话,要对其二次开发,二次开发意味着不仅仅要弄懂它的一些关键核心代码,同时也要加上我们自己写的功能,当时我就懵逼了,这个该怎么弄啊,于是只好翻看文档,原来这个青岛OJ用的技术框架,主要还是Python的Django。也正是因为研究过程中,我才发现我对Python仅仅还是个小白,并没有因为把教程敲了2~3遍就成了专家非常熟练和精通。