① 有部电影中有个瘸腿的出租车司机绑架了女孩子
对自己的职业不满意是人之常情。有一些职业,特别能引发劳心劳力﹑没有前途没人爱的自我认同,从而被归为屌丝职业。从程序员到搬砖工,这些职业不光在现在存在着,在未来也会存在。如果你正好拥有一份屌丝职业,不要自暴自弃,且看这些屌丝职业是如何大翻身,成为英雄甚至救世主的——当然是在科幻片里。 程序员 翻身难度:★★★★ 在某财经研究数据发布的一份“中国屌丝群体的行业分布调查”中,程序员的屌丝自我认同度不负众望名列榜首。虽然这个调查有不科学的地方,仅供参考(人家搬砖的根本不上网),不过“程序猿”身为屌丝职业的中流砥柱这个事实是无可争议的。 《黑客帝国》 在电影《黑客帝国》里,因迟到被老板威胁炒鱿鱼的程序员尼奥,那时还叫安德森,又接连着被人追杀,被人“放盅”,还疑似被人用低端骗术呼来骗去,最后证明,那只是成为救世主的试炼。尼奥凭借程序员的悟性,迅速接受了任何一个头脑正常的人都不能接受的世界观,还悟出了突破母体规则的方法。这下不但翻了身,还能学有所用,获得升职技能,妹子也有了,可谓是最幸福的翻身了。在电影《独立日》里,程序员也大大风光了一把,虽然这成为电影的最大bug所在。程序员炮制了一个地球病毒感染了外星人的电脑主机,破解了防护罩。 学生 翻身难度:★ 《蜘蛛侠》 学生是所有职业中最容易遇见奇迹的,因为他们什么都相信。从《变形金刚》里的高中生萨姆,到《蜘蛛侠》里的高中生彼得·帕克,这些走狗屎运的学生们担当了各种科幻片的主角。如果你是一个学生,想翻身的话,你只要保持天真爱幻想的本性就行了,然后就等待吧,等待着坏蛋从天而降,等待着超能力或神奇小伙伴从天而降。由于被蜘蛛咬而具有超能力的高中生,对抗由于吸入毒气而具有超能力的邪恶科学家诺曼,他们真是什么都信啊。 服务员 翻身难度:★★★★ 从《终结者》到《终结者2》 不要觉得服务员低声下气没气场更不可能有前途。当你看了《终结者》中跟人合租公寓、上班打卡迟到、被小朋友欺负还不敢吭声的服务员莎拉·康纳,是怎么蜕变为《终结者2》中的女悍将,然后又怎么衍生出自己的剧集的,你就不敢随便小看一个端菜的小服务员。渺小的人物更知道为生存去做什么,一旦翻起身就是惊天动地。 保安 翻身难度:★★★ 《生化危机》 你一定听过不少保安考上名校的励志故事,其实还能更励志一点。《生化危机》的主角爱丽丝是一个公司保安,她不光要防着撒泼找碴的,要防着商业间谍(没防住),在危机时刻还要能防……丧尸。身为一个保安你要能打,非常的能打,从一个小小的保安打到绝对主角。至于有没有美腿,这根本不重要。那些看到美女被丧尸追还有心情欣赏美腿的人,在生化危机到来的时候一定会变成丧尸的。 出租车司机 翻身难度:★★ 《第五元素》 《第五元素》里有个出租车司机,他有一天接住了一个从天上掉下来的穿得很少的美女。当你接住了一个身份和片名一样的美女,你就该知道好运气找上你了。赶紧地,不顾一切送她去她要去的地方,告诉她地球人是很棒很值得拯救的。我才不会告诉你这个出租车司机是退役特工呢。 搞艺术青年 翻身难度:★★★★ 《云图》 搞艺术青年罗伯特·弗罗比舍忤逆了家庭,交了男朋友,住在廉租房里,够落魄了吧。他终于找到一份为音乐大师记录曲谱的工作,受到半本旅行日记的启发,创作出了恢宏壮阔的《云图六重奏》。当你写出一部和片名《云图》一样的作品,你也该知道你翻身了,虽然后来你了。一部作品串连了六个时空的毁灭与重生,兼济天下能兼济到时间轴里,也算是搞艺术青年的最高荣耀了。搞艺术,要有用生命去搞的觉悟。 油井工人 翻身难度:★★★ 《世界末日》(《绝世天劫》) 一个陨石要撞地球了,钻油井的工头和他的下属临危受命接受美国航空航天局的高强度训练,以期一夜之间从打井工人变成救世英雄,最后他们做到了,用核弹炸掉了陨石。《世界末日》(又译《绝世天劫》)讲述了一个油井工人到太空里打井的故事。不管你干着多面朝黄土的工作,你也要练就一身随时能上天的本领。 犯人 翻身难度:★★★ 《星际传奇》 《十二猴子》里,囚犯科尔被派回1990年去阻止毁灭世界的病毒灾难。《星际传奇》里,重刑犯雷迪克在三体行星上勇斗怪物,并且打出了两部续集。犯人总是置之地而后生的,不管拯救世界还是拯救美女什么的都是小菜一碟。如果你是一个犯人……请你好好改造。 科幻作家 翻身难度:★★★★★ 《2012》 在讲述世界末日的世界末日大片《2012》里,科幻作家杰克逊在世界末日来临时,凭借惊人的想象力拯救了家人,和他的滞销书一起登上了延续人类文明的大船。科幻作家想要翻身,除非是世界末日。
② 如何用各种编程语言杀死一条龙
噢,我昨天刚完成这个任务,具体如下:
有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…下面是各种语言如何想办法将公主从巨龙手中营救出来的。java – 赶到那里,找到巨龙,开发出一套由多个功能层组成的恶龙歼灭框架,写几篇关于这种框架的文章…但巨龙并没有被消灭掉。.NET – 赶到哪里,看到了Java程序员的做法,完全拷贝过来,试图去杀掉巨龙,但巨龙把他吃掉了。C – 赶到那里,对巨龙不屑一顾,举起剑,砍掉巨龙的头,找到公主…把公主晾在一边,去看看有没有最新提交的linux内核代码。C++ – 先打造出一根针,然后在上面添加各种功能特征,直到最后汇聚成一把复杂的剑,这把剑复杂到只有他能理解其中的功能…杀死龙,但他过桥时遇到了麻烦,因为内存溢出了。COBOL – 赶到那里,看到巨龙,认为自己太老了,杀不死这条巨龙,营救不出公主,于是离开了。Pascal – 他花10年时间开发出一套巨龙歼灭系统…当战斗开始时,他发现这套系统只能关住蜥蜴。VB – 使用各种组件开发出一套巨龙毁灭武器,他跳到巨龙的后面,在最关键的时刻,他发现这种武器只能在雨夜里工作…PL/SQL – 分析其它屠龙者的数据,创建出具有多维数据、n向关系的数据表模型、OLAP,花15年时间分析这些数据…当结果出来时,公主已经变成了同性恋者。Ruby – 盛大出征,号称自己不管做什么都是最强的,当面对巨龙,他亮出了一张画有他杀死一条瘸腿的巨龙的图片…巨龙懒洋洋的吃掉了他。Smalltalk – 赶到那里,分析巨龙和公主,转身走了,它们是次要问题。shell – 创造一个超级强大的灭龙武器…但当面对龙的时刻,他忘了如何使用它。Assembler – 他认为他的方法是正确的,而且是最高效的…但他把D写成了A,杀死了公主。Fortran – 赶到那里,开发出来一套4万5千行的解决方案,杀死巨龙,与公主见了面…但公主认为他是懦夫,反而倾心于高富帅的Java程序员。FOX PRO – 开发出一套杀龙系统。外表看起来华丽好用,但实际内部到处补丁,所以,当开始运行这套杀龙武器时,他才发现忘了给DBF加索引。Lisp:这是一位着名的游侠骑士,在跟很多的屠龙专家交谈后,将他们的技巧模型化,他开发出这套系统,当开始运行系统时,他认识到,他少写了一个括号。HTML: 用各种着名的杀龙的剑拼装成一个网页,但他忽视了W3C标准。在跟龙相遇的时刻,他发现他的代码跟浏览器不兼容,于是他变成了赤手空拳。巨龙把他当成小甜点吃了。Prolog: 他认为需要有一件杀龙的武器。于是在一个有182014件武器的目录里搜索。截止到公主死的那一年,他的成就包括:通晓了各种武器的制造方法,从索引A开始:Atomic Bombs, Anti-Air Weapons, Arches, Ammunition, Axes…PHP: 开发出一个web网页,当这个运行时,它能通过一个Apache服务器从一个MySQL武器数据库里检索出武器消灭掉$dragon。然而,他在DELETE语句里忘了写WHERE语句,于是杀死了公主,巨龙,女侍,女巫,魔法师,和程序员自己。JavaScript: 他创建了脚本网页,当网页运行时,脚本会除掉巨龙,他一加载页面,一些美丽的少女就向他抛来了鲜花,发出来尖叫。不幸的是,他没有认真分析这个类似蜥蜴的怪物——也被称作Mozilla,他得到的只是让控制台里填满了error信息,《Book of Mozilla》记载了他是如何被吞掉的。Basic:他开发出来一种能够杀死纸龙的武器,但不论他如何改进,他发现,他都不能杀死一只比卷毛狮子狗大的龙。Matlab: 他写出循环语句能计算出用巨箭射死巨龙的弹道。这个程序运行的完美无瑕疵。现在需要的是人能有这样大的力量按这种精度发射这支巨箭。
③ 如何用各种编程语言杀死一条龙
这篇有趣的文章编译自一篇西班牙博客。
有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
下面是各种语言如何想办法将公主从巨龙手中营救出来的。
Java – 赶到那里,找到巨龙,开发出一套由多个功能层组成的恶龙歼灭框架,写几篇关于这种框架的文章…但巨龙并没有被消灭掉。
.NET – 赶到哪里,看到了Java程序员的做法,完全拷贝过来,试图去杀掉巨龙,但巨龙把他吃掉了。
C - 赶到那里,对巨龙不屑一顾,举起剑,砍掉巨龙的头,找到公主…把公主晾在一边,去看看有没有最新提交的linux内核代码。
C++ – 先打造出一根针,然后在上面添加各种功能特征,直到最后汇聚成一把复杂的剑,这把剑复杂到只有他能理解其中的功能…杀死龙,但他过桥时遇到了麻烦,因为内存溢出了。
COBOL - 赶到那里,看到巨龙,认为自己太老了,杀不死这条巨龙,营救不出公主,于是离开了。
Pascal - 他花10年时间开发出一套巨龙歼灭系统…当战斗开始时,他发现这套系统只能关住蜥蜴。
VB - 使用各种组件开发出一套巨龙毁灭武器,他跳到巨龙的后面,在最关键的时刻,他发现这种武器只能在雨夜里工作…
PL/SQL – 分析其它屠龙者的数据,创建出具有多维数据、n向关系的数据表模型、OLAP,花15年时间分析这些数据…当结果出来时,公主已经变成了同性恋者。
Ruby - 盛大出征,号称自己不管做什么都是最强的,当面对巨龙,他亮出了一张画有他杀死一条瘸腿的巨龙的图片…巨龙懒洋洋的吃掉了他。
Smalltalk - 赶到那里,分析巨龙和公主,转身走了,它们是次要问题。
shell - 创造一个超级强大的灭龙武器…但当面对龙的时刻,他忘了如何使用它。
Assembler - 他认为他的方法是正确的,而且是最高效的…但他把D写成了A,杀死了公主。
Fortran - 赶到那里,开发出来一套4万5千行的解决方案,杀死巨龙,与公主见了面…但公主认为他是懦夫,反而倾心于高富帅的Java程序员。
FOX PRO - 开发出一套杀龙系统。外表看起来华丽好用,但实际内部到处补丁,所以,当开始运行这套杀龙武器时,他才发现忘了给DBF加索引。
Lisp:这是一位着名的游侠骑士,在跟很多的屠龙专家交谈后,将他们的技巧模型化,他开发出这套系统,当开始运行系统时,他认识到,他少写了一个括号。
HTML: 用各种着名的杀龙的剑拼装成一个网页,但他忽视了W3C标准。在跟龙相遇的时刻,他发现他的代码跟浏览器不兼容,于是他变成了赤手空拳。巨龙把他当成小甜点吃了。
Prolog: 他认为需要有一件杀龙的武器。于是在一个有182014件武器的目录里搜索。截止到公主死的那一年,他的成就包括:通晓了各种武器的制造方法,从索引A开始:Atomic Bombs, Anti-Air Weapons, Arches, Ammunition, Axes…
PHP: 开发出一个web网页,当这个运行时,它能通过一个Apache服务器从一个MySQL武器数据库里检索出武器消灭掉$dragon。然而,他在DELETE语句里忘了写WHERE语句,于是杀死了公主,巨龙,女侍,女巫,魔法师,和程序员自己。
JavaScript: 他创建了脚本网页,当网页运行时,脚本会除掉巨龙,他一加载页面,一些美丽的少女就向他抛来了鲜花,发出来尖叫。不幸的是,他没有认真分析这个类似蜥蜴的怪物——也被称作Mozilla,他得到的只是让控制台里填满了error信息,《Book of Mozilla》记载了他是如何被吞掉的。
Basic:他开发出来一种能够杀死纸龙的武器,但不论他如何改进,他发现,他都不能杀死一只比卷毛狮子狗大的龙。
Matlab: 他写出循环语句能计算出用巨箭射死巨龙的弹道。这个程序运行的完美无瑕疵。现在需要的是人能有这样大的力量按这种精度发射这支巨箭。
④ 我是一名java程序员,想在几年内成为一个架构师,我应该怎么做看什么书注重些什么东西,请高手指点一二
小蔡:我感悟到的就是因为对软件行业不了解,所以缺少一根结实的线将自己与梦想有序地串联起来,因此很难深刻体会到目标在自己掌控下挣扎时的力量。那么,通 常程序员如何对自
小蔡:“我感悟到的就是因为对软件行业不了解,所以缺少一根结实的线将自己与梦想有序地串联起来,因此很难深刻体会到目标在自己掌控下挣扎时的力量。那么,通 常程序员如何对自己的角色做分析呢?”
锐哥顺手在纸上画了几个图,说:“确切地说,你应该问程序员通常的发展路线是怎样 的?你们可以看看这个图(如图3-1所示),当一个初步的职业规划方案已经成型时,如果制订者目前已在一个软件公司工作,那么,对他来说进一步的提升非常 重要。首先要做的则是进行角色分析,反思一下这个职业环境对个人的要求和期望是什么,如何使自己在单位中脱颖而出。
图3-1
“通常,软件技术人员的职业发展有几个选择:专注于技术,成为技术专家;转型到技术 型销售、技术支持等;随着技术成长,从技术性管理到高级管理。这是大家都看得清楚的方向,也都在向这些方向的金字塔尖努力。
“就像烹饪鱼一样,每一个阶段目标都需要你进行角色分析,找出这一角色需要的‘配 料’,当你注意收集技术、素养等相关‘配料’后,就会成功烹饪出你所需要的目标鱼。前提是你一定要了解自己的特点和优势,就好比黄瓜种子是不可能培育成西 瓜一样。”
锐哥继续说:“这归根结底,都是以技术为基础。在扎实的技术基础上(高级软件工程 师),如果有着比较强的抽象设计能力,又打算专注于技术开发,架构师是个好的选择;如果性格更适合做管理,情商能力突出,技术型管理应该是下一步的方向。 这种发展规划属于‘瘸腿走路’的类型,各有侧重主攻发展的职业方向,也是目前一般程序员普遍采用的发展路线规划。”
小蔡认真地看着图说:“程序员职业规划还有这么多学问!我看到每个角色配合的学历, 那么学历和认证证书真的很重要吗?还有必要花钱参加社会技术培训吗?”
锐哥:“决胜点在于长期的点滴积累,认证证书、成绩、丰富的经历是求职的表面文章, 在目前软件行业里不是很看中这个,真正的‘内功’是需要规划的。至于培训,我倒是很建议直接加入软件公司,你就会学到很多实际的东西。不过,学历教育虽然 在职业生涯里不是主要的,但是随着职位的提升却有很重要的意义,能辅助拓展你的职业发展空间,而不是以此为阻碍从而失去更多的机会。 ”
“已经工作两年以上的程序员可以有几种基本的职业规划:技术专家、软件架构师、实施 顾问或销售。其中程序员最主要的发展方向是资深技术专家,无论是Java、.NET还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师。尽管 架构师的职位可以工作一辈子,待遇也非常好,对于科班出身的程序员最为适合,但这种工作职位非常有限,因为在中国目前的IT行业,架构师需要的条件比较复 杂,而且需求量也比较少,这也是我国软件行业走向国际并有待成熟的因素之一。”
大熊指着另外一张图说:“这个是综合才能型发展路线图(如图3-2所示),我听说目 前国内缺乏的是管理能力和专业知识技能并驾齐驱的IT人才。是不是指着这种复合型人才?”
图3-2
锐哥说:“是的,特别是懂得运用目标管理技术的项目管理人才,既掌握核心技术又有全局掌控能 力的项目管理人才,非常难找。我建议对于大多数人来说,首先是要专,只有在技术方向上做得比较深入,才能适当做工作调整,把自己转变为某个领域的专家。
“然后,根据自己的情况,决定自己做软件架构师还是高级的顾问销售,另外一部分人可 能就会走向管理,这和个人性格与情商有关。软件优秀的管理者都必须懂得技术,掌握核心技能的人才向管理岗位转型有很大的优势,因而提升管理能力成了转型的 关键。譬如,当唐骏还是微软一名普通程序员时,就从公司发展的角度考虑,向老板提议开发了中文版Windows,最终使他从几万名工程师中脱颖而出,成为 部门经理。正如他所说,虽然是程序员,但自己不能只把自己当程序员,你可以为老板和公司着想。
“调查研究后,带着解决方案去找老板,就会得到老板的重视和信任,所以一定要增强工 作主动性和参与性。无论是软件开发还是项目管理,国内员工大多只是做好份内事或完成交派任务,很少能主动发现问题。其实,只有拥有更高眼界,才能谋取大发 展。
“总之,程序员要根据本身的基本素质、技术能力选择开发层次,由低到高,逐步发展。 也是一名程序员本身具备相应素质的循序渐进的发展轨迹,包括很强的技术背景和综合管理才能等素养,这也就是所谓‘两条腿走路’的职业规划发展路线。”
小蔡:“原来技术转型还有这么多学问,受益匪浅。我打个比方,如果只是一名程序员, 但仍需要站在项目经理的层面上看自己的工作,这样才能更好地合作,融入团队中,并且锻炼自己的思想境界,从而提高自己。”
锐哥:“小蔡说得是。另外,在未来发展上首先确定自己的发展方向和研究方向,在学习 技术的同时还要为以后做准备,做好以后的技术转型。广度和深度是相对的,先广还是先深实质上从某种意义来说取决你的工作性质,如果你是从事单一工作的,多 半你会短暂先深,因为这是你立足的根本;而如果你选择的职业是综合性的,比如管理、讲师等,那么你必然要先有广度才可以,但一段时间后,你都要转入深度, 只有你在某一方面或领域有一定的深度后,你才能继续寻求广度,否则,你将什么都会,但什么都不精,这样的人在市场上是最难以立足的。”
大熊:“这张程序员发展路线图挺有意思,国际人才型(如图3-3所示),一定要求外 语口语流利吧?”
图3-3
锐哥:“是的。如果说前面‘两条腿走路’要求的综合能力成分多,随着国际化相互联系 越来越紧密,那么国际化人才可以说是当前更为便捷的程序员职业规划发展之路。目前,国际化软件项目经理是人才市场上炙手可热的人才,有丰富经验、外语口语 好的软件项目经理是抢手的香饽饽,供不应求,薪水自然也是水涨船高。最重要的是,一个优秀的项目经理可以在这个岗位上长久工作下去,并且有向高层进一步提 升的可能。外语好、技术又好的程序员发展路线很广,是目前国内外软件企业需要的热点人才。”
小蔡:“锐哥跟我们说了这么多,感觉对程序员、对软件行业的整体发展路线清晰了很 多,但是我该用什么方法进行选择呢?”
锐哥:“要想正确地选择,你得必须充分地了解、分析自己,你要学会SWOT职业规划 自我分析法。”
总结与提升
成功与失败的区别在于,成功者选择了正确而失败者选择了错误。因此,我们常常能够看 到一些天赋相差无几的人,由于选择了不同的方向,人生却迥然相异。选择正确的方向尤为重要,希望不同的程序员根据自己不同的优势和特点能画出适合自己的程 序员职业规划图。
软件开发也是有层次区别的,比如,按层次从高到低通常可分为:
系统开发:如操作系统、数据库系统、服务器系统开发;
专业开发:如网络安全、游戏、人工智能开发;
应用开发:如MIS、BI、ERP等系统开发;
普通开发:如网站、简单应用系统开发。
不同的层次,难度系数不一样,对技术要求、个人素质要求也不一样。要成为系统开发 者、专业开发者、高级应用开发者,需要有很高的专业知识和很强的逻辑、抽象、空间思维能力,这就要求具有很好的基础,同时具有较大的提升潜力。而要成为简 单开发者和初级应用开发者则相对容易些,正是这样,才使很多人走上了软件开发的道路。