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

简介:

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

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
本文作者:编程牛人
本文来自云栖社区合作伙伴“编程牛人”,了解相关信息可以关注“编程牛人”。
相关文章
|
程序员 开发工具 Docker
13个程序员常用开发工具用途推荐整理
13个程序员常用开发工具用途推荐整理
183 0
|
6月前
|
数据采集 数据挖掘 程序员
程序员必知:关于信度分析的多种方法
程序员必知:关于信度分析的多种方法
71 0
|
人工智能 JSON 搜索推荐
|
Java 编译器
编程基础|如何解决编程中的代码错误问题
编程基础|如何解决编程中的代码错误问题
275 0
|
网络协议 Java
编程技能强化代码知识点整理
编程技能强化代码知识点整理
|
测试技术 开发者
方便实用!软件测试面试题及答案这里面都有
软件测试属于技术类工种,因此,面试环节上也要比其他岗位的多上一个环节,分别是日常面试以及技术类问题面试,前者大家临场发挥就能搞定,而后者的话,由于技术性强,再加上很多人容易紧张,从而导致面试的通过率降低,所以,不少想在年后开始找工作的软件测试工程师们,就想要知道哪里有比较齐全的软件测试面试题及答案可以用作面试加持?
179 0
|
自然语言处理 C语言
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(中)
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(中)
125 0
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(中)
|
存储 自然语言处理 Linux
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(上)
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(上)
156 0
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(上)
|
编译器 Linux C语言
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(下)
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(下)
121 0
【C语言进阶】—— 程序环境和预处理 ( 坚持总会有收获!!!)(下)
|
存储 弹性计算 前端开发
服务器对程序员来说意味着什么,此文带你来了解
一、什么是服务器? 维基百科写到服务器指: ①一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器(能使用户在其他计算机访问文件),数据库服务器和应用程序服务器。 ②运行以上软件的计算机,或称为网络主机(Host)。 服务器通常以网络作为介质,既可以通过局域网对内提供服务,也可以通过广域网对外提供服务,服务器的最大特点就是其强大的运算能力。 一般我们说做APP需要两个人,一个前端,一个后台。 前端:画UI页面及UI交互逻辑的人,需要写一些APP无需联网就能做到的内在逻辑,可能还需要写一些读取、写入后台数据逻辑的接口; 后端:写数据处理逻辑,通过服务器对数据进行处理,给前端提供
159 0
服务器对程序员来说意味着什么,此文带你来了解