数据工程师
我们在介绍我们的职业的时候,通常会说 我们是 app开发的,或者我们是网站开发的,或者我们是服务器开发的,但是我觉得 这样介绍 好像 很难让别人一下子就懂得 我们到底是干什么的,
我们其实就是 数据处理工程师:
我们程序员 一般都会依赖于平台,有的是PC,有的是手机号,有的是网站,就算是服务器开发人员也要依赖sql软件和服务器,所以 实际上,我们依赖的平台将 用户对该平台的操作 抽象为数据流发送给我们,然后 我们按照指定的规则 解析该数据流,我们就会知道 用户做了什么,然后 我们再根据 我们自己的业务逻辑做出反应,这个反应 就是通过我们所在的平台的api来完成的,所以 归根结底,我们 接收用户数据流,处理用户数据流,保存用户数据流,查询用户数据流,调用平台API反馈用户。这就是我们的职业,无论你是什么开发人员 都逃不过 这个范畴。最终数据结构与算法 从这里面脱颖而出。硬件层面将用户的意志转为数据流,然后将数据流发送给我们,所以 这里一定存在一个现实世界与数据世界的字典对应:
int、string、bool、null 这是四个基本的数据类型,分别对应现实世界的数字,语言,逻辑判断,无 这四个概念,通过这种映射,我们就可以通过数据的形式来表示用户的行为。
我们是软件开发人员,软件依托于硬件,硬件提供与外部交互的桥梁,而软件躲在硬件里面 分析处理数据,一般一个成熟的硬件 都是引领着 一个时代的潮流,而软件则是依托于 这个划时代的硬件 完成贴近现实的功能,某些功能可能很好用,于是 使用的群体不断扩大,本身的软件项目也不断扩大,随之而来的是 多人开发维护同一个项目 的代码管理和分工问题,于是 人类提出了 模块化,面向对象开发,来解决复杂性和难维护的问题。所以 模块化 面向对象是帮助开发人员用于团队合作的一套思想工具,本质上 就是大家都使用一套开发思想,这样在别人维护的时候 不会遇到问题。
所以数据处理和算法才是我们的本质工作,而模块化和面向对象只是为了更好的开发所产生的一个附属工具,类似这种附属工具的还有git,npm,编译器等等。