第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《寻找自己的程序员之路[1]》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

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

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

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

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

第一关:自信

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

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

第二关:意志

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

第三关:布局M.zc530.COM

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

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

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

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

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

第四关:切入点

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

zc530.com推荐

寻找自己的程序员之路[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岁之后转行之类的鬼话。俺到今年,才开始感觉进入了程序开发的大门,写程序时开始有一种美感,有那种几十人骑着战马冲击奥山大桥的壮烈。做一辈子的技术又何妨。

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

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


首先声明,本人是男生,从来没有站在女生的角度思考过问题,因此只能就自己的角度来探讨一下问题,说得不准,勿怪。

嗯,说个现象吧,我在成都呆了12年,确实没怎么看到女性程序员,有几个,生了娃以后,都回家带孩子去了,不过我到西安来以后,吓了一跳,程序员中男女比例接近1:1,呵呵,确实给我上了一课。

所以,就我的经验值,我发现你说的其实不准确,起码中国北方城市,女性就业率还是比较高的,至于是不是程序员职业,并不重要,也有很多女性做的,你大可不必担心这个问题。

当然,女性有女性的弱点,生理上的咱们就不说了,其实对于办公室工作来说呢,问题不大,关键是结婚生孩子,根据劳动法,女性一般是4~6个月的产假,这在很多小公司来说,一个人接近半年不上班,还拿薪水,确实有点难以接受,因此,在招聘时,不知不觉就对女性有点回避倾向,就造成了女性求职困难的现状。

但是呢,我觉得这是短期现象,为什么呢?一个公司,如果要做大做强,做正规,必须正视这些劳动法规定给员工的基本福利,如果老板刻意回避这些话题,应该说,这家公司也确实做不大。至少,我到现在没有看到哪家超过1000人的大中型企业,里面一个女人都没有的。你说是吧?

所以,这个问题,归根到底,我的理解,还是市场经济的初级阶段问题,即中国的企业刚刚出现,还在进步,目前实力还弱,无力承担太多的社会责任,无法承受女性结婚、生子的一系列额外成本增加,因此导致女性就业渠道偏弱。

就我的经验而言,目前国有大型企业、欧美外资企业,嗯,台资和港资等企业也是,对劳动法遵守比较好,反而是中国的民营企业,遵守得不好,让买个社保都磨磨唧唧的,更不要说女性的产假等问题了。因此,如果求职时主要针对上述企业来说,应该问题也不是很大。嗯,国内华为、中兴等大型企业,对女性歧视也很小,可以考虑。

但是,要注意,这里面也有个门槛问题,国有大型企业,其实福利是比较好的,但是,工资待遇偏低,尤其是进去主要靠关系,很少有凭借真本事能进去的,这个难度很大。其他三资企业,人家是典型的资本主义社会原则,看人部分男女,都是成本,每个人必须创造出效益来,因此,首先必须要真本事才进得去,其次,进去后,人家用人也比较狠,我们常说女生当男生用,男生当畜生用就是这个道理,如果进这类企业,要做好被扒层皮的思想准备。

我的四年程序员之路[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是怎么回事。

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


你是不是感觉标题有点矛盾啊,是啊,程序员当然就只是程序员而已嘛,还会有其他什么吗?

No,No,No,如果你以前是如此认为的,那看完这篇文章后,请从此打消这个念头,因为你要改变成一个不一样的程序员(怎么还是程序员?)

虽然我工作经验也就6年左右,但经历了很多,也自己创业过,也是从一个初级程序员走起,因为看的比较多了,某些东西也普遍存在着很多程序员身上,希望自己的经验能帮助你们。

当刚踏入程序员这条路的时候,有幸为一家公司开发一个大型的电子商务网站,因为这篇领域当时还算刚刚起步,自己的编程能力还不太好,所以做起来就比较吃力,每天重复着做完PM给的工作,但是做了大概几个星期,我发觉某些地方真的不合理,但自己又仅仅是一个程序员而已,怎么办呢?我还是按照PM的任务一步一步来做,私下里我用了大量的时间去尝试着我的做法,在接下来的几个星期,我试着跟我的PM进行沟通,他也发觉不错,所以一并写了方案提交给上级领导,很好的是,我们的领导发觉建议还不错,所以改变了原先的策略,对我们的网站原先的设计进行了彻底的推翻,一套新的理念就此诞生了。

这只是一个小例子,并不是炫耀自己的能力,我只是想说,程序员,你其实不仅仅是worker,更应该是Ideaer。当你选择程序员这条路时,如果你仅仅为了工作而选择的,我想你的人生真的很灰暗,为什么这么说呢?我面试过很多人,大多都是从培训中心出来的,虽然我也是从那里走出来的,不过我当时是为了学习编程而去培训,但现在更多的人会为了工作而去培训。其实如果你是真正的选择程序员这条路,我想你的思维能力一定不错,因为一般程序员大多是理科出生,理科靠的就是你的思维能力,在某些时候或许你的思维还不够敏捷,但我知道,每个人在接受了一段时间的工作后,就会产生各类的想法,或许某个想法你会改变你公司的命运,可为什么提出观点的人就寥寥无几呢?

我想可能是因为性格吧,因为很多程序员都是内向型,因为我们需要花一定的时间,去沉醉在代码中,因为这是一个奇妙的世界,无法自拔,所以很多时候就忽略了沟通,因为我们打交道最多的是abcd。如果你正是如此,希望你快点走出来吧,分清楚何时沉醉,何时交流才是最好的。我的偶像-唐骏,我看过他的访谈,他在大学时还是一个不会沟通的人,只是偏执于技术,而且和大多人一样,都会觉得自己什么都会,什么都行,是个天才,但在他大三的时候,他意识到了错误,花了几年的时间去学习交流、沟通,在宁愿委屈自己进入微软做程序员,再到无数次发意见给Bill,一步一步成就了这位打工皇帝。

所以,我们每个程序员要做的是,技术和沟通并行提高。在唐骏的话中,我会学到很多东西,他能从容应对每一次挑战,当时有幸成为唐骏的下属,见证过他的能力,虽然他当时只是个技术总监,但他的想法、创意给盛大带来了无比的利益,我不得不佩服他的胆大,不得不佩服他的能力。从他身上还学到了专一,其实很多程序员会在编程的道路上三心二意,这是很正常的,不过我相信一段时间以后你会学会专一的,因为程序真的很美,带来的不仅仅是工作和薪资。

我这里又不得不批判一些年轻程序员了,他们仅仅看中的是工资、福利等,没错,这是考虑工作的一点,但你要知道,有些时候,你第一点的工资,或许你会学到更多的东西呢?我经历过很多,经历过1年工资翻几番,又经历过折一倍,又经历过小公司,又经历过大公司,各种各样看的实在是很多,但我不会说我自己半途而废,因为每次我会把事情做的觉得自己可以了,我才会选择更好的发展前景。我面试过一些人,工作也就2,3年,做过的东西也很多偏向于OA、ERM等项目,就觉得自己很了不起了,工资也是漫天要价,可真正面谈的时候,我才得知,你仅仅是其中的一个小模块,但当我问其项目的整个运维的时候,就会楞个半天,最后来一句,这个模块不是我负责的,敷衍了事。那好,我问你自己负责的模块,如何具体写的,用了何种方式等,基本都会回答,三层架构,什么什么,My god 三层架构是你一个模块就能体现的吗?那好,既然你说三层,何为三层,三层的优点,缺点在哪里?诶~~~~~前几天首页那篇批判大学生的文章,我觉得写的太好了,你们这是在沉醉吗?如果你不喜欢,你为什么非要选择程序员这条路呢?

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


所以我这里提醒一句,现代女性,最好有一份自己的事业,不要轻易依赖别人,记住,今天你有优势,别人会爱你,但是明天当你优势丧失,而男方优势突显的时候,很多时候,家庭并不是很稳固的。最好的方法,有份自己的工作,有份自己赚的薪水,可能不多,但是家庭建设有你一份,男方如果动不动就动歪心思,就是他无理取闹,打官司他都打不赢的。这也是保护自己必要的方法。

当然,也不要走另外一个极端,动不动就以女强人自居,你的事业是第一位的,男人天天在家里要给你扫地做饭端洗脚水,这也不好,中国社会,毕竟几千年,有个文化风俗在里面,女性再赚钱能力上,总的来说还是不如男方的,以后家里的顶梁柱还是男方,那么平时在家里,让着男方一点,家务活多做一点,让男方回到家,有个休息的感觉,能放松能感到温馨,这样的话,这个男人就是你的,打都打不走。呵呵。

总结一下,女性的工作问题其实比男性复杂,中国的男性,一般都是一门心思顾事业,把事业做到最好,而中国的女性,永远需要在事业和家庭之间求得平衡,既不能没有自己的事业,也不能放弃家庭,这很难的,不过,慢慢锻炼,总会找到办法。我的经验,能把握好这个平衡的女性,一般这辈子都比较幸福。

所以,针对你的问题,我觉得要辩证地看,既要看到,找份工作对你很重要,也要看到,作为以后家庭中,主要负责家庭事务的成员,你的工作不要一味追求高薪高职位,要寻求一个合适的职位,能满足长期工作不失业,但也不能太苦太累,搞得家庭无法维系。这才是比较周全的解决之道。

现在我们回过头来看看程序员,其实程序员这份工作,我觉得女性可以做的,程序员有很多加班的,但是这往往是工作刚开始,没有太多经验的情况,待工作一定年限,掌握了一定经验,加班会越来越少,其实大多数程序员工作岗位,是不出差的,基本上是朝九晚五制,做久了,收入也不低,可以满足一个女性对事业和家庭的平衡。因此,我建议你大大方方就做程序员,找不到,努力找咯。

嗯,再多说一点,就我个人的经验,程序员的加班,往往都是由于bug导致的,大多数时候,公司在安排项目开发时间时,时间还是给得比较够的,至少是评估过的,但是,往往是后期出现了很难跟踪,很难解决的bug,导致项目进度大大滞后,时间突然变得很紧,于是出现大量的加班,有经验的朋友可以想想,自己以前的加班是不是这样。

其实这个问题和男女无关,实实在在是每个程序员的问题,我本人以前也深受其害。后来我痛定思痛,准备彻底解决这个问题,于是我用了大约8年的时间,研究了一种方法,出来后,我的bug果然少了很多,几乎达到0 bug的地步,自然而然,我加班也变得很少了。

如何从优秀的程序员成为伟大的程序员[1]


怎样评定一名软件开发人员?这是一个颇为奇怪的问题。现在已经有了很多的理论和形式来做这件事,人力资源部门也试着帮你管理和反省自己的行为。然而,怎样才是一个伟大的软件开发人员,在今天,你该怎样发展你的职业生涯?以下是我评定团队中软件开发人员的军规.按照这些技巧和规则,你可以改善你的现状,由一个优秀的程序员,成为一名伟大的程序员。

1、时间花在写精彩的代码上

这里说的不是数量,而是质量。对此,一种歪曲是:要数量,也要质量。你也许会很多次的遇到以下的两种情境:

情境A:你有一个发疯似的能写代码的程序员,事情似乎在进展中然后,Bug开始不断出现,你们也不知道为什么,好像永远补不完。补完十个,又出来五个,现在你手里的,就是一大堆代码

情境B:你现在有一个看起来很聪明的程序员,你面试他的时候,他似乎无所不知,能把理论说的头头是道。然而,你留给他三个任务,三个星期以后,他还在做一些三天就该干完的事。这下该你困惑了,他这么聪明,他知道generics(详见备注),多线程的一切事情,甚至还能给祖母级的人讲解什么是指针,让老太太兴奋的想去编程。可是--怎么什么都没完成?

于是,在梦境中--你写出了堪称伟大的代码,--伟大的代码是伟大的程序员写出来的,他睿智,明白代码的真正品质所在。写代码就像托尼?霍克在玩滑板一样自然优美,看上去就令人愉快。这些程序员以让你眼花的速度搞定一切,他们知道每个问题应该处理多长时间,也不会追捧寻觅所谓的世界最好解决方案,弄很多线程很多层来写一个简单的游戏。他们写的程序没有Bug,因为写的时候自己测试过了,在睡觉时也在写代码说的就是这样的人。这些程序员太宝贵了。

2、阐明问题

可以明确的是:即使有问题暂时处理不了,还有成百上千的方法去解决。有些人反应很迅速,很快就能提出多种解决方案。然而,一个伟大的程序员应该在做出行动以前清晰阐明问题--创建文档或用白板表达出来。他们写邮件给项目的管理者,这样表述:我想和你说说我是怎么理解这个问题的,我们能这样处理吗?然后他们就会动手给你多种方案。

对,这些人明白自己看问题和阐明立场的方式,而这理解方式大概不会是问题创建者所想要被理解的。请牢记这就是关键所在。一名伟大的程序员在尝试解决问题以前,一定要完全的理解它。你百分百搞明白了吗?没有?百分之九十九?--回去再多问些问题,确保百分之百理解清楚了。

3、怎样着手解决问题

那一搞明白了问题,就开始动手写代码?错!一个伟大的程序员应该按照规划,开始思考面临的多种选择,基于问题开始考虑最好的解决方案。我觉的这像一场国际象棋比赛。你知道每个棋可以怎么走,知道所有的游戏规则。但是你会马上走棋吗?不,你要审时度势,制订计划,紧盯对手,分析其通常的做法。和这一样,在你coding解决问题以前,你也要这么做。

看看问题,计算出需要怎样的结果,你的时间能怎么安排,预期的质量,你必须用的工具,好了,开工吧!

程序员生涯之我见 找到自己的兴趣所在[1]


编程只是程序员工作的一小部分,而当你能对整个行业能有一个全盘的了解,你自然会找到自己的兴趣所在。

在海外有很多中国人在从事程序员这个职业。我认识很多这样的朋友,发现许多人并不快乐,只是将这个工作当成养家糊口的工具。还有许多人工作努力而不能入门。我曾经在很长一段时间内也有过困惑,但最后终于走了出来。在这里谈谈自己的看法,希望对大家有一些启发。

俗话说兴趣是最好的老师.这话很有道理,但运用在事业上往往并不是这么一回事。在学生时代你可以追随兴趣天马行空,为未来作各种各样的设想。坚韧不拔而又有些运气的在后学生时代仍可在预设的道路上跋涉前进,甚至一帆风顺。而绝大多数同仁们则在生活所伏下的各种小圈套中纷纷落马,有的痛苦挣扎,有的怨天尤人,还有的则既来之,则安之,以失败者的心态接受生活的安排。

这些为生活所改变的同仁们的共同点是不再(敢或愿)提对原先事业的兴趣了,如果曾经有过的话。当然,兴趣是会变化的。但因生活改变而生的新的兴趣往往难以长久,而人生苦短,又经得起几次改变呢?

和其它许多职业一样,从事程序员职业的可分成三种人:入门的,不想入门的,和想入门而没有入门的。我对入门的定义是:喜欢这个职业并且有持之以恒的目标和努力。

入门的是极少数。如果一个程序员一直在从事这个职业,而且热爱并愿为之终老,我想他一定是幸福的。任何职业其实都是这样。我所在的公司有个年轻的老美,是负责三十多个程序员(包括我)的Software Architect,为人朴实而性格腼腆,但他对职业热爱的单纯连我都嫉妒得要命。他好像可以不食人间烟火,可以没有任何爱好(他其实一年要度好几次假的,但全是老婆安排,当然也参加公司活动),但对几年前写的代码记得清清楚楚。他没有可炫耀的学历(服兵役间在一家小学校读的计算机本科)和经历(因为太年轻),在任何场合都总是腼腆地笑着(我将他研究了很久,发现他实在本性如此),毫不起眼,但我知道,他是被造化所祝福的。他可以一直思考一个问题,在半夜起来用VPN连上公司网络修改一个bug.我遇到过不少优秀的程序员,就没他这么纯的。

不想入门的程序员可能是这三种人中比例最高的。女的居多,家庭负担重的居多,思想活跃的居多。程序员职业为男性所主宰是一个事实。女孩子结婚后兴趣大多都变了,程序员工作辛苦,责任大,也就没什么吸引力了。很多程序员聪明而思想活跃,却不愿意喜欢这个职业。有的一直在琢磨怎么开自己的公司,有的天天研究炒股,还有的只想好好保住这个工作,完成分配任务了事。究其原因,一是将人生看得太透了,觉得程序员工作只是衣食父母;一是认为编程太简单,没啥好投入的;还有就是看不到出路,当一辈子程序员划不来。人各有志。

对一些人来说,程序员只是人生经历的一部分,他们有自己所追求的目标。虽说这两年的IT不象五年前那么火热,但仍到处是机会,很多人通过程序员的工作进入IT而寻找机会。但对那些可能长久从事程序员工作的人来说,不入门实在太辜负了上天赐予的聪明才智。在美国的这些年,我认识了许多转行做程序员并做得不错的大陆来的朋友。附近一家老美的公司,软件研发部门中大陆来美读研毕业后留下来的有二十来人,多半是国内名校本科毕业的。这二十来人没有一个本科或博士是读计算机的,现在水平都很高。我用这个例子是想说明程序员这个队伍的素质是多么优秀,理应做出点事来。

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


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

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

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

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

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

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

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

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

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

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

程序员的时空定理[1]


改革开放三十年,中国迅速从官本位社会向重商社会转型。商业社会的公理是商业驱动技术,反映到现实中,就是做技术的程序员被做商业的营销及管理人员驱动而成为附属,做商业的因代表客户利益而有着最高的话语权,其结果常常是技术与商业的二元对立,用被誉为中国的比尔?盖茨的金山软件公司董事长兼CEO求伯君的话,中国软件、互联网等IT从业人员的最大问题是就技术论技术、就商业论商业,技术与商业二律背反。

作为程序员,怎么办?

从商业驱动技术的公理出发,我们可以推论出关于程序员的两大定理,即程序员的时空定理。

程序员第一定理,不妨俗称之为站高定理,或空间定理,即:程序员应就商业之局论技术之域.古人云,不谋全局者不足以谋一域,这个局就是商业大局,这个域就是技术实现。反映到程序员身上需要做的心智模式的第一个战略转变是就商业(之局)论技术(之域),古今中外,概莫能外。

百度创始人兼CEO李彦宏在北大2008本科生毕业典礼上说,我在北大是信息管理系,学的是信息检索方面的理论,这让我比任何计算机系科班出身的工程师都更能够理解普通用户习惯于怎样的信息获取方式。这就是一个典型的站在商业的高度论技术实现的案例。

IBM的第二次战略转型,即1961年小沃森豪赌System 360项目,取得了历史性的成功。S/360对于IBM的意义以及对于IT行业的影响,相当于Windows对于微软的意义以及其对于PC时代所产生的影响。

从技术角度看,S/360取得专利权数量超过了300项,其中包括发明了内存芯片、发明了关系数据库、发明了人类第一个高级编程语言FORTRAN等。但是如果仅仅从这些技术的成功推断其成功源于这些技术,就大错特错了。

S/360的成功源于其创新的商业战略兼容,所有的技术实现都是围绕这一商业战略而展开。在S/360之前,每台电脑都有自己的指令集,所以每开发一台新的电脑就必须重新撰写程序。S/360成为了历史上第一款指令集可兼容电脑。当然,这同时这也意味着IBM将淘汰自己过去生产的所有型号的计算机,完成自我颠覆。

那么程序员如何站在商业战略的局审视技术的域,有没有一整套的系统方法论?

产品哲学的道,适用于做任何产品,讲述了什么样的产品是好产品,什么样的产品是伟大的产品;用户购买的本质是什么,企业如何应对购买本质;什么是产品的灵魂;做产品分为哪三个层级。

天马设计的天,将产品设计拆解为生产者集合的行业与消费者集合的市场通过创新机制孕育生成产品的三大流程。首先是如何通过行业流程及新经济的特性洞见产经大势,解决产品设计we should do的问题;其次是如何通过市场流程专注客户需求,解决产品设计we must do的问题;最后如何进行有目的、有组织、系统化的创新及中国式创新流程(13类方法)来具体规划产品线及产品功能,解决产品we can do的问题。

落地执行的地,将产品实施拆解为战略执行力的三大组成流程:战略目标、组织管理和开发运维。首先是经营责任化的目标流程,将产品与项目目标逐层切割分解作为经营责任落实到单一责任人,IT技术的趋势及中国式的产品运作模式是什么;其次是管理精细化的组织流程,如何配套对产品成败影响巨大的产品组三大组织模块六个构件;最后是运营程序化的开发流程,在确保工程三要素折中匹配的前提下,以本土实践为本,兼容并包四种工业级流程体系,形成三权分立的强矩阵最佳战阵。

我的四年程序员之路


经朋友的介绍,我进入一家外企。从程序员的角度来讲,这家企业还算不错。严格的代码管理,代码质量和性能被提到了很高的位置。我被分配到一个团队里面,作为其中的一员开发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生活会稍有起色? 我的心里在问,不会是我要转行吧 ?

程序员如何踏上社会[1]


这个问题相对比较复杂,也很宽泛,很难简单回答,我这里,也仅仅就个人的一点认识,谈谈看法。

目前在学生里,我也观察到,很多二本,三本的同学,在心里上有种自卑感,总觉得考分低了,出来就低人一头。这点,我是万万不赞同的。很多时候,我对小弟讲,我相信你们的老师,师兄,师姐,前辈,都有讲过:大学毕业,仅仅是开始,不是结束。

中国的社会,越来越商业化,其实商业化有一个好处,就是这个社会给每个人的机会,总的来说还是越来越公平。这个问题分怎么看,名校毕业,高官子弟,亿万富豪的孩子,总会比我们站在更高的一个起跑线上,这是事实,但是,也仅仅是起跑线而已。在社会上,也有太多的故事,从一个穷家子弟,经过努力奋斗,最后成功的事实,因此,首先我觉得大家不必气馁,万事有拼才会赢,只要敢拼敢做,没什么大不了的。

我自己的学历就不高的,经过这么多年奋斗,也取得了一点成绩,这里就不多说了,总之,请大家记住,这个世界,还是相对比较公平的,只要肯努力,就会有回报。反过来说,当我们认为社会不公的时候,不妨问问自己,自己尽到自己最大努力没有?

第二个问题,关于学校里面开设的课程,大家可能会觉得不够时髦,不够酷。净是一些计算机组成原理,数据结构等老掉牙的课程,远没有什么spring 框架来得过瘾。呵呵,不过根据我的经验,工作几年以后,大家可能会觉得,最值钱的,恰恰是这些最土气的课程。用框架,永远不算本事,也没有什么核心竞争力的,哪天框架死了,你就死了。会做框架,才叫本事,才叫公司里面的骨干人才,才可能成为架构师。而另一方面,框架也是人做的,大家以为,做框架需要哪些知识?是不是上述old的知识?

因此,我的建议,大家好好学好自己的课程,在这几门课上,清华的老师,比起你们的老师,未必有优势,因为这些知识太经典了,也没有给老师什么推陈出新的发挥余地,学这几门课,大家和清华的学子,是站在同一个起跑线上的。

第三个问题,学习C和C++的问题,大家不用想,我的经验,别说这两门相对复杂点的语言,就算是 Java,PHP等语言,没有指针的干扰,要想学精学透,没有3到5年、5到10年的刻苦,也是不行的,大学毕业就想做大师,不太可能的。因此,建议大家不必妄自菲薄,你做不到,别人也做不到,大家还是一个起跑线,关键看,以后工作中,能不能扎下来潜心研究,仔细揣摩,不断增长自己的经验值。

第四个问题,关于培训机构不培训C和C++的问题,我也很好奇,好像是有这么回事。我曾经研究了一下,认为原因是这样的:

培训机构也是商业公司,主要目的是赚钱。对他们来说,赚钱有两个重点,第一是短平快,要短期出成果,让学生和家长有看得见的进步,给客户以信心,好让客户买单。第二则是成本够低,在同样营业收入的情况下,培训时间越短,请的老师价格越低,老师的沟通成本越低,培训机构的利润越大,因为企业做生意,核心问题是利润,即他真正赚到手的那部分钱。

这就很好理解了,无论从哪个方面理解,C和C++都不是最佳的选择。大家可能没有讲课的经验,但是我本人有一点。我讲课时,发现最难和同学们沟通的细节就是指针,翻过来揉过去说,几个小时下来,就是有人搞不懂指针,至于指向指针的指针,就更晕了。更不要说C中的函数指针,C++中的对象指针,泛型设计等复杂概念,反之,Java,.net都有比较成熟的应用程序框架,同学们可以快速搭建一些立竿见影的应用,因此,从短平快角度,从利润最大化角度,C 和C++都不是最好的教学语言。

如果我开培训公司,我的目的是赚钱的话,我也不会教C和C++,太费神了。当然,有人说你贵买贵卖吗,收费贵点,把成本补回来。那样也不太现实,因为,太贵的费用,就没有客户了,大家试想一下,如果开个培训C和C++的培训班,保证出来会写操作系统,收费20万,大家学不学?我估计就算这个课程值这个价,恐怕也卖不出去。

所以,这位同学说的培训机构的意见,我的建议是,听听就好了,不要太认真。

优秀ASP.NET程序员修炼之路


初级的程序员或经验不足的程序员往往只意识到自己的程序是写给计算机的,而不会在意程序其实也是写给人的,或在意得不够、不全面。

写给机器的程序,往往追求的是运行正确、执行效率能满足要求。但程序员的任务仅仅就是把业务逻辑转成机器能编译的计算机语言吗?

其实,程序首先(注意,是首先)是写给人的。第一,程序是写给看代码的人的。第二,程序是写给用程序的人的。了解这一点,才能理解写程序为什么要有代码规范,为什么要有各种文档,为什么写子程序时要命好名,为什么要分层,为什么要学设计模式,为什么要写测试用例,为什么要推敲按钮的摆放,为什么要按XHTML标准写Web界面,为什么要用AJAX 理解了这一点,才能更好的做好上面种种事情。

谁都在说细节决定成败,谁都知道要注意细节。为什么大家都在讲细节,有的人能通过细节打败对手,有的人连细节在哪一方都不知道,这就是水平的高低所在。我们要有心理准备:细节不是喊一声就会出现在你面前的。感知到细节,这是一个需要不断学习和实践,甚至有人指导的过程。这个过程有长有短,要看个人的学习能力,领悟能力。但最起码,我们首先要有一个方向。找程序的细节,方向就是为人写程序,在你做设计,写代码,摆弄界面的时候,心里时刻记住这一点,几个项目下来,你自然能看到很多细节了。

内外兼修

武侠电影里的高手,往往都是通过奇门心法,内力陡增而成为高手的。但我们做程序的,要成为高手,内外兼修才能事半功倍。内,指的是需求把握,设计思想,设计模式等。外,指的是写代码时的规范,做界面时的严谨等。

看武侠看多了的我们,偏内轻外的特点是很明显的。看看书店里写设计模式主题的书籍和指导代码规范的书籍的数量和销量对比就是一个很好的证明。但是就算设计模式一套一套,但写的类却给人看半天也看不出思路的话,一两年之后,你仍将陷入一个个泥潭中。

再举个例子,有的人自称ASP.NET程序员,而且他写出来的后台代码也层次清晰,条理清楚,但是做出来的界面,结构与表现混杂,一大堆IDE自动生成的垃圾代码充斥其中,该用单选框的用文本框,按钮放在谁都想不到的地方,不该用户操作的要用户操作,一步可操作完的搞成几步也不能完成操作很显然,他不可能做出成功的产品。也许他也知道界面要合理,但是就是因为他不修外功,认为我是搞。NET这种先进技术的,去补习什么HTML、JavaScript、CSS不是自贬身价吗?其实,认真研究过HTML、JavaScript这些技术的人都会体味到,运用这些技术比流行的。NET、Java更有挑战性,而且你获得直接操作用户界面元素的能力后,以前那种做界面效果、接口功能时有心无力的情形将一去不返,这是很痛决的!

如何学习ASP.NET

要成为一个优秀的ASP.NET程序员,不仅要掌握。NET框架,理解ASP.NET的原理,而且要对DHTML架轻就熟,甚至对各种浏览器之间的差异也要有所了解,所以做ASP.NET程序员是一件很有挑战的工作。那么如何学习ASP.NET,并最终成为优秀的ASP.NET程序员呢?

我认为可以分为两个步骤来走:首先,熟悉ASP.NET各种标准控件的用法,了解ASP.NET工作原理。接着,朝内和外两个方向扩展自己的知识和技能。

在Visual Studio .NET这样优秀的IDE帮助下,我们使用各种ASP.NET控件,掌握ASP.NET基本的工作原理应该是比较容易的。如能辅以几个简单的项目练习一下比较复杂的DataGrid、DataList等数据绑定控件的话,基本掌握ASP.NET是应该没有多大问题的。

之后,我们就可以朝两个进阶方向前进了。修内的话,深刻理解面向对象的编程思想是必修的,然后是各种的B/S框架的模式(比如MVC)的理解,最后是设计模式等等软件工程的概念和技术。修外则更重实践。首先,做项目时注意把一些可以实现在客户端的逻辑用DHTML在客户端实现出来,以此掌握结合服务端、客户端技术的方法,加深对HTML的DOM对象的理解,熟练常用的JavaScript技巧,进而练习对Web界面的结构、数据、表现三者进行分离的规划、设计与实现。

如此看来,学习ASP.NET也并不是一件很难的事情,注意为人写程序,内外兼修,自然就能做出合格的应用程序。

如何计算程序员自身的价值[1]


价值这个词,很正式,俗一点就是一个钱字。可以说这个字是当今社会的一个核心。无论经济活动、社会活动那个能离开这个字呀!人为财死,鸟为食亡。可能是人生的一个真实的写照吧!

回到现实生活之中,我们常常听到程序员抱怨自己的工资很低,抱怨自己的付出和自己的报酬严重背离,有的甚至不考虑自己工作能力和工作贡献,以别人的工资或社会岗位工资来确定自己的报酬。同时我们也常常听到公司的老板的抱怨软件公司不赚钱,最大的成本都花在员工的工资上了,自己在给员工打工。那么我们怎么能够计算程序员自身的价值呢?我们怎么看待程序员价值值与不值呢?我感到程序员自身价值有两个方面,一个方面是程序员的收入价值,一方面是程序员市场价值。程序员收入价值比较简单,就是程序员的年收入。例如一个程序员的年收入是5万。则这个程序员收入价值就是5万。程序员市场价值是指程序员本人编制的软件产品销售价值和预期的销售价值。例如,有5个程序员一年之中为一个客户编制了一个软件,软件售价5万元,假定我们忽略了销售成本和维护成本等,5个程序员水平大致相同,则一个程序员的市场价值就是1万。

程序员的收入和程序员市场价值往往是不相同的:

1)当大学生刚刚参加工作的时候,由于能力的限制,很少能编好程序,大部分时间都花在学习上,但是,他还是获得工资报酬。但是他的市场价值为0。这个时候,程序员是正收入。

2)当程序员具备编程能力,投入到编程工作之中,程序员不但获得工资报酬,其劳动成果也变成的公司的收入。假定公司能收支平衡,而且分配比较合理,那么程序员收入价值于程序员的市场价值相当。

3)当程序员具备较强的编程能力,投入到编程工作之中,程序员不但获得工资报酬,其劳动成果也变成公司的收入。假定公司产生利润,而且分配比较合理,那么程序员的收入价值就会低于程序员市场价值,其差价就是程序员给公司的利润贡献。

4)当公司出现亏损的时候,程序员收入价值就会大于程序员的市场价值。

通过以上分析我们可以看出,程序员的市场价值是程序员收入价值的基础,当程序员收入价值远远低于其市场价值的时候,程序员就会感到收入太少,分配不公,不愿意在公司长期呆下去。当程序员收入价值高于或等于其市场价值时候,公司老板只能维持或靠吃老本来维系公司的运作,维持不下去公司只好倒闭。另外,程序员的市场价值要小于公司的软件销售收入。

就目前的中国软件企业运行状况而言,中国软件业早已告别了暴利时代,残酷的竞争使得软件的公司利润趋于下降。有的软件公司在竞争中倒闭,大部分在维持中维持。究其原因很多,但是大部分软件公司都是靠开发项目来维持生计。而项目都是靠用户需求来驱动的,因此,开发出来的软件往往是定制的,不可复用。一些好的软件公司,往往在一个行业中积累了大量的行业知识和软件开发的程序。通过程序积累系统积累,形成了行业系统的开发工具和通用软件。使得程序的复用性大大增强,逐步形成了行业软件的优势,这样公司发展很好。

无论从程序员个人的收入价值或市场价值,还是软件公司的运行状况来看。其核心是软件本身的市场价值。如果一个软件市场价值很高,则程序员的市场价值就会很高,公司的利润就会很高。一个软件市场价值往往取决于这个软件的复用性或商品化程度。假定一个软件销售价格为1万,预期的销售个数达1000个时,其市场价值就会达1000万,假定这个软件是由5个人开发的,相关销售、维护、管理费用不计,则一个程序员的市场价值就会达200万,尽管这个程序员年收入只有5万。但是程序员的市场价值是很高的。有了高的市场价值,就有了增加工资、奖金报酬的基础,就会有增加收入的希望。一般开明的公司都会根据程序员的市场价值的大小来,来定义程序员报酬的。只有这样公司才能留住人才,才能获得更大的利润。

以上《寻找自己的程序员之路[1]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“程序员个人简历模板”专题!

相关文章

最新更新