应该是bigtall在2007年度的最后一篇了,虽然2007年欠了大家很多帐,但是继续写应该是在2008年的事情了,很多时候非常有想法的东西,真正到落笔的时候,还是会发现欠缺许多东西,所以很多时候犹豫再三,还是不敢落笔。请大家见谅!

今天有机会见到了以前共事的同事XJ,在KFC海阔天空谈了很多,主要都是集中在各自工作和技术方面,有点启发,所以写下来备忘。大家简单看一个意思就行了。

以前觉得年龄不是一个问题,现在想来其实还真是一个大问题,不知不觉都是30出头的人了,眼看着就要“奔四”,这个日子是慢慢的后半段不如前半段长了。今后的职业生涯怎么变化,也成了一个越来越需要思考的问题。什么是“有出路”的职业?我们经过讨论,觉得定义应该是“一个不需要改行可以一直做到退休的职业”就是一个“有出路”的职业。但是现在的职业真的是一个“有出路”的职业吗?

1.年龄问题

还记得20多岁的时候曾经想着30岁的程序员会不会有人要?结果现在发现30岁的程序员其实很厉害,并没有想象中的“没人要”的情况,相反是一个“香饽饽”(不过也挺贵的)。再看看我们国外那些出书写作的,都是四五十岁的。似乎看起来很不错,但是在中国的我们到40、50的时候还会不会有人要?

2.自身问题

再看,其实周围很多同事都已经转行了,总体来说,30岁以后的程序员数量是呈现一个逐步减少的趋势。30岁之后的程序员们的生活压力却是在不断的加大:娶妻生子,还有房子(加息听说过吗?);但是自身的学习能力、身体状况却是跟20多岁的时候不一样了,还记得bigtall大学时候40个小时可以只睡2小时,现在呢?没有一两天缓不过来!

3.竞争问题

软件这个行业的新技术新思想层出不穷,所以学习是很重要的,如果不持续学习,就可能在下一波的技术浪潮中被淘汰。可是随着年纪越大,学习能力就越弱,也许现在我们可以自豪地说自己是属于剩下的20%,但是我们50岁的时候还可以这样保证?跟20岁的人比还是跟50岁的人比?

4.软件技术发展的问题

曾经有一段时间国内有些人叫嚣什么“软件蓝领”。bigtall认为喊早了,软件开发领域的职责分工随着整体水平的提高逐渐变得越来越细(10年前听说过哪家公司招聘SQA吗?),到时候别说是“软件蓝领”,就是“软件背心”出现也是迟早的事情,但是这个前提应该是分工更加细致的时候,不会是现在,恐怕也不会是2020年(也就是我们50岁)之前。但是这个是一个持续渐进的过程。MDA概念的出现,其实就是标志着“软件蓝领”慢慢出现过程的开始。用bigtall自己的信条可以来解释这个发展趋势“如果人确实是不可靠的话,就尽可能让机器来做”。当然,编码是目前冯诺依曼体系的计算机软件开发中必不可少的部分,正是因为机器不可能替代一切,所以未来会出现“软件蓝领”,当然也会出现“软件金领”(记得C#的设计者吗?)。

面临这样的趋势,如果不因势而变,要想自己的“奶酪”不被人动都很难。

5.公司发展的问题

其实小公司壮大成为大公司的概率比我们想象的都要小。那些成型的大公司(或机构),比如NASA(美国宇航局)、IBM、Microsoft甚至华为,他们的软件开发模式已经基本成熟,可以开发出高质量的软件,而且收入不小,他们有能力从人群中选择最优秀的人为他们服务,而且更会培训新人、挖掘人才。慢慢地,他们的软件开发形成了一种正向循环:好公司-好人-好制度-好软件-好收入-更好的公司-更好的人-更好的制度...

相比小公司,因为能力所限,所以会做很多短期工作,导致产品运行、维护代价太大,有不容易找到合适的人,也少有资源去培训员工,慢慢地就走向了一种负面循环:小公司-软件质量问题-收入减少-员工流失-更小的公司...除了那些有决心摒除软件开发中短视行为的公司,并且有合适的机遇,才能壮大成为大公司。其他的基本都没有未来

那么,小公司能提供给我们“有出路”的职业吗?大公司又能提供几个?要进大公司,又有几个人能入他们的“法眼”呢?

总之一句话:有危机感,也有机会。

接下来谈一下MDA的事情。因为bigtall这两年一直在关注这个问题,但是目前的软件开发现状一直不能令bigtall满意。我们目前的软件开发已经进入了“组件化”的时代,但是显然现在的“组件化”带来的好处并不如想象的那么大。

bigtall一直很羡慕IC行业的做法,他们用一块块集成电路用几个线连一下就可以弄出这么多神奇的东西,从电视到电脑,从手表到手机,从火箭到卫星(注:我说的是硬件范畴)...虽然是差异性很大的领域,但是他们基本都会用到相同的IC(航天领域的对可靠性要求有不同,但是IC模块信号差异不大)。但是相比我们的“组件”,“集成电路(IC)”的通用性确实要大的多。为什么?

通过和XJ的探讨,我们认为IC和“组件”的接口规范是一致的:一定规则的输入,一定规则的输出。但是IC的输入输出是“信号”,而“组件”的输入输出却是“数据”。不同信号之间的差别,无非集中在电压、电流、频率三个方面,而且这三个方面都相对独立,可以单独拿出来处理;但是“数据”之间的区别却太大了。我们的“组件化”过多地强调了“接口规范”但是却忘记去屏蔽掉“数据”之间的差异,而更要命的是计算机程序不仅和“数据”,而且和“数据结构”之间的耦合实在是太紧密了。泛型(Generic)的出现主要是解决了“代码”和“数据结构”之间的耦合过紧的问题。继承(Inherit)和实现(Implement)的出现部分解决了数据的差异。但是“组件”是一个运行时的东西,所以泛型对“组件”和“数据结构”之间的解耦没有帮助。真正的“组件化”时代,bigtall认为还要有“设计时”“组件”的支持。

“设计时组件”的应用场景就是在MDA中。只有“设计时组件”出现,才能解决“组件”和“数据结构”之间耦合过紧的问题,才能提供真正类似于IC应用那样的水平的“组件”。两年前参加过一个“华罗庚软件”公司的推广会(他们老总自称是华老的弟子),这个公司致力于把“数据流图”可执行化,也就是通过设计器把各种设计好的模块像积木一样连起来,最终形成一个应用程序。这个思路很好,但是软件bug太多,听半路就走了。

可见软件开发的“积木化”是很多人的理想,一个“积木式”的软件模块无非就是若干个输入,若干个输出罢了。bigtall把这种“积木化”的模块用一个汉字“”来表示:横线表示区域界线,也可以表示“积木”本身,横线上面的三个笔画表示输入,横线下面的部分表示输出。现在的情况是做一个“米”比较容易,要把一堆“米”做成一个熟饭却是相当的不容易。我们目前的“组件化”看起来依然是在“一粒生米”的阶段,离煮成“一锅熟饭”的时候还早得很。

如果我们不仅有“运行时组件”也有“设计时组件”的话,加上每一个步骤的“可自定义”特性,我想MDA就会让编程进入一个新的时代。10年前流行的4GL并没有带来什么太大改变,但是以MDA以及类似的概念恐怕会带来深刻的变化。bigtall和XJ曾经谈到了MDA代码生成的反向工程问题,提出了一个疑问:软件行业普遍存在着不设计就进行编码的问题,但是电子行业似乎没有这个做法,他们都是仔细地计算每一个IC的输入输出参数,然后装板调试,从来没有说是把IC先接起来,然后再去设计或者“补设计”。道理很简单,IC随便连起来会烧片子的,会有实际现象(比如火光、闪电等)和真实的物品的损失,现实不容许他们这么做。但是软件太灵活了,而且损失的“时间”对很多人来说无所谓(不珍惜时间算不算民族劣根性?),所以我们会有“先实现后设计”的奇怪而荒谬的做法。其实仔细想想,真的我们实现代码的时候没有“设计”过程?不是,我们都是要想好了才能去动手的,只是不习惯去把设计用文字和图画形式表现出来,稳定下来之后再去编码而已。如果MDA成为了软件开发的主要方式,这种“先实现后设计”现象自然就销声匿迹了。

当然,要真正深入去探索MDA,路还很长!

祝大家元旦快乐!新的一年里,事业顺利!进步!

和老同事的谈话:关于职业生涯以及MDA相关推荐

  1. 为你揭示最危害程序员职业生涯的三大观念

    蓦然回首自己做软件开发这个行业已经十年了,这十年中我获得了很多,技术能力.培训.出国.大公司的经历,还有很多很好的朋友.但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的 ...

  2. 【职业生涯】这样的开发人员每个团队都想要

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 合作是你职业生涯中不会缺少的一个部分. 什么是团队?团队就为了共同目标而努力的一群人.一个团队实现 ...

  3. 转:SWOT分析法与职业生涯规划

    SWOT分析法与职业生涯规划 SWOT分析法与职业规划,主要介绍SWOT分析法的概念.如何应用SWOT分析法做职业生涯规划.生涯设计公益网(www.16175.com)大学生职业生涯规划专题组推荐. ...

  4. 作家生涯人物访谈报告知乎_即使您不认为自己是作家,写作也会如何改善您的职业生涯

    作家生涯人物访谈报告知乎 您读过玛丽·近藤(Marie Kondo)的< 整理生活的改变魔法>一书吗? 还是像我一样,您购买了它并阅读了一点,然后将其添加到床旁的那堆混乱的书中? 在这本书 ...

  5. 职业生涯设计与面试培训

    职业生涯设计与面试   2003年6月 第一部分  职业生涯设计 引子:认识你自己 中国有一句谚语:"知人者智,自知者明." 在古希腊的德尔斐神庙前,树立着一块巨大的石碑,上面镌刻 ...

  6. 从我的职业生涯有感而发

    快2年没上班的我,面试捣鼓捣鼓面试题,写写,看看框架的书,最近成了一家培训机构老师,那是一家不是太大的培训机构,前期学员学完了,要去找工作了,这边老师帮忙包装简历,帮忙给学生传述话术,怎么去唬住面试官 ...

  7. 什么是职业生涯规划?

    即将走上社会,面对多彩而纷杂的行业和职位,无所适从的毕业生朋友,或者已经步入职场,但却感觉职业道路越走越窄的职场中人,是否需要暂时停下来,认真思考一下自己的职场人生,为今后的事业发展作全面.长远的打算 ...

  8. 回顾10年职业生涯,重新启航

    临近2022年春节.因为我们这边项目上,已经封板了,没有新的需求上线,自然基本上也没什么事儿了,我就提前请假了,现在已经在老家了,正好利用这段时间,来回顾一下自己职业生涯10年的时间发生了哪些变化. ...

  9. 【zt】个人职业生涯的PPDF法(个人职业生涯发展道路)

    个人职业生涯的PPDF法 PPDF法 PPDF的英文全称是:Personal Performance Development File.中文是:个人职业表现发展档案,也可译成个人职业生涯发展道路. 在 ...

最新文章

  1. hdu1501 dp:两个字符串能否组成新串,状态表示能,不能。
  2. zookeeper3.4.5自动清理日志
  3. 装饰器3--装饰器作用原理
  4. 当Elasticsearch遇见智能客服机器人
  5. 李飞飞组开源大型室内场景的模拟环境iGibson
  6. JavaScript中DOM的层次节点(一)
  7. java内部邮件系统_java 图形界面 邮件系统
  8. 想学习C语言,学习路线是什么?
  9. 流媒体之RTMP——librtmp拉流测试
  10. ET游戏框架之环境搭建与运行
  11. 吉大计算机学院田地,吉林大学研究生专业介绍:地质工程
  12. 在Linux操作系统中,存放用户账号加密口令的文件是
  13. 计算机组装的硬件配置及报价,2021组装电脑配置清单及价格表说明
  14. 初学larval 第一篇(大神绕道哦,针对新手友好的一篇)
  15. 计算机计算建筑结构的方法有哪些,建筑结构设计包括哪些内容呢?
  16. Ubuntu系统没有声音解决方案
  17. 4年小Java的心路历程,绝对干货分享
  18. 安装vs2013出现此预许可证已过期--解决办法
  19. 视频教程-Apache Shiro权限框架实战+项目案例视频课程-Java
  20. 如何做一个基于JAVA餐厅座位预定系统毕业设计毕设作品(springboot框架)

热门文章

  1. mysql 5.7 修改root 密码
  2. 沃尔沃加入英伟达阵营 2021年开卖自动驾驶汽车
  3. numpy.ndarray的赋值操作
  4. 字符串转换成utf-8编码
  5. BZOJ1042 [HAOI2008]硬币购物
  6. java Apache Commons jar包简介
  7. 汇编语言第二课作业-实验1
  8. 错误信息输出,重定向到文件
  9. 5013.FortiGate企业级硬件防火墙Demo演示文档
  10. 在Win7 + VMware7下安装Xcode 4