积累是有意义的
我是个”爱折腾“的人,不停地按照自己的兴趣在捣鼓一些东西。这种折腾让我能不停的积累。今天说说我怎么学的编程。我也是借着工作的契机从21年5月开始正式学着写脚本和数据库。其实我一直对这些非常感兴趣,最早在小学的时候我就在小霸王上照着说明书玩过‘FAMILY BASIC’,当时觉得最神奇的事情是 ‘=’ 竟然可以是主动的赋值而不仅仅是连接步骤与结果的一个符号,在这个 ’=‘ 的作用下一个个变量就像杯子装水一样被赋予各种各样的值,现在想来那种新奇感都历历在目。
后来工作中我也是不满足于将电脑只作为一个打字做表当然还有玩游戏的机器,因为我知道电脑本质上是一个生产工具,他能做的绝不仅仅是算算几个数,写写领导的讲话稿。只要条件允许,我会尽量的“折腾”一下来完成我的工作。比如有一次要统计海量会计凭证上的一些信息,在我接手之前这项工作是由几个人用Excel表格分别填写,最后再粘贴到一起来完成的。但是这样做会有很多问题,比如:
- 即使有模板不同人填出来的表也是五花八门
- 好多人弄了半天忘记保存,气到摔鼠标
- 粘贴的时候要么缺了,要么重复了
我接手后想起学校里学过access,知道数据库可以解决一些遇到的问题,就用access做了一个极其简陋的输入信息的小工具:
- 加入字段的约束条件来规范信息质量 —— 比如限制“发票号码”就是8位数
- 每输入一条记录就插入数据库 —— 实现自动保存
- 设置凭证号为主键 —— 整合的时候避免重复,也通过号码的连续性校验是否遗漏
这样就在尽量不改变每个人的工作内容的前提下解决了工作中面临的问题。
积累要讲究方法
积累要做到“学以致用”,如果学用脱节就会事倍功半。经过上面说的事情,吃到甜头的我更加喜欢“折腾”。在十年前网上学习的资源远不如现在这样丰富。为此我买过书,报过班,买过VIP……但是几乎没有什么太大的进步,三天打鱼两天晒网,总是虎头蛇尾。直到刚才说的21年的5月,一个工作上的机会让我能好好的学一下编程和数据库。我突然意识到以前学不进去主要原因是学了没地方用,比如大量数据库的教材有一多半是在讲理论,剩下的一点表面上给了一些操作数据来教操作,其实那些操作很难对应到每个行业的特殊需求,根本没有讲清楚怎么能把这些操作用到具体的工作上。比如SQL里的join和union:
- 胡球翻译 国内教材大多都翻译成连接 —— 这么翻译解释了啥?
- 简单问题复杂化 内连接外连接自连接 —— 除了能搞糊涂学生之外有何意义?
- 不写报错只写结果 单纯只写如何复现他设计好的结果 —— 哪个人学编程不是一看就懂一写就报错?
在我看来:
- 干脆不要翻译 —— 翻译只是为了作者能过出版社编辑的关,直接理解语法的含义才是重点
- 少拽名词定义 —— 应试教育不应该延续到技能培训上
- 教调试而不是照本宣科的教概念 —— 把常见报错写上远比放一张运行结果图强得多
我很庆幸我遇到一位老师,其实他只是数据库开发的工程师,根本没有任何的教学技巧,但是他只用一句话就教会了我join和union:
join 就是把两个表左右粘到一起
union 就是把两个表上下粘到一起
有几个教授、博士能在教学中说出这样朴素而又有用的话呢?
总结下来就是为用而学,学了就要想办法去用。
量变到质变
从那以后我在计算机方面的“折腾”似乎更停不下来了,一是由于工作要用,二是我的“折腾”帮我实现了一些以前的想法:
- 因为要用anki应试我学会了自己做图床
- 因为被营销了个云服务器我学会了Linux的一些基础概念
- 因为要在一台电脑上安多个MySQL我学会了docker的一些基础应用
- …………
这些东西单独来说都不算什么厉害的本事,尤其我作为一个业余爱好者也不可能掌握太高深的技巧。但是逐渐积累下来我也取得了类似量变到质变的收获:
- 我自己做了一个小网站
- 我在云服务器上运行了很多容器,基本上跑满了我的资源
- 我把只能换一个不锈钢脸盆的旧电脑变成了NAS
- …………
所以我觉得积累的意义就是促成由量变到质变这个事,不积累哪来的量呢?