您的位置:

golang兼职,golang兼职开发

本文目录一览:

现在php已经饱和了吗,为什么薪资都不高了?

首先,php没有饱和,依然有很多公司提供岗位,但是相比较其它年份,今年的岗位相对较少。

其次,php受到golang语言的冲击,不止是php,python,java等都受到golang的冲击,只不过php更大,因此相对来说岗位少了许多。

然后,不止php,很多语言的岗位都开始两极分化,也就是说,初级岗位的薪资很低,而高级岗位的薪资很高。

最后,php不会消亡,在web开发领域,它的便携性,高效率开发的特点很难被取代,语言永远不是编程的核心,算法和数据结构才是重中之重。

想做副业,学编程,学哪种语言比较好?(零基础)

最近有很多同学问我,我是一个零基础的小白,到底学习哪一种语言比较好?作为一个写了十年代码程序员,用过七种语言的我来说,必须要强调一下,语言只是一种工具,当你真正理解了要做的事,选一个顺手的就行。跟工具一样,哪天有新的好用的语言出来,把旧的扔掉就好。

我今天写这篇文章的目的是想给大家一个参考。

决定用什么语言的因素有有很多,比如性能,内存占用,开发难度,运维难度,目标平台,可执行文件大小,代码可维护性,项目周期,项目规模,招聘难度,团队构成,历史遗留问题,甚至派系斗争等。

比如腾讯就有大量历史遗留的C和C++的服务器代码,毕竟20年前没得选。又比如空降技术负责人可能会为了让自己人上位,让自己团队出成绩,选择用其他语言或者框架对本来工作良好的系统进行重构。

下面开始聊语言

Python

先说python,是因为这个语言小学生都开始学习了,以后不会python要被小学生欺负了。语法简单,除了前端几乎万能,可用的库极其丰富,能想到的功能几乎都有现成的库可以用。不管是搞爬虫,做人工智能,机器学习,数据分析,还是自动化运维,自动化测试,python几乎都是首选。不想当程序员还想学习一门语言的话,学习python就没错了。缺点是慢,但是能让机器累的事,何必让人来累。

PHP

PHP是世界上最好的语言,可能这个已经成为很多程序员的梗。

我没用php开发过大型项目,自己做东西的感觉是这语言非常简单,以前用的人很多,招聘容易,但是不适合做复杂的项目。现在用得越来越少了,迅雷以前有不少运营活动页面是PHP做的。

C

C的语法足够简单,应该是最接近机器语言的高级语言,适合编写操作系统底层,驱动程序,硬件相关的程序以及看重性能的程序。由于过于简单,构建大型程序的复杂度非常高,建议想往研发方向走的同学都学习一下C语言。

可以对计算机一些底层原理了解,比如指令执行过程,内存管理,异常,多线程,编译过程等又更深层次的了解。掌握C语言再学习其他语言会变得很轻松,学习破解也有帮助,毕竟汇编基本都可以反编译出C代码。

C++

C++是一个糟糕的语言,这不是我说的,这是Linux之父说的。我自己用C++四五年时间,越到后面就感觉这句话越有道理。

首先C++的强大是毋庸置疑的,但是作为一个跟C一样偏底层的语言,如果不理解写的代码背后到底发生了什么事,如果出了错,你是永远不可能知道错在哪里的。

一个没有垃圾回收的语言,不用智能指针很容易导致内存泄漏,错误的用了智能指针不但内存泄漏之后不好解决,还容易导致提前释放等问题。

C++支持强制类型转换,如果转换前后的内存结构不一样,很有可能导致各种隐性问题。还有Java之类非原生语言的异常处理都是语言自定义的异常,而C和C++中的异常很多都是操作系统层的异常。

Windows下一个简单的try catch,你觉得可以抓到try中所有的异常,但是由于异常处理函数的指针保存在栈上,这时一个栈溢出可能直接导致异常处理函数指针被覆盖,异常会出现在你意想不到的地方。微软有大神曾说过,想你的代码后续可维护就删掉代码中所有的try catch。

又由于语言非常底层,当程序出现底层崩溃的时候,想解决掉这个崩溃往往要读一些汇编,这时候如果使用了大量的模板,比如stl和boost,那生成的汇编几乎完全不可读。看过stl代码的人应该都知道这玩意儿写的有多晦涩,就导致了你想用一个C++库,如果不了解这个库的实现原理,那大概率会出错。

C++的复杂度又让你很难真的理解那个库的原理,结论就是C++强大,但是必须用的人也强大。C++直到现在还在疯狂的增加特性,我用了四五年我自己都不敢说自己会玩C++,能用其他语言就优先考虑其他的,把C++作为最后的选项,不建议新手学,除非你的目标领域必须使用。

Rust

Rust是为了解决C和C++的各种问题而出现的语言,性能接近C++,通过所有权限,不用垃圾回收就解决了生命周期管理。有包括管理,又有极其严格的编译器检查,能编译通过的代码就不会有大问题,编译器直接把水平不够的新手挡在了门外,通过解决出问题的人是方式,从根本上解决了C++的问题。

我第一次用rust写个小程序就跟编译器较了一天的劲。它的缺点就是学习难度太大,语言太小众,库太少,很多轮子都要自己造。但是随着微软之类的大厂使用,相信之后发展会比较好,新项目如果需要C或者C++可以优先考虑rust。

Java

我现在主要也是一个Java程序员,对于Java这个语言我并没有什么很特别的感觉,配套设施完善,什么都能干,体验非常赞,就是内存占用有点难看。想搞安卓考法的必修,阿里有大量的服务器项目使用Java。

唯一想吐槽的是gradle这个构建系统,版本问题搞得很头疼。

JavaScript

js是前端的必修课,没得选,然而node让js也万能了。用node做过后端项目后,感觉动态类型语言还是不太适合,由此带来的低级错误很多,虽然可以用typescript解决,但是最终还要编译成js,无法直接调试。由于没有原生的多线程支持,利用cpu也只能通过开多个进程的方式。小项目的后端做着玩还可以,大点的还是考虑Java或者是go吧。

Lua

Lua是极其轻量的语言,语言特性接近js,runtime非常小。作为一个脚本语言,性能出色,内存占用低,很适合各种嵌入式设备或者插件系统。

Go

这玩意儿一定是谷歌为了解决自己后端项目中遇到的问题而开发的语言,各种特性直戳痛处。语法简单,规范严格,这就让不管什么水平的开发写出来的代码差距都不会太大。

静态类型,没有默认参数,没有异常处理,可以降低犯低级错误的概率。编译成原生代码,可内嵌C代码,原生支持协程和多线程,可以保证性能,支持跨平台编译,输出单文件方便部署,这些优点带来的问题是Go的指向性太强,只适合做高并发api类的后端服务。

想用Go开发其他任何领域都会觉得特别别扭,类似C的语法过于简单,又没有泛型,导致很多功能都显得很啰嗦。但由于Go解决了部署问题,跨平台问题,降低了研发人员的水平要求,降低了犯错误的概率。

关于这些语言的性能没有绝对的排序,但根据我做项目带团队和面试的经验,绝大多数的程序员的水平都还碰不到语言的性能瓶颈。一般来说对语言的理解以及多线程,算法,网络,数据库,缓存。硬件甚至业务的理解都比语言的性功能影响更大。

再次强调,语言只是工具,只有适不适合,没有好与不好。基础强大,用哪个都不怕,基础太差,用什么都尴尬。

只是会语法并不是掌握了这门语言,要知道程序背后发生了什么。比如C++的对象模型,Java的虚拟机,垃圾回收,Go的协程,js的promise,rust怎么编译通过等等。

基础是一门语言的核心,不管学习哪一门语言都要重点学好基础。

北京最近有什么兼职可以做?

有很多兼职可以做,比如去京东库房兼职每天四个小时,也可以去一些便利店兼职,一些饭店也可以兼职

云计算需要学习哪些课程?

云计算学习课程大纲

1.Linux云计算网络管理实战

2.Linux系统管理及服务配置实战

3.Linux Shell自动化运维编程实战

4.开源数据库SQL/NOSQL运维实战

5.大型网站高并发架构及自动化运维项目

6.网站安全渗透测试及性能调优项目实战

7.公有云运维技术项目实战

8.企业私有云架构及运维实战

学云计算可从事的职业

1、云系统管理员:配置和维护的系统,包括基本的云平台,解决出现的问题,并计划未来云的能力要求。

2、云计算工程师:负责云计算和数据中心项目交付计划和技术方案的制定,负责云基础架构、上云数据迁移、云容灾备份以及云可靠性、安全性等的规划设计及实施工作。

3、云计算开发工程师:负责设计和开发面向云服务的分布式软件。

4、云计算架构师:领导云计算项目的开发和部署,确保系统的可扩展性、可靠性、安全性、可维护性,并在预算内达到业务和IT业绩表现要求。

5、运维工程师:负责云计算项目实施和运维,做好网络存储、数据库、备份、恢复、同步等相关工作。

2017年,Web 后端出现了哪些新的思想和技术

1. 网络交互的多样性

1.1 Http1.1协议日渐式微,Http2和websocket,以及更多的自定义协议将会成为主流。

Web后端将不仅仅是一个web后端,而变成一个大后端,或者叫 中端+后端(这个概念阿里巴巴很早就有了)。随着移动互联网的发展,以及物联网的兴起(在这里我把mobike的单车看作是物联网的一个终端),用户的接入方式由单纯的浏览器,向着多种接入设备进行演进。 在这个概念之下,用户的定义会更广泛,站在后端的角度看来,连接上服务器的不再是一个个的用户,而是一个个的终端,并存在多个终端同享一个用户的情况(多端登录)。 因此在这个趋势之下,整个后端的接入层(比如nginx之于web)将会走向更广阔的天地,对于任意一个设备来说,他将同时利用多种协议和多种方式连接到不同的接入点来达成自身的功能。

1.2 网络协议与网络信息交互的样式多样性

从最早的webService,到后来的json-rpc,和thrift再到如今的 protobuf(grpc)等等,我们开始为不同的数据交互设计了不同的序列化协议和调用协议,然而受到环境(移动终端的弱网络状态),性能(网关服务,与网络调用)的影响,我们开始使用大量容错性更强,数据量更小的数据传输方式,来满足我们的需求。

在早先的web中,http+from表单的提交成为我们的标配,然而在今天,TCP都不一定成为必选项,UDP和UDP的改进协议都在被不同的公司进行尝试,甚至于KCP都有可能成为大家考虑的方案之一。

2.数据多样性开始成为设计的焦点。

2.1 在早先的web后端中,表设计和功能开发构成了日常工作的绝大部分,所有的后端人员都在试图让一切的用户操作落入CRUD的抽象范畴里(比如 Restful),然而CRUD怎么会满足我们的抽象需求呢。

自从memcached和redis在被大量引入后端开发之后,我们可以看到,后端人员在对数据的理解上有了大量的改变,我们不再单单把数据视为RDBMS里面的一行,而是围绕着业务本身对数据进行了分类。最明显的是,状态数据的引入,在开发中,我们将用户的部分信息,视为一个用户的状态,在状态数据的基础上,让用户的行为变成状态迁移的触发,在表现上看我们让用户的信息存储到redis和memcached 里就是最RDMBS不能有效满足我们的抽象需求的一次改进。

2.2 从狂热的Nosql到Nosql和RDBMS的共存,代表了后端开发人员对数据这一个方式的新理解,而传统的行存储到列存储,到监控常用的基于时间序列的数据库都开始进入了我们的视野。

几年来,大量的开发者,开始将用户产生的数据进行了更详细的归类,不再是rdbms一刀切的方式, 我们会详细地划分出用户的状态数据落入到Nosql,将用户的操作数据落入到RDBMS(表述不一定全,但在类似于订单支付之类的具有幂等性要求的操作中要求事务的完备等),将用户的行为统计落入时间序列数据库, 将用户的大量相关资源(如头像图片)将会落入到我们的对象存储中。在后端开发的手册里,数据格式的多样性成为了必须考虑的问题。

3.围绕着数据的收集,存储,计算,索引查询,分析 成为后端的常态

3.1 后端角色的含义,在人手不足的公司里,很难存在一个专注于后端业务开发的开发人员了,在大数据的浪潮下,后端开发人员开始兼职起了数据系统的开发工程师。 随着互联网大量技术的演进和发展,任何一个职业都很难找到一个明确的界限,因此围绕着数据的收集,存储,计算,分析,和索引查询都会成为后端开发人员的必备技能。

3.2 数据收集

(1) 随着分布式,集群化,多IDC的发展,不同于运维的系统性能收集,后端开发开始着重于收集与应用运营过程相关的各类指标和数据,

除了日常的业务开发,同时还会伴随着应用调用过程的耗时,目标服务可用性等数据的收集,常见的如java的 metrics,zipkin等开源第三方的工具开始被广泛借鉴和引用。

(2) 用户行为和终端信息的上报收集,随着大数据的开展,以及精细化运营的要求,后端逐渐开始接触到用户相关信息和终端运行状态的信息上报,

收集上来的数据不仅用于用户的画像分析,同时也为客服的用户追踪,用户的操作行为做出决策,通常表现在当用户投诉某一笔业务的失败时,便于开发人员的快速定位和排错。

3.3 数据存储

接着上面的数据收集,数据的传输和存储成为了绕不开的功能,kafka的大规模运用,HDFS,HBase等工具也开始成为了后端开发日常的一部分。

3.4 数据计算

然而存储的原始数据是没有价值的,后端又开始了他们的数据清洗和数据处理的道路,storm,spark成为了后端的新秀,与用户运营统计分析(俗称跑策略跑算法)不同,当前语境下的后端数据计算,更多是一个短耗时,小规模的计算,典型的则比如风控系统,和预警系统,针对用户的行为和流量的多少,对恶意用户进行甄别和快速干预。

3.5 数据索引查询

(1) 随着业务的扩充,任意一个app几乎都内置了相应的搜索引擎,Lucene,solr也成为了后端程序员必备的技能之一,不管是精确搜索,还是模糊匹配,后端身上背负的业务也越来越多。

(2) 准实时数据的搜索也将成为常态,在近几年的发展中,如何快速地在一个巨量的数据中,完成RDBMS中的 join,distinct统计等成为后端工程师不得不面对的问题

3.6 数据分析查询

AI和深度学习已经拉开了序幕,围绕着数据本身的挖掘,学习,也开始成为了产品侧的需求,但理想归理想,现实归现实,后端的同学们在这个方向上仍然还是摸索状态,但长远来说跑不了了。

4.架构设计的更进一步

2017年里,SOA的名词正在淡出视野,微服务成了替代SOA的高频词,Serverless也开始走向了广大后端的知识技能图谱,不管是追新也好,满足需求也罢,我也向诸位举例一些常见的单词,然而挂一漏万请诸位担待

4.1 CQRS(命令查询职责分离模式)

将传统CRUD的写操作,进行异步化,后端配合读写数据库的分离。以及消息队列的引入,将写操作相关的一些耗时操作(验证,走流程)等进行异步化,常见的如电商中的订单。

4.2 actor

Erlang的actor的兴起,不管是golang Goroutine,还是scala/java的akka,都在深刻地影响着后端系统的架构设计。

4.3 CRDT和最终一致性

分布式系统的兴起,也带来了可用性和一致性的矛盾问题,协同两个进程间的数据成为了每一个后端绕不过去的坎,为了达成最终一致性,各类方案如雨后春笋般冒出。

4.4 reactive

当android上的流行库Rxjava,从前端走向后台的时候,也意味着后端也开始进入了响应式编程的时代,java的 vert.x就是其中的例子,那种request-response一招破万法的时光不再有了。

5. 运维和devops对后端的要求

5.1 安全,稳定,高效,经济

(1) 随着业务走向稳定,以及互联网的发展,网络服务的安全性开始成为了后端的核心之一,由于法律的不健全,对违法分子的追责难度大,违法成本低,网络安全攻击将会在将来的一段时间内成为常态,这就对后端的程序特别是对外的接口设计提出了更高的要求。

(2) 多机房,异地容灾,数据备份。健壮的后端一直是后端应用的要求之一。新的时间里,后端的可用性,稳定性依然是每一个后端都要面对的问题。

(3) 以前一个用户只有一个电脑,浏览网站的时候,只在获取数据的时候与站点有交互。现在随着电子设备,智能设备的增多,一个用户能够接入网络的设备也在增多,同时长连接和并发数也会增多,因此高性能的接入网关开始成为了后端人员关注的焦点,比如围绕着intel的dpdk各类应用也是纷至沓来。

(4) 经济,利用云服务的即买即用,用完即退的特点,使得在开展运营活动的时候,后端不用向运维征求和购买大量的机器。 然而为了在运营活动的短时冲击和突增流量的情况下后端应用能够平稳地运行,对后端人员的部署和调度能力提出了更高的要求。

5.2 更规范的软件开发流程

git+jenkins+ansible的开源组合,开始无法满足开发和运维的需求,项目管理的集成,测试人员的介入,都要求后端的软件工程工具从各自为阵的开源工具,走向一个大一统的系统,需要我们将 需求,BUG管理,迭代版本,开发,测试,灰度,蓝绿部署流程都进行集成。

5.3 云服务,容器化之争

公有云,私有云,混合云,以及容器等相关的云计算技术,也在推动者后端的技术改革,后端面对的不再仅仅是一个物理机器,或者虚拟机,而是一个更复杂更多样性的环境,对后端业务之外的技术和调度要求将越来越高。

相对于前端,后端实在是一个特别笼统的说法,正如上面提出的观点,很多的技术其实并不属于后端工程师,他们有的时候叫 运营开发工程师,有的叫大数据工程师,但为了相对于前端的划分,因此我把他们的工作内容都划到了后端里面去,毕竟相对于技术研究,他们面对的都是一些技术应用的场合,很多的开源软件只要达到了理解原理如何使用的水平就已经足够应付日常工作了。

程序员的工资为什么那么高

每个行业的工资是市场决定的。得分析需求与供给。

---

供给:

程序员并不多。据说中国也只有200万会写程序的人(占人口0.14%)。相当少。

另外,印度270万程序员(最多的),也只占人口0.2%的样子。

我们先从西方国家的角度出发吧。虽然和中国印度不一样,但也有很大的参考价值。

美国的Tech行业(包括IT在内)工作人员达到700万;占人口的2%以上。

英国类似,160万员工,也占到2.4%。其它西欧国家应该都是差不多的比例。

不过拿整个行业来对比不恰当。因为高科技行业其中只有一小部分人是搞程序的。美国专业从事软件程序的人口呢,好像只有102万(根据2010年的人口普查);0.3%。

另外,在美国的职业排行中,程序员在所有职业当中人口数量排行第三十,还少于:

律师职业,104万;金融资产管理,110万;大学老师,130万

如果觉得金融和律师工资高很合理,那程序员工资高也是合理的。

话说,软件行业还详细分类,分各种语言各种平台各种特殊要求。编程语言的话;熟悉Java到专业程度的程序员只有其中30%。Python估计20%。C不到10%。像Golang之类的小众语言,1%都没有。(或许可以参考一下github上的用户数据)。

我们假设伦敦只有0.3%的人是写程序到专业程度的,那就是四万人左右。如果伦敦一家公司必须招Golang经验的人,能选择的程序员可能只有三四百人的范围了。如果再要求人家Python和Golang都会,那可能少到只有50个人选是合适的。随便看看一家科技公司的招聘要求,都会有好几个乱七八糟的,比如这语言那语言、什么SQL啊、Linux啊、机器学习啊、云端计算啊。。。每家公司要求也都不一样。真能完全符合他们所有要求的人可能只有几个甚至根本不存在。能找到满足两三个要求的人已经算很不错了。

其它行业没这么麻烦,一个职位总是有很多人都能胜任的。选择多了,公司就有条件把工资压低之类的。但是在程序招聘方面,谈工资的权利在程序员手里,因为对方没有选择。程序员本来那么稀有,非常适合要求的程序员更是稀有之稀有,不能错过。

(在简历上写什么都会的人一抓一大把;但是人家公司也不傻,能看穿。这些东西到精通的地步都需要好几年的经验。如果某个程序员真能够精通了其中两三件,又正好符合公司所要的,那价值无上限啊。稀有度决定一切)

(也有不一样的,一些高科技大公司比如google、facebook,他们不一定要求人家具体会做些什么,因为反正什么类型都会招收一些,而且有耐心培养。但是人家找的基本是高能力的人,强调problem-solving能力、逻辑清晰、抽象思维、创新思维、有直觉的、等等。达到这种境界,会什么不会什么都不重要,反正都能很快学会新技能。但是一般公司没这耐心,没这远见,只想尽快找一位能马上解决特定问题的员工)

(当然也不能说一个程序员的价值取决于他熟悉多少种计算机语言什么的。请别这样理解。许多程序员“高阶技能”更是一种训练出来的思考维度,和编程语言无关。这些维度决定一个人能否有效解决某一类问题。具体用什么语言并不重要。不过吧,如果只接触一门编程语言,思维肯定会有些捆绑)

---

需求:

好吧,伦敦有那么几万个程序员。假设平均两年换一份工作。如果市场稳定了(满了),那每个月新空出来的职位应该只有几千个吧?但是伦敦的招聘广告明明每个月都十几万个啊。而且一年一年越发多。这只能说明:找不到人了!

很多公司都是招不到程序员的状态。有些公司一开始很天真,挂一个他们自认为很好招到人的低职位广告,准备四万英镑年资(30多万人民币)。结果时间过去了几个月,发现过来面试的偶尔几个选手也都不适合,只好把年资提升到六万、八万、十万。最后终于来了一位程序大牛,非常适合,但是人家被另一个给出15万镑年资的公司给抢了。结果挂了一年多还在等人;老板的美梦都这样被现实毁灭掉了。

(在伦敦四五万镑年资的程序员当然也有不少,因为这些人总能找到一个能接受他们的公司。要么公司等得太不耐烦了只能选他们,要么成功装逼就混进去了。也或许是真找到了最适合的一家了。。。可是意识不到自己的稀有程度,低估自己的价值,有点可惜。有些人大概工作了几年才会有这种意识吧,然后追求的工资开始飞速涨价。)

总体来说,伦敦(以及西方各地)的程序员工资很高是有道理的。因为需求高于供给高得太多太多了。其它行业都是公司来选员工。但是这行业还真是员工来选公司。这也可能导致各种不公平吧。许多员工在五十万年资(人民币)的范围混,也有许多员工在百万以上(因为他们找到了自己稀有之处,并且运用了)。反正平均可能在八十万左右(比伦敦的平均薪资高一倍),但是很少有人的收入在这个平均值,一般是在两个极端。

中国是否处于类似的情况,好像是的。道理应该也很相似。如果你在找一千万人,但是只有几百万人能做到,肯定也会这样。而且其中每一个职位大概只有10-100人能做得好;做得到底好不好又很容易判断出来,薪资差距自然很明显。

---

程序员收入比其它职业高是事实。而且一点都不虚。

世界需要很多人来干这些事,能干的人又太少了。

这些程序员只要有几年经验在几家公司,累积掌握到了独特(仅限于自己)的一套技能,总能找到高薪的有价值的工作。因为他们是稀有动物啊。只要有一家公司正好非常需要那一套独特的技能,稀有程度已经很明显了。问题是不止一家认为他们稀有,所以各种抢破头。因此稀有的高级程序猿可以挑来挑去。公司竞争抢程序员而不是程序员竞争入公司。

---

最后讲几句关于未来:

首先,在所有职业当中,程序员是增长得最快的。大家应该都能看得出来。很多传统工作类型已经渐渐被取代了。正是因为程序员把这些工作内容自动化了。这个趋势肯定会继续下去。

最简单的一例应该是收银员工作。以前需要好几十个员工来负责收银的超市,现在只需要一两个收银员。超市里各种越来越先进的自动收银机器。至少在英国大多超市是这样的吧。整个人工收银行业在未来可能就不存在了。哦,还有金融行业现在几乎所有交易都是自动程序操作的。

其实大多行业,迟早都会有类似的淘汰现象发生。目前,大家不会想到有一天医生会被软件取代。可是仔细想一想,一个软件能分享和同步全世界所有的医疗数据来做一次诊断,远胜一个人的脑力所能做到的。律师分析历年来的案例和档案去找出漏洞的能力也可能不如一个软件程序。其他行业我就不一一说了,以后值得另外好好写一写。

这些变化会远远超过几次工业革命的变化。软件行业是唯一能坚持得比较长久的。这些其它行业被自动化软件化也都需要这些程序员来实现和维持。但是未来几十年内,需求只会越来越大。与其它行业的工资差距也会越来越极端。

感觉很多非行业的人有一种错觉。。。

错认为编程(或Tech)就是很多行业当中的其中一个而已。

我只能呵呵。

几百年前的人也会认为“工业”只不过是一个小行业,因为人不多。随着科技的发展,工人成了主流,这“工业”开始分成各种各样划分开来的新行业。后来服务业(白领)又突然发展起来了,分裂成现在大家所熟悉的各种行业。

下一次工作变革就是编程。它会慢慢形成很多独立行业。现在已经能看得出来啊,软件行业里面已经有很多不同方向的。。。我干不了A,A干不了B,B干不了C,C又干不了我所做的。但是我们都是“程序员”。在以后,我们就不会再说“他是程序员”,而说“他是A”,“他是B”。因为到以后大多数人都是程序员。一百年以后,“程序员”这个词就毫无意义了。

(当然也不是永久的;AI之类的也总会取代程序员,最后让软件写软件。将来下下下一个paradigm是什么我们都猜不到吧,无法想像。那时可能都没有“工作”这般概念。但是程序员的崛起作为目前一个大的paradigm shift,这是能确定的哦,毕竟这才是一步一步走向AI必须经过的一段历史)

汉语中的软件与英语中的software。。。含义好像不太一致?我觉得任何程序员写的都可以叫做software,不一定仅限于公开给大众下载用、有界面的应用。比方说,那些自动化交易程序,或者一些公司给内部开发的特殊功能,或者谷歌背后的搜索引擎后端,或者一辆汽车一台照相机里面的系统。。。甚至一个drone,这些也都是软件吧??

作为一个收入(可能是)amazon程序员中top%10的程序员, 我来很简单的分析一下一般程序员的心态:

首先程序员对自己的财力是有比较清晰的认识的,是有点钱,但是跟公司这些经常遇到的中层高层一比。。。。基本是人家零头。跟更富裕的公司的程序员比也是心酸,看到论坛上有人又分享跳槽XXXX拿到了YYYYYYYYYY的package,自惭很穷,。正所谓人外有人,天外有天。程序员爱上网,自然对网上各种惊为天人的富二代的财力也有清晰的认识。

但是coding老子天下第一呀!↖(^ω^)↗ 你看这个设计,啧啧啧,除了我, 还有谁?!(#^.^#) 哪些VP,director还不是靠我把系统搭建的这么好,组里离了我那就要玩完!是的,程序员往往会在技术上“自视甚高”,越年轻的越这样,学了一个XXXX技术然后发现某资深程序员在这方面不熟悉,就会小欣喜的觉得自己比别人强。

所以在这种心态下,程序员为什么要炫富呢? 这就好比我在剑法上有一定的造诣,但是(自以为)内功天下第一,为什么不去秀内功而要去秀剑法呢?

所以你绝对看不到程序员在朋友圈分享这些:

今天去了新开的爱马仕店看了看,哎,没什么新东西,稍微能看上眼的我已经都有了。

哎,这个burberry新款风衣真漂亮,决定今年的生日礼物就是它了!

怎么说呢,我发现XXX家的化妆品更好更适合我呀!YYYY家的以后我都不用了,可惜之前买了很多,浪费了1个月零用钱。。。5555

觉得留学租房不是很方便,所以家里在美色岛(搜了的人会知道是富人区)买了套房子,有3层可以看到华盛顿湖哦(暗示湖景房), 欢迎大家来玩,国内的小伙伴来旅游包吃包住哦!

他们会分享的是:

今天去参加了XXX技术峰会,哎,没什么新东西,基本都是老生常谈,这个AAA宣传的厉害,其实只不过是BBB理论的一种新应用吧了,还是没有解决CCC的缺陷。(内心OS:所以你看我懂AAA,BBB和CCC哦,我很有知识很厉害吧,快表扬我!) ( ^ω^ )

哎,这个新的分布式数据库看起来挺不错的,最近正在学习,有兴趣的同学一起研究呀!(内心OS:你看这个我已经学会了哦, 你会嘛?快表扬我!)(⁎⁍̴̛ᴗ⁍̴̛⁎)

怎么说呢,这个XXX机器学习模型相对于YYY模型更好一些,因为#¥%#¥...省略各种讨论和论文引用。(内心OS:我是机器学习的专家哟,快表扬我!)(≧∇≦)

我们组发明了一种新的超牛逼的算法/数据库/分布式计算框架/语言/库/服务/引擎, github上火了呀,欢迎大家使用,欢迎评价哦! (内心OS:我是站在技术最前沿的人,我好厉害的,快表扬我!)⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄

结论:比起财力上的优越感,智商和知识上的(自以为是的)碾压和超越,技术实力的被认同,更能让程序员有快感。

他们就是这么一群在自己的小世界里偷偷的有着自己的小骄傲的人们,一群被PM夸奖一下“好厉害”,就会一边轻描淡写的回一句“没有啦~”,一边心里乐开花的帮PM加班一整天赶进度的人们,很可爱吧。

最后挂一个自己对“什么是编程”的体会的答案,努力写的比较浅显易懂(反正写的干货也不会有人去看 =( ・᷄ὢ・᷅ ) =),非程序员也可以看下哦,觉得对您有帮助的话,可否点个赞帮我实现拥有一个万赞答案的小心愿呢。先行谢过 。