对新入门程序员,有用的几点建议!

简介:

每年都有无数年轻程序员,加入软件行业。他们在学校里学过编程,但是对这个行业的现实一无所知,现在来听听资深的软件工程师,介绍这个行业的一些实际情况。 

fb175f02ff234025ae322b25c89a2794d0b2ec55

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

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


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


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


内部软件的开发,通常非常乏味,令人厌倦。因为它们的技术复杂性低、技术决策非常保守、预算很少、缺乏长远考虑。但是,世界上大部分编程工作都是这种。你如果想入行程序员,你就要有心理准备去接受这样的工作。

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

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


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


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

三、好的程序员专注于为公司带来价值

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


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


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


2ec7d907869fcc8e4c431264efd7a72dc1be6bac

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

四、不要限定自己

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


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


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


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


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


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

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

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


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


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


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


5015057f47b579ba900030661bc6e047adbd0dbe

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

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


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


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

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

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



原文发布时间为:2018-08-20
本文作者:编程牛人
本文来自云栖社区合作伙伴“编程牛人”,了解相关信息可以关注“编程牛人”。
相关文章
|
26天前
|
存储 SQL Java
好多人都说存储过程很难?认真看这篇文章就够了
好多人都说存储过程很难?认真看这篇文章就够了
11 0
|
6月前
|
程序员 开发工具 Docker
13个程序员常用开发工具用途推荐整理
13个程序员常用开发工具用途推荐整理
68 0
|
10月前
|
Java 编译器
编程基础|如何解决编程中的代码错误问题
编程基础|如何解决编程中的代码错误问题
168 0
|
10月前
|
人工智能 JSON 搜索推荐
|
新零售 移动开发 人工智能
程序员写好技术文章的几点小技巧
去年成为了内网技术分享平台的年度作者,受邀写一篇关于“如何写好文章”的文章。我本身并不喜欢写字,去年写的几篇文章,涉及的话题自带流量,所以阅读量多了一些,谈不上有多擅长。不过还是决定分享一下自己在写文章时用到的一些小技巧,希望对大家有帮助。
程序员写好技术文章的几点小技巧
|
程序员 测试技术
阅读优秀代码是提高开发人员修为的一种捷径
导读:原文作者Alan Skorkin是一名软件开发人员,他在博客《Why I Love Reading Other People’s Code And You Should Too》中分享对软件开发相关的心得。
1177 0
【观点】如何写出无法维护的代码
导读:酷壳网的陈皓写了很多优秀的文章,这篇《如何写出无法维护的代码》相信一定能触动大家的兴奋点。 文章内容如下: 什么叫“创造力”,创造力就是——就算是要干一件烂事,都能干得那么漂亮,那么有创意的能力。
1007 0
|
测试技术 程序员 安全
再谈文档必不可少
项目文档必不可少,必不可少,再小的项目,别人再和你吹嘘项目多么简单,领导再告诉你时间多么紧张,客户再不上线就要损失几十万,统统都不是你的问题,唯独不写文档是你的责任! 我在《人月神话》的解读中已经深入的理解了文档的必要性,很多时候人只是还不够强大,经常败在时间上,败在压力上。
1099 0
|
程序员 JavaScript 前端开发