为什么年事已高的我还在编程?

人们都会期望随着岁数的增加,个人条件受到限制的时候,你会放弃现实里的一些工作,如编程。从而转向更加高大上的任务,比如管理一个团队或者融资。

这在“真正的教授”决定细节的学术界确实如此,只保留“大方向的东西”。换句话说,组织正面向垂直协作: 顶层的管理者管理一个平行结构中的一些(更廉价的)雇员。在研究机构中,高级科学家提出想法,而初级科学家的任务就是来实现这些想法。随时间的推移,高级 科学家可能不会做初级科学家会做的事情,但是他们会变成融资方面的专家。因此,就出现了这么一个可扩展的模型:高级科学家可以让中层科学家指导初级科学家 等等。Jorge Cham 将这种模型称之为 Profzi scheme,因为一旦资金方面非常充足的话,它的表现就异常的优异。

同行间横向协作

在此模型中,高级科学家做所有事情,从点子到实现。他们喜欢尽可能地自动避免繁杂的工作。合作主要是用来得到一个不同的角度和专业互补点。这种模式在资金缺乏的前提下仍然可以良好的运行,但是它不能够适应参与者过多的现象:横向协作关系过于紧密。

每个模型支持不同类型的工作。我认为,垂直协作有利于长期的和可预测的工作。而横向协作有助于偶然情况和“狂野”的想法。

我愿意花宝贵时间去编程的理由

我 比较赞成横向协作,这也正是为什么我老了但是我还在编程的原因。这看上去很不寻常,也许有人对此很不解。有些编程需要花费很多时间,我一年当中用在编程上 的时间有两三个月之久。虽然我的时间很宝贵,我也可以将我的这些工作花点钱外包出去也行,但是我还是愿意自己亲手做这样的在别人看来浪费精力的事情,为什 么呢?这里我引用 Donald Knuth 的话来做解释:

那些致力于更高层次和抽象思维的人们通常会错误地认为低层次的具体想法相对而言没有价值而且很可能被人遗忘。恰恰相反,最好的计算机科学家需要透彻地了解计算机实际运行的基本概念,而且计算机科学的精髓就在于能够同时理解众多层次抽象的能力。

但我也有我自己的观点:

我希望我的工作是重要的且能产生影响力的。然而,即使是被广泛引用的研究论文都很少有人详读细看,也是因为很少有研究论文能够产生显著的影响力。然而,从事与软件相关的事情是比较容易的。例如,最近Facebook的一个团队集成了我发布的一个 Apache Hive 中的压缩位图索引库:基于Hadoop 数据仓库框架。在 Apache 的配置单元我压缩的位图索引库之一:基于Hadoop框架的数据仓库。但是我敢打赌,Facebook 团队里肯定没人去花时间阅读我写的这个软件的原始论文。

一次又一次实践经历只是为了让自己更好的理解自己的想法。常见的情况是一些听起来似乎很有道理的想法却无法通过实践途径实现。我也经常通过执行我的数学论证发现bug。我能把这个工作外包给别人吗?也许可以。但结果估计不会是很让人满意。

随着时间的推移,你在编程上的运作做得会更好,驾轻就熟。几十年来,我一直在锻炼我自己的专业技能。如果你在哪一天从头开始,在数天内解决了一个难题,特别是当你知道别人可能需要数周或数月才能解决问题的时候,那种感觉是很享受的。

如果我的论点是合理的,就连 Donald Knuth 也支持我的观点的话,为何当我承认自己是一个程序员科学家的时候仍有人大跌眼镜?我觉得可能是大部分人都会拒绝编程这样低层次的工作吧,这一点从《闲人阶级理论》这 可以得到证实。实际上,我们往往追求名望而不是实用。为了最大限度地提高信誉,必须了解休闲阶层的含义:你的工作 一定不要产生实际的作用。因此,成为一名CEO或政客要比成为护士或者厨师带来更大的声望。那些离现实世界更远的科学家们会更加有声望。编程是一项类似制 作工具的工作,因此来自有闲阶级的人们不会喜欢。人们会把自己称作工程师、分析师或是开发者,但很少称自己为“程序员”,因为这会显得太功利。

所以,并不是每个人都应该去学习编程。它是一个耗时的活动。我编写了这么多的程序,花了那么时间以至于很多令人兴奋的事情我都做不了。

老程序员还会出现哪些下场呢?

之前在“外刊IT评论”上看到一篇文章,讲的就是一位55岁的老程序员的感慨,对自己变老之后的境遇痛心不已。

50 多岁时你的职业仕途会成为一个问题。如果你有很好的技术,有人雇你,你会有一个很高的职衔,或你是一个专家,或有很好的人际关系,你都有可能找到一个新的 职务。否则,你会从衣食无忧沦落为无家可归。这是真的。我55岁,我的简历会让你感觉非常优秀,10年前我能挣到多达100万美元。现在我是一个流浪汉。 我身体不是很好,没有医险,没有牙医。能找到的工作只是一些基本不需要技术的体力劳动,我也干不了。

不希望年轻的程序员以后也变成这样,只能给你们下面的一些建议:

职场上往上爬,不要停。

成为某一方面的专家——虽然保持足够宽的技术面也很重要,这样你才不会被淘汰。

建立一个人际圈。扩大它。

多样化你的投资。

有工作时医疗保险一定要上,这方面不要出问题。如果你没了工作,没了钱,医疗保险也没有,这将会成为一个严重的问题。

与人为善。但也不要犯傻。大部分你帮助过的人不会回报你。

提早打算,人生不如意十有八九。

程序员的出路在哪?

有着10年软件行业从业经验,专注于微软.NET技术领域及项目管理的徐洪军根据自己的现状总结出了三条出路,希望对你有用。

自 己也是一个程序员,整天coding, debugging,有时候也在想,真的有一天写不动了,或者公司更倾向于用年轻人做这些事,因为便宜而且有精力,那我怎么办?虽然国外也有很多老程序 员,像我认识的几个德国同事,年纪一大把了,还是个软件工程师,干得还有滋有味。他们不在乎名也不在乎利,全在兴趣。可我不一样啊!国内和国外的环境也不 同。时常到网上了解一些程序员的出路问题,总结起来觉得下面三条比较可行。

出路一:向IT培训师转型

分 析:IT企业在招聘新人后,一般都须经过培训才能上岗,这个培训有时是在岗位上进行的,由富有实践经验的“老人”负责。年轻人想要进入IT行业,必须接受 这样的专业培训。如今IT培训市场蛋糕相当大,利润空间可观,行业发展前景看好。无论是在IT公司内部转型担任培训工作,还是到IT培训机构担任教师,都 应该有发展空间。这样的工作不会有太大压力,且比较稳定,对年龄也没什么要求。而且也没有脱离本行。

优势:在这个行业工作多年,拥有丰富编程、项目经验,曾参与过许多成功案例。而多年积攒的行业人脉关系,还可以帮助我们发展企业客户,顺便担任市场拓展工作。

挑战:缺少培训工作经验。如果要向培训师转型,可能需要接受一些专业训练,提高担任培训师的能力。

出路二:向IT营销转型

分析:IT与其它行业不同,由于技术性较强,营销人员一般也须有较强的技术背景,且最好有着丰富经验。互联网公司、

电子商务公司、软件公司目前都需要有技术背景的营销人员;另外,电子商务的再度火爆,使得传统企业开始重视电子商务营销,也需要有技术背景的营销人员。这类工作薪水不低,加上提成应该可以拿到高于程序员的薪水,同时也比较稳定。

优势:深厚的技术背景,广泛涉猎了各种编程软件和工具,对IT行业也有相对深入的了解,这些都是比较大的优势。

挑战:程序员一般都很少与人打交道,口才也不太好,而营销工作恰恰需要跟人打交道,这可能是最大的挑战,要求彻底改变工作方式,加强沟通能力与人际交往能力;此外,营销工作会面临销售指标的压力,这些问题都是转型前必须深入考虑的。

出路三:向项目管理努力

分 析:如果说前面两条出路转型的成分多,那么项目管理可以说是更为便捷的发展之路。目前,软件项目经理是人才市场上炙手可热的人才,有丰富经验、外语好的软 件项目经理是抢手的香饽饽,供不应求,薪水自然也是水涨船高。在上海市劳动部门新发布的2005年软件行业薪资调查中,项目主管的薪水是同层次主管中最高 的,年薪高位数达到211011元,平均年薪达109414元。最重要的是,一个优秀的项目经理可以在这个岗位上长久工作下去,并且有向高层进一步提升的 可能。

优势:对有经验、有技术、有人脉、有能力、参与过多个软件开发、有一定经验的人,项目管理无疑是发展的一个很好的方向。

挑 战:可能有些程序员在项目团队里一直是参与工作,很少担任过项目带头人。而很多公司在招聘项目经理时,都需要有带领团队进行项目开发的经验,这是一个劣 势。最好参加一些项目管理方面的培训课程,自学相关的知识,增长自己在流程管理、沟通协调等方面的能力,以便积累资本,逐步向项目管理岗位迈进。

时间: 2024-09-25 20:23:26

为什么年事已高的我还在编程?的相关文章

为什么年事已高的我还在编程?(转)

每一个行业的从业人员都会有变老的那一刻,难道变老了之后还要继续从事之前的工作吗?估计没人愿意,除非是体力上吃得消的.接下来所讲述的就是作为程序员的码农们该如何迎接慢慢变老之后的工作转变! 人们都会期望随着岁数的增加,个人条件受到限制的时候,你会放弃现实里的一些工作,如编程.从而转向更加高大上的任务,比如管理一个团队或者融资. 这在"真正的教授"决定细节的学术界确实如此,只保留"大方向的东西".换句话说,组织正面向垂直协作:顶层的管理者管理一个平行结构中的一些(更廉价

库克:苹果不是只做富人生意,还一直坚持让世界变得更好

「我们活着就是为了改变世界,难道还有其他原因?」 乔布斯的这句名言,大家或多或少都略有耳闻.而作为苹果公司的前CEO,他对这个世界的理解也会直接影响这家公司的气质.如果说,有一家科技公司,一直致力于改变世界,又成功登上了<财富>杂志年度企业榜,就是苹果无疑了. 然而,对于乔布斯而言,他为苹果所做的,而又能对这个世界产生「凹痕」的,几乎都是围绕在创造改变人类生活方式的新产品上.这些产品可能是极具创意的,有用又有趣还引人惊奇的,但又不会功能多到完美的那种.尽管乔布斯在任时,苹果会采用嬉皮而又人性化

sql server-试验数据管理系统客户端用什么语言编程

问题描述 试验数据管理系统客户端用什么语言编程 单位要自己开发试验数据管理系统,后台用SQL Server2008,实现试验数据的存储.读取.对比.报表.数据曲线对比.试验流程管理以及一定的文件管理功能.希望报表和数据曲线显示功能强大些. 请问客户端用网页形式开发合适吗,用什么工具比较好,PHP.JAVAScript等吗,我对这方面是新手,以前只开发单机应用程序,见笑了. 最好能给出点建议,对比说明下优势.服务器断还需要编程吗? 解决方案 网页起始就是Web服务器,编程还是在服务端的,客户端只要

深入探讨SQL Server 2000对XML的支持

server|xml  [作者简介:]Wayne,新一代程序员,十二岁时开始学习编程,十三岁时拥有自己的电脑,先后学过Basic.Pascal.C.FOXPRO.VB.DELPHI.C++.SQL,学习Java语言后,遂成为Java的疯狂崇拜者,现就读于中国科技大学. 引言 内容导航  * 引言 * 配置SQL Server 2000的IIS虚拟目录 * 使用 HTTP 执行 SQL 语句 * 使用XML模板进行查询 * XPath查询 架构和模板   我们可以很简单的使用ADO访问数据库中的数

SQL SERVER 2005数据库镜像(1)

本文对SQL SERVER 2005数据库镜像进行了教程式的讲解,具体内容包括:介绍.动态.可用性场景.实现和高可用性技术,供大家参考! 概述 数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术.数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出现故障时快速转移到备用服务器.可以编写客户端程序自动重定向连接信息,这样一旦出现故障转移就可以自动连接到备用服务器和数据库. 自动进行故障转移并且使数据损失最小化通常包括昂贵的硬件和复杂的软件.但是,数据库镜像可

Linux环境下如何使用PHP处理图像

利用PHP创建图像是相当容易的一件事情.只要安装一些第三方的库文件并具有一定的几何知识,就可以利用PHP来创建和处理图像了.目前PHP使用GD库处理图像.在PHP中一些图像函数是可以直接使用的,但是大多数函数需要安装GD函数库.GD库提供一系列函数进行画图.使用颜色.处理预存的图像和填充操作.GD库是Thomas Boutell设计的ANSI C语言编写,同时支持在perl.Tcl语言中作图.由于GD是一个可以被建立成共享或静态的库,所以在PHP使用GD库进行图像操作是非常容易的.GD图像库工作

Visual Basic集成开发环境的元素

集成开发环境的元素 Basic 的工作环境常常是指集成开发环境或 IDE,这是因为它在一个公共环境里集成了许多不同的功能,例如,设计.编辑.编译和调试.在大多传统开发工具中,每个功能都是以一个独立的程序运行,并都有自己的界面. 本节,将讨论以下主题: 1.启动(Visual Basic IDEvbconStartingVisualBasicIDE)启动和运行. 2.集成开发环境元素(vbconIntegratedDevelopmentEnvironmentElements)介绍 IDE 的不同组

vb的运行环境

集成开发环境的元素 Basic的工作环境常常是指集成开发环境或 IDE,这是因为它在一个公共环境里集成了许多不同的功能,例如,设计.编辑.编译和调试.在大多传统开发工具中,每个功能都是以一个独立的程序运行,并都有自己的界面.本节,将讨论以下主题:1.启动(Visual Basic IDEvbconStartingVisualBasicIDE)启动和运行.2.集成开发环境元素(vbconIntegratedDevelopmentEnvironmentElements)介绍 IDE 的不同组成部分.

CLR SQL SERVER:让正则表达式也加入你的Transaction-SQL

试过Transaction-Sql编程的哥们应该都觉的这东西太恶心了,除了IDE,最恶心得还数编程中涉及的字符 串拼接问题.想象一下:在一个巨复杂的业务逻辑中,里面充满了while,if,case.你必须处理好所有的情 况并按某一规则来拼接字符串.这些字符串可能是Sql,也可能是结果,但不管是什么都是我们的噩梦. 正则表达式是啥相信就不要我介绍了,处理文本的利器呀.虽然Sql Server也支持正则表达式,但使 用比较麻烦,还是自己制作一个正则表达函数来的方便.这节主要涉及了CLR Sql Se