程序员职业发展的绊脚石-思想的枷锁

开篇

       首先、我是一个程序员,从大学毕业到现在,已经工作了近5年的时间,看着现在越来越多的朋友进入IT行业,并且年轻才干的做软件开发的朋友们,个个都是生龙活虎,精兵强将,年纪轻轻的就学习了很多知识,我感觉我们做这个已经有点力不从心了,程序员,一提大家都会说是吃青春饭的,是的,在国内的大环境下,如果程序员自身的技术本身并不是很出色,然后年龄又过30了,那么就会有这样的现实问题,现在公司招人,都是从利益的角度出发,会详细的计算所谓的投资回报收益比,这也是我们作为职场人员,给企业打工逃脱不了的问题,所以生活还是很现实,当梦想照进现实的一刹那,思考总是引起涟漪。

        可不、今天起了个大早,西安天气很热,房子蚊子多,真是悲催啊。唉不说了,想了很多,所谓梦想的追求,希望能最终经过努力来实现它,很多人说我们应该享受过程,呵呵,而不是看结果,不过有时候以结果成败论英雄的。现实就是这么残酷。

摘要

        我也是早上实在是睡不着,又不想写程序,感觉脑子很乱,不过想到写这篇文章的思绪却很强烈,我一直思考一个问题就是,为什么我以前考虑问题的时候,好像思维都是非常的固定,模式都很程序化,导致从事开发人员之后,自己做事都很固化,包括很多事情,原来敢于尝试的,现在都不敢尝试了,因为不知道前方会是什么情况,所以从不敢试,然后,我推荐我们以后,当遇到一个自己从来没有做过的事情时,可能我们刚开始并不知道如何去做,当我们对这个没有做过的事情,用心,专注的去攻克它的时候,等你掌握了门路之后,你就回发现另一个春天,真的是这样的,我现在遇到什么困难的事情,都不会轻易的妥协,我不怕失败,所以才会有可能成功。

         关于专注、思维的转变、放下枷锁、改革开发思维也许是我们职业生涯的新起点。

         gosign让我开始新的职业生涯之路吧。

思想的枷锁

        首先、我写的更多是我的理解的所谓的思想的枷锁。不代表全部,部分观点可能有错误,或者是太片面,还请大家批评指出。thankyou!

        我认为做程序员开发太久后,一般会有这样的感觉。技术上,变化更新太快,感觉跟起来有点力不从心,不跟好像又不太合适,所以一直处于追赶的步伐,所以当程序员,会感觉很累,身体累就不说了,更多的感觉是心累,关于哪个语言的程序员最累,我想是做应用开发的,不管是Java还是.NET程序员相比其他的对技术上要跟风的东西太多了,不过,当我们思想上理解一点,其实就想明白了,应用技术的出现,无非是为了解决几个问题,一是提高软件的生产效率,二是降低开发成本,这里所谓的成本就很多,时间、人力、后期的投入等等,所以易用性、快速等方面的要求就会要求比较明显。我想这个大家应该神游体会。我是从事微软平台之上的与同事一起合伙开发一套帮助企业及个人的快速软件开发平台,提供了强大的快速开发辅助工具,帮助开发人员更好的专注业务功能的开发。三是解决前辈们的一些不易解决的问题而发明的新语言或者是解决某些问题而生的新技术。例如目前比较或的云计算,总感觉又回归了,思想上呵呵,当然也有新的发展了,在原来的集中式主机+多个终端,现在只是形式上有所变化,并且给了个新名词“云计算”呵呵,挺浪漫的话说。

        再次、不得不说,技术的发展是日新月异的,而我们的技术水平应该也是在逐日提高的,不过我们的思想,有可能变化的总是一种模式,我下面简单总结下一般程序员的思维,不代表全部,thankyou。

        程序员的一般性思维:

        image

        上图,我先说明下,上面的毛病,有时候是我自身也有的,我也在努力的改正,也有是我看到的,听到的,感受到的呵呵。

       后面我们就来仔细的简单分析下,原因吧?

所谓的难沟通

        其实、并不难沟通,真的,但是说实话,让程序员跑商务或者是跟客户见面,让程序员做出和客户面对面来沟通的时候,就可以感觉到一些事情,我简单罗列一下吧,我自身也有这样的问题存在。

        1、往往我们想的软件与客户实际的业务场景和业务功能,会有一定的偏差,因为客户希望的业务系统,在软件上实现很难,当然并不是软件实现不了,往往因为一些时间和进步上的关系,我们会考虑把这个难点绕过去,或者是用一种折衷的方案来一样完成客户希望的功能。

        2、程序员考虑系统设计功能模块的时候,有时候喜欢考虑一些用户并不常用的场景,反而认为是用户未来可能用到的功能,而加大设计的力度和灵活度,其实现实中的软件,并不是所有的功能开发出来,都被客户所用到,科学的调查是,用户往往使用的功能不会超过80%,甚至更低。

        3、程序员的沟通与表达能力,有的时候与客户或者是我们去调研需求的时候,表达的词过于专业或者是用户听不懂,我们应该立足于某个行业,首先熟悉业务的专业名词,不是要求我们成为业务专家,至少知道我们开发软件的目的是为了解决什么问题,应用在什么业务背景和场景。

        4、程序员与程序员之间沟通,如果技术相投的朋友,沟通起来比较愉快,一般就一些问题,达成共识会比较难一些,特别是一些自己思想上认为不太合适的问题,可能就无法接收一些观点,也许现实中的这些观点不对,不管站在另外一个与你沟通的人的观点之上,他确实是正确的,所以这时候,很难接收,往往程序员与领导之间难达成共识。其实这是牵扯到商业等各方面目的,是利益权衡的结果。

        image

程序员思想固化?

        一个人的行为,还好改变,而改变一个人的思想,真的很难,程序员的思想其实也不是一天二天就形成的,从你接触开始,或者包括就业,社会环境等等所有的事情,对你个人心里和情感上总体的变化,最终形成了一个人的思想。每个人不管是在家庭、社会、工作、生活中所处的环境与地位等都各不相同,但是终究一点,人活着,不是为了受罪,而是一是满足物质生活,二是追求精神生活。所以这个我们作为程序员,一样也是希望能有一个精彩的人生。

    坚持自我

        关于程序员坚持自我的思想,我想最能表现出来的时候,就是与人沟通时,再没有达成共识,或者是自己职位高于别人的时候,一般都会把自己的意志强加给别人,呵呵,说难听一点,有点强奸别人的意思,当别人提出批评意见的时候,往往心理上会不服,嘴上坚持自我,难以沟通。其实、程序员的逻辑思维能力很强,不然没办法当一个好的程序员。因为如果逻辑思维混乱,那么不能说肯定程序写的混乱,但是肯定不是非常好。或者说是严谨性与质量上。

        images

        所以,我不怕,呵呵,因为我是程序员。

   思路窄

       我这里所说的思路窄,主要是以下的几个方面,不代表全部。

        一、解决问题的思路,一般来说,都是最快的解决问题就OK,没有考虑一些更多的因素,比如代码的质量、性能。没有寻求有没有更简单的解决问题的思路,

把问题容易复杂化。

        二、对功能的认识,都认为是能实现功能即可,很少从用户的角度出发,考虑用户的实际使用场景,易用性等,对功能自我满意度较高。

        三、对事物的看法、一般对于不知道的事物是一点都不了解,了解的事务,都会整出很专业的一堆解释。而且,生活中的知识一般知道的太少,为啥呢,因为都在写程序。其实有些程序,不再我们写的多,有些程序,你写十遍和写一遍是一样的,但是有些则不然,古人说的没错。书读百遍,其义自见。程序写多了,也会衍生出自己的想法,自动就会对代码进行重构和设计。

         四、对生活的认知,一般都会认为社会的每个行业其实都差不多,呵呵,而且认识的人一般都是程序员,因为见到的都是同行的人,所以每天沟通的话题,都是除了IT还是IT,生活总是离不开那个区域,让人感觉好像,除了这块可沟通,其他的东西,都不用考虑了,呵呵,我感觉这是我自身的毛病之一,要多接触各行朋友,深入社会,才能在认知上扩大,并且扩大交际圈,人不能老是活在自己的世界里。

        五、更多。我也不知道还有哪些,大家补充吧。

        Idea_Cellular

        放飞想法,走出禁区,展翅高飞,迎接精彩而又打上自己标签的幸福生活吧!

   凭经验

        这个怎么说,为啥这么说呢,这其实不光是程序员的思路,也是所有目前社会人士的思路,认为总体来说,就是瘦死的骆驼比马大,大家应该能意会出意思吧,

呵呵我想也不用太明说。我们从招聘人的时候也能看出来大概,有时候我们在评价一个人的时候,总是从自身的标准,凭自身经验去判定,往往都是主观的评价,而不是客观的评价,往往是以偏概全,常在河边走,哪能不湿鞋?古人总结的话,总是经过多人实践证明的。希望我们不要当凭经验做事失败的时候才后悔莫及啊。

        还有就是认为,工作年限多的人比少的人能力强,呵呵,这个不能说100%就一定对吧,我认为凭经验就认定,一棒子打死人也不对的呵呵,我们要具体情况具体对待,经验有肯定比没有好,就像很多做设计与系统分析的人员,有经验,肯定比没有经验的好多了,这是肯定的,但是经验不是全部,还要集合具体的东西,而常常我们都是凭经验去办事,认为以前有过这样的经验,这次肯定没问题,有时候会因为准备时不充分或不足,做出来的系统或产品,与客户的需求有偏差呵呵。当然有经验比没有经验是好,但是一味的凭经验办事绝对就是有问题了。

        2_110719174812_1

        经验是财富,但是不是全部哦,有时候要具体问题具体分析。

转换思维难

 

  接收批评

        很难接收批评,我想这是程序员心理上比较难接收的事情,而且程序员一般情况下,都比较会为人处事,我说的为人处事,是指不喜欢惹事生非,以和为贵,很少会与人撕破脸,争吵之类的,反正我是不会,遇到牵扯到利益的事情,有时候都懒得抄,也许我是被吓大的吧,怕怕!或者是懦弱?其实并不是。

        当我们在工作中或是生活中,做错事,当我们指导自己错的时候,才会认错,或者是在别人的威逼利诱之下,才会认错,主动认错的可能太少,一是因为面子上过不去,程序员,都比较好面子,希望别人夸他不错,或者是能力强,不喜欢别人贬低自己不行,其实不只是程序员这样,是人都这样,但是如果我们程序员,想要比别人强,那么首先得接受别人的批评,自己做得不好的地方去改进,所谓忠言逆耳利于行,我不想说古训了,真的有道理,我也讨厌别人批评我做事不好,不管是生活上还是工作上,都是如此,每次都希望自己做事能做好,让人尊敬之类的,其实往往不是如此,为啥呢,我得出结论,领导分配任务,有时候只是跟你说想要的结果,有时候由于过程不同,往往成本与时间不同,最后的结果也许也会不同,程序员上进的吧,机会考虑每次项目都是学习的机会,不上进的就是重复劳动,外包公司一般的项目,你做个遍,就知道了,呵呵,接受批评也是进步,不能说是技术上的进步,应该说是人生的进步。成大器者必须接受别人的好的批评,当然不好的就当耳旁风吧,thankyou!

        image

   无法面对失败

         首先、没有人喜欢失败,不过在实际场景中,由于一些难以控制的情况,项目会有失败的情况,其实我做过的成功的项目不少,失败的项目也很多,我也是刚开始没办法面对失败,生活中也是如此,我高考的时候,并不是一击必中,而是二次才成功的,曾经因为一些前后的反差巨大,心理上承受不了,不管是各方面的压力等,也许等你经历了一些事情之后,才会更坚定信心。

        程序员面对的失败,更多的自己工作中的失败,生活中的失败,也会对工作造成影响,人家是这么说的,当一个工作的状态能够反映一个人的生活状态,当这个人工作的很带劲,他的人生也必是积极向上的,或者是充实的。所以关于励志的故事,这里就不多说了,所谓失败是成功之母,我们不应该因为某次不顺或者失败的情况,就放弃自己的理想或者是自己的目标。关于前人的路是不是可以复制,只要你努力,并且朝目标前进,你放心,付出总会有回报的,在技术道路上可以说是比

没问题的,你投入的时间多,技术水平肯定就上来了。这和生活中的一些做事的态度和专注力与取得的结果是一样的。

        09042416368757

商业思维

        首先、我想说的是,程序员一般人很少会从商业的思维去考虑问题,或者是人生的规划等,其实很多的程序员创业,一是为了理想,二是为了成功后能发笔财,不过有些事情,我也不好多事,牵扯的范围太大,大家意会就可以了,社会压力大,生活上与物质上的,我现在就遇到这样的问题,生活最终要落地的,所以当你结婚之后,你就必须考虑如何去保证一定的经济收入,孩子的奶粉钱和上学问题等,房子问题等,开销等,所有的所谓的经济压力都会随之而来,我们如何应对。打工来自稳定的收入,固然不用太愁,每月正常上下班,把安排的工作干好,然后就等发工资,如果能干的好,那么还能分奖金,当然我说的不是全部,说的是好点的公司,有些公司可能没有,不过大部分的北上广的企业还可以。

         给别人打工,工资收入稳定,到月就发,当然有些特殊的公司,那样的不稳定发工资的公司,可以考虑闪吧,不过我最近接触到的一些商人,分析下他们的经验,当然关于对不对,我就不评判了。

        1、商务的问题。公司的收入来源,没项目没钱。

        2、技术问题。有项目,但是没有合适的人员,这就很难开展,只能外包,赚取中间差价,这样的公司一般很少需要程序员。

        3、管理与运营问题。人多了,公司的就需要有人管理,除了商务,技术,还需要考虑公司的管理与运营,包括市场的推广。

        4、成本收支。必须考虑支出与开销,控制成本等,投入的基础设施的费用与人员费用,其他隐性支出。

        有时候老板必须考虑,企业的发展与自己的优势,并且能够给员工发工资,不然怎么能留住人,没人企业就没办法发展,也没办法壮大,人是企业的组成部分。

企业如何立足行业,提高行业的竞争力才能发展,否则只能被吞并。

         我希望我们有时候,能够转变思维,并不是让我们损失自己的利益,站在商人的角度来考虑问题,比如拖欠工资,其实与其这样,我们还不如找个不拖欠工资的公司,我们做软件其实不就是为了基本的生计问题吗?能有口饭吃,当我们创业的时候,或者是想能够把梦想照进现实,不管是为了创业成功后的发财还是发名,等等,反正都必须了解与熟悉商业上的模式,切换思维,才能更适合社会的行情与环境。

        image

        Andriod是开源的,但是并不免费,你可以深入背后,了解下器商业模式,可以很好的学习。我们有时候需要转变思维?也许吧。

精英法则:2/8

        相信大家都知道2/8原则了,呵呵,不用我怎么解释和说明了,不管社会进步到什么程度,这个原则永远适用。我认为,我们大家应该努力先向20%的目标进发,这个时候离成功和物质生活的改善就不远了,365行,行行出状元,这句话也比较有道理,我不是什么学者也不是什么专家,这些大道理,我想我没有资格跟大家教导啥的,我自己现在也是在80%的范围内,希望能够成为20%的一员,我也是在加油的追赶。

        如何成为精英,这个步骤,我是讲不来了,这个大家可以看看各方面的资料了,如果我们是做技术想成为20%的精英,我认为可能有以下几点:

        1、用心,把敲门砖修炼成金砖。我们没有钱,没势,不会拍马屁,不会做事说话左右逢源,怎么办,先把技术修炼的刚刚的。

        2、学习技术的时候,在一个行业内,目前是成为接近技术专家的伪专家,专业,用心,不断学习,关注社会东西,清晰的人生目标。

        3、修炼人生、修炼意志、接收现实与所处环境,与其抱怨不如潜心修炼,终有一日会达正果。

        4、技术上想成为专家,一是技术与行业知识过硬,而是肯于交流与分享,不要把知识放在自己的肚子里,消化不良容易。

        image

        在国内,技术人员很多的情况下,往往精英只是极少数,加油吧,兄弟们。

收入不平衡?

        我想我们大部分,都有这样的想法吧,反正不管你有没有,我是有这样的想法的。我们每天在公司做项目,公司的主干人员,比如大公司的架构师或者部门经理,鲜能见到人,在工位,但是你放心,他的收入远在你之上,或者是你的所谓的项目经理或者你看不顺眼的领导和主管,程序员的工资,在一个企业内部可以说是底层的,为啥呢,我想是这样的。

        1、可能我们技术不强,能力不强。这个能力不光是技术与解决问题的能力,还包括沟通、管理等方面很广。

        2、技术强、但是不太会表达,不太会为人处事,不太会镇得住场面,该说的时候,说不出来。这就很悲剧了,肚子里面有墨,但是倒不出来,那么很悲剧了,我发现,很多的技术强人,都有一些这方面的问题,我不是技术强人,我也不太会表达,有时候,悲催。

        3、我是程序员,偶尔抱怨,领导一天不加班,也不写代码,日子过得悠哉,提早下班,迟来上班,下班之后,车一开,工资我的好几倍,时不时的放假能出去举个会,旅游啥的,悲催,程序员呢,平时加班写代码,研究技术,周末好不容易休息,还得加班,或者研究新技术,日子是很充实,结果呢?不言而喻。经常抱怨的人,心态并不好,而且自己的工作与生活也常常如此,抱怨不如尝试着去改变,接收而奋发图强,成为强者。

        4、我是程序员,当我们看到周围的人,职位攀升的时候,我们是否也在想自己哪天也和他们一样,其实你仔细看看,也许周围的人付出没有你多,但是他上去了,你却没有,为什么呢,仔细想想吧,是你干活少?不是,是你不会为人处事?有可能,是你不会表现与抓住机会?有可能,是你还不够稳重,很急躁?这绝对是最大败因,我们有时候在一个公司呆了2-3年,结果职位是周围比自己爬得快的比比皆是,自己却一直很慢,仔细考虑和反思吧,领导的想法很特别,我这里就不一一道来了,这是写不完的。

        最后、生活是自己选择的,但是记住,自己的生活轨迹是可以改变的,人不是生下来,就决定一定这辈子只能当编码的程序员了,我们既然选择了方向,我们就要努力。成为20%的精英,不管是自己有事业的想法还是在企业内部成为领导,我们都可以为之努力。当别人日子过的很滋润,你还在考虑房子,车子,基本的物质生活时,别人有着漂亮的老婆和幸福的家庭,舒适的生活,记住,刚开始肯定不是这样的,人家如果家庭条件并不好的时候,肯定人家也努力奋斗过,如果是家里有钱,那就没啥好比的了,我是没钱,也比不了,只有靠自己的双手,来托起幸福的明天了,我们不希望继续这样的生活了,怎么办,自己想好出路与目标,先实现小目标吧。祝大家都能成为20%的精英。

        200785202249879_220%的人创造了80%的财富,他们当然理所当然应该拿80%的收入。呵呵,我们应该也是如此。

更多

       上面说了那么多,下面我们来说说我们目前的平台AgileEAS.NET平台,首先我们所有的东西,不管是产品还是解决方案,都是基于AgileEAS.NET平台之上构建的产品或解决方案,所以我们所有的技术指导等方面都是基于AgileEAS.NET敏捷快速开发平台之上来说的,一是平台的构建是基于软件工程的思想为指导来构建的,所以我们的平台是融合了软件工程的思想在其中。

         image_thumb37

        上图是基本的软件开发过程,当然可能部分现在是走敏捷开发,我们提供的是一样的开发模式,一个模块是一个插件,可以进行独立的插件开发,并且实现真正的并行开发,来提供开发速度,降低开发成本。

        上图中的产品部署,目前也是已经有了,但是没有提供可视化的管理,后续会提供可视化的管理,将软件打包,统一发布和部署。

       

        上图是平台最终的开发管理解决方案,平台提供丰富的开发工具,并且集成软件工程的思想为指导,帮助企业提高开发效率,帮助开发人员提高开发速度,但是又不是降低开发人员的水平,让其无用武之地。我们提供的平台不是让开发人员当码农,而是让其自身不断的提升自己对软件的理解和技术的提升。

        例如,帮助企业提高开发效率体现如下:

         image_thumb39

         统一企业的产品线,并且能够更好的对人员进行管理,同时开发上通过平台提供的PM工具,更好的来进行项目的资源的分配与进度的跟踪和调整。对开发人员来说,通过使用平台,我们能学习到如下:

         image_thumb41

        关于更多的使用平台后成本的对比和相关的数据信息,我们可以在后面的客户案例中,来进行一一的说明和分析,得出相关的结论。

 

相关信息

       关于更多的系统架构方面的知识,我已建立了交流群,相关资料会第一时间在群里分享,欢迎大家入群互相学习交流:

       微信群:(扫码入群-名额有限)                                                                                              

       

posted @ 2011-08-16 10:14  hotdefans  阅读(29673)  评论(181编辑  收藏  举报