热心网友
回答时间:2022-06-22 22:23
对于一些贬义的说法,个人认为作为一个程序员应该保持“诚意开张圣听,不要妄自菲薄”的态度。
程序员一直以来看哪个是别名最多的一个职业,我姑且不分褒贬的称之为你才吧!就像小学的时候一样,相互之间往往喜欢区别名叫昵称之类的,而又往往外号叫的最响小名最多的就是最受关注的哪一个,程序员在当今网络上的处境大抵如此。
码农这个词米偶遇仔细研究过来源。参考其他人的回答知中文中的码农大体相当于英文中的code monkey。程序员码农说法的由来大概来自于程序员圈内自嘲的说法。这里程序员对码农的更多理解可能更接近coder这个词,就是说我是一个写代码的。可能会有人以此来明志,表面自己很热爱写代码,或我很精通以此,再或者言外之意我只是一个写代码的,别来找我给你装系统修电脑什么的,我最烦这个了(ノ`Д)ノ。
程序员这个行业知名度虽然高,但是正在了解程序员是做什么的人并不多,大多数人直观臆想出来的感受可能是一个座在电脑前,后背前倾,颈脖前伸,面容憔悴,形容枯槁,两眼无关紧盯着电脑,两只鸡爪子似的双手快速的在键盘上敲击,屏幕快速出现一行行一块块英文字符的形象。这其实只是程序员的表面,完全米有展现出大多数程序员的内在。程序员真正的工作是解决问题,代码只是解决问题的途径,或曰实现方案。
程序员究竟解决什么问题呢,又是从哪里来的问题呢?首先要提到产品经理,产品经理给成员一个需求,程序员要思考如何实现这个需求。比如产品说这个登录过程应该这样这样,用户是否有通过手机或者邮箱验证。程序员要做的就是想方案来实现这个需求。在比如产品说我们这个网站要同时支持多少人访问不会出现卡,或者页面刷不出的情况。程序员接到这个需要就要思考如何设计这样一个高性能,高并发的服务端,最终通过代码来实现设计。好,现在代码写完啦,产品发布上线了。什么购物网站啊,大家可以随意挑选自己喜欢的产品,什么交友网站啊,大家可以写好自己的介绍发布出去让别人看到。但是还米有完,可能这个网站还要加点新功能,或者程序员自己也想,这个代码有没有什么地方实现的不好,换一个方法会不会更优雅。然后又是思考解决<=实现方案<=线下测试。自己测试发现可以,这个方法很好,发布到线上,就是用户最终使用的形态。不断提出新需求,完善新的功能我们称之为迭代。改善现有设计我们称之为重构。这些都是非常有艺术感的事!
事物发展就会演变出各种变体,有一些公司会把问题和解决问题的方法都做好,然后再交给其他公司或者个人去做实现(写代码)。由于在这里解决问题的过程被剥离出来(最有技术和艺术感的部分)剩下的就是实现,就是敲代码。好比建一栋房子,房子的设计和施工方案都已经做好了,就剩下施工了,这时候只要找个施工队就可以了。在这些做设计的公司,他们是有能力来实现这些方案(敲代码)。但由于欧美日等国家人力成本高,将这些技术含量低敲代码的苦活儿剥离出来交给相对落后地区的人去实现可以帮助他们节省人力成本。以上这个现象就称之为软件外包。另一方面,在美国主导的全球生产分工下,美帝也希望将中印这样的发展中国家固定在低端制造,劳动秘籍型的行业。
既然程序员是解决问题的,那么是否所有电脑相关的问题程序员都能解决呢?纵向来看,计算机系统可以简单的分为三层,应用程序<=操作系统<=计算机硬件。计算机硬件的设计研发基本和程序员无关。硬件往上就是程序员的职责范围了。这是可以简分为应用软件程序员和系统软件程序员。系统程序员的责任是实现高效的硬件管理,应用程序员则是为用户提供高效的服务。下面说说在这两方面和国外的差距,手机端应用软件(有服务端的包括服务端)差别不大,大家从自己手机中软件就能感觉到。PC端有差距,比如人家有PS这样的图片处理软件,而我们则没有。在这方面人家发展了几十年我们年数不够,有差距还是可以理解的。但我辈当发奋努力,以追他人之先。另外应用程序web化应该是趋势,这方面我们还是有优势的,对于普通用户来说最直观的体验就是不用装很多软件了,只要有一个浏览器就行。在操作系统层面,PC如Windows,服务器如Linux。Windows微软独家拥有的闭源系统,不说。Linux内核开发来讲国内正在迎头追赶,内核的邮件中中文拼音的人名越来越常见,越来越多的国人加入到Linux内核的开发中。
收起