×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

Developer真的只是年轻人的职业吗?

本文发表在 rolia.net 枫下论坛不停的听人说developer只是年轻人的职业,过了35岁就不能做了,有本身就是deiveloper的,也有做技术管理的,昨天还听了一位生物学家也这样说,每在这样的场合,我都是含笑说差不多吧,其实就我的感觉还是差得多的.
这种说法的主要原因之一是develop的技术更新快,年轻人比年纪大的在学习上有优势,这几乎是以上判断的主要原因,是这样的吗?很多年轻的developer确实也喜欢用新名词来装饰他们的技术讨论,有时让人透昏,但是在绝大多数场合,我并不在乎我是否知道这些新名词的意思,因为在以我的思考,软件的开发思想的主体在过去若干年里面就没有改变过,这个多谢刚入行时的深圳东南的那些真正的大侠们给我的教诲,下面就谈几点吧,我知道很多“大侠”们经常不爱发言的,希望我的文字能够多吸引出一些东西。下面就先扔几块砖
1.任何系统的设计的最重要的是降低系统的复杂度。复杂度降低的两个基本方法是分解和抽象,一个是在水平层次上简化问题,后者是在纵向上简化问题。简化的根本原则是降低大脑重视处理的变量的个数。所以大家想想为什么要封装,为什么要抽象。
2.人的大脑是由化学物质组成,所以差别不会太大,真正的牛人其实是简化复杂问题能力很高。想想初中的因式分解,它居然有系统设计最基本的思想在里边
3.系统到底是什么?其实你可以说它什么都不是,如果你不选择一个视点的话。系统的任何行为都是相对的,想想为什么USER case,为什么junit? 如果做系统分析和设计的时候没有选择好视角,那么系统是无法分析清楚地,因为就像没有参照物,就没有速度一样。古人诗里说,横看成岭侧成峰,所以大家刚用UML作设计的时候为什么左右一种不对劲的感觉,你想把所有的东西都表达出来,结果越想越乱,是不是?
4.系统中各个部分是通过行为相互影响的,当你吃巧克力的时候,记住你并不是吃的就是那个巧克力,你是在吃具有你能分辨出的巧克力所有特征的食物,本来就没有一样东西本身就是巧克力。想想什么是接口,可在想想接口和抽象类的差别,其实我感觉接口的意义要比抽象类大的多。抽象类纯粹是代码复用的一种技术,可以握如果面试的时候这样说一定会给枪毙掉,面试时要说他们的10点区别,因为那些是书上面讲的。也是年轻的developer擅长的,应为他们的记忆力更好
5。系统设计的另一个要点是忽略细节,想象为什么要基于架构的设计
6。系统的复杂度的计算基本上是纯变量的的n*(n-1)/2所以为什么为什么介绍一个变量对系统的复杂度的降低的作用。所以为什要忽略细节,为什么要做抽象,为什么要封装,因为这些都回有效的降低n,并没有那么神奇。神奇的是如何选择最小的n。
7。人的思维的基本模式是模仿,所以学习其他领域的模式,对另一个领域都是有帮助的,想象设计模式,在考虑现在代码中中越来越多的明显的其他领域的名词如Observer,Factory,Delgate,软件系统的复杂度相对于甚至最低的病毒的组成都要低得多,所以说从其他的领域应该有无数的好的系统设计方案可以映入到软件系统来
。。。。
国内有的时候做developer对体力的要求太高,连续工作12个小时/每天,基本上比较常见,所以35岁后并不是脑力跟不上,而是体力跟不上。更多精彩文章及讨论,请光临枫下论坛 rolia.net
Sign in and Reply
Modify
Report

Replies, comments and Discussions:

  • 工作学习 / 事业与工作 / Developer真的只是年轻人的职业吗?
    • Agree. 深圳东南: 东软?
      • 是深圳东南,不是多大的公司,但却是有些人物。
    • 这位同学,"USER case” --> USE CASE。专业术语一定要精确哦。
      • 谢谢. 这里正好让我想起了另一个重要的系统开发原则.First make it work, then make it right and last it improve it performance. 这些年来一些这样的东西,东一点,西一点的在我的脑袋里,确实
        也没有整地时间去整理一下,所以乘此机会整理一下.:-)
        • Are u sure? Make it work then make it right? It is very old ... say 10 yrs ago or more.
          • 这不是我的原话,我也没有这种智商悟出这些东西,我这里写的绝大多数都是过去若干年中各种文章和书在我大脑中留下的记忆比较深刻的东西.这句话可以参阅,1997年的PLOP大会的一片文章"MUD PATTERN",或者UNIX编程的10原则,后者也是参照前者.
            基本原则和XP过程中说的一样,尽早让系统接受反馈,当然还有一些其他因素
            • so, 10 yrs....
    • Good job, I believe you are making good money. ~~ Do the Simplest Thing that would Possibly Work.
      • 没有big money,知道这些东西能获得的好处就是,在实际工作的,不会有不切实际的幻想,面对困难的时候,心态会平静不少
    • 世上本无事...
      • 呵呵,好厉害的角色,前不久我才想到菩提本无树,明镜亦非台....,是不是和所谓的系统行为的相对性有关系.我查了一下.
        • 好像先是有个叫神秀的大师说"身为菩提树,心似明镜台,...."有点感觉这种还是强调自我,在系统的设计中时过分强调实现,而慧能的"菩提本无树,明镜亦非台.."更加想系统的相对性,即任何一个系统如果没有一个对其行为的参照系,则不能描述其系统.
      • "才人“自扰之:)?
        • 你的RS编码和FEC搞得怎样啦.其实,那天我想了想,估计那个东西我以后也会用得着.就是太忙了.
          • 搞定了。
            • 牛.那你对其数学意义也理解了吗?
              • 不怎么理解。
    • 继续一下吧
      系统的基本的演化过程是反馈和吸收反馈的功能,这个就是为什么很多公司的产品希望早日能够占据市场的原因. 系统i本身的实现技术并不复杂,就算现在的J2EE和.NET对于个人来讲都不是什么多大的问题,问题的根本在于一个系统的开发组织是否能获得足够的反馈,大家想象为什么XP?
      为什么迭代式的开发过程?很多人认为这些RUP或者XP都是新东西,其实大家想象相对论,决定物种进化的根本原因是什么?自然选择是什么?自然选择是环境反馈+系统吸收反馈和自我改进的过程.前者是新的系统必须早日投入到其环境中获取反馈,后者才是有技术人员才与的过程.
      所以做技术的有时太过于看重实现技术,其实第一重要的是反馈,系统地实现由很多,如果脱离了其环境,你无法说一个系统是好还是坏
      另一点重要的是,我从不相信有天才可以脱离出环境和反馈可以在家设计出好的系统,如果有,要么是他在相关领域中时间非常长,或者该系统属于环境反馈以来少的系统.
      • Suggest to use English for key terminologies.
    • 现在还能想到的另一个用处很大的原则是如何相处对复杂系统的神秘感
      也许我们还是开发不复杂系统,但至少我们不会觉得他很神秘,这个原则,就是所有系统的基本组成就是状态和依赖.呵呵,想起原来编辑部的故事里的主体曲"人字的结构就是相互支持"看来系统设计的原理哪都有啊.:-)
    • 言之昭昭,使人昏昏。
      • 也是一种反馈:-)。任何反馈都是必要的。反映了真实的环境
    • 如何反馈和如何对待反馈
      受刚才一个reply的提醒,想到了反馈的一个基本原则:选择好反馈主体.开发中我最怕的就是另一个人过来,尤其是权利比我大的,突然对系统的一个特征说,用户觉得这个很不好?是吗?到底是用户,还是他?如果是不止一个用户,那么用户中需要细分,是那些用户?如果这些这些都不清楚,那么准确的反馈是"我觉得可能会有些用户觉得这个不好",如果这样的语言就会为后面解决这个问题留下空间,否则就容易产生双方面的抵触情绪,从而影响开发组织的效率.所以提供反馈或者解决方案的时候不要忘记加上,"我觉得...".
      • Think about SQM.
    • agree, I never think Developer只是年轻人的职业
      本文发表在 rolia.net 枫下论坛what you said are true

      besides, it also depends on personal interest, if they really love programming, not saying most people enter this field just because they hear it's easy to find a job or something like that, I mean a real love of programming, if a person does have this feeling, age is never a problem.

      but if a person does not have this feeling, when he/she grows up, usually starts losing the enthusiasm to continue learning and working. In that case, people normally find an excuse, such as, "ooops, I am getting old, and developing shall be the world of young kids. They have passions, they can think much quickly than what I can. Maybe I should be a project manager, consultant or something else..." Ha, check with Dilbert, they are losing their engineering knack, becoming Wally.

      Moreover, a so-called developer should not only be a job, it's a skill, just like KungFu, after you learn it, you know how to do it forever. As long as we learn how to program (I mean real how-to, you know what I mean), we know developing forever. No age difference. Yup. there might have one, just as you say, stamina, elder people sleep earlier than young kids.

      BTW, personal opinion, I think most young kids need to spend almost 10 years to learn real how-to program.更多精彩文章及讨论,请光临枫下论坛 rolia.net
    • Support. Read this: "Teach Yourself Programming in Ten Years"
    • 我不清楚你在跟谁吵,或者在反驳哪个人的意见。。。不过就现实世界而言,我实在没有看到过哪个高薪的contractor职位是毛头小伙子能拿到的。这里找人,经验越多越好,难道不是吗?
      北美这里强调经验和见识,是因为这里很多是做开发或者(更进一步)是做研究的。国内嘛,主要是外包而已,不值一提。哥们刚从国内过来,时差还没有倒过来吧?