在今年的 1 月 22 号,我发表了第一篇技术周刊,在 2 月份的时候将周刊名称定为 「野生架构师」周刊,之所以取这个名称是因为我本身就是一个通过自学成为架构师的人,周刊内容也是我作为这样一个角色而想要分享的。
「野生架构师」在很多人看来是一个贬义词,但在我看来他是一个中性词,没有贬义也没有褒义,「野生」是形容自学,而非野路子,虽然是依靠自学,但依然要学习很多科班的知识,「架构师」也并不比工程师高大上,只是工程师更专注于编写代码,而架构师除了代码外,还需做更多团队、软件工程等方面的工作。
在架构师这样一个岗位上,经常需要编写内部文档,或给团队成员指明一些方向,这样的内容往往不是为自己而写,而是 为他人而写
,这就奠定了一个非常好的传播基础——分享对他人有价值的内容。
从周刊开始,我想把自己所写的内容分享给更多的人,算是正式开始了对外输出的创作之路。除了周刊,我还想进行更多的内容输出,于是有了这个《野生架构师成长之路》系列。
这个系列的文章是为那些想自学成为一个优秀的程序员、高级软件工程师或架构师的人而写的。诚然网上有许多的技术资料教你如何成为一个架构师,但他们提供的更多的是的技术资料,而缺乏身为架构师的心路历程或感悟,或者说缺乏像我这样的野生架构师的经历分享,那么希望这系列的文章能够填补这片空白,影响到更多想从事或正在从事计算机软件开发工作的人。
在文章中,我会描述一些个人经历,再附加一些对过往经历的思考,那就让我们先从一段故事开始吧。
在《超级马里奥:奥德赛》这款游戏中,马里奥可以附身在许多物体上,包括乌龟和火箭,其实这可以看作是一个寓言故事,在现实中,我们前进的速度既可以像乌龟一样,也可以像火箭一样,人是一个变量,在乌龟与火箭的状态之中游离,当我们奔跑的动力足够强时足以附身在火箭上。
最早对编程产生兴趣是在高中时期,当时沉迷于网络游戏而忽略了学习,由于对游戏过于沉迷,对这个虚拟世界感到十分好奇,经常思考它的经济系统、战斗系统、图像动画都是如何实现的等等,带着这种好奇心,我梦想着成为一个游戏开发者,渐渐在心底埋下了一个想成为程序员的种子。
在高中时期,我是一个游戏瘾君子,所有的生活都围绕着网络游戏,学习完全被我抛开了,到了高三的时候,我甚至都没有去参加过一次考试,因为班主任对我说,「你不参加考试是不会拉低班级平均分的
」,所以我有「特权」不去参加考试。
第一次高考时我考了 333
分,恐怕是年级倒数,当时我对分数已经完全无所谓了,之所以记得这个分数只是因为它很好记。高考那个漫长的暑假开始时,我已经不打算再读书了。
可能是因为我想做程序员,在那个暑假结束后,我还是决定继续读书,所有这一切都是我自己选择的。
摆在我面前的有两条路:一,回去复读一年,以当时的心智,我认为回去复读一年也考不上大学;二,去读中专,通过中专再升大专或本科。
试想一下,在这种情况下你还能相信自己能学好编程吗?事实上,我却从来没有怀疑过自己,且听我一一道来。
我选择了第二条路,去读了中专,这一年上课时我大多数时候仍然不听讲,周末跟室友一起去通宵打游戏,但我完整地自学了数学和计算机相关的课程,数学课本上的每道题都做过。
第二次参加(三校生)高考时,考前一晚我彻夜未眠,已经非常重视这次的考试,好在第二天考完数学后放松了下来,在最后一道 10 分的题目没做出来的情况下考了 140
分,最后考试总分是班级第一名,还差 20 分就能够选择一些较差的本科。
后来我在本校继续读了一年多的大专,在大专这样的环境下,老师一个学期也讲不完一本薄薄的课本,而我一般在学期的第一个月看完所有的课本,剩余的时间则自己找优秀的书籍来学习。
我的大专生活很简单,每天学习编程,休闲时间主要是看电影,这时我已经不打游戏了,关于我在那时的学习状态,这篇 《残简 · 学校的回忆》 中有所描述。
大三就要出来实习了,那是 2010 年,刚满 19 周岁的我在深圳找了一份工作,月薪 5000 元,没想到的是自己竟然成了主力开发。对了,虽然是出来实习,但我并没有做过实习生。
这时的我,时刻想的是回去读高中,因为我的心智已经有所成长,我相信自己回去读高中一定可以考个好的大学。
在大专时,我的遗憾是没有交到好朋友,跟周围的同学格格不入,几乎只有自己在学习,在高中时一起疯玩的同学都成为了一生挚友,而大专时的我则显得有些孤独,我向往着与优秀的人一起学习、成长和竞争,好胜心令我想击败优秀的人。
但因为现实等诸多原因,我选择继续工作,那一两年我时常梦回高中。
在工作的前四年,我以年均 30 多本书的学习速度在进步和成长着。期间我短暂入职过一家游戏公司做服务端开发,也看了一些游戏开发方面的书籍,但因为那款游戏太烂以及要持续赚钱等因素,我没有选择转行成为一个游戏程序员。
面对现实,没有实现大学梦,也没有实现游戏开发梦,这不是一个好的示范,但没有人知道你背后经历过什么,所以不要自怨自艾。我们需要做的不是逃避现实,而是继续努力着,成为自己想成为的人,最终我当上了一个小厂的架构师,不值得炫耀,但我想这是一个好的示范。
故事讲完了,在乌龟与火箭状态的转变上,我认为以下几点非常重要:
兴趣是最好的老师,没有兴趣就去培养它,否则不要进入这个行业。
2022 年了,程序员仍然是一个高薪职业,因此许多大学新生选择了计算机相关的专业,出于职业发展的考虑这是无可厚非的,但千万别忽视了兴趣因素。
如何确定自己是否对编程感兴趣?像我一样,很多程序员一开始对编程产生兴趣都是出于对游戏的热爱,或者喜欢计算机和软件这类事物,喜欢思考它背后的实现原理,通过这些激发了自己的求知欲,进而通过探索和学习发现了其中的美妙之处。
在心里埋下一个种子固然是好事,但许多人并没有这样的机会,大多数人在高中时期并没有想清楚自己未来要从事什么职业,不过没有关系,没有兴趣可以培养兴趣,编程是一项创造性的活动,只要你对创造事物感兴趣,对编程的兴趣也是可以慢慢培养的。
不管我们最初是出于兴趣还是赚钱而学习编程,在学习的过程中如果能够感受到编程之美,那就有足够的动力支撑我们坚持下去,如果没有发现编程之美,那就继续寻找。
自信心是靠自己一点一滴建立起来,不去努力是无法知道自己的潜能的。
如果有足够的自信,我也不会在面临第二次高考时彻夜难免,当我们从低谷开始向上时,是避免不了自我怀疑的,只能靠自己一点一点地建立自信,在前面的故事中,我描绘的是一些较大的事件,而在生活中,我们需要从小的事情开始,逐步让自己重建信心,如果每天看 1 小时编程书籍太困难,那就先从 15 分钟开始,推荐大家阅读 原子習慣 (豆瓣) ,小的习惯让我们更容易坚持,也更容易对自己产生信心。
在学习的过程中可能会碰壁,想法可能会改变,但要找到解法,不要停下脚步,面对现实时也一样。
学习编程,可以改变一个人的思维方式,这些思维方式可以运用到学习和生活当中——这世界充满着一个个的谜题等待着我们去解决。
面对现实等问题时,去解决而不是逃避它。
进入舒适区是毫不费力的,有时自己都意识不到,但当开始努力时,就不要懊恼于过去的「乌龟」状态,self-pity
是一个陷进,不要落入这种状态。
没有回去读高中,没有考上好的大学,因此有了许多遗憾,但谁又没有遗憾呢? 自我怜悯是一条死路
,选择停在那里或是驶入一条新的道路,决定权在我们手上。
对于年轻的读者朋友,我希望他们能够鼓起勇气,即使你像我一样高中三年都没有学习,只要努力一年,上大学是一件相对容易的事情。
不管我们现在的学习或者编程水平如何,只要肯下苦功夫,一年时间足以产生质的飞跃。
在互联网时代,有足够多的自学资源,通过自学可以改变一个人一生的轨迹。
不要迷信一些统计数据,不要听别人说编程很难,不要听别人说创业很难,因为大多数人没有努力学习,大多数人没有准备好就去创业。
不要做大多数。
作为这个系列的开篇,我写的是自己早期的心路历程,后面还会写哪些内容,我也不知道,还没有仔细去想,欢迎读书朋友告诉我,说说你想了解和想看的,帮助我写出对他人有益的内容。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.