在现实生活中许多人由于缺少机会而不能成为程序员。不少人是半路出家,而人过而立之年,要想的,要考虑的东西多了:家庭,孩子,健康,股票,老人,房子,车子,地位有一位朋友,国内名牌大学物理本科,来美国读了物理博士。他在博士期间喜欢上编程,上过计算机系的几门课。九八年博士毕业时计算机工作火热,就找了个程序员的工作,从网页做起。我看得出他是很想做一个优秀的程序员。这些年我们一直保持联系。可惜的是他为生活所迫,年年在找工作(他一直做的是合同工,收入会高些,家里上有老,下有小).而博士学位在很多时候都是over qualify(资历过高).这两年经济不好,更是动不动被解雇。最近他终于找到了一份稳定的工作--在银行里做全职的DBA(数据库管理员).他人显得老了,语气也变了,只求有一份安稳的工作。他对编程的爱好依旧,但始终处于外围阶段,不是网页编程,就是DBA,只有业余时间学习一些。NET.还有一次,在2003年,Job market正不好。我参加休斯敦中国人西区教会组织的Job Fair,目的是让教会里的人将工作机会互通有无。我当时因为朋友邀请去看了看。参加的人基本上全是在做或找程序员工作的。好几个年龄相当,还没找到工作的在和我聊起来时听说我是国内计算机系本科毕业的,一直在做程序员,都很踊跃,要和我讨论一些问题,并留下电子邮件地址。看到他们羡慕的神情,当时我还没觉得什么,可现在每想到此,都有些震撼。很多人如果得到了机会可能会成为很好的程序员。然而世事往往如此:得到的人不珍惜,珍惜的人得不到。

想入门而没有入门的有很多:学有专长,由于各种各样的原因做上了程序员,做长了发现也许要做很久,于是试图研究并喜欢它,却发现这很难。难就难在看不清自己的方向。我认识不少程序员,工作很努力,有抱负,业余时间也学习,考证书,可是方向换来换去,今天学Java,明天学。NET,后天又打算考 MBA,到outsourcing的消息一传来,又灰心丧气。究其原因,数理化和许多其它的工程职业都已成型,研究方向明确,很多人通过学习会入迷而入门,知道自己的奋斗目标。软件工程行业才只有几十年的历史,作为一门科学还远不成熟,不能给程序员工作以明确指导。Microsoft的Visual Studio以及现在的。NET在大大提高编程效率的同时,也使得编程变得前所未有的容易。仅仅在编程上钻研不仅难以入门,而且在日新月异的技术面前会产生光阴易逝的困惑。

在美国,很多中国人去教会,而且其中不少成了忠实的信徒。我周围有不少朋友如此,所以由他们牵线参加了一些中国人教会的活动。我问他们信教后最大的感受是什么,答:平安喜乐。看得出真正的信徒是蒙福的。这是我所向往的生活。但我至今还没有信教,因为我在没有参加教会活动前早也有过那种感受。我知道信教不是唯一的途径,对不同的人会有不同的方式。早在春秋时代的孔子说过朝闻道,夕死可矣.这里的道,我相信和真正的信徒的信仰是殊路同归。而我们人生,不管是从事什么职业,能闻道,也就夕死可矣.所以我一直在寻找在程序员这个职业里的道,也就是入门

一日我读到了冯友兰先生的《中国哲学简史》,在网上广泛流传的电子版本。如获至宝。我第一次知道了原来我们的哲学家们也在研究这个道.不过他们研究的是与职业无关的,更为广泛意义上的为人之道。在书中,冯先生提到有各种各样的人,每种人都可能达到那种人最高的成就;而对所有的人来说,他们都可以达作为一个人最高的成就,为圣人,为领悟道的人,为哲学的人。而中国哲学所研究的就是怎样可以成为一个圣人,达到天人合一。在书的最后他指出,中国人可以不信教的理由是我们有自己的哲学,我们不需要信仰,因为我们是哲学的。我至今深表赞同。基督教义让信徒体会平安喜乐,只需无条件接受即可。中国哲学则需要你思考去体会。两者的功用有异曲同工之妙。

三百六十行,行行出状元。无论一个人从事何种职业,都可以在工作中加深自己对人生的理解,都可以在对事业的探索中去领悟这个天人合一。我一直相信,入门的人是得道的,无论他的天人合一是来自人的本性,还是信仰或哲学。在程序员这个职业里感受这个道,不同的人会有不同的理解,得由自己来体会。程序员不妨一读Fred Brooks的The Mythical Man-Month一书。作者是大师级人物,将软件工程的各个方向深入浅出地描述一遍。如果你已有几年在公司里当程序员的经验,读后或许会有拨云见日的感觉。其实我在美国读研时也上过软件工程一课,真没学到些什么,所以一直忽略了这门知识。现在计算机教育仍需要改善,有些课程设置并不合理,无论是国内和国外。像软件工程课,给没有几年程序员经历的人来说只会是纸上谈兵,而对有经验的人却往往是对症下药,醍醐灌顶。编程只是程序员工作的一小部分,而当你能对整个行业能有一个全盘的了解,你自然会找到自己的兴趣所在。

当你找到兴趣所在,无论是中国的哲学和智慧,对教的信仰,或是你内心深处对世界的体会,都会给你以信心和指导,不再会有疑惑。

扩展阅读

寻找自己的程序员之路[2]


在技术的选择上,是敏捷敏捷再敏捷!数据库尽量db4o,前台尽量sl/flex(面向最终客户的就不能选择sl).工具软件尽量用C#开发。尽量只做自己擅长的,不做别人擅长的。

我有一个特点,就是会一大票语言,能用来干活的就有C,C++,C#,Java,Python,matlab,actionscript,javascript,tcl.去上班的话,这是缺点--泛而不精。自己干的话,这反而成了优点了。因为我接的项目,很多属于偏门项目,这些项目往往都有开源的实现,但这种实现,要么只有C版本,要么只有Matlab的,要么只有Java的,会这些语言可以最大范围的参考,降低技术风险。缺点在不同环境下可以成为优点。

第五关:团队

通过前面的不断切入,形成了一系列案例,也积累了良好的信用,业务量是翻番的在长,最后自己的时间成了瓶颈。前两天小试了一把,谈了5个项目(2个flex,2个图像处理,那2个flex项目的核心也是图像处理),4个有合作意向,自己干不完,没办法,只能选择1个。

这就到了第五关了--一个人干不过来,得团队了。

但我前面说过,本地是人才沙漠。我的观点是宁缺勿滥,仔细挑选,从头培养。俺的挑选标准是:有激情、品德要好、数学基础要好、有自学能力。目前在带徒弟,看成长情况怎么样。

不着急,用不着太多的人,培养团队的同时开始摸索渠道。那个也得时间。

第六关:渠道

我最终想做的是产品。而在偏远地区做产品,想做成功,渠道和推广非常重要,不然的话,就算做出来了,也只能拿小头。在国内,还要考虑盗版因素。我现在只是有大致的产品方向,做也是玩票性质的,目的是摸索渠道和商业模式,想摸摸国内的和国外的两种市场。国外的只有试探性的探索。国内的,嘿嘿,前面的开发已经形成了一系列的推广工具了。

第七关:产品

做了这么多年项目,累死了。最终的目的还是产品和平台。我的征途是星辰大海(搞技术的,也得有技术的浪漫)目标是5-10年后,互联网3D化之后的虚拟现实(切入点?俺已有一个初步考虑的切入点).短期(5年内)是开发一些工具类型的产品和推广平台。

我是学材料的,在纳米材料界有一个名言--Build The World Atom By Atom.那么,在可见的未来,虚拟世界就是--Build The World Bit By Bit. 协议、图像、机器视觉、3D、语音,正是构成虚拟世界的因素,前面的种种,都是为这个做铺垫。未来的制造业将是分子制造,于是Atom和Bit将会碰撞--Build The World Atom By Atom, Bit By Bit!

但还是那句话,只做小,不做大,做点做线不做面。

什么程序员30岁之后转行之类的鬼话。俺到今年,才开始感觉进入了程序开发的大门,写程序时开始有一种美感,有那种几十人骑着战马冲击奥山大桥的壮烈。做一辈子的技术又何妨。

上述路径相当保守,指导思想不是胜利,而是避免失败。无恃其不来,恃吾有以待之,无恃其不攻,恃吾有所不可攻也。

寻找自己的程序员之路


职业规划就是对职业生涯乃至人生进行持续的系统的计划的过程。一个完整的职业规划由职业定位、目标设定和通道设计三个要素构成。

每个人的幸福都是不一样的。我喜欢田园式的生活,在人多的地方总是不舒服。

对我来说,最幸福莫过于在工作中做着自己喜欢的事情。闲暇时,在能够眺望江边的地方,端着一杯红酒,一个人细细的喝。

为了这种生活方式,离开了北京,来到家乡所在的这个三线城市,寻找自己的道路。经过一年的探索,颇有心得。

大体上,我对自己走过的路和即将走的路划分为七个阶段:自信=意志=布局=切入点=团队=渠道=产品

第一关:自信

先说说我这个城市。这是一个什么样的城市呢?依山傍水,适合生活。几乎没有IT,也没几个真正的程序员。一周上班六天,平均工资1000元上下。程序员的工资在1000-3000左右。要在这个城市探出自己的道路,首要的一点就是自信。没有自信,活不下去。这个城市的年轻人大多非常迷茫,对自己的前途缺乏信心,有冲劲的都往大城市里跑了。回来之初,我也迷茫了很久,迷茫的时候,就在WOW里泡着,观察那个世界。在WOW里,作为一个萨满,傻乎乎的扛着个盾晃晃荡荡的升级。当时赚钱,也就是打打元素之火每天赚个几十G.后来,不断的观察不断的总结,成长为日入近万G的大奸商。哦,俺要走的也正是这一条路子。生活总是要继续的,在WOW上也学不到更多的东西了,就离开了WOW,开始了一个人的征途。

支持这条路子的核心力量就是自信。在小城市里不缺乏聪明的人,这些聪明的人大部分却并不优秀,因为他们缺乏自信,缺乏自己走路的勇气,从而甘于平庸。没有自信,走不出这第一步。

第二关:意志

在小城市做IT,相当锻炼人意志。这里就像一片沙漠。市场,没有。程序员,没有。找人说话也找不到。曾经组织过次聚会,包括我在内到了2个人。想要向下走,没有相当强的意志是走不下去的。彷徨,彷徨,最终还是坚持走了下来。

第三关:布局

所谓布局就是决定做什么事和不做什么事。经过相当久的考虑,我决定远离Web开发,远离本地市场,甚至远离数据库。做Web开发和数据库开发的太多了,你呆在偏僻小地,做这些完全没有优势,做本地市场呢,又没客户资源,关系又比不上已经在本地深耕数年的小IT公司。于是宁可荒芜这些技能,也不趟这个混水。最后决定,人做我不做,人不做我做,在偏僻的地方,做外面的市场,做深入的开发,做点做线不做面。为什么呢?

(1)本地的工资摆在那里,做本地的就算做起来了,利润也不丰厚,还累死累活,要赚外面的钱,在本地花

(2)要赚外面的钱,如果做Web开发和数据库开发,根本无法和当地公司竞争

(3)所以只能做别人不做的,或者别人做不了的,做技术要求高的。而我恰恰有相当多的研发性项目开发和管理经验,正适合做这些。

(4)所要做的东西,必须通过网络可以展示,可以远程技术支持。

第四关:切入点

切入点是个很关键的东西,综合上面第三关所讨论的内容,结合自己的技术能力和技术经验,然后结合需求情况,最终我从协议分析这一块切入进去了。哦,不是外挂那种分析。从QQ协议,到MSN协议,到YMSG协议,当然,还有Http这个最简单的,从有参考资料的分析,到无参考资料的完全黑箱分析,到现在在某方面的协议分析已经达到世界领先水平了。从协议分析,切入到验证码识别,从验证码识别,切入到车牌识别,从车牌识别,切入到模式识别、图像处理和机器视觉,而模式识别结合前面的协议方面的工作又可切入进NLP,客服机器人,有这些为基础,我又想切入淘宝店铺工具(哦,还没时间做,并且目前也没找到一个好的切入点).因为对图像处理的了解,我现在又成功切入进Flex开发了。以上各点貌似很散,也是也挺集中,就是:协议分析与设计、机器智能和图像处理,这三者是相辅相承的。

寻找自己的程序员之路[1]


每个人的幸福都是不一样的。我喜欢田园式的生活,在人多的地方总是不舒服。

对我来说,最幸福莫过于在工作中做着自己喜欢的事情。闲暇时,在能够眺望江边的地方,端着一杯红酒,一个人细细的喝。

为了这种生活方式,离开了北京,来到家乡所在的这个三线城市,寻找自己的道路。经过一年的探索,颇有心得。

大体上,我对自己走过的路和即将走的路划分为七个阶段:自信=意志=布局=切入点=团队=渠道=产品

第一关:自信

先说说我这个城市。这是一个什么样的城市呢?依山傍水,适合生活。几乎没有IT,也没几个真正的程序员。一周上班六天,平均工资1000元上下。程序员的工资在1000-3000左右。要在这个城市探出自己的道路,首要的一点就是自信。没有自信,活不下去。这个城市的年轻人大多非常迷茫,对自己的前途缺乏信心,有冲劲的都往大城市里跑了。回来之初,我也迷茫了很久,迷茫的时候,就在WOW里泡着,观察那个世界。在WOW里,作为一个萨满,傻乎乎的扛着个盾晃晃荡荡的升级。当时赚钱,也就是打打元素之火每天赚个几十G.后来,不断的观察不断的总结,成长为日入近万G的大奸商。哦,俺要走的也正是这一条路子。生活总是要继续的,在WOW上也学不到更多的东西了,就离开了WOW,开始了一个人的征途。

支持这条路子的核心力量就是自信。在小城市里不缺乏聪明的人,这些聪明的人大部分却并不优秀,因为他们缺乏自信,缺乏自己走路的勇气,从而甘于平庸。没有自信,走不出这第一步。

第二关:意志

在小城市做IT,相当锻炼人意志。这里就像一片沙漠。市场,没有。程序员,没有。找人说话也找不到。曾经组织过次聚会,包括我在内到了2个人。想要向下走,没有相当强的意志是走不下去的。彷徨,彷徨,最终还是坚持走了下来。

第三关:布局

所谓布局就是决定做什么事和不做什么事。经过相当久的考虑,我决定远离Web开发,远离本地市场,甚至远离数据库。做Web开发和数据库开发的太多了,你呆在偏僻小地,做这些完全没有优势,做本地市场呢,又没客户资源,关系又比不上已经在本地深耕数年的小IT公司。于是宁可荒芜这些技能,也不趟这个混水。最后决定,人做我不做,人不做我做,在偏僻的地方,做外面的市场,做深入的开发,做点做线不做面。为什么呢?

(1)本地的工资摆在那里,做本地的就算做起来了,利润也不丰厚,还累死累活,要赚外面的钱,在本地花

(2)要赚外面的钱,如果做Web开发和数据库开发,根本无法和当地公司竞争

(3)所以只能做别人不做的,或者别人做不了的,做技术要求高的。而我恰恰有相当多的研发性项目开发和管理经验,正适合做这些。

(4)所要做的东西,必须通过网络可以展示,可以远程技术支持。

第四关:切入点

切入点是个很关键的东西,综合上面第三关所讨论的内容,结合自己的技术能力和技术经验,然后结合需求情况,最终我从协议分析这一块切入进去了。哦,不是外挂那种分析。从QQ协议,到MSN协议,到YMSG协议,当然,还有Http这个最简单的,从有参考资料的分析,到无参考资料的完全黑箱分析,到现在在某方面的协议分析已经达到世界领先水平了。从协议分析,切入到验证码识别,从验证码识别,切入到车牌识别,从车牌识别,切入到模式识别、图像处理和机器视觉,而模式识别结合前面的协议方面的工作又可切入进NLP,客服机器人,有这些为基础,我又想切入淘宝店铺工具(哦,还没时间做,并且目前也没找到一个好的切入点).因为对图像处理的了解,我现在又成功切入进Flex开发了。以上各点貌似很散,也是也挺集中,就是:协议分析与设计、机器智能和图像处理,这三者是相辅相承的。

程序员职业规划之我见


职业规划怎么写,相信很多朋友们对这个问题很感兴趣,下面给大家介绍一下。第一部分,前言即总论;第二部分,自我分析,包括业余爱好、性格、价值观、专业技能等;

如果把你的职业人生想象成为一个你正在开发的软件产品的生命周期,现在你的所有需求都已经明确(有车,有房,有钱,有公司等等),接下来我们就要开始为自己做职业规划了,在制定这个职业规划的时候,我们要重要的注意以下4个方面的内容,这个四个方面运用到整个人职业的生命周期中。

一、选择市场。

一定要谨慎的挑选你要关注的技术和商业领域。如何权衡风险和收益?

都是做软件开发,你究竟要做与硬件相关的还是与网络相关的?与手机相关的还是与汽车相关的?每一个分支都有专家和权威,你要确认自己想站在哪一个分支的顶点。在深圳很多程序员,为了生存,先入行再转行。程序员需要积累,面试官不喜欢一张白纸上满是编程理念的空头支票。

二、投资

做生意哪有不投资就赚钱的好事,你的知识和技术就是你这件生意的基础。所以你要在这两个方面合理的投资,时间,金钱。只知道在理论上使用VB或者Java已经远远不够了,那么在新的环境下,新的平台下,又有哪些新的技术你应该具备的呢?

三、执行力

用我老板的话来说单纯有技术出色的员工,并不能给公司带来利益。员工必须要有产出才行。有的时候一名优秀的员工产出远远不及一名普通的员工,反而有时候会让简单的事情变的一团糟糕,2分钟一个简单的算法,被花上2天时间提高0.001%的效率这种事情也是经常发生的。所以我们应该考虑的是能否创造最有利的价值而不是完美,

四、团队

程序员孤军奋战成不了大事。一个再优秀的程序员也完成不了整个windows操作系统的工作,虽然我见过一个人是可以独立完成破解windows的工作的。所以如果不想过于孤单和山寨,请找到一支正规军加入他们。

五、又是市场

你们肯定会说,你开始写循环了是吧?怎么又是市场?

一个人选对了市场,投资技术,有了回报,有了产出,有了自己的团队,恭喜你,你离出产品的日子不远了。但是你有没有考虑一下你的产品的市场,若是无人知晓,毫无用途,又怎么会有利润呢?你的成绩又怎么会被老板和同行认可呢?请记住:一个团队奋斗了1个月写出来一个:Helloworld!是赚不了钱的。

经营自己的程序生涯


这个问题很多人都想问,也都想知道标准答案。我这里没有答案,我跟其他人一样,也有困惑和迷惘。有时问自己:到底算不算个程序员?自己的程序员生涯到底如何继续走?这类问题有时真的很伤神,但不得不想。

把公司类型分为三种:

1、国内中小公司或创业型公司
2、腾讯,百度,盛大,阿里等已有一定规模的网络新贵
3、外企大公司

目前,也就是这三类比较典型。

那么程序员的选择呢?

应该说,能够做程序的,智商一般不会太差,这不是自夸吧?能够做好程序员的,要求就要高一些,这不仅仅是IQ,或者说单方面的技术能力或与团队成员相处的问题。而规划好自己的程序生涯,就是很不简单的一件事情了。

首先,区分一下概念:程序生涯不等于职业生涯。程序生涯的结束也远不是职业生涯的完结,很可能只是一个新的或更高的起点。这里我们只限定程序生涯。

一般人从学生时代起,开始接触程序,工作后,开始正式从事这种职业,外人称我们为程序员。当然,也有人是半路出家的,我身边有好多朋友都是,包括我也是半业余半专业的。一般会从Coder或Designer或DBA做起,慢慢掌握一到多方面的技能。慢慢地,工作两三年后,经验不缺了,水平提高 了,理解增加了,于是有更高的追求境界,这是再正常不过的选择了,天经地义。于是,换更好的工作,得更高的收入。再过几年,可能成家、买房、小孩教育一系 列问题也随之而来。这时候,麻烦可能来了。

高额的生活成本压力下,你不能再随心所欲地换工作,你必须要稳妥处理各种关系,让你的家人过得安稳、温馨。因为,你不再是孤身一人漂走江湖。在这个现实的社会中,什么才是你的正确选择呢?这时候,书本的知识、别人的经验都不管用了,因为,这是整个社会面临的新课题。

于是,很多人迫于生活压力,不得不选择第2类。当然也有人选择第3类。前提是要么你年轻,要么你具备丰富的项目管理经验、或者可替代的业务能力。

这之后,还是有绝大多数人一直在第1类公司进出。这里有个原因:从第2类、第3类公司出来到第一类公司淘金者,刚开始都会有一段蜜月期,公司委器重你的才华和经验,于是,你全力贡献,它全力消化。两三年后,三种结局:

一种是公司由于各种原因一直上不了台阶,你失望,老板绝望,你走人。
另一种你适应了这里的环境,公司也从你那里吸收了足够的养分,你被架空,被迫走人。
最理想的一种,你和老板一起突围,你的付出得到了应有的回报。这是万一中的万一。

在文中说了,我在看了一些职位的描述信息之后,发现经过两年半的创业生活以后,我已经难以适应大型外企的工作方式了。在那里,每个人都是一个螺丝钉,每个人都要在严谨的工作流程中做好螺丝钉的职责。而我,更希望在一个有挑战,并且在一定程度上发挥创造力的地方工作--没错,创造力,这是一个很现实的矛盾,你不适应了。于是,不得不再一次开始,开始新一轮的挣命,尽管每一轮过后,我们认为自己已经足够成熟。

如果人生可以回头,我想很多人都会有正确的规划,然而正如乔致庸所经历的尘缘苦短,叹人间路长,不能够容我细思量。这一路起来,充满着希望,又饱含着失望。在这无际的奋斗中,不知不觉我们鬓已霜。

绝大多数的人程序生涯不会超过十年,即使外部条件允许,你自己的身体有时也会不给你面子。在这有限的时光里,我们,究竟能做些什么呢?

邀月的建议:既然不能掌控大势,那么先修炼自身。经验也好,教训也罢,每一次的经历后,要有比较深入的反思,人最大的财富恰恰来源于此!不奢求能吃一堑长十智、百智,至少不要只吃堑不长智,如果人生吃过三、五次还不长进,可能上帝都会跟你急!

一个可行的法子是:一天一天过。是的,每天都问自己,每月问自己:我做了什么?我没做什么?我花多少时间在经营自己?

不要沉溺于菜场流连忘返,不要在扎堆的网游里不能自拔,问问自己:我有多少岁月可以虚度?也不要沉迷于代码中,多花点时间理清思绪,除了代码,我还欠缺什么?我的强势又是什么?想想自己的事业,一个可以让你为之奋斗一生的事业,如果有了,那就做吧,倾力而为吧!为什么不呢?

古人日三省其身。我辈愚钝,惟有勤勉,以待天机!

关于女生的程序员之路[2]


第二个提法,我觉得目前女性就业困难,关键还在女性自己。

目前大学里面有句话:干得好不如嫁得好!,我想大家都听说过。其实是人就有惰性,也有一些劣根性,都想找一些活少拿钱多的工作,舒舒服服地赚钱,这种思想,其实不管男人女人都有。我自己也有,呵呵。

关键是,社会是公平的,一分贡献,一分收获,哪有那么多不劳而获的事情。但现在的女生,我觉得普遍有点问题,都想走捷径,都想一次革命成功,目前大学校园中,傍大款的不少,很多女生一门心思嫁个好老公,认为这辈子就有靠了,不需要奋斗了。

因此,在求职市场上,很多女生不是找不到工作,是根本没有一心一意地去找,因为对女生而言,通常都有第二选择,可以靠家里,靠男朋友,等等。这种求职态度上的不坚决,其实无形中,已经给自己关闭了很多企业的大门。有个现象,同等条件的两名女生都面试,一名犹犹豫豫的,一名态度极其坚决,一定要拿到这份工作,通常都是后者获胜,因为企业认为这个人既然这么需要这份工作,那不管能力怎么样,进来后起码会拼命做事。

那我们再来比较男生和女生,就可以看出显著差异了,其实男生有时候也想靠,但是没得靠啊,反而,还有个女生在靠自己,自己还要撑起一片家庭,那么,你说男生求职拼命不?

但我还是得说,前面女生的这种思维是严重错误的,夫妻也是经济共同体,双方需要共同完成家庭建设,这样的家庭才稳定。一个女性,如果觉得职场艰难,就打退堂鼓,那,不管是不是程序员,其实我觉得她什么职位都找不到的。

这样还有潜在的恶果,现在有很多闪婚族,出了校门就结婚,我认为和女性的这种依赖思想有一定关系,但这样的婚姻,是不是稳定呢?

其实我不讲,大家都应该清楚,女性凭借个人的外貌实现魅力,男人更多的是凭个人的内涵和事业的成就实现魅力,这就决定了,一个女人,魅力最大的时候,是18~28这个年龄段,而男人恰好相反,一个男人最有魅力的时候,是35~45岁这个年龄段。这中间有落差。

一个女性,如果坚持以漂亮为本钱,早早地就嫁人,在家里相夫教子,那么,在她30多岁,年华老去的时候,情况就比较危险了。首先,男方逐渐进入事业巅峰,很多更为年轻漂亮的女性,会青睐这种男人,男人面临的诱惑在加大,其次,这个家庭,十几年其实都是男方一点点赚出来的,女方是享受者,不是建设者,在这个家庭里面渐渐就没有发言权,经济基础决定上层建筑,不要说对方爱你就会一辈子听你话,很多事会变的。

如果此时女性再不注意,试图通过控制经济等手段压制男人不会变心,或者采用跟踪,哭闹等极端方法,往往适得其反,最终导致男人离他而去。一旦出现这个问题,女性的问题就比较危险了,十几年没有上过班,自己的专业能力,恐怕仅仅剩下一张文凭了,知识都还给老师了,那她在社会上可以说没有任何竞争力可言。那么,她以后靠什么生存?

我的四年程序员之路


职业规划是对职业生涯乃至人生计划的过程,职业生涯规划的好坏可能将影响整个生命历程。感谢您阅读《我的四年程序员之路》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

经朋友的介绍,我进入一家外企。从程序员的角度来讲,这家企业还算不错。严格的代码管理,代码质量和性能被提到了很高的位置。我被分配到一个团队里面,作为其中的一员开发Java Web应用,做的项目全部是跟其它公司做集成。怕丢脸没面子,我上班时尽量多注意别人如何做。回到家中,就得开始死啃CVS, UML, Eclise 等平时项目中要用到的基础中的基础。最可恶的是我的项目中从来不用到数据库,我那一年半的实施经验屁用没有。公司的调试环境都是Linux,为了学习他,我家那台破机没被我少折腾,现在它正静静的躺在我妹妹的卧室,她说如果能修好,至少还可以上上QQ聊聊天。

一年下来,我的进步很大,软件开发中常用的那几个工具自然是不在话下,甚至还在有空时给别人做做类似Spring, AOP等等的培训,当然这些培训都是公司内部的。到了年底,我的Lead跟我进行了一次 One to One Talk, 他告诉我,我的技术水平不错,只是沟通能力有所欠缺。他说的话我很能理解,由于是一家外企我的US lead更喜欢用英文与我们交流。在Email和Yahoo用的全是英文。我在大学没有过四级,毕业之后一直都在跟政府打交道的小公司里面混,为了防止太丢作为一个中国人的脸,我尽量以最简短的方式回他的Yahoo消息, 至于Email, 能让别人帮着回的尽量让别人帮着回。

所以在第二年,我加强了对英语的学习,我发现英语学习所带来的好处不仅可以提高英语水平。从另一个角度来讲,我看代码的能力也慢慢得到了加强,不敢想像一个英语四级没过的人是怎么整天面对开源英文文档的。在语法能力得到加强的同时,我还报了口语的英语班,长时间的历练口语的水平也基本可以应对简单的交流。这一年,项目非常多,Java的,Ajax的, 一堆开源代码的参照与学习。这段时间, Ajax的企业应用越来越多,DWR, Dojo, Jquery, prototype 的选择也多。这段时间我所做的项目从前到后都有,做一个上传模块,有Ajax的Call Back调用,也有后端代码负责存储的 JCR 调用。汗流夹背,加班不断。顺便提一下,我从来都是8:30之前上班,但很少17:30准时下班。如果我能18:00准时出现在家门口,我老婆就会给我一个很大的拥抱,并惊讶的问我,今天没加班?是啊,在这个行业,加班不奇怪,奇怪的是居然不需要加班。

加班还在继续,现在,正在我进入这个行业的第四年。同时和我来到这个城市的我的妹妹已经是两家店面的老板娘了,我的N多同学都从销售变成了招聘销售人员的老板。在同学们的眼里,我还是那个大学里面与众不同,非要在计算机上写出一个自己的网页的怪人。写这篇文章并不是要鼓动你放弃自己现有的职业,我知道大部分的看客或许正是程序员。这只是我个人的一种感受,你的所想也许与我差之万里。程序员的生活终归是一天到晚在做设计写代码。一不小心便会有Bug的产生,无论你用多么先进的自动检测工具。程序员的生活依然是每天只有晚上的那么点时间陪家人和老婆,还要保证周末不需要加班,平时能早点回家。有人会说,那你应当向更高的层次发展。拜托,我的Manager每天看起来比我还忙。

每天的太阳都会升起,我的每一天起点都不一样,我有时在想,到底在哪一天太阳升起的时候,我的IT生活会稍有起色? 我的心里在问,不会是我要转行吧 ?

.Net程序员如何快速成长之我见[1]


在面试一些新程序员的时候,当问他为什么选择.net方向时,经常听到一些这样的回答:记得曾经我的老师对我们说,当你在开发语言和工具方面不知道怎么选择的时候,那么你只要跟着微软走就行了。所以最终他选择了.net。我想大家都曾有过类似的经历。当经历过数年之后,一些人在.net的某方面成为了专家,有些人精通数据库方面,有些人精通web界面设计,有些人精通系统架构。还有一些人是什么都会,但不管哪一方面都算不上精通。当然还有另一些人,他们没有选择.net,他们选择了java,在若干年之后,他们说:java程序系统比.net系统更稳定之类。既然大家都是.net阵营,暂且对他们不予讨论。

结合自己的亲身经历,对准备成为。net程序员和已经成为。net程序员的新人一些快速成长建议:

1.选择研究方向后不要动摇

对.net好还是java好的问题,我一向的观点是:它们都好,它们都是软件开发领域的杰出工具,它们都能够做出非常出色的系统。评价一个系统好与不好的标准不在于开发语言,而在于系统本身,更多地在于这个系统的开发者-程序员本身。只要你是一个出色的程序员,你完全可以用你擅长的开发语言开发出高质量的系统,而不管这种开发语言是.net还是java。而如果你过度地徘徊在研究它们到底谁更好的时候,甚至不断地在二者之间辗转的时候,你损失的将是宝贵的时间。

2.尽量缩小研究范围

.net只是一个大方向,你应尽量将自己的研究范围缩小,比如专注于数据库,专注于xml方面,专注于ajax,只要你专注任何一个区域深入研究,当你成为专家之后,都不会愁饭吃。反之如果你什么都会,而没有一样真正精通,那么你可能永远只能做一个普通程序员。

3.找到正确的入门方法

不管做什么事,方法很重要。特别是入门时的方法。正确的入门方法将大大加快你学习的进度。了解语言本身和前提技术是最先要做的事情,比如你选择c#方向的asp.net,那么你必须先学习c#基础语法,和asp.net基础知识,并实际写小程序测试你学习的成果。当学会基本语法后马上找到asp.net的官方入门指导。微软做得很好的一个地方就是他的帮助系统做得很好。新人容易入门,建议首先从入门教程开始,这个东西就在你的机子上,在Framework SDK的菜单里面。强烈建议把这个教程全部学会。

4.多看别人的成果(源代码)

这个很重要,如果你是一个团队的新成员,那么看他们写好的代码将是非常好的学习途径,因为那些都是成功的代码经验。如果你还没有加入团队,是自学,那么找一个好的学习网站,多看上面的源代码也是很好的方式。另外一个强烈推荐的途径:仔细研究微软的.net StarterKit,个人认为这是.net入门学习途中最大的收获。

5.敢于接受新项目挑战,敢于尝试

主动承担公司的开发任务,敢于在项目中尝试你最新的研究成果将对你自身技术水平提高带来非常大的帮助。记得当初我在做一个建站平台项目时有过这样的经历,之前公司开发的项目大都在原有技术积累下面用成型的框架做开发,那时我也正在学习asp.net,不过那个项目我是主程序员,因此在开发上有很大自主性。于是1.0时我尝试将所有用户文章保存在web服务器的xml文件里,而不是像传统项目那样保存在数据库里,以希望减少web服务器和db服务器之间的数据传输。结果1.0系统实际运行时确实达到了我的目的,虽然随着数据量的大量增加,最终导致了IO瓶颈。但通过后来对IO瓶颈的优化解决,我在文件系统、服务器进程、xml应用、代码规范和性能优化等方面学到了很多东西,倘若当初按原来的模式写程序,将错过学习这些知识的很好机会。

6.不断推翻自己,敢于重构

这是对程序质量的要求,我认为只有不断地优化和改造自己的程序代码,才能最终写出高质量的程序,做出高质量的系统,最终使自己的技术水平提高。通常我会把实现一个功能的代码量作为衡量代码质量的标准,代码越少,越精简,同时又具有良好的可读性,就越理想。重构需要几个前提:首先是项目时间允许,然后是确实找到更好的代码组织逻辑,如一种很好的结构模式,更合理的面向对象调用方式等等。只要找到更好的解决办法,那么勇敢地推翻原来的程序框架,重构它,经过不断地重构后,有一天你回过头去看之前自己写的程序时会有一个感叹:哇,怎么以前我的程序写的这么烂阿。

7.跟上技术更新的脚步

软件技术更新速度有时真的让人很郁闷,经常听人说,刚学会.net1.0,马上就出了1.1,1.1刚完成一两个项目,又出了2.0,用2.0不到一年已经出了3.5,但现实就是这样,你必须得跟上脚步,当使用asp.net的时候,你就不能再像以前用asp那样去写程序,当使用.net2.0的时候,你要敢于使用masterpage,skin去代替原来的usercontrol模式,原来的网站皮肤实现模式。而现在出3.5了,你必须马上学习vs2008,学习Silverlight。只有跟得上技术更新的步伐,你才永远保持自己的技术领先地位。

以上几点建议,希望能给一些新加入的.net程序员们一些参考。

程序员如何提升自己在公司的价值


一个人要想在公司立足,成为公司不可或缺的人才,并得到公司的重用和青睐,只有让自己对公司具有更大的价值,那么如何提升自己在公司的价值呢?

1.任务分配,不怕累,多干活

任何公司、老总都喜欢勤快、不怕苦的人。这是你获取上司认可和团队关注的第一步,也是你职场原始积累的开始。同时,也是争取自己在工作中的市场份额,成为不可缺少的角色的预热。

2.出现问题,少抱怨,不牢骚

成功的人找方法,失败的人找借口。遇到问题,积极地想办法解决问题,不要一味地把问题全推到别人身上,或者找出各种理由来给自己辩解。想一想是否可以通过其他办法或渠道把这个问题解决掉。通过这些问题,不但可以充分体现你解决问题的能力,也为自己造就可信任和成熟的人格魅力。

3.项目核心,不怕难,不逃避

项目核心往往会有一定难度,但不要惧怕,这往往是你体现个人价值的关键。困难代表门槛,代表竞争力,敢承担,莫逃避,更多的历练才会使你快速地成长。同时,核心的东西往往具有不可替代性,所体现的价值会更大,对稳定你的地位会起到非常重要的作用。敢于承担重担的人,才可委以重任。

4.空闲时间,多学习,少聊天

增强自身竞争力最关键的问题还是不断学习,特别作为程序员这个特殊的职业,千万不要把大好的时光浪费在无意义的事情上。虽然,公司照样给你开工资,但你逝去的是你自己的生命和大好的前程。

5.项目完后,多归纳,勤总结

做好技术积累和行业积淀很重要。千万不要做完了就完了,黑瞎子掰棒子,要给自己留下点东西,该封装成通用组件的封装,该整理成通用模块的整理,这样以后做项目才会越做越轻松。不但自己受益,公司也会觉得你做事效率高,能力强,肚子里有货。

6.跳出技术,会沟通,懂协调

对于程序员,有时我们会觉得只要将代码写好,将项目做完就行了,至于沟通方面,那是销售和市场人员的事情,其实,即便在技术研发方面,有效沟通的能力依然非常重要,因为做项目要和客户沟通需求,要和同行沟通技术,要和朋友沟通成长,要和上司沟通工作,部门之间要协调。具有好的沟通和协调能力,你会更像公司的万金油,爱你到永远了。

当你拥有了老板的信任,并成为公司不可缺少的人,加薪、升职还是问题吗?

我的四年程序员之路[1]


没错,我还是一个程序员,每天还是坐在位置上书写着代码,收获着无聊。 四五年来我我一直保持这样一个坐姿,从每天的早上8点半开始,准备下班回家时结束。

我读的是机械设计制造及其自动化专业,因为迷上网络游戏就干脆转为学习计算机。当时的计算机专业可以说是一个热门专业,很多不怎么样的学校在这时候都开了这个专业,招生时要分数要得不低。这样的决定让我吃苦不少,我要一边保证自己的专业少挂科,以保证自己可以顺利毕业,一边又要保证自己的计算机水平足够在毕业后可以找到一份还行的工作。相比其它同学,我跟图书馆的计算机图书一样另类。他们谈恋爱的时候,我在试着把asp网页连上数据库。他们玩游戏的时候,我在网上到处搜索apache跟php整合的相关材料。

幸运的是,我的专业大部分考试都有六十来分,2005年下半年好歹毕业了。没有计算机背景,企业不会要一个只会把asp连上数据库的人,也不会要我来帮他配apache+php.终于有一家小公司要我进去做软件维护工作,我想都没想就去了,连我要做网页还是客户端软件都没问清楚。零工资实习三个月,外带1个月的试用期,最后才知道自己是来做软件实施的。老总告诉我,所有来这企业的人都得做1年的软件实施,这样才能知道客户需要什么样的软件,以后开发出来软件时才能更好的理解客户的需求。为了理解所谓的客户需求,我在不同的地方安装相同的软件整整安装了一年半,Oracle, Sybase, Sqlserver各种各样的商业数据库我都在上面瞎整过,我后来很佩服hibernate,它居然可以为很多种数据库提供同样的HQL语法,做过的人会知道其实各数据库之间的差异还真不少。还好老总善解人意,在一次公司尝试转型的大背景下,我被调到网站运营部负责网站运营,网站运营跟网站开发是两码子事,在一个小公司里,网站运营就是到各大论坛发垃圾贴子,公司这样做第一可以省去在google上做推广的钱,另外,在我发贴发到手酸的时候,老总还可以跑过来说,累了吧,那放松一下,去把公司网站改下背景颜色。换换思路嘛,脑子就不会打结。这半年里,所有的论坛都有我的ID号,很多论坛的ID被坛主封了又开,到现在,如果我要到某个论坛去下载一个附件,当提醒需要登录时,我网址都不用看直接输个ID和密码进去就行,成功率很高。公司终于又要转型了,因为他们发现发了这么多垃圾贴,还是没人来买他们的软件。我被派到公司的开发组,帮忙做些开发。终于可以称自己为程序员了。

在这半年的时间里,我一直在帮着其它程序员干着繁重的体力活。用HTML和javascript实现着客户们奇怪的网页效果。偶而写一点点JSP的页面,比方说写一个界面将查询结果显示出来等等,当然这也是我为什么现在是从事Java行业的主要原因。

07年初,我决定离开这家企业,在跟老总离职面谈时,他终于想到要为我这么个员工提一下有关工资的问题。他终于想到曾经进入这家企业时,我要求过企业在一定时间内将我的薪水涨到什么样的水平。我并没有接受他开出的更优越的条件,尽管在当时,这些薪水对于一个只会JSP的人来讲应当还行。从职业的发展角度来讲,我需要一个更好的空间,你要知道,在我离开这家企业之前,我还不知道CVS怎么用,Code Review是怎么回事。

从程序员到软件工程师[2]


当时看算法本身的文档,然后又回头看线性代数,终于理解了算法,并用程序表达了出来。由于是嵌入式用的,又花了大量时间进行算法优化。

后来跳槽时终于尝到甜头:

1。薪水高,基本上一应聘就是Senior的职位

2。稳定,这个一般大街上招一个程序员是做不来的

3。机会多,这个怎么说呢,反正只要是大公司招人,象微软、Google等,除了问一些语言本身的问题外,基本上就是算法和数据结构的问题。

通常面试那些时间你写源代码是来不及的,基本上就是写伪代码。或说明你的算法基础和思路。答的好一两句话就解决了。

想走这条路的朋友,我首先建议好好读读《数据结构与算法:C++版》,里面所有常用算法和经典算法及数据结构必须烂熟。其次,建议将大学课本找回来,几本高数好好复习复习。《线性代数》《概率和数理统计》《微积分》《常微分》等等。

我们不是大牛,基本上创造不出新算法,但是我们能够将别人的算法实现或者能把一个具体问题分解成已知的算法,那么你就是一个很不错的算法工程师了。

说实在话,语言只是工具,是很容易掌握的。99年2000年泡沫时期,不是很多人突击那么三个月就可以上路做programmer么。就象刀法是很容易学会的。要应用精熟,也不过是长时间的积累而已。

对语言的理解实际上就是对刀法的领悟,有人是顿悟。但是多用总是会渐悟的。

最重要的是基础,就是数学能力,那可是内功。可以这样说,你要想真正和其他程序员拉来差距就在这里。

我朋友的孩子想走计算机编程这条路,考大学我就推荐考数学系!

再有就是多做那些大公司的面试题,一是锻炼自己的大脑,二是熟悉这些算法的应用。

好了,现在能想到的就这几点,这里给几个面试的例子,看看能不能用最简单的描述解答

1.如何生成一组正态分布的随机数?

2.有一个二维迷宫,如何找到出口路径?

3.有数据库存储一股票每五分钟的实时报价,如何生成每小时,每天,每周的股票价格变动曲线?

====我的建议答案

1。生成二维随机数,只取落在正态分布包络线内的数

2。二维连通图深度优先遍历

3。傅利叶变换

程序员你真的只是程序员吗[2]


或许上面写的比较偏激,但真的是很普遍,我想告诉你们,你们虽然只是负责一个模块,但无论如何,请要知道你的项目到底是什么,如何运转,哪些地方好,哪些地方不好,因为这是对你自己的一个提升,也是对公司的一个负责。说到负责,我不得不说责任感,很多人就是缺少了责任感,以为完成了任务就可以了,但你要知道,你的公司或许等的不是你的完成呢?

请您拿到项目需求的时候,分析一下您要做的东西,用你敏捷的思维想一下,该如何去做,还请您多想想下一步,如果扩展了,我要改哪些地方,最重要的是,请您想想,这个任务对公司是否有利,或许你会说你只是个程序员,我没有权利去改变任务,没有错,你是个程序员,首先请你完成你的任务,在完成任务的同时,想想任务的完成对公司的运营是否起到反作用,因为有时你会比你的老板更了解项目对公司的利弊。如果你真的觉得不太好,不要怕,提出你的观点,但一定要想好你观点的描述,尽可能的表达清楚,让你的老板知道你的意思,因为老板他不一定懂技术,所以一定要白话一点。如果你的观点是正确的,你们老板也听明白你的意思了,那样你们老板会更加的器重你,而不会不可理喻的让你完成他所要的东西了。毕竟这是对他好的建议,也是对公司发展好的建议,如果你的观点不好,那样老板也会给你一定的提点,何乐而不为呢?

下班后,请你抽空想想公司的发展吧,因为你是公司中的一员,公司发展前景好也代表着你的发展前景好,如果你的想法给公司带来了好的前景,那也是对你能力的一种肯定。

最后说说面试,我也经历过很多面试,同样也面试过很多人,刚开始也会为工作着急,到处找面经,但最好的面经是无法从其他地方找来的,因为面试是一个展示自己的机会,而不是一再的ctrl+v 。刚开始我也会紧张,但马上,我调整了自己,每次面试就当自己一种磨练,一种交流、沟通、展示的机会,随后的几次面试都比较成功,再随后的几年,我回到了老公司进行面试,显然他们对我的能力已经是一个肯定了,最后我还是没有选择他们,因为我回去面试只是为了看看公司的发展进行的如何了,因为这一切也有着自己的一份努力。最好玩的是一次邮件面试,对方给了很多题目,大多是网上都有的,我也没有baidu,用自己的想法回答了所有的问题,并提出了很多意见,没想到对方回错了邮件,把他给人事的邮件发给了我,貌似是说面试还可以,就是工资高了点之类的话,我也懒得继续往下看,回信给对方,发错邮件了。过后不久收到对方的面试通知,更确切的说是offer,不过在他电话中我直接给回绝了,因为我已经在一家自己喜欢的地方就职了。

我爱我的公司,我爱我的程序,我也爱我的老婆和家人,因为他们给了我快乐,也给了我支持,让我能更全身心的去投入到代码之美中,我更相信公司能异军突起,成为IT界的领军人物,因为我看到了一群为公司孜孜不倦,辛苦能力的同事,我很爱这种氛围,我相信我们的努力一定会给自己带来收获,就算没有收获,我也没有任何怨言,因为我沉醉了,因为我快乐,因为我是个快乐的程序员。

相关文章

最新更新

推荐访问