疯狂Java实训营创始人李刚:畅谈编程人生

十多年的软件开发从业经验、疯狂软件教育中心教学总监、疯狂Java实训营创始人、疯狂Java体系原创图书作者李刚老师从今天开始,坐镇CSDN社区问答栏目的第十三期,届时会接受广大网友的提问,欢迎各位网友前来与谢老师一起畅谈编程人生。

李刚老师将交流程序员入行、心态、技能等方面内容,以一个十多年“老程序员”的经历向大家敞开心扉,分享一个“老程序员”职业生涯的快乐,总结程序员职业的前途、未来。

疯狂Java实训营创始人、疯狂Java体系原创图书作者李刚

李刚(微博),十多年的软件开发从业经验,疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系原创图书作者。广东技术师范学院计算机科学系的兼职副教授。培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。

国内著名高端IT技术作家,已出版《疯狂Java讲义》、《疯狂Android讲义》、《轻量级JavaEE企业应用实战》、《疯狂iOS讲义(上)(下)》、《疯狂Ajax讲义》、《疯狂XML讲义》、《经典JavaEE企业应用实战》、《Struts2.x权威指南》、《疯狂HTML5/CSS3/JavaScript讲义》等著作。其中疯狂Java体系图书均已沉淀多年、赢得极高的市场认同、多次重印成为超级畅销图书,并被多所“985”、“211”高校选作教材,部分图书已被翻译成繁体中文版、授权到台湾地区。

十多年“老程序员”的李刚老师与你畅谈Java编程人生,以下是李刚对编程人生理解和看法,更多精彩还请关注CSDN社区问答栏目的第十三期。

我对IT的理解

从人类文明的发展历史来看,人类文明发展史,本质上就是一部IT发展史,此处的IT指广义的IT:Information &Technology,人类从结绳记事开始,已经意识到信息重要性,因此人类采用采用“结绳”这种记录信息的技术;后来古代中国出现了甲骨文,但由于龟甲难得,因此只有堪称“神谕”的文字才能得以记载、保存下来;然后开始出现了铭刻在青铜器上金文,同样只能记录极少、及其珍贵的文字。

为了寻找能更好、能记录更多信息的技术,中外先贤孜孜以求,他们陆续发现了竹简、兽皮等载体——所以直到今天,在西方世界中,羊皮卷都代表了伟大先贤的智慧和则学。

直到后来,中国人发明了纸,这种方便携带、而且造价便宜的信息技术,也是中华文明开始大放异彩:汉赋、唐诗、宋词、元曲、明清小说,这些文明需要记录的信息量越来越大,而且需要广大普通民众的参与——这都是因为纸的推动,而纸,就是当时最为先进的IT技术,也是中华文明得以发展、屹立于世界文明之巅的秘密。

培根说,知识就是力量。知识,这个词除了可用knowledge表示之外,也可用information表示,因此完全可以说:信息就是力量。信息是易逝的、需要传承的,而信息技术的根本目的就是让人类的知识薪火相传。中国古代留下的浩如烟海的文学典籍,但在医学、玄学、自然科学……等学科上则保守的多,“传男不传女、传内不传外”等门户囿限极大地限制中华文明的传承。对于当代中国人而言,实该以此为鉴,应积极传播心得,分享信息。

今天,狭义的IT则指的是以计算机、网络为信息的记录载体,今天的IT技术不仅能快速记录海量信息、支持快速检索,而且能以电的速度,实时同步到地球的每个角落,最新的IT技术成就了美国的今天,正如纸张成就了古代中国的卓尔不群。无论哪个民族、哪个国家,掌握了最新的信息技术,就可以屹立于世界之巅。

软件行业,既是广大软件从业者赖以谋生的行业,也是华夏民族复兴的关键行业。软件开发,应该是成为软件从业者的兴趣,也应该成为软件从业者的生活习惯。当然,没有人天生对什么事情感兴趣。即使是玩游戏,也要有人带、有人教,才能学会。对于年轻人来说,刚开始接触一个事物时,不管是否喜欢,先不要排斥它,扎扎实实做上一段时间,等真正明白自己在做什么,然后才能得到正确的结论。

软件开发,是对现实世界的信息化过程的模拟、重建。开发一个程序,实际是创造一个或大或小的“模拟世界”。在这个过程中,程序员享受着“创造”的乐趣,程序员沉醉在他所创造“模拟世界”里:疯狂地设计、疯狂地编码实现。实现过程不断地遇到问题,然后解决它;不断地发现程序的缺陷,然后重新设计、修复它——这个过程本身就是一种享受。一旦完全沉浸到编程世界里,程序员是“物我两忘”的,眼中看到的、心中想到的,只有他正在创造的“模拟世界”。

对于许多年轻人而言,如何培养编程的兴趣可能是一个问题,许多年轻人开始可能抱着极大的热情准备投入软件开发,但会在学习、工作过程中会有大量问题扑面而来,许多年轻人可能就会放弃,因此对于有经验的知识传播者而言,不应该满足于炫耀自己的知识、技能,而应该致力于如何帮助学习者,尽可能通俗、简单地把知识传播出去,这样才会对年轻人有切实的帮助,疯狂Java体系、疯狂iOS体系图书秉承这条原则,希望带给软件行业从业者切实有用的帮助。

除此之外,软件开发者也需要调整自己的心态,不要梦想一蹴而就,罗马不是一日建成的。在软件开发行业,表面上的毫不费力,背后一定十分努力。只要不断坚持学习、积累,就一定如春园之草,不见其长,日有所增。不论是学习过程、还是开发过程,都应该学会享受:享受点滴的改进,如同享受沿途的风景。定期重构从前的项目,就像总结过往的岁月。结果虽然值得关注,细节更需要把握,就像生命是一个过程。

对个人而言,软件行业是一个“进可攻、退可守”的行业:遇到志同道合的朋友、资金不太紧张时,能“大胆向前”,创业一次,这就是一次伟大的经历。无论成败,经历才是享受;一无所有时,至少还有编程。

软件行业,作为21世纪最朝阳的行业,从少数人参与的科学计算时代,到普通人接触的单机软件时代,再到互联网时代,直到今天的移动互联网,与普通人生活联系得越来越紧密。

我的编程人生

我在大学学习的第一门编程语言就是FORTRAN(不知道现在大学是否还教这门语言),这门语言就是专门科学和工程计算而设计的,就是早期软件行业:曲高和寡,大部分普通人并不知道,也意识不到软件行业会发展到与每个人息息相关。

当我开始用VisualFoxPro、VB等工具开发开发一些工具软件换钱的时候,各种单机游戏、单机系统软件已经开始走近普通人:《大富翁》、《明星三缺一》……等游戏让普通人感受了电脑、软件吸引力;此时各行各业的已经急不可耐地掀起了“ERP”热,大量私营企业主已经开始感受到软件管理的便捷和魅力。

互联网时代、移动互联网时代,则成就了普通大众的狂欢盛宴。时至今日,街头无处不见的“低头族”、“拇指族”,显示了软件行业的强大魔力。大量软件巨头、无数草根创业者,正在这片领域杀伐征战:一个软件公司倒下去,千千万万个软件公司会站起来。

软件开发的现状及未来

有人可能会问:软件研发能力会过剩吗?软件开发人才会饱和吗?我的回答是:绝对不会。除非出现一种更先进、更未来的行业。软件,现在已经成为、或即将成为基本的生活驱动力,且不论已经广泛普及的游戏、电商行业所需的软件人才会逐年递增,而且大量传统行业、工具正向“智能化”方向发展(“物联网”、“智能家居”也是目前热门词),不管哪种智能化,一定要有软件的支撑,由此可见,软件行业依然处于高速爆炸期:软件的存在形式、运行平台可能会变化,但软件行业的前景无限远大。

另外一个不容忽视的问题:软件行业确实承受着巨大的压力,这种压力既有来自外界的压力,也有来自程序员自身的压力。

谈程序员的抱怨、缺乏运动、加班和压力等

对于大部分草根出身的程序员而言,如果选择在公司从事开发,则有来自公司管理层、客户的压力,由于软件本身的复杂度,另外加上来自客户的压力,开发周期的压力,以及软件工程管理的各种不规范,这些都会带给普通开发者必须面对的困扰。具体来说,软件工程师经常抱怨的问题有:长时间坐在电脑面前编码,缺乏运动;长期高强度的脑力劳动,导致疲惫;不定期的加班,生活缺乏规律……

关于上面这些抱怨,既是心态问题,也是习惯问题,首先必须从心态上认识到:这世界上任何一种工作都是辛苦的、都有必须承受的工作压力——所有光鲜的成就,都有背后的辛酸和汗水。就像一部电影中的台词:“年轻的时候总想知道沙漠那边有什么,走过去发现其实什么也没有,除了沙漠还是沙漠。”如果年轻人能早一天明白这个道理,他会更加欣然地接受自己的职业。

至于提到软件工程师缺乏运动,这其实是一个生活习惯问题——不管工作多忙,我们总可以抽出一个小时去做运动,选择一个适合自己的运动,将它变成生活习惯就好了。年轻时候,总以工作忙作为借口,我同样很少运动。现在人到中年,开始学会改变自己,逐渐培养健康的生活习惯,现在我每天能坚持跑步4~5千米,其实现在我的工作比以前更多,只是个人的习惯变了。时下很多年轻人,下班之后,看电视有时间,玩游戏有时间、甚至打麻将也有时间,反而运动就没时间——这显然就是生活习惯导致的,而绝非软件开发职业占据了他所有的时间。

至于说到加班问题,则可从两方面来解决:

一方面软件工程师要提高自己的能力:提高编码效率和排错效率,这样可以最大限度地保证开发效率,尽量在工作时间解决工作问题,试想一个小小错误就调试、耽搁很长时间,那自然就导致了后面的加班啰;

另一方面则需要学会沟通,学会与上司、管理者确认模块的开发周期,而不是盲目地顺从。

程序员自身的压力则来自于软件行业的高速发展:迄今为止,软件行业是实际上发展最快的行业,短短几十年,软件行业已经经历了传统的科学计算时代、单机软件时代、互联网时代,目前正处于移动互联网时代,接下来物联网、智能家具时代即将来临,这种飞速发展带来的是各种开发语言、各种新技术层出不穷,令人眼花缭乱,而软件工程师则需要不断地更新自己的知识,这种压力确实是软件工程师无法回避的客观存在。既然无法回避,那就不如直面这种压力,只不过调整一下看法即可。首先要我们要意识到,正因为软件行业是一个朝阳行业,具有勃勃生机,自然就会衍生大量的新东西,这些新东西就需要软件工程师积极探索;相反,如果一个行业日语没落,自然也就没有新东西产生了。其次,探索新知识的过程中,无需给自己太大的压力,“吾生也有涯,而知也无涯”,我们只要看准自己的兴趣,每天坚持留给自己2个小时左右的学习时间,积十年寒暑之功,自然就能做到“望尽天涯路”。

友情提醒:李刚老师从今天开始,坐镇CSDN社区问答栏目的第十三期,届时会接受广大网友的提问,欢迎各位网友前来与谢老师一起畅谈编程人生。

李刚老师将交流程序员入行、心态、技能等方面内容,以一个十多年“老程序员”的经历向大家敞开心扉,分享一个“老程序员”职业生涯的快乐,总结程序员职业的前途、未来。

参与活动请点击【社区问答第十三期:李刚——畅谈编程人生】。

社区问答访谈上期回顾:

专访谢宇:拒绝做程序员“砖工”

专访关东升:学习Swift语言,迎接iOS8时代

更多精彩内容,请点击社区问答查看。

昨晚多几分钟的准备,今天少几小时的麻烦。

疯狂Java实训营创始人李刚:畅谈编程人生

相关文章:

你感兴趣的文章:

标签云: