4年前的今天恰巧是我第一次踏入企业成为一名职业程序员的日子。短短的4年在很多前辈面前还是“小朋友”的档次,但自觉对软件开发这个行当还是有了一些自己的理解和感悟,在这里很想和大家分享。其中难免有主观的感受,欢迎有不同的意见。
程序员这个行当究竟有没有前(钱)途,是不是一个吃青春饭的行当?这个问题我无数次的在不同的场合听到和看到人们谈起过。我认为这要看你怎么理解“程序员”这个称谓的含义。我的定义就是从事第一线的软件设计和开发的人员,无论你是为一家企业服务还是自己干私活,抑或是纯属爱好的自由软件作者,你都可以被冠以这样的称谓。对于更严厉一些的资深人士而言,只有技能达到一定程度后才有资格被冠以“程序员”的称谓,这有时候让我想起中世纪欧洲的骑士称号,不仅仅要诸多条件还要看出身的。当然现代的程序员称号并不是那么崇高,但也不卑微,软件从业者是360行中的普通一行而已。有那么多的程序员,可水平高下相差很多,有很多文章以各种标准对程序员的档次分类,我就不多说了。就好像搞篮球的,你说有没有前(钱)途呢,很显然你只是上过少体校,出来在社区少年队里当个教练,看不出太大前途;你能进入省级队打CBA联赛了,前途好很多了;最后你达到去NBA的要求了,那世人皆知前(钱)途远大了。那么程序员这个行当还不是一样吗?它和任何行业一样都是金字塔型,处在底端的总是有种岌岌可危的感觉。对于真正对这一行有兴趣并有志于此的人,要做的是扎实地提高自己的水平,摆脱底端的危机感。
也许很多人会说,在目前的中国没有软件业的NBA,很多企业无法保障程序员基本的生活必需,使得从业人员无法安心提高自己的水平。并且很多企业从事的开发是技术含量较低的重复性开发,干得只是苦力,无法在工作中提高。这话说得没错,这也是为什么很多程序员向往去外企工作的原因,在那里提供了相对宽松的环境,以利于程序员持续提高自己。而在现在这样的相对恶劣的大环境下,个人究竟怎样选择?如果坚持选择了这一行又如何提高呢?
1,追寻内心真实的想法,如果你是高考“不幸”踏入了这个不感兴趣的专业,现在为了对得起大学的学费来做这个行业,那还是劝你想清楚,别到头来对不起自己。如果你是听说做软件赚钱多,那也许你没听全,是水平到一定程度才会赚钱多。也许你认为学软件开发好像比学电机,机械啥的简单又没危险,只要一台电脑,不用担心高压电,也不必整天满手机油。总之你最好确认你是喜欢这种为只有躯壳的硬件设计灵魂的工作,你才应该选择它。
2,有了兴趣,你自然会明白去探寻软件技术的本质。就好像小时候第一次得到一块电子手表,迫不及待想拆开看里面的构造那样。软件技术的本质分布在大学时那些不太受欢迎的基础课上,诸如:微机原理,操作系统,编译原理,数据结构。更远一些的可以追述到你中学时代学过的那些数学,主要是逻辑证明。如果在你现在的工作上还看不出这些基础知识的作用,甚至之前也从没体会到过,那一种可能是你还在底端挣扎,不得其门而入,另一种可能是你已经告别了程序员的生涯,虽然你从未成为过真正的程序员。
3,找一个人作为目标,努力去达到和超过他。在我刚入行时,一位从西安过来给我们培训的工程师,当时已经有了7,8年经验,我们财务告诉我他的月收入有2万多。在当时的我看来还是很有震动的。在我当时简单的概念里,我想在我能达到他的技术和收入水平之前,我没有理由说遇到什么玻璃天花板,也不应该退出。我到底要看看,在这一行能做到什么程度。到现在,我虽然在这两方面依旧没有超过这个目标,但我确实也没有看到有什么拦在我的头上阻止我继续发展,我依旧看到广阔的天空。
4,找一个志同道合的伙伴。一个人的探索常常是寂寞的,有时候也比较低效。能够和一个或几个水平相近的同事经常交流是提高的方法之一。现在有些人的工作常常是单独埋头开发,因为种种原因,并没有合适的人可以交流,我很能理解这样的处境。我的建议是尽早离开这样的工作,到一个有更多开发人员的公司去。然后学会有效的从别人那儿学习。
5,常常思考你所学习的技术的用处。软件技术只有最终服务于人才有它的价值。很多人在争论哪种编成语言更流行的时候,其实更应该思考的是怎样的软件应用可以为用户、为客户、为公司、为老板,为自己创造价值。
6,学会表达的技巧。程序员大都是偏内向的性格,又整天和电脑打交道,有的程序员会觉得自己越来越呆板和不擅交流。程序员也是一个完整的人,需要交流,需要向同事,老板和客户表达自己的思想。有人觉得学习沟通技巧是为了转做销售或者管理,这根本不对,一个好的程序员既然可以以漂亮的代码表达自己的设计理念,就可以写漂亮的报告,做漂亮的presentation。你应该有自信把自己的工作成果,以合适的不让人反感的方式让每一个同事和你老板知道。
国内的软件从业环境正在不断地改善,很多报纸上写未来几年对软件人才的需求有多少多少,虽然我不必相信这些数字,但是中国软件行业对高层次软件人才的需求是实实在在得不断的增加着。而那些高级人才正是从现在千千万万的初级程序员中涌现的。这里我想到另一个也许是成为那么多人选择这一行的理由:程序员在中国被认为是相对公平的职业,可以以自身的能力,而非出生,来实现自我价值。既然这样,不要再怨天尤人,找到自己的目标,坚定地朝它迈进,哪怕最后实现得不是全部,但沿途一定会顺便采摘到丰盛的成果。
程序员这个行当究竟有没有前(钱)途,是不是一个吃青春饭的行当?这个问题我无数次的在不同的场合听到和看到人们谈起过。我认为这要看你怎么理解“程序员”这个称谓的含义。我的定义就是从事第一线的软件设计和开发的人员,无论你是为一家企业服务还是自己干私活,抑或是纯属爱好的自由软件作者,你都可以被冠以这样的称谓。对于更严厉一些的资深人士而言,只有技能达到一定程度后才有资格被冠以“程序员”的称谓,这有时候让我想起中世纪欧洲的骑士称号,不仅仅要诸多条件还要看出身的。当然现代的程序员称号并不是那么崇高,但也不卑微,软件从业者是360行中的普通一行而已。有那么多的程序员,可水平高下相差很多,有很多文章以各种标准对程序员的档次分类,我就不多说了。就好像搞篮球的,你说有没有前(钱)途呢,很显然你只是上过少体校,出来在社区少年队里当个教练,看不出太大前途;你能进入省级队打CBA联赛了,前途好很多了;最后你达到去NBA的要求了,那世人皆知前(钱)途远大了。那么程序员这个行当还不是一样吗?它和任何行业一样都是金字塔型,处在底端的总是有种岌岌可危的感觉。对于真正对这一行有兴趣并有志于此的人,要做的是扎实地提高自己的水平,摆脱底端的危机感。
也许很多人会说,在目前的中国没有软件业的NBA,很多企业无法保障程序员基本的生活必需,使得从业人员无法安心提高自己的水平。并且很多企业从事的开发是技术含量较低的重复性开发,干得只是苦力,无法在工作中提高。这话说得没错,这也是为什么很多程序员向往去外企工作的原因,在那里提供了相对宽松的环境,以利于程序员持续提高自己。而在现在这样的相对恶劣的大环境下,个人究竟怎样选择?如果坚持选择了这一行又如何提高呢?
1,追寻内心真实的想法,如果你是高考“不幸”踏入了这个不感兴趣的专业,现在为了对得起大学的学费来做这个行业,那还是劝你想清楚,别到头来对不起自己。如果你是听说做软件赚钱多,那也许你没听全,是水平到一定程度才会赚钱多。也许你认为学软件开发好像比学电机,机械啥的简单又没危险,只要一台电脑,不用担心高压电,也不必整天满手机油。总之你最好确认你是喜欢这种为只有躯壳的硬件设计灵魂的工作,你才应该选择它。
2,有了兴趣,你自然会明白去探寻软件技术的本质。就好像小时候第一次得到一块电子手表,迫不及待想拆开看里面的构造那样。软件技术的本质分布在大学时那些不太受欢迎的基础课上,诸如:微机原理,操作系统,编译原理,数据结构。更远一些的可以追述到你中学时代学过的那些数学,主要是逻辑证明。如果在你现在的工作上还看不出这些基础知识的作用,甚至之前也从没体会到过,那一种可能是你还在底端挣扎,不得其门而入,另一种可能是你已经告别了程序员的生涯,虽然你从未成为过真正的程序员。
3,找一个人作为目标,努力去达到和超过他。在我刚入行时,一位从西安过来给我们培训的工程师,当时已经有了7,8年经验,我们财务告诉我他的月收入有2万多。在当时的我看来还是很有震动的。在我当时简单的概念里,我想在我能达到他的技术和收入水平之前,我没有理由说遇到什么玻璃天花板,也不应该退出。我到底要看看,在这一行能做到什么程度。到现在,我虽然在这两方面依旧没有超过这个目标,但我确实也没有看到有什么拦在我的头上阻止我继续发展,我依旧看到广阔的天空。
4,找一个志同道合的伙伴。一个人的探索常常是寂寞的,有时候也比较低效。能够和一个或几个水平相近的同事经常交流是提高的方法之一。现在有些人的工作常常是单独埋头开发,因为种种原因,并没有合适的人可以交流,我很能理解这样的处境。我的建议是尽早离开这样的工作,到一个有更多开发人员的公司去。然后学会有效的从别人那儿学习。
5,常常思考你所学习的技术的用处。软件技术只有最终服务于人才有它的价值。很多人在争论哪种编成语言更流行的时候,其实更应该思考的是怎样的软件应用可以为用户、为客户、为公司、为老板,为自己创造价值。
6,学会表达的技巧。程序员大都是偏内向的性格,又整天和电脑打交道,有的程序员会觉得自己越来越呆板和不擅交流。程序员也是一个完整的人,需要交流,需要向同事,老板和客户表达自己的思想。有人觉得学习沟通技巧是为了转做销售或者管理,这根本不对,一个好的程序员既然可以以漂亮的代码表达自己的设计理念,就可以写漂亮的报告,做漂亮的presentation。你应该有自信把自己的工作成果,以合适的不让人反感的方式让每一个同事和你老板知道。
国内的软件从业环境正在不断地改善,很多报纸上写未来几年对软件人才的需求有多少多少,虽然我不必相信这些数字,但是中国软件行业对高层次软件人才的需求是实实在在得不断的增加着。而那些高级人才正是从现在千千万万的初级程序员中涌现的。这里我想到另一个也许是成为那么多人选择这一行的理由:程序员在中国被认为是相对公平的职业,可以以自身的能力,而非出生,来实现自我价值。既然这样,不要再怨天尤人,找到自己的目标,坚定地朝它迈进,哪怕最后实现得不是全部,但沿途一定会顺便采摘到丰盛的成果。