2018 程序员节
2018.10.24,31 岁的我,度过了第一个程序员节。今天的北京艳阳高照,天暖宜人,有小阳春的感觉,也算应景。
我和代码的缘分,最早可以追溯到念小学的时候。当时家里买了一台裕兴学习机,可以用 Logo 语言画图,也能打游戏,可以改 BASIC 代码,不过当时我不会,都是我爸改的。
高中的时候,我也去听过一两节信息学竞赛课,其实就是计算机编程竞赛。当时教的语言是 PASCAL,老师号召买教材的时候,我还冲上去抢了一本,不到 20 块钱。由于初中没有任何基础,后来也就放弃了。
到了大学,开始正式接触编程。大一上的第一门课,就是五教 5103 的 C 语言,第一节课上,老师提到:程序=数据结构+算法
,可惜当时我完全不理解这句话。有一节课老师教 printf 语句,要打印几行内容,临下课前还卖个关子,说其实有更简单的方法,后来我才知道所谓更简单的方法是用循环(loop)。大一小学期学了所谓的 C++,其实就等于把 C 的 struct 换成了 class,没学到什么 C++ 更深层的内容。 大二下,选修了 Java,同时也学 MATLAB,当时觉得 MATLAB 真好用,不用声明变量,可以直接做矩阵乘法,还有各种插值、优化算法,当然了,用的都是破解版。大二小学期学了 VHDL,被戏称为 Very hard language,主要用于控制 FPGA。
博士阶段,一年级下学期选修了数据结构,用 C 实现了马踏棋盘程序,用到了栈结构,当时没用贪心算法,试图暴力破解,发现完全不可能,才渐渐明白了程序=数据结构+算法
这句话。博士用的最多的是仿真软件,包括 MATLAB/Simulink、PSCAD、PowerFactory,前两个分别对应 MATLAB 和 Fortran 语言,PF 最开始是自己的 DSL 语言,在大概 2014 年的时候开放了 API,可以通过 Python 调用。博士阶段我觉得做的最成功的一件事儿,就是用 Python 实现了 PF 和 MATLAB 的联合优化仿真,PF 负责计算电力系统动态,MATLAB/CPLEX 负责求解优化问题,Python 负责将两者连起来,当然了,即使实现了也没什么用,因为根本没人 care。
毕业到了电科院,和小哥在工作闲暇的时候用 Python 实现了数据爬虫和数据分析,还画了带区间交易量的 K 线图,虽然最后也没实际应用,但自己实现一个个功能的感觉还是很爽的,因为都是实实在在的,不像工作整天忽悠。当时不知道 Python 的 pickle
模块,每次读取结果都用 txt 格式,I/O 浪费了很多时间……
转行以后,主要用 Python 进行算法迭代和模型训练,C++ 写线上部署逻辑,虽然水平和周围 top 的同事比还有很大差距,但至少在不断积累了,希望以后能越来越好吧。