不懂Web的老程序员
【IT168 专稿】如果说Java我至少还写过一个程序的话,那么Web方面我真的是一文不名了。为什么会这样?象我这样一个自诩为老程序员的人,居然会不是Web专家?就算不是Web专家也不要紧啊,难道竟然没有写过若干个大型的Web程序?退一万步吧,大型的Web程序没有写过可以理解,一两个实验性质的网页总编过吧?很不幸,我没有。
我确实是一个老程序员,程序可以为我作证。我写过很多程序,有些是大多数年轻的程序员甚至不曾听说过的。比如Z80、MCS51、8086、汇编、寄存器、中断等等,恐怕有些读者不知道我在说什么。汇编语言,最接近CPU的编程语言,年轻的程序员也许听说过,但用过的就凤毛麟角了。DOS下的debug,汇编语言的调试软件,曾经是我最爱用的工具,研究病毒和破解加密程序就是靠它。当然,汇编语言离业务逻辑太远了,再加上莫尔定律下飞速发展的硬件能力,现在甚至连操作系统的核心代码都不用汇编来写了。
之所以提到汇编语言,只是为了说明我是老程序员。汇编语言的经验在现在没有任何用处了,即使是单片机,如今最次的也都C了。从汇编到C到C++,编程语言层出不穷,作为程序员的我,始终追随着编程语言的步伐,边学边用,不敢有丝毫的懈怠。唯独在Web领域,我远远落在了时代的后面。
程序员是一个活到老学到老的职业,3个月不抬头看路,你的眼前就会冒出许多技术的新面孔。先是OO,我写了很多C++的程序;然后是Client/Server,我又写了很多PowerBuilder的程序;后来到了Browser/Server,我还想写很多Web程序,可是,我已经没有写程序的机会了。原因很简单,当Web渐成程序员们的口头禅时,我做“管理”了。
程序人生的十字路口
我走过的路,和很多程序员一样。22岁,学生们带着从老师那里学来的若干理论,投身到程序员的行列,工作稳定,学习的机会又多,他们满怀期待;25岁,程序员变成了高级程序员,虽然辛苦,虽然有压力,但薪水不菲,他们充满感激;28岁,高级程序员晋升到资深程序员,登上作为程序员的职业顶峰,见多识广,在技术领域里呼风唤雨,他们踌躇满志。30岁,资深程序员还是资深程序员,虽然还是那样德高望众,虽然还是那样受人尊敬,但他们来到了程序人生的十字路口,他们开始不知所措了。
“做管理还是做技术,这是个问题”。一直做管理的人,他们不存在这个问题,管理可以从26岁做到62岁;先做技术后做管理的人,有问题但不严重,虽然他们的技术底子可以让他们更专业,但管理经验的不足,通常会成为他们继续晋升的障碍;一直做技术的人,他们的问题就大了,没有人希望你继续做技术,你自己也知道应该转向管理,可是,如果你偏偏生就了一付不喜欢管理的脾气,你该何去何从?
继续做技术吧,你的性价比不如年轻程序员,因为你受雇的公司通常没有核心技术,也不需要技术积累,或者,即便有核心技术,即便需要技术积累,你的成本还是高于重新培养一个新人。很低的价钱就能招到一个有潜力的程序员,签个培训协议,就能稳定三五年,随时要求加班而毫无怨言。再说了,炒掉你并不需要付出很高的代价,事实上,根本就没有代价,如果你得到了一笔遣散费,那是因为同情。
这是我的无奈,也是很多老程序员的无奈,更是中国软件行业的无奈,而归根结底,我不知道到底是谁的无奈。程序员被划入吃青春饭一族,与舞女和模特同类,这多少有些中国特色。所以,当我30岁的时候,我把自己归入了老程序员的行列。为了能够体面地生活,像我这样的老程序员接受面试时,都知道必须为自己争取一个管理职位。我会告诉主考官我喜欢管理,我管理过某某项目,并大谈软件开发的过程、文档、规范和质量。学而优则仕,难道是程序员的唯一出路?
鱼与熊掌,不可得兼
我见过很老的美国程序员,也和很老的印度程序员一起工作过,他们的程序就像他们的年龄一样,让人放心。当你向他们要一个程序时,他们会谨慎地告诉你,他们需要一些时间考虑一下,然后,他们会给你一个清单,列出他们认为可能存在的问题。你接过来一看,很多问题确实是你没有考虑到的。他们开始动手写代码的时间总是不如年轻程序员那么早,但他们的代码经历的回归测试的次数也比年轻程序员少,最终你会发现他们的效率是最高的。他们慢,但他们验证了那句名言:越早开始,越晚结束。
关于老程序员的讨论,是个忧伤的话题,就此打住吧。我想说的是,在我想写程序,而且能写程序的时候,我成了某某经理,成了某某主管,成了某某总。整天说一些言不由衷的话,做一些枯燥乏味的事,想一些没有结论的问题。我的薪水增加了,超过了身边最优秀的程序员,但我觉得很累,没有成就感,而且最伤心的是,我错过了Web。
好在当C/S逐步向B/S过渡,Web渐成燎原之势时,网上关于Web的技术讨论风起云涌。多亏了那些评论文章,让我用有限的时间了解了关于Web的技术动态。ASP、PHP、JSP这些字眼不时在眼前出现,多少给了我一些Web编程的基本概念。我没有写过一行Web代码,不过,凭着一个程序员的职业敏感,我还是找到了正确的方向,所以,若干年后,当我着手开发我的第一个Web程序时,我决定用JSP。
分享到:
相关推荐
《程序员晋级之路》一文不仅提供了具体的学习路径和实践项目建议,更重要的是传递了一种长期学习和发展的心态。它强调了基础技能的重要性以及如何通过实践和思考不断进步。对于希望在 IT 行业取得成就的程序员来说,...
【WEB程序员个人简历模板下载.doc】的文档是一个用于WEB程序员求职的个人简历模板,其中包含了应聘者的个人信息、教育背景、工作经验、专业技能和项目作品。以下是根据这些信息提炼出的相关知识点: 1. **个人信息*...
本教程资源包"程序员web前端视频教程(文档+代码+视频).rar"为初学者提供了一个全面的学习路径,旨在帮助他们掌握这个领域的基础知识并逐步进阶。 HTML(HyperText Markup Language)是构建网页的基础,它是所有...
### JAVA程序员之路——专业程序员的成长历程 在IT领域中,JAVA作为一门强大的编程语言,不仅在企业级应用开发中占据重要地位,而且在全球范围内拥有庞大的开发者群体。对于想要成为JAVA程序员的朋友来说,了解JAVA...
Web前端程序员简历模板 Java程序员简历模板 C/C++程序员简历模板 NodeJS程序员简历模板 架构师简历模板 通用程序员简历模板PHP程序员简历模板 iOS程序员简历模板 Android程序员简历模板 Web前端程序员简历模板 Java...
《Java Web程序设计任务教程》是一本专注于Java Web开发实践的书籍,由中国工信出版社出版,由传智播客旗下的高端教育品牌“黑马程序员”精心编著。这本书旨在帮助读者掌握Java Web开发的核心技术和实践方法,通过一...
Java程序员之路是一个涵盖广泛的主题,它涉及到一个人从零基础学习Java编程语言,逐渐掌握核心技术,直至成为精通JSP(Java Server Pages)的专业编程人员的全过程。在这个过程中,开发者需要掌握一系列的技术栈和...
黑马程序员WEB03-JS篇笔记.pdf
2016-2017年度WEB程序员必备技能.pdf2016-2017年度WEB程序员必备技能.pdf2016-2017年度WEB程序员必备技能.pdf
这个项目的核心是创建一个个性化且富有创意的求婚网站,利用程序员的专业技能为心爱的人打造一个难忘的惊喜。 首先,我们来探讨一下网页设计的基本元素。网页设计不仅需要美观的界面,还需要良好的用户体验。在这个...
Java Web 是一种用于构建动态网站和企业级应用程序的技术,它结合了Java语言的强大功能和Web开发的灵活性。本笔记基于黑马程序员的课程内容,全面覆盖了Java Web的基础知识,包括前端开发技术如HTML、CSS、...
【标题】:“互联网程序员web简历网页模板下载”指的是提供了一个专为互联网行业的程序员设计的Web简历模板,这个模板适用于前端工程师、设计师等职业,旨在帮助他们创建专业且具有吸引力的在线简历。 【描述】:...
【标题】"php100-100PHP程序员的学习之路和未来职业规划.rar" 提供了一个关于PHP程序员学习和职业发展的主题。这个压缩包很可能包含一系列资源,旨在帮助初学者或有经验的PHP开发者更好地规划他们的学习路径,并对...
在这个实例中,“紫色背景恋爱计时”是一个程序员为表达情感而设计的应用或小程序,它使用了浪漫的紫色背景,给人一种梦幻且温馨的感觉,同时通过计时功能,让回忆和期待交织在一起。 首先,我们要理解这个应用的...
"web程序员开发全套手册"是一个综合性的资源集合,旨在为开发者提供全面的指导和支持。这个169M的压缩包包含了多种语言和技术的开发手册,包括Java、PHP和Vue等,这些都是Web开发领域广泛应用的语言和框架。 首先,...
作为刚刚学习java web的同学,有没有想过发给他或她一个网址,打开后就是一份惊喜,学会做一个烂漫的程序员,这个一个表白的web程序,背景是由爱心和表白文字组成,然后是照片不同的旋转,首先是进入一个"小姐姐,可以做...
【标题】"WEB程序员简易开发工具包"是一个专门为WEB开发者设计的实用资源集合,它包含了在日常编程过程中可能需要的一些基础工具。这个工具包旨在简化开发流程,提高工作效率。 【描述】开发人员在构建WEB应用时,...
【WEB程序员个人简历模板.doc】是一个关于WEB程序员的求职简历,从中我们可以提炼出以下几个关键的知识点: 1. **基本信息**:求职者为男性,出生于1981年12月23日,本科学历,毕业于**科技大学,专业是信息与计算...
Java 程序员的成长之路是一个长期的过程,需要不断学习和实践。本文将从初识 Java 到成为一名熟练的 Java 开发者,整个过程中需要掌握的知识点和技能。 首先,需要掌握 Java 的基础知识,包括操作对象、if 和 for ...
最后,"META-INF"是另一个Java Web相关的目录,通常包含项目的元数据。 抽奖程序的核心功能包括: 1. **动画效果**:为了增加用户体验和娱乐性,抽奖过程通常会有动画效果。这可能通过JavaScript的DOM操作和CSS3...