每年都有无数年轻程序员,加入软件行业。他们在学校里学过编程,但是对这个行业的现实一无所知。Patrick是美国一家小软件公司的老板,他写了一篇长文,介绍这个行业的一些实际情况。

image

一、90%的编程工作来自内部软件

计算机专业的学生,可能有一种印象,觉得大部分程序员,都在编写公开出售的软件或者通用软件。

这种看法是不对的。大部分程序员,实际上编写的是不公开的企业内部软件,比如追踪费用的软件、优化装运成本的软件、帮助记账的软件、设计新部件的软件、计算保单价格的软件、识别恶意订单的软件等等。

各种各样的商业公司,开发内部软件,解决它们自己的问题。市场上对程序员的大部分需求来源于此,只有极少数程序员直接编写面向外部顾客的软件。

内部软件的开发,通常非常乏味,令人厌倦。因为它们的技术复杂性低、技术决策非常保守、预算很少、缺乏长远考虑。但是,世界上大部分编程工作都是这种。

二、别人雇你的目的,是让你创造利润,不是让你编程

商业公司最关心的(或者说唯一在乎的)事情,就是增加收入、降低成本。因此,它们实际上需要的不是程序员,而是能够帮助它们增加收入、降低成本的人。

开发优美的软件,解决技术难题,编写没有 bug 的代码,这些都不是商业公司的目的。它们雇佣你,是为了让你帮它们完成某个可以增加收入、降低成本的项目,而不是为了让你追求个人的软件成就。

你对于公司的唯一价值,就在于能多大程度上为它们增加收入、降低成本。

三、不要自称为码农(程序员)

很多公司的经理不懂计算机,在他们心目中,程序员就是一群高成本的劳动力,只会在一台复杂的机器上干一些难懂的事情。

如果你自称为”码农”,当公司需要压缩成本的时候,某些经理首先就会想到解雇你,因为你的工资高。

有一家公司叫 Salesforce,口号是”没有软件”,意思就是如果经理们购买了他们的服务,就不再需要别的软件管理销售业务了,也就是说,不再需要自己雇佣程序员了。

image

正确的做法是,你应该把自己描述成与增加收入、降低成本有关系的人,比如”xx产品的开发者”或”改进者”。有一个 Google Adsense 程序员的自我介绍,是这样写的:”Google 公司97%的收入,与我的代码有关。”

四、不要限定自己

年轻学生经常会问,应该选择哪种语言或平台?Java 是不是比 .NET 容易找工作?

过分强调某一种语言或平台,都是不必要的。如果你把自己限定为 Java 程序员或 .NET 程序员,你就已经输了,因为首先你不应该自称为程序员(理由见上一点),其次这种限定使得你自动被排除在世界上大多数编程工作之外。

现实生活中,学会一种新语言,只需要几个星期,然后再过半年到一年,你就会变成老手。那时,根本没人在乎你以前用什么语言。

天才程序员是很少的,可是需要天才程序员的工作机会却很多很多,大多数场合都是需求远远大于供给。

这意味着,即使你不是天才程序员,只要你是一个优秀工程师,那些招聘公司也会立刻录用你,因为它们知道招聘到天才程序员的机会微乎其微。(重复一遍,所谓”优秀工程师”,就是你的履历上有一连串增加收入、降低成本的记录。)

某些公司的人事部门,会根据某个关键词(比如 Java 或 .NET)过滤简历。虽然这样的公司根本不值得去,但是如果你真的想过这一关,也很容易:投入几个晚上和周末,在你当前的项目中设法用到这个关键词,然后再把它写进简历就行了。

五、如何提高求职时的谈判能力?

(1)记住你不是在求职,不是在展示编程技巧,而是在推销某种商业问题(增加收入或降低成本)的解决方案。

(2)面试时,要有自信,要平等的对话。你要的是一个互利的录用合同,不要每次对方提出要求,你都说Yes。

(3)雇主可能会问”你的上一份工资是多少”,他们其实在说”给我一个理由,压低你的报酬”。你要想好如何适当地回答这个问题。

(4)要还价。这里不仅仅指钱,还指其它你关心的方面。如果你无法要求更高的薪水,那就试着要求更多的假期。

(5)在对方决定录用你以后,才开始讨论薪水。因为那时,他们已经在你身上,投入了大量的时间和金钱,产生了一定的成本,此时他们可能觉得一些小问题已经不值得再纠缠了,比如每年的工资增加几千元。

image

六、创业公司是否适合应届毕业生?

如果你一毕业就加入创业公司,最可能的结果是,接下来几年你都工作得非常辛苦,然后公司悲惨地失败了,你失业了,不得不又去另一家创业公司工作。

如果你真的想去创业公司,应该首先找一家大公司干上两年,攒一点钱,积累一些经验,然后精心挑选一家创业公司,再去实现自己的梦想。

在创业公司工作,一般情况下,你遇到的都是创业者。他们大多数人没有能力在两年后雇佣你;而在大公司工作,你遇到的都是其他大公司的人,他们中很多人将来有能力雇用你或者帮你介绍工作。

七、沟通技能是最重要的职业技能

前面说过,工程师被雇佣,不是因为会编程,而是因为能够创造商业价值。所以,你得让人们相信你能创造价值,这是帮助你找到工作的最重要的能力。这种能力与你真的能创造多少价值,实际上联系不是很紧密。

我认识的一些最优秀的程序员,往往拙于表达。因此,别人不是不想与他们一起工作,就是低估了他们的价值。相反地,如果你看上去很会编程,并且很善于表达,别人就会真的这样看待你。

英文原文:https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/

由新工厂翻译整理发布

程序员:不要自称码农相关推荐

  1. 为什么中国的程序员被称为码农?

    为什么中国的程序员被称为码农?  实际上IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样?      ...

  2. 为什么中国程序员被称为“码农”

    编程活动和机械电子一样可以视为一种工艺(craftsmanship),从事此类工艺活动的人可以叫做工匠或者工程师.经历过工业革命的欧美国家,有深厚的工程根底,从机械到电子再到软件,都是国家产业的支柱, ...

  3. 第七十九期:阿里程序员感慨:码农们过去暴富有多轻松,现在赚钱就有多辛苦

    互联网的世界也是一座围城.有人挤破脑袋想要进去.而有人又觉得是被互联网的光鲜表象欺骗了忙着要出来,但最终,这些人都会离开. 作者:职场八卦 互联网的世界也是一座围城.有人挤破脑袋想要进去.而有人又觉得 ...

  4. 程序员感慨:码农太苦,互联网更是穷人聚集地,劣根性一览无余!

    如果说,现在什么行业工资高,首选就是程序员.在旁人眼里,程序员一个月工资随意赶超普通文职半年甚至一年薪水.每天坐在电脑前,敲敲代码,轻轻松松年入百万.但是近日,一位程序员的言论让人大吃一惊. 要不是因 ...

  5. “码农”一词是怎么来的?为什么中国程序员会被码农?程序员和农民有什么关联?

    原创: 思齐大神 来源:蚁开源社区 很多同学会问,IT行业在中国并不是特别差的行业,而程序员的工资也并不低,但为什么中国的程序员总被称作码农或者说是苦逼的程序员?中国的程序员生活和欧美的有什么不一样? ...

  6. Java程序员如何从码农晋升为架构师,你跟架构师的差别在哪里?

    一.如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量. ...

  7. AI程序员,所有码农的梦想

    https://www.toutiao.com/a6641804001950040590/ 2019-01-02 15:51:40 目前为止,人工智能还不算成熟,还没有特别优秀的人工智能产品进入百姓生 ...

  8. 领域驱动设计,让程序员心中有码(七)

    领域驱动设计- 让程序员心中有码(七) -设计原则和设计模式,互联网开发者们共同的追求 前言 多年来,笔者一直从事传统软件企业的软件开发和项目管理工作.笔者发现在众多的传统软件企业中,评判优秀开发者的 ...

  9. 鹅厂程序员在家撸码的十大姿势

    大家好,我是帅气的他二哥,好久不见-在家办公已经一周多了,不知各位感觉如何?曾经的你以为在家办公爽歪歪,今天的你迫不及待想回公司上班电脑屏幕太小,椅子不舒服,网络不好,没有下班时间,被娃骑脸输出,被做 ...

  10. 领域驱动设计,让程序员心中有码(五)

    1      从搬砖谈领域对象 有一个古老的故事,大概是这样的.作者问三个建筑工地上的工人他们在干什么?有一个没精打采的说,我在挖洞!而另一一个人却说,我在盖一座房子.还有一个人说,我在建立一座巨大的 ...

最新文章

  1. 你会不会模拟超过 5 万用户的并发访问?
  2. yolov5的3.0版本代码在训练的时候报错:ImportError: cannot import name ‘amp‘ from ‘torch.cuda‘ 以及yolov5的3.0环境安装
  3. 【竞赛相关】Kaggle活跃竞赛(12月汇总)
  4. 都在说TDD开发,那到底TDD是什么?
  5. 程序员讨论技术问题时说话都很直接,哪个国家都不例外
  6. 大数据|意不意外?今年卖得最好的月饼是这个馅的……
  7. 读取带空格字符串小结
  8. 什么是MARC数据?
  9. php命名规则几点内容
  10. 深度学习最全优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)(转)...
  11. 在Eclipse中使用JDBC访问MySQL数据库的配置方法
  12. sofa-jraft源码学习
  13. NeurIPS 2022 | PEMN:参数集约型掩码网络
  14. 【Pytorch-从一团乱麻到入门】:6、Pytorch 选择最终模型的方式:save best model early stop
  15. Mycat-配置详解
  16. 百度地图 添加行政区域
  17. PFC2D学习笔记——颗粒生成
  18. 【MYSQL数据库基础篇第一部分总结】
  19. Linux环境下串口号变化,自定义串口,修改串口号,绑定设备ID
  20. muti_LIDAR_calibration解析

热门文章

  1. java.打印菱形_利用java程序打印空菱形
  2. linux上安装java失败,Linux下安装jdk失败怎么办
  3. 经济师考计算机英语考试,2019考经济师需要考试职称英语和计算机吗?
  4. 为什么我要在BDTC2016上担任“大数据云服务”分论坛召集人
  5. CCIE知识点总结——组播
  6. 【Vue项目实战】vue.js2.5 饿了么APP(1)概述+项目准备
  7. lwm2m和coap协议 简解读
  8. 记一次投票系统维护以及防止刷票springboot+redis
  9. 如愿获得2013 MVP,胜利属于你的坚持
  10. ElasticSearch分页查询的3个坑