目录
- 从小白到小白
-
- 这个世界少了个小白,多了个菜鸟
- 当一个菜鸟 Dev 知道自己要上一个 DevOps 项目
- 从菜鸟到小白
- 即使是小白,也要当一个努力学习的小白
-
- 从 Java 到脚本语言
-
- Shell 脚本
- TS
- Ruby
- Python
- AWS SAA
- Docker & Git
- K8S 的遗憾
- 小白的成长
- 小白和哥哥姐姐们
从小白到小白
这个世界少了个小白,多了个菜鸟
2019年夏,我正式结束了我的大学生涯,并于同年8月19日进入ThoughtWorks,正式成为了一名光荣的程序猿。
而成为程序猿后的日子,说实话,并不轻松,反而非常辛苦!最起码入职培训的两个月期间是非常辛苦的,几乎每天都会熬夜到两点左右,只为完成当天布置的作业。
但是,辛苦是有回报的,两个月的入职培训结束,我学到了非常多的知识:前端的 HTML、CSS、JS、React、Redux…后端的 Java、MySQL、Spring Boot…还有一些其他的相关技能,包括 TDD、重构、敏捷等。
可以说,从一个什么也不懂的小白一下子蜕变成了一个稍微知道一些东西的菜鸟(嗯,最起码当时是这么觉得的)。
而且,最重要的,或者说印象最深刻的,还要数培训期间认识的一群小伙伴以及一群非常 Nice 的 Trainer 们了。
那段时光,虽然辛苦,但很充实,也很开心!
当一个菜鸟 Dev 知道自己要上一个 DevOps 项目
入职培训结束,随之而来的便是第一个正式项目的分配!还记得当时心里的忐忑,真的是应了那句谚语:十五个吊桶打水——七上八下!
但是,当我真的接到通知并知道了自己接下来将要上的一个项目后,我一下子就不忐忑了,而是换了一种新的情绪(姑且当是情绪吧)——迷茫!
是的,就是迷茫!
因为我入职的时候是以 Dev 的身份入职的,而且入职培训也培训的都是 Dev 的一些开发技能,但是,接下来我要上的这个项目,居然是一个 DevOps 的项目!
DevOps 是什么?和 Dev 有什么关系?主要做些什么工作?
各种疑惑接踵而来!
而最终,经过一番Google,也经过向 Trainer 的咨询,以及一些思考,我留在了这个项目,一个 DevOps 的项目,以一个菜鸟 Dev 的身份!
从菜鸟到小白
进入项目后,说实话,非常地 Nice!
我本身的性格比较内向,不太喜欢说话,但是 Team 内的成员们都非常好,对我也很耐心,不管我向他们中的任何一人请教问题,他们都毫无保留,非常认真负责地给我讲解,而这,也在之后的一段时间里,让我的话渐渐多了起来。
当然了,Team 里的大家都很好,但是压力也是非常地大,不光是对项目中所用的技术栈不懂的压力,还有当时试用期的压力!
那段时间,几乎没有在十二点前睡过!
由于培训期间,包括自己在大学期间学习的方向一直都是 Java Web 方向,所以对项目上用到的技术栈(TS、Ruby、AWS、K8S、Docker)完全不懂(当然了,也是自己菜的缘故),而且也对项目所做的内容有着一些疑惑(当时觉得和开发做的东西完全不一样),那段时间,感觉自己重新从一个菜鸟(自封的)变成了一个什么也不懂的真·小白!
即使是小白,也要当一个努力学习的小白
当小白的日子,很苦,也很不爽,好多东西都不会,于是就只能努力去学!我记得特别深刻的是当时第一次见到 GHE 这个缩写的时候一脸迷茫,根本不知道这是个什么东西,还以为是个技术,结果最后发现就是 GitHub Enterprise 的缩写!
不过说实话,正是因为有这么多的不懂,不明白,才使得我去努力地学习,去进步,去求知,去求索!
从 Java 到脚本语言
作为一个 Java 程序猿,那时候可是认为 Java 天下第一(PHP 也不行)!
但是,当我在项目上接触到 TS、Ruby、Shell 等后,我才体会到一句话:没有最好的语言,只有最合适的语言!
每个语言都有自己的优势以及自己所擅长的领域,正是有这么多编程语言的通力合作,才构成了现在我们这个精彩纷呈的世界!
Shell 脚本
严格意义上来说,Shell 并不能作为一门正式的编程语言,因为它是在 Linux 的 shell 中运行的,所以被称为 Shell 脚本。事实上,Shell 脚本就是一些命令的集合。
但,正是因为这一点,Shell 才易会难精,Linux 中大量的命令以及一些第三方的命令,使得每次编写 Shell 脚本都得 Google,都得去查资料。
但是,即便如此,在这一年里,我对 Shell 脚本的认识与了解也有了很大的进步。当然,不能说所有的语法都会,但是最起码在一边查资料,一边写的情况下还是可以写出脚本的。这一点,我觉得还是很有意义的,最起码,之前的我连什么是 Shell 脚本都不知道,甚至什么是脚本都不知道。
TS
都说 TS 是 JS 的超集,在我看来,最通俗的一个解释就是:在 JS 的基础上加入了类型检查。
而也正是这一点,让我对 TS 倍感亲切,因为在加入了类型检查后,一定程度上,和 Java 还是有一些相像之处的!
还记得当时每天都去看 TS 的官方文档,很多的特性都去自己实验,然后讲给 Team 里其他人听,当时真的进步非常快,非常大,还发现了很多非常有意思的特性!(而且也是在那时候深刻体会到,编程语言也是很多人一点点写出来的,不是一蹴而就的)
而且另一个我觉得 TS 很方便的地方在于,作为 JS 的超集,在需要验证一些东西的时候,可以直接在浏览器控制台去尝试,还有代码提示,简直不要太舒服!
Ruby
说实话,在这几门脚本语言中,我对 Ruby 可能是最不熟悉的,因为 Ruby 实在是太灵活了!而这其中最让我难以接受的就是我老是看不懂代码。
如果方法调用没有参数,那就可以不带括号,这在我最开始接触 Ruby 的时候,简直让我三观尽毁!这怎么可以?方法居然还可以不带括号?什么奇葩设定?
当然了,最终我还是接受了这一设定!但是,纵然接受了这一点,但总是将变量和方法搞混,还是让我一度想抓狂!
而且,module
和 end
实在是太烦了,就像几个世纪前的老古董一般!
歪歪斜斜的每页上都写着‘仁义道德’(灵活)几个字。我横竖睡不着,仔细看了半夜,才从字缝里看出字来,满本都写着两个字是‘吃人’(module-end)!”
花括号它不香吗?
当然了,也是一部分历史原因造成的,但是 Ruby 的强大也是无法掩盖的!
Python
Python 是后来才接触的,大概在项目上半年后才新加的技术栈!但,这并不是我第一次接触Python,第一次接触 Python 还要追溯到我的大学毕设!那时候毕设的题目是图像处理,是用 Python 实现的,但是如今看来,当时写的那些代码,简直就是一坨坨的!
太TM丑了!