公司里的程序员

前几天看了一片讲数据科学家(Data Scientist)的工作的文章,算是解决了自己的很多的困惑,因为一直依赖都觉得数据科学家是个很神秘、很高深的工作,所以他们的工作是做些什么,也就不得而知了。

所以,可能在其他人的眼里,程序员同样是有些神秘(或者说,不知道程序员一天到晚都在干嘛还合适一点),这篇文章就算是一个科普,讲讲程序员的日常,当然本篇所涉及的内容应该不止于一天的工作,毕竟一天是包含不了各个类型的编程工作的,所以,重新定义一下日常的含义,并不是一天的常态1,而是时间的常态。

Programmer 是什么?

Programmer 也叫程序员,什么是程序员呢,就是那种写代码的人,如果不知道什么是代码,就是那种在电脑上的敲一些奇怪字符的人。我们现在所用用的软件都是由这些奇怪的字符组成的。

Programmer 都做什么?

在一般的互联网公司,程序员的工作可能包括(但不止于)下面几类:

Programmer 都有什么样的专业背景?

程序员这个职业,没有学历要求,不需要上岗证书,所以做程序员的,什么专业的都有,不过比例稍微占优势的,还是计算机、软件、电子相关专业的。虽然没有这些限制,但是入行之后的学习是所有人都需要的。如果是想不仅仅做一个代码搬运工,那么基础知识的掌握也是必须的,这一点计算机相关专业的就会占优势。因为这些知识计算机专业的在学校学过了,而其他专业的同学就需要自学来完成相同的课程。

怎样算一个优秀的Programmer ?

优秀可以分为技术上的优秀和业务上的优秀,技术可以通过学习来提高,业务就需要自己的主观意识了,多思考、多尝试去做到。

技术上,基础知识决定了发展的深度,并且这些基础都是有效期很长的知识,比如操作系统、网络(TCP/IP、HTTP等)、数据结构和算法;各个层次的语言都要会一个,SHELL、C语言、C++/Java、Python/Ruby/Perl/PHP,会这些在具体的工作中也会大大提高效率。数据库也是至少需要掌握一种,比如MySQL。

作为一个程序员,在做业务相关的需求的时候,不能是别人提什么需求就按部就班的完成,还需多思考为什么这么做,这个需求的合理性,在思考这些产品策略的同时,也会反作用到技术上,技术是为产品服务,也是更好适配需求。一味的执行往往并不能做好一个产品。

所以能同时在技术和产品上能做到这样,就能算一个优秀的程序员,基本也具备了自己的核心竞争力了。

Programmer 的薪资怎么样?

算了,不写这块了。

为什么Programmer 很重要?

重要程度,不言而喻,如果没有程序员实现各种各样的软件,可以想象一下没有软件生活是多么艰难。

虽然如此,但对一个产品来说,功能的实现仅仅是其中必不可少的一环,还有其他不可或缺的环节,一起运作才能有靠谱、好用的产品。

2016.04.03 14:14

Footnotes:

1 此处的日常就是指平时工作的意思,因为内容的种类和情况较多,一天并不能碰到全部的情况,所以很多事是分的比较散的。