引子
最近,因为个人的原因,计划从现在的公司辞职,寻找一份能带给自己充足动力的工作,于是在求职网站上挂上了自己的简历,很快也收到了不少公司的邀约,邀约数超出我的意料。
于是我就跟每个公司的HR在APP上简单聊了一两句,聊天的内容却有着极高的相似性,多数都是这种:请问您会使用xxx框架吗?请问您熟悉使用xxx语言吗?我们公司正在招聘程序员,能聊聊吗?此类。
其实作为一个开发者来说,是非常反感这类的问题,一是感觉自己不被尊重,二是觉得去了也只是做一些简单而又重复的工作。
试想现在的技术圈里面,真正懂得编程的能占多少呢?
编程还是编程语言
我开始学习编程的时候,是从计算机组成开始学习的,从二进制开始,到计算机网络原理,计算机操作系统原理,到后来的数据结构与算法,诚然这里面少不了编程语言的帮助,但是编程语言之于我来说,仅仅是工具而已,是一个达到目的的手段而已。我所学习的知识只是并非一种编程语言就能涵盖过来的。
学习编程还是编程语言,还是要分两个方面来讲。
我们常用的服务器,通常去做一些简单而又重复的工作,而且负载都会比较高,这样就会导致服务器更容易报废。对于程序开发者来说也一样,开发者的工作强度大,技术更新快,而且通常会被“操得过猛”,使用强度越大,折旧越快,报废越早,这就是为什么很少见到中年程序员的原因。
那么编程语言做的工作,就是被“操的过猛”的工作,反反复复造轮子,自己相当努力地工作,却被领导视为理所当然,渐渐忘记初心,最后失去了在计算机编程行业的信心,就是所谓的报废了;而编程的工作,是设计这套算法以及测试算法的可执行性,如果你去问Linus Torvalds:请问您会PHP语言么?他给你的回答一定是一根竖起的中指。
面对技术的飞速革新,计算机编程语言变得多种多样,学会了一种,很快就被另一种替代了,这时,就会有人来问:什么是技术的未来?未来谁也不知道,就如同薛定谔的猫,或许未来是AI时代,也或许未来会再次进入蛮荒时代。但是对于当下的人来讲,很多东西是不变的,在技术的黑匣子中,有着技术的核心,编程语言的万种变化都离不开离其根本。
你是在打工还是创业
最近看了一个很短的小故事
三个建筑工人正在砌砖头。
路人问第一个工人:”你在干什么?”工人回答:”我在砌砖头。”
问第二个工人:”你在干什么?”工人回答:”我正在建造一堵墙。”
他问第三个工人:”你在干什么?”工人回答:”我正在修建一座大教堂!”
虽然三个工人都在干同一件事情,但是他们看待的角度完全不一样。
开发者也应该具备这种多角度的思考能力。产品设计的时候,要有宏观思维,问问自己,为什么要开发这个软件,作用是什么,整个生态里面它扮演什么角色。技术选型的时候,要有中观思维,把软件看成不同模块的集合体,明确每个模块的作用。代码开发的时候,要有微观思维,函数怎么写,循环体怎么优化,单元测试怎么构造。
自己的名字,其实就是创业的第一步。产品的推广不也是这样么。让用户了解这个产品,渐渐地被市场接受。跟产品不同的是,产品可批量生产满足用户的需求,我可只有一个,A公司想挖我,B公司想挖我,这就是创业。
总结
要能够随时切换角度,从不同的高度理解自己正在做的事情。强者自救,圣者渡人,忙活,或者是等死。