开发是干嘛,是写需求,把需求转化为web页面给用户使用,普通用户点一点,输入东西,就能得到自己想要的响应。用户愿意为需求付出自己的劳动成功来交换开发者开发的东西。比如打游戏的用户愿意为了买个好看的皮肤付出货币,而得到这些货币的过程就是他自己或者长辈通过自己的劳动获得的,货币只是一个便于流通的代币,只不过比别的代币,比如Q币,受法律的保护和国家信用的背书,不然那个真就是些纸制品,本质上是用自己的劳动成功或者自己长辈的劳动成功赠送给自己的,来交换游戏里面好看的皮肤。这个时候可能就有人要抬杠了,玩游戏从来不买皮肤,什么零充,好像还挺引以为傲的,如果是这样,对于端游,可能也会去网吧玩,对于手游,可能不想一直用运行速度低的手机,想换手机,有的是不去网吧,也不换手机,就用旧手机,但是旧手机也是手机,总不能用小灵通打网络游戏,不去网吧,也不买皮肤,在自己住的地方用自己的电脑玩游戏,自己的电脑如果是很旧的,也不太能玩,掉帧严重,搞不了。所以开发者开发的东西,是给需求者来用的,需求者往往通过自己的劳动成功来换取对于开发者开发的产品的使用权或者拥有权。
总之,没有离开物物交换的底层,只不过物分成了眼见手拿的物质产品和服务产品,比如各种APP,基本上都是服务产品,包括手机也是,能通信,能玩APP,又不能吃不能喝的,但是确实能满足很多人的需求,比如打电话的需求,玩游戏的需求,拍照的需求,听音乐的需求,还有各种各样的需求等等。user怎么获得这些需求,一般都是通过自己的劳动成功换来的,不如先劳动打工,换来货币,然后拿货币换个智能手机,然后下载这些免费的或者付费的APP来玩,免费的APP其实你用,只要你用,流量就是钱,社交软件大部分都是免费的,你没出钱,但是只要你用,用的人多,做这个APP的公司就可以卖广告,所以对你来说是免费的,但是对于APP的开发公司和运营公司他们是能拿APP上的用户流量找广告商卖钱的,甚至是广告商拿着钱找他的。你说你又不买那些广告的东西,广告商怎么挣钱,不是你买不买的事情,是有1万个,甚至更多个跟你差不多的用户,广告商是指望着这其中的一小部分人买广告的东西,或者就是为了推广自己这个品牌在大众心中,或者目标消费者群里心中的印象,或者说是提高产品的形象,这些东西。所以公司打广告,是公司的投入,有自己的经营目的,它没指望着非得你看广告或者你买广告里面的东西。这玩意叫运营,或者叫布局,你别想多了,好像你不买广告商就亏了。投广告当然有亏的,当然也有投广告赚的,不然那么多大大小小的企业,特别是全球知名企业很多都会投广告。你会说,特斯拉就不投广告,那么厉害,是的,就跟有的特工,特种兵就是那么厉害,什么都会,什么都很厉害,就像各行各业基本都有一些人非常非常厉害。为什么大家觉得他们非常非常厉害,因为他们不普通,比普通人厉害。那么关键点就来了,他们比普通人厉害,那么什么是普通人。普通人就是这个社会上形形色色的大多数人,大家组成的群体,加上一些特别厉害的人和一些可能特别不厉害的人,就像正态分布那个图一样。最厉害的和可能最比厉害的,都有可能性,也都存在。但是看问题总是走极端,可能不是常态,不适合大部分情况。有可能你就是那个最厉害的,未来比马斯克还厉害,也有可能是不如普通人厉害的。这种情况存在,但是属于比较少的情况。对于大部分普通人来说,做生意,生活,工作,上班,干活,运维,需求,开发这些就差不多是这么个情况。所以社会从工作和经济的角度来说,基本上就是这样,人与人物物交换,货币是个中间代币。大家就是为了吃喝拉撒睡,在加上一些玩和个性的想法,基本上就是这样吧。所以开发是干什么,就是一个团队做出来一个软件,卖软件给别人用,别人需要,别人就拿他的劳动成功来交换,其实就跟物物交换是一样的,只不过形式太多了,大家感觉不深。其实就像是他造了两个汽车,你盖了两个房子,他给你一个汽车,你给他一个房子,这样你们两个就都有了住的地方和交通工具。比单有两个汽车,或者单有两个房子要舒服一些。为什么他自己不造一个房子一个汽车,你也自己造一个房子一个汽车呢,因为不好弄。你会盖第一个房子,你再盖一个房子肯定要熟练的多,他会造一个汽车,再造一个汽车,肯定也比你没有造过汽车要熟练。这个就是国富论里面说的,分工的价值,分工可以创造更多价值,效率更高,再就是交换的价值,不交换,你光有房子没有车子,他光有车子没有房子。都不如就有车又有房方便,有住的地方,也有代步工具。不交换就不能这样,交换就产生了这样让人舒服的社会价值。所以开发软件,就专门开发,别人做别的,就专门做别的,大家有交换的需求,那么就交换。所以开发这个工作,一个是自己能用来卖钱,用来混口饭吃,一个是自己做多了擅长,能混口饭吃,还能买个饮料。再一个是自己喜欢,那往往可能会做的更好一点吧。别人做别人的,其实也是这么个样子。做好自己的事情,自己喜欢做更好,主要是先能糊个口,一般喜欢也就能把它做擅长吧。再一个就是坐着看着,自己做的东西是不是别人需要的,如果你完全不担心糊口,那么别人需要不需要你也不用关心了,但是对于我们普通人来说,做的东西也希望是别人需要的,要么现在需要,要么后面需要,这样别人才会拿他的劳动成功来交换你造的软件。这样才能糊口,或者你造软件才能拿工资。因为公司拿你造的软件能卖到钱,你才有工资。短期不一样是这样,但长期应该就是这样的。所以开发就是干这个的。那么运维是干嘛的?就是你一个软件卖给别人,这个软件一会用不了了,一会用起来太慢了,或者开发在开发的时候,对于系统运行的成功情况和稳定情况和高可用情况都是需要的,主要是用户那边是需要的。所以相对来说更接近底层,要能解决开发解决不了的问题。开发测试需求包括用户都不懂这些服务的运行稳定性高可用,包括一些网络错误,常见的问题之类的。这些是运维干的活,那么用户需要这个运维吗,用户不管,但是用户肯定要跟卖软件的公司说,你这软件不能经常出问题,如果出了问题,得有人会解决。而代码bug的问题是开发来迭代版本,如果是部署、系统可用性、还有更底层的一些东西,比如网络、硬件、存储,数据库等等。话说回来,运维干的就是集群、高可用、负载均衡,热备这些东西。那么现在k8s很擅长这些,所以运维得会k8s,开发不知道容器镜像的原理,运维会,运维来提供这些环境,开发去写功能代码就OK,开发对于一些网络链路不是很懂,但是对于nginx的需求基本上是硬性的,这块访问不了,到底是代码的问题还是什么问题,就需要运维来判断,代码有没有问题,开发自己能看,网络链路,服务器这块,包括存储,挂载,服务部署,这些,开发一般注意力不集中在这块,而这块就是服务器、操作系统、网络、存储这些,是运维做的事情。所以开发是项目团队里面做需求的,实现功能的,运维是从服务器领域来让这些功能跑起来的,包括稳定性高可用和解决一些问题和部署等。
所以运维需要会开发吗,如果会,能帮自己或者开发看代码的问题,或者在解决运维问题的时候,定位一下,这个是系统服务器的问题,还是代码的问题。可能会更清楚。另外一个就是,如果自己给自己开发一些运维好用的脚本,其实了解整个项目或者行业会有帮助,可能也能实实在在解决一些运维过程中的自动化的事情。简单来说,一个是开拓视野,一个是满足一些自己工作的需求吧,搞一些自动化啥的。用一些好用的python模块,来实现自己的一些想法吧