过了而立之年的软件从业者,对职业生涯的思考开始变多。决定开博,敦促自己学习技术,并且能够记录整理自己心中的偶尔闪现的一些想法。
我认为最关键的还是解决问题的能力,在现在的社会,应当是在特定问题域中,见过很多已知问题,并能够较快较好的解决出现的新问题。我自己想到的一些职业莫非如此。厨师,是为了解决口味的问题。医生,是为了解决健康的问题,律师,是为了解决法律问题,等等。
如厨师(好吧,我算潜在的吃货),如何不断改良菜品,以迎合特定人群的口味,使得餐馆的消费群体能够稳定增长,这样一个厨师,对于这个餐馆来说,才是不可或缺的,在这一类菜系的业界中,就属于稀缺资源,身价自然越来越高。反过来想,如果是一个软件虚拟厨师,永远能够很精准的重复特定的工序,并且能够精确的雕刻,精确的切片,精确的控制温度,这个厨师会在哪儿?我看还是M记和KFC比较适合,再者,这个软件长时间不升版(假定它没有自学习的功能),当KFC开始有老北京鸡肉卷,开始有嫩牛五方,开始有现磨豆浆(豆浆粉)和油条的时候,等等,M记呢?M记没有倒掉,是因为有麦旋风、有巨无霸,还有最近的饭(还没吃过,吃过的可以点评下,谢谢),有再有一个厨师,混进这一行之后,不但没有改进,反而越来越差,结局应该是很明显的。
而任何一个职业领域,都是一个金字塔式的结构,天赋决定了在最大付出,最好机会下,能够上升到的最大可能高度,这个因素,是没法改变的。天赋有高有低,这个是毋庸回避的,各行各业,要想上升到金字塔顶端,个人认为,天赋的作用是占据主导地位的(各行各业可能略有不同),这也是我曾经说,勤能补拙其实是一张大饼的原因。执着,才能够在这个金字塔上不断的上升。但是在顶尖之下,执着的因素就变的非常重要,如果能够持之以恒的在一个领域里面修炼,相信最终一定能够到达相当的高度。武侠小说里面的范例很多,就不一一列举了。小说作者这种设定方法,也是最大程度的贴近读者,否则就成了现在的YY小说,资源和天赋无限,其实很怀疑这种生活的真实幸福感,扯远了。
在这些拙劣的隐喻之后,到底想说什么呢?首先对于软件开发工程师的职业来说,进入的门槛不算太高,一台电脑,几本书or培训班or网络资源,就能让一个人写出程序,随着编程语言和编程环境的进步,一个人在很短的时间就能拖出一个看起来还像那么回事的“软件”。特别是受过高等教育的人群,很容易就会轻视软件开发工作,因为在他们的印象中,软件大约是等同于hello,world的。而这也是软件从业人员如同过江之鲫一般,而真正能够耐心磨练软件技艺,同时能够在自己投身的行业中深耕细作者,寥寥。
在这个遵从摩尔定律的行业里面,一面大家在梦想(幻想)成为比尔盖茨,成为扎克伯格,一面却感叹这个行业需要不断的学习,学习强度很大,让我觉得真的是很矛盾。
个人认为,除去操作系统、编译器(这两者需要对硬件有所理解)、设备控制软件、娱乐软件(游戏)以外,软件都是为某一个行业提供更强大的生产力,在这些
行业中从业的软件人员,必须要对行业本身有一定的认识,否则,无法为客户提高生产力。
作为一个跨过而立之年的软件从业者,对软件编程人员的发展道路,个人认为大体有三条:
1. 持续提升自身编程能力和解决问题的能力,在面对不同的问题域时,能够使用最有效的技术(语言和方法)解决问题,使得效率最大化。效率是生存的根本,对个人和公司
都是如此。
2. 学习所在行业知识,在不丢弃软件知识的前提下,掌握行业知识,成为行业专家,找到软件与行业的最佳结合点,优化整体系统的效率。
3. 进入管理层或开展咨询,学习管理知识,软件人员的系统思考能力通常都颇为不错,转行做管理和咨询是具备先天优势的。
创业者往往在第2 3类人群中产生。那么为什么大家觉得程序员就是吃青春饭的职业呢?因为人才缺乏及薪酬结构的问题,导致很多软件人员早早转入2 3两类。顺便多说一句,我相信以后程序员的薪酬结构会有改变,top coder的薪酬还会上涨,因为纵使有再多的方法论,软件行业不能回避的一个事实是,这是一个需要缜密逻辑思考能力的行业,生产的产品完全是复杂的思维模型(的实现)。不同的实现者,效率上的差距远不止现在薪水上的差距。只有改变了这个,一些适合做软件的聪明人才不用被迫从事2 3类工作,就如同我相信,只有当医生的收入来源于诊断和治疗方案,而不是药物的时候,医疗水平才能得到真正的提高一样。很多领域的知识和技能还不具备数字化的可能,在这之前,请善待这些领域的高手,早有大牛说过没有银弹,大家却还在不停的寻找流程和方法上的永动机。
说到核心技术,如果理解了我们本质上是问题解决者之后,就不难理解,原本是没有所谓核心技术的。在这个行业里,值钱的是思考和实现的能力,而不是一堆静态的代码和技术,掌握了 B C D C++ C# JAVA PERL RUBY PYTHON 本身并不能给你核心技术,掌握了驱动开发,内核架构本身也不能给你核心技术,真正的核心技术在于如何能够在问题出现时(需求出现时),恰当的组合技术,形成效率最优的方案。
持续学习和努力工作,只有这样,才是对自己真正负责的投资。也只有这样,才能够不断度过职业危机。提升自己的核心竞争力。每个人最终在金字塔上都会有自己的位置,造物者是公平的,在没有盖棺论定之前,一切都有可能。就像《射雕英雄传》里面的成吉思汗,临死前,说人生最终不过2尺见方的土地,可是在没有最终结果的时候,每个人都应当尽自己最大的努力,发挥出自己最大的天赋,找到自己心目中理想的位置。
现在尽管现在大有软件驱动地球之势,但作为软件开发工程师个体来讲,生存环境并没有明显改善,反而有越来越恶劣的感觉(因新技术推出和凋亡的速度实在太快)。老外貌似也有职业危机,我曾经读过一个老外的文章,就是讲程序员不如医生和律师,并且他们还有一个很郁闷的事情,就是很多工作被外包到中国和印度了......呵呵。
职业危机,不知道是不是每种职业都会有,还是仅限于软件开发工程师,我想应该是每种职业都有吧。很早我们就知道,没有人是不可替代的,社会、组织为何需要一个人?我认为最关键的还是解决问题的能力,在现在的社会,应当是在特定问题域中,见过很多已知问题,并能够较快较好的解决出现的新问题。我自己想到的一些职业莫非如此。厨师,是为了解决口味的问题。医生,是为了解决健康的问题,律师,是为了解决法律问题,等等。
如厨师(好吧,我算潜在的吃货),如何不断改良菜品,以迎合特定人群的口味,使得餐馆的消费群体能够稳定增长,这样一个厨师,对于这个餐馆来说,才是不可或缺的,在这一类菜系的业界中,就属于稀缺资源,身价自然越来越高。反过来想,如果是一个软件虚拟厨师,永远能够很精准的重复特定的工序,并且能够精确的雕刻,精确的切片,精确的控制温度,这个厨师会在哪儿?我看还是M记和KFC比较适合,再者,这个软件长时间不升版(假定它没有自学习的功能),当KFC开始有老北京鸡肉卷,开始有嫩牛五方,开始有现磨豆浆(豆浆粉)和油条的时候,等等,M记呢?M记没有倒掉,是因为有麦旋风、有巨无霸,还有最近的饭(还没吃过,吃过的可以点评下,谢谢),有再有一个厨师,混进这一行之后,不但没有改进,反而越来越差,结局应该是很明显的。
而任何一个职业领域,都是一个金字塔式的结构,天赋决定了在最大付出,最好机会下,能够上升到的最大可能高度,这个因素,是没法改变的。天赋有高有低,这个是毋庸回避的,各行各业,要想上升到金字塔顶端,个人认为,天赋的作用是占据主导地位的(各行各业可能略有不同),这也是我曾经说,勤能补拙其实是一张大饼的原因。执着,才能够在这个金字塔上不断的上升。但是在顶尖之下,执着的因素就变的非常重要,如果能够持之以恒的在一个领域里面修炼,相信最终一定能够到达相当的高度。武侠小说里面的范例很多,就不一一列举了。小说作者这种设定方法,也是最大程度的贴近读者,否则就成了现在的YY小说,资源和天赋无限,其实很怀疑这种生活的真实幸福感,扯远了。
在这些拙劣的隐喻之后,到底想说什么呢?首先对于软件开发工程师的职业来说,进入的门槛不算太高,一台电脑,几本书or培训班or网络资源,就能让一个人写出程序,随着编程语言和编程环境的进步,一个人在很短的时间就能拖出一个看起来还像那么回事的“软件”。特别是受过高等教育的人群,很容易就会轻视软件开发工作,因为在他们的印象中,软件大约是等同于hello,world的。而这也是软件从业人员如同过江之鲫一般,而真正能够耐心磨练软件技艺,同时能够在自己投身的行业中深耕细作者,寥寥。
在这个遵从摩尔定律的行业里面,一面大家在梦想(幻想)成为比尔盖茨,成为扎克伯格,一面却感叹这个行业需要不断的学习,学习强度很大,让我觉得真的是很矛盾。
个人认为,除去操作系统、编译器(这两者需要对硬件有所理解)、设备控制软件、娱乐软件(游戏)以外,软件都是为某一个行业提供更强大的生产力,在这些
行业中从业的软件人员,必须要对行业本身有一定的认识,否则,无法为客户提高生产力。
作为一个跨过而立之年的软件从业者,对软件编程人员的发展道路,个人认为大体有三条:
1. 持续提升自身编程能力和解决问题的能力,在面对不同的问题域时,能够使用最有效的技术(语言和方法)解决问题,使得效率最大化。效率是生存的根本,对个人和公司
都是如此。
2. 学习所在行业知识,在不丢弃软件知识的前提下,掌握行业知识,成为行业专家,找到软件与行业的最佳结合点,优化整体系统的效率。
3. 进入管理层或开展咨询,学习管理知识,软件人员的系统思考能力通常都颇为不错,转行做管理和咨询是具备先天优势的。
创业者往往在第2 3类人群中产生。那么为什么大家觉得程序员就是吃青春饭的职业呢?因为人才缺乏及薪酬结构的问题,导致很多软件人员早早转入2 3两类。顺便多说一句,我相信以后程序员的薪酬结构会有改变,top coder的薪酬还会上涨,因为纵使有再多的方法论,软件行业不能回避的一个事实是,这是一个需要缜密逻辑思考能力的行业,生产的产品完全是复杂的思维模型(的实现)。不同的实现者,效率上的差距远不止现在薪水上的差距。只有改变了这个,一些适合做软件的聪明人才不用被迫从事2 3类工作,就如同我相信,只有当医生的收入来源于诊断和治疗方案,而不是药物的时候,医疗水平才能得到真正的提高一样。很多领域的知识和技能还不具备数字化的可能,在这之前,请善待这些领域的高手,早有大牛说过没有银弹,大家却还在不停的寻找流程和方法上的永动机。
说到核心技术,如果理解了我们本质上是问题解决者之后,就不难理解,原本是没有所谓核心技术的。在这个行业里,值钱的是思考和实现的能力,而不是一堆静态的代码和技术,掌握了 B C D C++ C# JAVA PERL RUBY PYTHON 本身并不能给你核心技术,掌握了驱动开发,内核架构本身也不能给你核心技术,真正的核心技术在于如何能够在问题出现时(需求出现时),恰当的组合技术,形成效率最优的方案。
持续学习和努力工作,只有这样,才是对自己真正负责的投资。也只有这样,才能够不断度过职业危机。提升自己的核心竞争力。每个人最终在金字塔上都会有自己的位置,造物者是公平的,在没有盖棺论定之前,一切都有可能。就像《射雕英雄传》里面的成吉思汗,临死前,说人生最终不过2尺见方的土地,可是在没有最终结果的时候,每个人都应当尽自己最大的努力,发挥出自己最大的天赋,找到自己心目中理想的位置。