编程这件事

Table of Contents

说起来编程这件事我干了也有 5 年了,写篇文章记录一下对自己也算有个交代。

我究竟是怎么走上编程这条不归路的呢?说起来还要从一条新闻说起。那是 2010 的时候,我还在上高二,用几个月的早饭前偷偷买了一部山寨手机,每天刷刷新闻,在 QQ 上聊小姑娘。一次偶然,看到扎克伯格的新闻,说这厮做了个叫 Facebook 的网站,然后就身价多少亿了,噢,还是美元。顿时我的眼里就被白花花的银子填满了,心想,奶奶的,我以后也要做网站,成为百亿富翁。一个不行,我就做一百个,一百个不行,我就做一千个,总有一天能行。

于是高考完填报志愿的时候我就到处找做网站的专业,最后就到了网络工程专业。进大学后才发现这个专业并不是做网站的,是 TM 做网线的!于是我发悲愤为力量,开始了苦逼的自学之旅。

学编程首先肯定是了解发展历史。就繁杂的编程语言体系来说,我认为大致可分为三类,机器语言,汇编语言和高级语言。机器语言就是 0 和 1 的组合,映射电子元件里的开关电路。汇编语言就是对机器语言的简单封装,对常用的运算用人类语言,或者说英语来替换。高级语言就是更复杂的封装了,字符串操作可以封装,数组操作可以封装,甚至查看图片也有封装方法,并且语义更加符合人类语言表达方式。

以下内容更新于 2018-01-16

很显然上面这篇文章又太监了。

这倒让我有了经验,最好把文章要写的梗概先列出来,然后再去发散,不然就像拿着一支毛笔,写到哪没墨就到哪结束。

这篇文章我还想聊聊以下内容:后端、前端、架构以及未来。

大一开始学做网站,那时候不懂做网站的各个工种,以为前端、后端和设计都是一个人的工作,所以首先学的倒是 PS 和 Flash,学了几个月发现还挺有意思的,各种操作也都比较熟悉了,只是缺少美感,做出来的东西还是不忍直视,笑 cry。

没办法,我只得说服自己网站暂时还不到上线的时候,不着急。然后开始啃 PHP,是的,直接跳过了 HTML😂,结果卡在了搭建环境上,那时候是欲哭无泪啊。之后也是诸多波折,这里就不细表了。总之,最后还是成功的搭建了一个简陋的个人网站。那个时刻感觉有种梦想成真的错觉,好像已经赚到了几个亿。

后来 Android 开发很火,我又开始了 Android 学习,是的,我就是这么一个没有目标没有原则的人,什么赚钱干什么,只要节操不丢。

其实真实原因还是信息不对等,自己的视野不够开阔,方向好像是自己选的,其实是别无选择。

2016 年,在机缘巧合下,走上了苦逼的创业之路,这让我不得不从更高的视角去看待产品开发,即所谓的架构职责。在我看来,架构还分为软件架构和系统架构,是区别比较大的两个领域。

软件架构偏开发,而系统架构偏运维。软件架构的目的是让软件在开发即重构时敏捷轻快,系统架构是让软件在运行及扩容时畅通无阻。软件架构包括规范开发时的命名规则、包的层次结构、开发规范甚至开发流程制定等。系统架构则包括负责技术选型、负载均衡、多级缓存和安全策略的制定等。以上任何一项都是需要丰富的经验作支撑的,我算是赶鸭子上架,一路上边踩坑边成长。

综上,我以为,前端就是和用户打交道,后端则是和数据打交道,软件架构是和开发人员打交道,系统架构是和系统资源打交道。我更倾向于把 Android 开发归为前端,虽然和 web 前端不一样,需要考虑很多系统资源的分配问题,如进程间的通信、蓝牙通信以及内存的使用和回收等等,但它同样还是在和用户打交道。

最近中年危机这个词很火,IT 业的中年危机似乎格外明显,毕竟编程常被称作吃的是年轻饭。就发展趋势来看,软件业的人才竞争确实越来越大了,其实这是任何行业从火爆到冷却都要经过的一个过程,在我看来,只要保持成长,不断积累,党和人民就不会抛弃你,哈哈哈哈。

说到未来,我仿佛看到了光,高新技术给人类社会带来的光。

技术这条路是没有尽头的,几乎每年都会有新技术“突然”出现,并且异常火爆。大数据、区块链、VR、AR、人工智能等等,这些近几年火热的技术哪一个不是需要大量时间去学习探索的,所以你可能不会敲一辈子代码,但技术是值得托付终身的。