一眨眼一年就过去了,今年似乎是我感觉过的最快的一年。一年毕竟有365天,总得收获一些,失去一些。生活还是那样平淡,在这里,我只聊聊关于技术、关于工作。
工作与经验
今年干了第一份正式工作,和以前实习感觉也没啥区别。工作中学到了不少,不过空余时间学到的似乎不如预期。
感觉判断一个人工作经验不能以工作年限来判断,有的人工作3年可能和另外一些人工作1年积累的差不多。
谈点经验,工作中要多思考,如果一个任务有三天,可以用一半以上的时间来思考与设计,有时多思考能少写很多代码,代码少就意味者出错的概率越小。同时,如果设计得巧妙,还能帮别人少些很多代码。如果最初就设计不佳,后面的人可能也不思考,按照你的做法,最终损失好多人力物力。
我的博客
看了下我今年写的博客,从质量上看,我觉得相对而言比较好的是两篇介绍模板模式的文章。但现在看这两篇,举的例子感觉也不能算什么模式,只是用了函数式的思想,其中一篇是把函数当作first class,作为参数,以及保存到数据结构中。另一篇不过是用高阶函数做了过程抽象。与其说是用了什么设计模式,不如说是用了函数式的思想做了一些抽象而已。
从数量上看,博客量也不多。本来年底想写一两篇关于函数式的,结果由于各种原因也美写。一是没多少时间,二是觉是自己对函数式里理解、实践还不够。这两点原因也能概括我这几年博客数量不是很多的原因。
其实,除了本博客发出来的,今年在公司内部wiki上也有几篇我写的文章,主要是与工作内容相关的技术分享或使用文档。里面有一两篇如果好好整理,感觉比本博客今年写的最好的还好一点。由于涉及具体业务场景,不太好写成博客,还有的涉及内部代码,我也懒得重写出来。明年有机会把其中一些思想写出来,再写一两关于函数式的。
开源项目
去年年底,我还写过一篇博客,总结了我2018开源的项目。虽然是一些小玩具,但对于一些初学者感觉还是有点小小价值的。现在看,2018涉猎的东西还挺多的。
可能是工作了没多少时间,也可能是感觉没啥好写的,大部分代码都贡献给了公司。今年没啥开源项目,主要就一个毕设,一个小系统,没多少东西。
编程语言
今年主要用的编程语言是Java,我在编程语言上最大的进步是对函数式编程的理解有了巨大提升,函数式地思想成为我装备中的一把利器,帮我少写了很多代码,可能避免了很多问题。
谈到函数式,不得不提scheme语言,今年学SICP时学了点scheme,scheme语言对我在理解函数式上帮助巨大。
关于工具
当然我不是在这里打击Linux和Mac而鼓吹Windows。这些系统的纷争基本上已经不关我什么事。我只是想告诉新人们,去除头脑里的宗教,偏激,仇恨和鄙视。每次仇恨一个东西,你就失去了向它学习的机会。
从今年年初买了新电脑后,现在不管在家还是在公司都用Windows了,放弃了用了一年多的Ubuntu。当时刚买新电脑的时候,我犹豫了好久要不要继续使用Linux。但我想了想我主要看中的是Linux下的bash,而不是它的图形界面,Ubuntu的GUI我并不觉得比Windows有优势。虽然Linux可以更细地做一些定制,但折腾一圈来也没多大意义。考虑到win10有了WSL,我觉得Linux对我来说并没有更大地吸引力了。于是,一直用windows到现在。
本节开头引用是王垠说的,我觉得很有道理。以前用Linux时,花了不少时间去折腾它,不过只是停留在使用层面,带来的仅仅使用工具的乐趣,现在觉得是一种比较低级的乐趣。但我并不觉是浪费了多少时间,因为在折腾中锻炼了解决问题的能力。同时,见识了很多有趣的东西,会用了一些好用的工具,现在有需要用时,我仍可以在WSL下用它快速解决问题。除此以外,还扩展了眼界,只有见识过A的某个好用的功能,才可能在用B时去找或想B有没有类似A的那个功能。
说了这么多,我主要想说的是不要成为某种工具的传教士,对于同类工具,它们可能各有所长,我可以在不同场景下去分别使用它们,结合者用。举个例子,比如操作系统,对我来说win10+WSL就是很好的组合,极少情况比如要学习操作系统,我会用下虚拟机。编程语言也如此,虽然平常大部分时间用的Java,但有时要写些小工具时,我也会考虑其他语言。
书籍、博客推荐
今年看了几本书,推荐几本好书
- 《SICP》:我主要看的MIT的公开课,书没看多少。强烈推荐SICP视频或者书,虽然才学了一点点,但感觉对编程能力的提升有很大帮助,尤其是抽象的思想,是我装备中的基本工具
- 《Java8实战》:介绍Java8很好的书,是我看过讲语言基础写得最通俗易懂的一本,主要介绍了Java8的中函数式思想与工具,虽然第一次看有些地方没怎么看懂,但后来学了scheme语言后帮助了理解
- 《程序员修炼之道》:讲的关于编程,关于软件工程的东西,虽然覆盖面很广,但有些章节还是有很大启发或共鸣的
今年对我影响比较大是王垠的博客,扩展了我了眼界,很多说的也很有道理。
2020
如果说2018我理解了面向对象编程,那么2019我理解了函数式编程,有时我并不需要对象,因为我有函数 ^_^
2020的目标嘛,就多学一点,多分享一点 :)
原文地址:https://www.cnblogs.com/thinkam/p/12127930.html