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

而您有没有想过问题真正的原因?

对于动不动就因为与人相处的问题而换工作的朋友,我认为很不值得(当然纯就工作性质而言,其他如感情、隐私等不在话下).因为A公司的甲君,也不过就是换成B公司的乙君罢了,没有认清楚自己心中的魔,到哪里,它,都会跟着你。

人家会排挤你,打压你,那是因为你对他造成威胁(或觉得你会对他造成威胁).这是很现实的,因为位置就只有这么几个,一个萝卜一个坑,想要到这个坑,势必要把占住坑的萝卜拔掉,而谁又想被拔掉呢?这就是竞争。但是我不喜欢竞争这两个字,我想提的是竞合.竞争是一种零和游戏,非生即死,弱肉强食。竞合是除了竞争的必要性之外(或说竞赛,不保持高度竞争力,还是会被淘汰),还需要合作;藉由合作的力量,让大家同步的提升。(你觉得你的主管阻碍你的升迁?想办法让你的主管 Promote 上去,你去接替他留下来的位置,这也是一种方法。当然,现实层面还是有很多需考虑的)

能够做一份自己心中理想的工作,说真的,是运气。能够在一份理想的工作待下来,除了运气,更重要的是努力与实力。方向掌握住,目标清楚,就按照您的步伐前进,职场上的形形色色,恩恩怨怨,都不过是人生中的点缀。主管跟您一样也是个人(当然很多人会不同意或者有很多主管不是XD),不用对他有太多的期许,因为他也是完成指令的人,只不过跟你接收指令的来源不同而已。主管的好与坏,都有我们可以学习的地方;好的见贤思齐,坏的当做借镜,时时警惕,期许自己将来会做的跟他不一样。

放下抱怨,虚心学习,将那些时间,拿来充实自己,准备好了,机会自然来临。不多说了,说多了难免老生常谈,最终是希望大家都能走出属于自己的一条大路。

zc530.Com小编推荐

修炼一名程序员的职业水准[2]


总结一下,其实你在这时需要的是对自己掌握新开发环境的能力的自信,而不是一遍遍地重复来证明自己。第二个大挑战就是你明白了只掌握VC是不够的,你发现自己有点浅薄,有很多东东你会用但你不太懂,很多方面支持VC编程的知识你都没掌握,比如操作系统的源码、网络协议知识、Windows 的注册表、进程和线程的基础知识、硬件驱动方面的知识、ActiveX、Windows 庞大的 API,又是一个等等等等,这些基础知识的学习和掌握可是要花费大量时间的,你再一次深切地感到时间太不够用了,因为这时的你大概有许多俗务缠身了,所以有点沮丧,还不用提IT业每天不知有多少新东西在发布,KAO,永远都跟不上,越拉越远了。哎!别气馁,振作一点,你还是忘记了自己是个职业人,既然好多东东在工作中你永远都没机会用,那么干嘛要学呢?用什么才学什么,最多预测到马上要用什么,先一步学什么好了,要知道没有人是真正的、无所不精的全科大夫,除非你是神,但如果你还在耐着性子看这篇文章,你肯定是个人嘛。 OK,一般工作后三五年,你经历了上述过程,经受了诱惑和考验,终于明白了一个道理:你要的是强劲的学习知识的能力,是对某种软件知识/技能的有深度的精通,一种摸到它的根的深度,而不是已掌握的技能的种类和数量。这时无论谁用他掌握了多少种你不会的技能来吓唬你都没用,你对他的层次只有蔑视。通过几年的学习和工作,要记住最重要的一点,永远最重要:对自己学习IT知识能力的自信,一个程序员一生都要不停地进行高强度的学习,用心问问自己,有没有这个自信?别用虚荣心来骗自己哦,如果没有的话,那就不必花费你宝贵的时间向下看了,作者在此感谢你有耐心看到这里,现在建议你关闭这篇文章,趁着年轻,当机立断转行吧!

三、注重逻辑:成为一名职业程序员 好,再前进一点点,你就要成为一名职业程序员了,让我们继续来完成这个任务吧!我们在前一节提到过,你发现一些个别的demo是极品,它所展现的程序逻辑结构是你设计不出来的,你现在有点更关心它的程序设计构架,甚于对你原始目的(某种相关的技术/技巧)的关注,其实你是在关注这个demo程序作者的思维逻辑,所有程序的本质就是逻辑。技术你已经较好地掌握了,但只有完成逻辑能力的提高,你才能成为一名职业程序员。打一个比方吧,你会十八般武艺,刀枪棍棒都很精通,但就是力气不够,所以永远都上不了战场,这个力气对程序员而言就是逻辑能力(其本质是一个人的数学修养,注意,不是数学知识).逻辑能力也是逐步提高的,开始时你一定是用直观的逻辑能力来编程的,怎么想就怎么编,不对就再改,在改进中提高自己的逻辑能力,从直观逻辑能力提高到抽象逻辑能力,这是很正常的。提前说一句吧,到达逻辑能力的至高境界,其表现是用数学语言来描述问题和问题的解决办法,高度抽象!好,说回来吧,你要提高逻辑能力,最快的办法就是读别人写的结构优秀的程序。优秀的代码是百读不厌的(这句话是我抄来的),暂时放放对其中某种技术和技巧的关注吧,你要推导和学习的是这些好程序的逻辑结构,它们是被精心设计出来的。你可以先捂住这个demo程序,自己设计一个功能相同的程序结构,然后比较一下demo的程序结构,如果差距较大,那你就不应简单地改进一下,而是要把demo作者设计的过程在心里复原一遍,做到这一点也许有点困难,但这种事干的多了,你就会越干越快,越来越得心应手,你的逻辑能力飞速提升,你能看得上的逻辑结构优秀的程序开始不多了,下一步就是练习。从工作中开始吧,如果你有空闲,你需要做至少两类练习,一类是算法练习,所有的经典算法都是经典的逻辑,题目有的是,像个好学生一样吧,每年的国内国际编程竞赛都有逻辑要求非常高的题,你可以只选一两道难题来做做。当你可以把复杂的单递归程序(只有A调A)变成非递归程序时,已经不错了,如果你能看得懂双递归程序(A调A、A调B、B调A、B调B都有),我为你鼓掌!你不必往下看了,我有点不好意思啦――班门弄斧,你快滚蛋吧!另一类是把以前和当前你工作中你不满意的程序推倒重新设计一遍,这非常重要,省时省力,因为你熟悉需求,技术上也没问题,目的就是改进程序的逻辑结构,很划算哦,唯一要克服的就是:你对推翻以前工作中那点小小成就的心理障碍,如果你真想优秀,说句粗话:这点心理障碍算个屁,一遍遍反复地推倒已有的成果只能使自己快速进步,放手干吧,没什么好可惜的,马恩早就在《共。产。党宣言》里说过了:在这个过程中,你失去的只有锁链(禁锢你思想的锁链). 让我们来总结一下,经过自我否定后,再生的你尽管对过去的业绩还有一些眷恋,但已是一个初步具备职业水准的程序员了,掌握了相应的技术和技巧,具备了较高的抽象逻辑思维能力,最主要的特征是:能自觉地自我否定,不断地追求更高水平的逻辑能力。 在这个过程中,如果你能注意以下一些小的方面,你前进的步伐也许会快一些。 从编译原理的角度来理解你工作中使用的高级语言,如果你做到这一点,至少有两个好处,第一个好处是避免一大堆低水平重复出现的编译错误。一名优秀的Coder平均在一个工作日中应该完成200行以上的源码,其编译错误应该控制在5个以下,要知道这200行源码不是一次完成的,所以大多数情况下你都要追求一次编译通过,而一名职业水准的程序员,应该进一步做到即使用purify这类的工具来检查源码,也不会存在严重的内存泄露。第二个好处是可以提高源码的可读性和效率。规范地编写你的代码使你自己的逻辑清晰,因为你明白多加几个括号和空行、多换行对齐、多注释,编译器是会自动识别的,不影响程序执行的效率,反过来,控制好递归调用和循环内的if语句才是提高程序效率的关键,要全力避免递归,但要深刻理解递归,能通过自己建立堆栈来把递归程序转换成非递归程序,要求还是较高的哦! 避免思维陷阱,只要你是人就一定有自己的思维惯性,这一定又会表现在你的程序逻辑中,有时你就是从这个惯性中跳不出来(谁都有这个时候),但要心里有数才行,所以你需要帮助,如果你有几个水平相若或更高的职业伙伴,太好了,当遇到花30分钟还打不下的bug时,就别浪费时间了,找他们吧,最要紧的是能思路清晰明确地表述你的问题,通常你自己在这个过程中或者伙伴中就有人把问题解决了,又快又好。另外,有几个可以良性竞争的职业伙伴是人生的一件幸事,1+12,大家各有所长,你最好做到及时公开你的成果,技不压身嘛,IT发展的这么快,你再优秀,那点东东也没有什么值得隐藏的,所以你可以技术或水平不够高,但千万不可以让真正具有职业水准的选手鄙视你的职业品质和行为。

IT人如何修炼编程的内功[2]


ok了,这我们是不是可以理解到,计算机编程,其实首先是人的工作,当我们遇到一个服务需求,我们人来做一次,嗯,获得一个比较满意的结果,然后我们觉得这个动作可以重复,下次遇到类似的问题,照做就好了。于是,我们就安排计算机来做这件事了。是不是这样?

这是不是说明,程序,其实是在讲一件事应该怎么做,这个做的过程,以及这个过程的含义,其实是人定义出来的,然后通过编程,教给计算机来做而已。

我以前经常有种感觉,计算机编程,是两层意思,一层,是程序本身的含义,就是怎么做事,另一层,是隐含在程序下面的逻辑含义,就是做事的意义,程序只是字面上的意思,而逻辑,是程序段落组合起来,共同表述的一层意思。现在想想,其实就是这个道理。

嗯,既然我们知道,编程,就是把做一件事情的步骤,分拆开来,教计算机去做,但,分拆到什么粒度呢?这个很重要。如果分拆的粒度太细,白白浪费程序员的时间和精力,这些都是成本。而分拆得太粗,计算机还是弄不明白,做事不对,就是bug了。

这说明,编程有个很重要的概念,就是粒度,也就是我们对问题描述的精细程度。

最开始的计算机是最笨的,学过计算机组成原理的同学大概知道,只要有个累加器,其实已经可以算一台计算机了,只会做加法计算。因为从数学上,我们可以知道,任何计算,最终都可以演化成加法计算,事实上,现在的CPU,在最底层核心的部分,也还是这个加法逻辑。

这样做当然没什么不好,不过,有个小小的问题,就是粒度太细了。如果每件事情,都要程序员去拆解成很细的加法计算,这个工作就几乎不是人干的事情了。难道就无解了吗?

呵呵,前面我们说过,计算机的特点是什么?无限重复,大家就发现,一个事情,比如7*24,这是乘法计算,但是,我们最终要拆解为加法计算去实现,但是,不是说我们每次都要这么拆解,乘法计算也是一个工作,有规律的,因此,当我们拆解一次之后,我们当然可以把这次拆解过程本身,编订为程序,下次遇到类似问题,让计算机把这个程序再跑一遍就ok了。呵呵,大家以为Intel的CPU里面的乘法计算指令是怎么实现的?大家又以为AMD的CPU内部的微代码体系是怎么实现的?

就是这么一个思维,解决了所有的问题,遇到需求,首先拆分,然后不断检索我们以前是不是以前拆分过了,遇到能套用的程序段落,就直接用,不用每次都拆分那么细,减少工作量,当然,遇到新问题,还是需要自己拆解的,不过,拆解后,最好把拆解本身,也写成程序,下次重用。

大家玩各种语言,一般都提供基本库,这个基本库,其实就是前人已经拆解过的结果,软件公司觉得有代表性,可以满足大多数应用场合,就编订到基本库里面,以后程序员直接用,不用自己重复了,大家说是不是这样?

现在,大家知道怎么看待C的stdio.h,stdlib.h这些基本库了吧?C++的iostream是什么含义,知道了不?MFC知道了不?Java的运行时库是什么意思,也知道了吧?

不过呢,这个世界的需求总是很多的,并且,计算机的能力也是不断在进步,以前不适合计算机做的事情,现在也慢慢变得适合了。因此,大家总能遇到一些新问题,需要自己重新拆解,基本库中没有提供,这就是程序员这个职业存在的真实含义。帮助用户不断拆解新需求,解决新问题。当然,库本身也在进步,不断把已经被证明拆解成功的问题,修补到库中,避免以后的程序员做重复工作。就这么简单。

优秀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也并不是一件很难的事情,注意为人写程序,内外兼修,自然就能做出合格的应用程序。

修炼一名程序员的职业水准[4]


四、天生神力:成为系统分析员 本来就论述如何成为一名职业程序员而言,本文已基本完成任务了,但《菜根谭》有言:竭世机枢,似一滴投于巨壑,穷诸玄辩,若一毫置于太虚。既已乘兴到此,何妨多置一毫于太虚呢,作者不才,干脆尽兴写算了。 你要是运气好,直接进入了一个严格规范生产的软件企业就业,刚开始就应该是按别人做好的软件设计来实现编程,你可以有机会直接学习软件设计,当你积累的足够多了,能够对其中的一些设计提出好的改进建议,而且干得又快又好,就会渐渐地展露头角,我相信你终有一天成为一名软件设计人员(注意,不是软件产品设计人员),步入系统分析员的行列,但这还需其它的一些条件和自我修炼。如果你在一个不规范的软件企业工作,那也不错,你很可能直接就有机会进行软件设计,然后开发、测试,甚至还不得不自己定义需求,把软件开发过程的各个环节走一个遍,当然这样对你的要求更高,而且你也不容易得到及时有益的指点,在正态分布的情况下,你应该是成长的很慢。但不管就业的单位如何,如果你决心要成为顶尖软件职业选手,通常什么客观困难都阻挡不了你,然而你个人的因素可能会阻止你的前进。下面提出的观点纯属一己之见,伤人自尊之处作者在此提前道歉,并建议你除非对本文有强烈的兴趣,否则就请直接看第五节或放下别看了。丑话已说在前头了,在各种软件开发组织的发展过程中的事实也证明,只有少数程序员能成为系统分析员,我想这一点不是我杜撰的吧,因此你要是在看接下来的部分时感到气愤难当,那也实在没着,纯属活该,因为作者只是在说明自己的观点而已,你最多可以呲之以鼻,表示一下你的轻蔑好了,但没有任何理由可以骂人! 作者自己没有到微软面试过,但身处软件行业,关于微软的许多东东当然还是有耳闻的,据说微软招聘一名程序员要过五个已经成为微软程序员的面试关,而且是一票否决制,又据说大多数面试题并非编程,而是一些有关逻辑和智力的题,作者私下也做过许多流传的微软面试题,并对此做法深以为然。程序的本质就是逻辑,所以几十年前就有人提出编程是一门艺术,而艺术是要靠天份的,这一点少有人反对。一个人的逻辑能力可以不断提高,但其能到达的终极逻辑能力的层次必定为其天生智力所限制,这一点就让人不易接受了。好笑啊!人们可以公开承认自己没有某种或全部的艺术天份,但要说自己逻辑天份不够,换句话说承认自己笨、IQ不够高,往往是要怒发冲冠的,其实这又有什么区别呢?话都说到这儿了,再次建议你如果不够自信,就跳过这一节吧,直接看第五节,好吗? 好了,把话题说回来,你已经成为一门合格的职业程序员了,如果要想成为从事软件系统设计的职业系统分析员,第一件事就是悄悄找一个标准智商测试的网站或其它渠道,严格认真的测一测自己的智商,如果IQ低于130 (正常智商是110),就请别费劲了,打消掉成为系统分析员的念头吧!好!好!先请你冷静一下,好好想想,其实微软面试时就是在测你的智商和逻辑数学素质呢,这就是本节的标题为天生神力的原因,因为设计就是从无到有地进行创造,无论是软件还是其它行业都一样,可以有借鉴的,没有现成的,设计就是创造!如果你IQ在130以上,又决心要当一名职业软件系统分析员,其实你不过是要准备好吃更大的苦而已,有什么好虚荣的呢? 修炼还是从基本功开始的,过程和成为一名职业程序员差不多。必须使用设计工具这一点是不用多说的。在工作中,你基本上遇到的是两类方式的设计,一个是结构化设计,另一个是面向对象设计,就个人经验而言,面向对象的设计更好。如果你工作中不得不采用结构化的设计,你必须熟练地掌握数据流图和控制流图的分析和设计,一般来讲,如果你把一个软件中用到的数据模型设计好了,针对功能化的流程,不难设计出数据流图,但下一步设计控制流图才是挑战,如果你按照需求走不通设计好的控制流图,那么你或别人在按照这个设计编程实现时,必定也走不通,没有奇迹会发生,还是在设计阶段严格要求吧,又有一点需要牢记:返工是最慢的。当你在进行控制流图的设计时,也不要妄想得到需求人员提供给你明确的指点,通常他们要是能够把需求的功能和操作次序写完整的话,你应该就感恩戴德了,从需求中整理出功能、操作的拓扑次序和条件是你作为系统分析员的职责。看看,要是没有一点图论的基础和拓扑学的入门知识,你是当不好一个职业系统分析员的,即使你天赋不错,必要的数学和逻辑素质仍然不可或缺。也不用气馁,永远没有最好的设计,只有更好的设计,反复地进行设计迭代,勇于推翻旧的设计,你将快速进步。如果你在工作中是采用面向对象进行设计的,那就更有利了,有关面向对象设计的书太多了,不用作者在此多费口舌,建议精读一本经典的书,比如北大邵维忠等编译的《面向对象的分析》,有些方法和技巧可能过时,但其逻辑的基本原理是非常正确的,其本质是,你在逻辑上是如何认识这个世界的,你就是如何设计软件体系结构的,然后读读其它书,触类旁通,自己创造机会多实践,成功自然会到来的,总之,不管是结构化设计还是面向对象设计,评价一下自己的软件系统设计方案吧,有好多指标呢,比如是否均匀和平衡?局部独立性强不强?有没有歧异的结构?有没有层次太多或太少?有没有某个层次太大、太广?是不是逻辑结构先复杂了再化简的?还是只会设计简单的,复杂不起来(这一点是笨哦,如果出现多次,请你不要意气用事,转行吧)?最重要的一点,是否容易理解、实现和改进?你自己会得出评价的。如果有机会看到别人的设计,一定不要错过学习的机会,自己推导一遍,认真比较比较,获益会较多。 走到这一步,你就应该关注设计模式了,首先还是学习,这方面的好书有的是,但一般在工作中用到的设计模式较为单一,应该多尝试一下其它的设计模式。其次必须要明白设计模式不是设计思路,也不能代替设计思路,比方你要从A到B修一条路,设计模式只是让你选择,是修水泥的还是柏油的?是高架路还是普通的,但线路必须你自己定,而线路就是设计思路,模式对思路是有影响,但不能代替,所以如果你的智商高达250,我相信你直接用汇编语言也能写出面向对象的程序来。第三在此有一个陷阱,很多系统分析员生搬硬套设计模式,全然不懂如何融会贯通,在你的一项具体工作中,往往是以一种设计模式为主,其它模式为辅的,思维不拘泥于形式才是关键,而且也为你到达更高的软件设计的境界做好准备。 唉!都不知该怎么向下写好了,因为已达到作者水平的极限了,我胡乱说一点,你凑合看吧。软件设计最终的层次是:以无法为有法、以无限为有限,这句话是李小龙说的,不是我说的。再拾人牙慧一把,类比一个故事吧,金大侠在《倚天屠龙记》里讲到张无忌初学太极,学会的标志是把刚学的招数全忘了,记住的是太极的道理和精神,和李小龙有些相似喔,软件设计也一样,忘记所有的设计模式,随心所欲进行设计才是至高境界,所以你能到达多高的软件设计的境界最终将取决于你的哲学素质,这一点实在是不好写啊,你自己领悟吧!作者只有祝福了!

五、职业人的终极目标:全面修炼,成为Leader 这一节更不好写,涉及到太多其它非技术方面的因素,特别是个人人生观和世界观的修炼,如果本帖的点击率超过作者私下期望的一个数值,那我就争取尽力厚着脸皮再补上吧。我只说一句,虽然大家都知道软件开发是一个团队性的工作,但追求参与一个大型软件系统的成功开发,是一名软件人员的本能,就像拿破仑说的不想当元帅的士兵不是好士兵,所以不追求实现大系统的软件人员,也不是一个好的职业软件人员,但你只有成为Leader,领导一个优秀的软件开发团队,才有机会实现这个终极职业目标,对不对? 好吧,不管你现在的感受如何,我都谢谢你能读到这里!我不习惯假歉虚,就不说什么作者水平有限,本文抛砖引玉,欢迎大家批评斧正之类的客套话了,虽然作者水平确实有限。所以我认为你尽管有权砸砖,但实在没必要搞回帖、或回骂、或顶之类的玩意儿,我只是尽兴写一点多年从事软件开发工作的体验,因此接下来我就高挂免战牌,不回复任何回帖了。再次谢谢你能有耐心读到这里!希望本文对你有所裨益,祝你成功!再见!

修炼一名程序员的职业水准[3]


有自己debug的特点,下面的说法作者不敢太肯定,只是经验之谈。即使在VC这种高度完善的开放环境下,你仍然应该要求自己仅凭打印语句就能debug.这也有两点好处,第一个好处是,遇到bug你会认真想问题所在,而不是用debug工具一步步简单地追踪卡在哪儿了,你定位bug范围的方式是从大到小、从粗到精,这是一种自顶向下的思维方式,而用工具追踪,容易形成自底向上的思维方式,这不算好,你应该先看到森林,再看到树木。我反复提及:程序就是逻辑过程,大多数程序从main函数开始,是由数据结构和功能子程序组成的一个树形结构的逻辑过程(要认清即使是面向对象的程序语言也是一样的),它的执行过程是深度优先的,但你定位bug应该是广度优先的,好好想想这一点,嗯?第二个好处是强迫你思考并记住而不是用工具看到调用过程,你大脑的抽象逻辑思维能力和胳膊上肌肉的力量一样,都是练出来的,如果你的bug是程序结构上的逻辑错误引起的,这一点就非常重要了,顺便说一句,最难打的bug就是程序逻辑结构错误导致的bug.你要是真正明明白白地认识到这儿了,那我就没什么东西可以告诉你了。总之,程序员的职业水准:生产效率和程序质量,主要是取决于源码中bug的数量和debug的速度,而不是取决于编写源码的速度。给你一个我自己定义的考查一个职业程序员的指标:一个合格水准的职业程序员,编程的时间如果算一份的话,其累计debug的时间不能超过一份,真正职业高手累计debug的时间应该控制在0.5份以下,如何?你关上门悄悄问问自己,你花费在编程和debug上的时间比例是多少?如果你把程序员作为自己一生的职业,那么就永远都要牢记一点:追求做一个0 bug的优秀程序员!这是任何一个想成为职业程序员的人的理想,请相信:坚忍不拔地追求实现这个理想将让你出类拔萃! 做好程序的单元测试,这是另一项考查你是否是一名具有合格职业水准的程序员的一个必要指标。其实在你拿到需求的时候就要准备单元测试用例了,并且这些用例将直接影响你的详细设计(有关软件设计本来是该放在第四节讲的).我们还是打比方吧,当你拿到一个需求时,除了分析它静态的功能外,还应明确它动态的操作/执行过程,把这个动态过程明确地用流程图画出来,比如分为A~Z的26步,其中A又可以进一步分解为A1~A5的5步,直到不能再分解为止。又比如说A3步不可分解了,那么你应该把A3步的正常操作和所有五花八门的异常操作都列出来,确保正常的操作肯定正确,异常的操作起码程序不退出才行。这样你就要写好多好多的测试用例,说句老实话,我也从来不写!但我一般会列一个提纲,比如A3步有正常的操作a、b、c、d、e共5项,异常的操作有f、g、h、i、j、k、l、m、n共9项,你在进行单元测试时都应该跑一遍,这样的程序都还不敢说质量如何好,但起码可以说较稳定吧!如果要想在进行单元测试时干得快、效率高,那么在进行详细设计时,你就应该把A3步中对所有正常操作和异常操作的判断都设计好,在编程实现A3步时,使得程序的结构合理高效,对不对?所以,如果你在工作中是割裂地看待软件工程中从需求、分析、设计、编程、测试等各个环节,恐怕水平很有限喔!但如果你在分析需求时就能看到测试的问题,并改进设计和实现,为此做好相应的准备工作,嘿嘿,整个软件开发过程你的效率会高很多,通常你在一个开发团队中就会高度自信的,你已越过当一名偏颇、露骨的高手的境界,成为一个平静的高手,这可是The best in the best!,用周星星的话说:是高手之高高手,因为别人看不出你高在哪儿,没见你有什么高招或特拚命干,但反正你就是干得又快又好、又省力。关于进行单元测试还有很多复杂的方法,在此本文只提到了最基本的一点,目的是让你在工作上考虑周全、安排有序,其它的自己琢磨吧,没有人能替你吃饱饭! 如果你是用C++编程,我再简单谈谈有关内层释放的一个小技巧,就是对所有你编写的类,在构造和析构函数中加打印语句,统计每个类在运行程序时构造和析构的地方,如果是配对的,那么起码没有对象类一级的内层在程序运行结束时没有释放,然后你就可以把打印语句删掉了,招数虽土,但管用! 还有其它一些好习惯,在这里我随笔写一些,你要是有不同看法也请一笑过之吧。编程时应该对齐缩进,一个缩进用一个tab键,一般是4个空格,严格遵守开发团队的编程规范也是非常重要的。一个子程序不应超过30行(不算空行),其内多重循环不应超过3层,否则都应该分裂成两个子程序,个别算法程序可以长一些,但也不宜超过200行。通常一个类的所有成员函数总和不宜超过1500行,多了就应该考虑分解成两个类(这个工作最好在设计时就完成).每完成一小段程序,比如15~30行,就立即编译运行,不要假装高手,先敲它一大堆程序,再编译运行,妄想一次成功,体验一种假爽的、虚荣的快感,或炫耀给别人看,这么做只能证明自己是一个不折不扣的傻瓜,装酷而已。因为只要有一次不成功,你就会花费大量的时间来调程序,别人的进度在这时就远远地超过你了,平常心是道,还是修炼真功夫吧!孙子兵法里关于这一点有明确的阐述,我就不引用了,但建议你真的不要这么干,除非你确实就是这样总是一次就成功的天才,那你还看这篇文章干什么呢?我又不是写给你们这些天才们看的。再就是有学会买好书、读好书,关于计算机和软件方面的书太多了,时间有限,比如有一个叫侯捷的家伙,几乎写的每本书都不错,张国峰的C++编程也不错,这只是我的个人意见啊,好书多着呢,列出来比这篇文章长好多倍,我就不多说了。还有一招,要是你运气好,能搞到一些著名软件系统的源码,好好读读吧,在此我只能告诉你,Linux操作系统的一些源码不错,是开放的,你可以合法地搞到,其它的不要说是我建议你侵犯知识版权啊!

修炼一名程序员的职业水准[1]


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

假设你是一名软件专业毕业的本科学子,如何在工作中修炼成为一名有较高职业水准的程序员呢,本文试图总结作者从事15年软件开发工作的感想,希望对有志成为职业程序员的人有所帮助,并借此机会感谢原昆明工学院计算机系的和智玲老师和张怀宁老师,特别感谢我的硕士导师,南京大学计算机系的博导郑国梁教授。

注:本文辞尖刻,乃作者脾气秉性使然,如果你看着有气,就请多多见谅,放下别看了。

程序就是一系列按步骤进行的操作序列,它有好多种级别,比如最低级的微程序、次低级的汇编程序、高级的各种编程语言程序、最高级的脚本语言程序,也许我列的不对,但没关系,我要说的是不管是那个级别的程序,其本质都是操作的逻辑序列。大多数系统和应用程序都是建立在高级编程语言上的,比如C、C++、C#、FORTRAN、BISIC、JAVA等等,就让我们只关注这一级的编程能力吧。因此如果一个程序员的逻辑能力不高,他永远都不能成为一名具有合格职业水准的程序员,我们在下面的讨论有关编程能力的方方面面,最终都是为了最大程度地提高和实现一名程序员的逻辑能力。

一、掌握基础知识:十六年寒窗的持续积累 从7岁读小学起,经过16年的学习,你从软件专业本科毕业后,必须完成以下几门专业课程的学习:计算机组成、操作系统原理、汇编语言、数据结构、编译原理、数据库原理、软件工程、结构性设计语言(PASCAL、C)、面向对象设计语言(C++、C#)、计算机网络等,你最好还懂一些算法分析、分布式系统、计算机图形学、形式逻辑、人工智能原理、软件设计模式、软件构架/框架等研究生的课程,16年来,你积累的除了知识,更重要的是形成最适合自己的学习方法和工作方法。这些是你具备程序员职业水准的基础能力,不要受什么计算机软件怪杰之类传奇的影响,那不过是小概率事件,而且这些怪杰们就算没有读过软件本科和研究生,也往往自学了大多数专业课程,很可能比在校学习的学生对这些课程的精髓部分理解的更好,还有他们的工作方法和思维方式是特别而高效的,但普遍性差,可以借鉴,不宜模仿。好,所以现在你只需要问问自己,那些课程和知识都学会并掌握了吗?如果是,那就准备好进行实践了。

二、在实践中提高:成为一名高水平的Coder好了,你毕业了,在校功课都不错,也找了一个专业对口的工作,你想大展鸿图了,可是别急,你的翅膀还不够硬,不信我们说来看看。 通常,你在工作中都会用到某一种单位/公司固定的操作系统和编程语言开发环境,比如Windows、UNIX、LINUX等操作系统,又比如用VC、VB、PB、Delph、JAVA、Motif/XWindow、QT、OpenGL、OpenInventor等编程语言和开发环境,我们在后面把它们合称为开发环境。就在校学习的有关开发环境的知识而言,大概你距工作需要的差距是不小的,当某个操作系统和编程语言环境成为你的饭碗时,就不应也不能用通过课程/认证考试之类的眼光和要求来评价你的能力,即使你能考100分。你需要深入地学习该操作系统和编程语言环境的各类开发手册的所有内容,你会说大多数你都用不上,其实你既对又不对,对的是单从使用的角度而言,你确实用不上开发手册的大多数内容,比如庞大的VC开发类库和复杂的开发环境,你在实际工作中能用到的不到总数的1/10或1/5,不对的地方在于,你用到的部分不是孤立存在的,它们是整个体系中的一部分,只有对整个体系有了一个较完整的了解,才能得心应手、随心所欲地用好你用到的部分,你才算初步具备在这种开发环境下进行Coding的职业水准(还远不够程序员的职业水准呢),而这只是刚开始。如何才能真正掌握一种开发环境的全面的知识呢,最原始的办法就是读开发指南/教程、参考手册,一般来讲,学习开发指南/教程时,你如果是一个认真的人,都会完成5/10~7/10左右内容的学习和练习,如果你想成为职业选手,就应该完成9/10以上内容的学习和练习。参考手册不同,大多数所谓的程序员们只是用到了才翻翻,这差的太远了,你应该象读开发指南/教程一样,每个环节都要读,比如VC,参考手册中的每个类,类的每个函数,都要读上几遍,它们往往是一小伙一小伙地纠缠在一起使用的,开始时读得你毫无头绪、心烦意乱,不要紧,还有一手呢,如果你开发环境安装的全面,它们往往都有开发商做的demo例子可看,你就进入另一个境界了,开始时你关注demo中的具体技术,后来你发现这些demo的程序写的都还算不错,结构简单但合理,如果你真的用心,就一定能发现一些个别的demo是极品,它所展现的程序逻辑结构是你设计不出来的,你现在有点更关心它的程序设计构架,甚于对你原始目的(某种相关的技术/技巧)的关注,这时的你,开始了从一名Coder向一名Programmer的转变,你会忍不住要看看开发商提供的源程序,比如。h和。cpp,通常你会找到include路径下所有的。h程序,你才知道,哇!好多好多东东在参考手册中都没提到,你要学的太多了,没时间顾及其它的业余爱好了,现在知道为什么程序员是年轻人的职业了吧,你要有足够多的时间才行,即使你的智商有160.如果你走到这一步,在你工作的团队中,已经是经常有人向你请教技术问题,经常有人请求你帮忙debug,你已是公认的高手了,别得意,因为你仍然是个Coder,为什么这么说呢,你想想,你已深入了解了这个开发环境中的各种技能,知道一名Coder如何用好这些东西,可是你能设计的出提供给Coder们用的东西吗?唔,你想了想,可能还不太行。对了,就是这样,你还是一名小我境界的程序员呢,本质是个Coder,当然已是一名高水平的Coder了,然而你需要进一步登堂入室才能成为一名真正的程序员。 让我们继续吧,通常你都是从精通一种编程环境开始的,假设你已经较为精通在Windows下用VC开发软件了,这时在技术和技巧方面你将面临一小一大两个挑战,第一个小挑战是如果公司/单位改换了开发环境,比如用LINUX下的QT交互语言工具进行开发,你不过是把前面掌握VC的过程再来一遍,由于在主观上经历了VC工具的学习过程,在客观上各种开发环境都有太多相似的方面,这回你掌握的应该较快。要小心,在这时第一次诱惑之门打开了,因为你感觉良好,看!这回这么快,我就这么好地掌握了新的开发环境,你开始关注其它暂时还用不到的同类环境,比如VB、Delph、JAVA,如饥似渴地掌握各种开发工具,证明自己的学习能力和价值,但你忘了一点,你仍然是个Coder,只不过是一个在好多开发环境下都能编程的Coder,就像你生活在中国,因而精通了汉语,工作需要你又掌握了英语,然后你就来了劲,把俄语、日语、阿拉伯语、拉丁语,等等等等,都学习个遍,我只能说,有点BT.你忘了自己是个职业人,同一类的东西工作中用得到才需学习,太多太多的Coder们喜欢在一起比较和炫耀自己会掌握了几种开发工具,不信你看看招聘时的求职书就知道了,sigh!他们中绝大多数人永远都只能停留在这个层次上,心浮气躁,一生都再也当不成真正的程序员了。

程序员修炼之道 你的知识资产


我们喜欢把程序员所知道的关于计算技术和他们所工作的应用领域的全部事实、以及他们的所有经验视为他们的知识资产(Knowledge Portfolios)。管理知识资产与管理金融资产非常相似:

1. 严肃的投资者定期投资——作为习惯。

2. 多元化是长期成功的关键。

3. 聪明的投资者在保守的投资和高风险、高回报的投资之间平衡他们的资产。

4. 投资者设法低买高卖,以获取最大回报。

5. 应周期性地重新评估和平衡资产。

要在职业生涯中获得成功,你必须运用同样的指导方针管理你的知识资产。

经营你的资产

l 定期投资。就像金融投资一样,你必须定期为你的知识资产投资。即使投资量很小,习惯自身也和总量一样重要。在下一节中将列出一些示范目标。

2 多元化。你知道的不同的事情越多,你就越有价值。作为底线,你需要知道你目前所用的特定技术的各种特性。但不要就此止步。计算技术的面貌变化很快——今天的热门技术明天就可能变得近乎无用(或至少是不再抢手)。你掌握的技术越多,你就越能更好地进行调整,赶上变化。

3 管理风险。从高风险、可能有高回报,到低风险、低回报,技术存在于这样一条谱带上。把你所有的金钱都投入可能突然崩的高风险股票并不是一个好主意;你也不应太保守,错过可能的机会。不要把你所有的技术鸡蛋放在一个篮子里。

4 低买高卖。在新兴的技术流行之前学习它可能就和找到被低估的股票一样困难,但所得到的就和那样的股票带来的收益一样。在Java刚出现时学习它可能有风险,但对于现在已步入该领域的顶尖行列的早期采用者,这样做得到了非常大的回报。

5 重新评估和平衡。这是一个非常动荡的行业。你上个月开始研究的热门技术现在也许已像石头一样冰冷。也许你需要重温你有一阵子没有使用的数据库技术。又或许,如果你之前试用过另一种语言,你就会更有可能获得那个新职位……

在所有这些指导方针中,最重要的也是最简单的:

提示8

定期为你的知识资产投资

目标

关于何时以及增加什么到你的知识资产中,现在你已经拥有了一些指导方针,那么什么是获得智力资本、从而为你的资产提供资金的最佳方式呢?这里有一些建议。

l 每年至少学习一种新语言。不同语言以不同方式解决相同的问题。通过学习若干不同的方法,可以帮助你拓宽你的思维,并避免墨守成规。此外,现在学习许多语言已容易了许多,感谢可从网上自由获取的软件财富(参见267页)。

2 每季度阅读一本技术书籍。书店里摆满了许多书籍,讨论与你当前的项目有关的有趣话题。一旦你养成习惯,就一个月读一本书。在你掌握了你正在使用的技术之后,扩宽范围,阅读一些与你的项目无关的书籍。

3 也要阅读非技术书籍。记住计算机是由人——你在设法满足其需要的人——使用的,这十分重要。不要忘了等式中人这一边。

4 上课。在本地的学院或大学、或是将要来临的下一次会展上寻找有趣的课程。

5 参加本地用户组织。不要只是去听讲,而要主动参与。与世隔绝对你的职业生涯来说可能是致命的;打听一下你们公司以外的人都在做什么。

6 试验不同的环境。如果你只在Windows上工作,就在家玩一玩Unix(可自由获取的Linux就正好)。如果你只用过makefile和编辑器,就试一试IDE,反之亦然。

7 跟上潮流。订阅商务杂志和其他期刊(参见262页的推荐刊物)。选择所涵盖的技术与你当前的项目不同的刊物。

8 上网。想要了解某种新语言或其他技术的各种特性?要了解其他人的相关经验,了解他们使用的特定行话,等等,新闻组是一种很好的方式。上网冲浪,查找论文、商业站点,以及其他任何你可以找到的信息来源。

持续投入十分重要。一旦你熟悉了某种新语言或新技术,继续前进。学习另一种。

是否在某个项目中使用这些技术,或者是否把它们放入你的简历,这并不重要。学习的过程将扩展你的思维,使你向着新的可能性和新的做事方式拓展。思想的“异花授粉”(cross-pollination)十分重要;设法把你学到的东西应用到你当前的项目中。即使你的项目没有使用该技术,你或许也能借鉴一些想法。例如,熟悉了面向对象,你就会用不同的方式编写纯C程序。

学习的机会

于是你狼吞虎咽地阅读,在你的领域,你站在了所有突破性进展的前沿(这不是容易的事情)。有人向你请教一个问题,答案是什么?你连最起码的想法都没有。你坦白地承认了这一点。

不要就此止步,把找到答案视为对你个人的挑战。去请教古鲁(如果在你们的办公室里没有,你应该能在Internet上找到:参见下一页上的方框)。上网搜索。去图书馆。

如果你自己找不到答案,就去找出能找到答案的人。不要把问题搁在那里。与他人交谈可以帮助你建立人际网络,而因为在这个过程中找到了其他不相关问题的解决方案,你也许还会让自己大吃一惊。旧有的资产也在不断增长……

所有阅读和研究都需要时间,而时间已经很短缺。所以你需要预先规划。让自己在空闲的片刻时间里总有东西可读。花在等医生上的时间是抓紧阅读的好机会——但一定要带上你自己的杂志,否则,你也许会发现自己在翻阅1973年的一篇卷角的关于巴布亚新几内亚的文章。

批判的思考

最后一个要点是,批判地思考你读到的和听到的。你需要确保你的资产中的知识是准确的,并且没有受到供应商或媒体炒作的影响。警惕声称他们的信条提供了惟一答案的狂热者——那或许适用、或许不适用于你和你的项目。

不要低估商业主义的力量。Web搜索引擎把某个页面列在最前面,并不意味着那就是最佳选择;内容供应商可以付钱让自己排在前面。书店在显著位置展示某一本书,也并不意味着那就是一本好书,甚至也不说明那是一本受欢迎的书;它们可能是付了钱才放在那里的。

提示9

批判地分析你读到的和听到的

遗憾的是,几乎再没有简单的答案了。但拥有大量知识资产,并把批判的分析应用于你将要阅读的技术出版物的洪流,你将能够理解复杂的答案。

与古鲁打交道的礼节与教养

随着Internet在全球普及,古鲁们突然变得像你的Enter键一样贴近。那么,你怎样才能找到一个古鲁,怎样才能找一个古鲁和你交谈呢?

我们找到了一些简单的诀窍。

l 确切地知道你想要问什么,并尽量明确具体。

2 小心而得体地组织你的问题。记住你是在请求帮助;不要显得好像是在要求对方回答。

3 组织好问题之后,停下来,再找找答案。选出一些关键字,搜索Web。查找适当的FAQ(常见问题的解答列表)。

4 决定你是想公开提问还是私下提问。Usenet新闻组是与专家会面的美妙场所,在那里可以讨论几乎任何问题,但有些人对这些新闻组的公共性质有顾虑。你总是可以用另外的方法:直接发电子邮件给古鲁。不管怎样,要使用有意义的主题(“需要帮助!!!”无益于事)。

5 坐回椅子上,耐心等候。人们很忙,也许需要几天才能得到明确的答案。

最后,请一定要感谢任何回应你的人。如果你看到有人提出你能够解答的问题,尽你的一份力,参与解答。

IT人如何修炼编程的内功[3]


我想说的,其实很简单,编程序,就是拆解问题,但讲究个拆解的技巧和方法,以前人做过的,别做,尽量用,没有的,做过一次,尽量保留下来,供下次使用,就这么简单。

那,这和本文的题目修炼编程的内功有啥关系呢?

当然有关系了,什么叫编程的内功?我的理解,就是对这个世界的抽象化理解能力以及描述能力。一个工作,能迅速从中提炼出下次可以重复的套路,并且能以一定的规则,就是计算机语言规范,描述出来,拥有这两个能力,就能保证遇到任何问题,都有办法写出程序来。

所以,大家学校中学了很多数学,语言,算法,数据结构,甚至编译原理,操作系统,其实这些统统是工具,不是写程序的目的。

写程序,就是遇到需求,能迅速抽象,理解其共性,并能以清晰的语言描述出来。上述学科,不是帮助提升你的抽象能力,就是帮助提升你的描述能力,大家看是不是这个道理?

所以,我在带徒弟的时候,有时候喜欢说一句话,其实作为程序员,学习一点语文有好处,因为最能培养描述能力的,其实还是语文。英语不算啊,英语虽然也是一门语言,但中国的教育,一般是能看懂,很少从一个英文文学家的角度培养学生用英文的描述能力。只有我们的语文课,这不但是教语言,而且通过无数次造句和作文,在教大家描述问题的组织能力,这个能力在写程序的时候,很有用。

这个时候,话题就出来了。中国的语文,先是甲骨文,然后古文,然后白话文,大家发现没有,总体是越来越简单,这是发展的趋势。为什么呢?因为大家觉得,语文就是让人懂的,太深奥的东东,不太适合普及,就没有生命力,反而越简单的东东,普及越快。

因此,请大家注意,写程序时拆解,是把问题简单化,不是说把一个问题描述得晦涩难懂,才叫本事。真正的程序高手,都是简化问题的大师。

当然,从这个话题,我们是不是可以得出一个结论,其实写程序的方法本身,编程的内功本身,其实是没有什么语言特性的,C、C++、Java、PHP、Python是不是都用的同一种方法在做事情?

因此,我这里提出,修炼编程的内功,是学习抽象能力和描述能力,与语言无关,换而言之,从任何一门语言入门,都可以修炼到内功的极致,关键看你用不用心。

因此,学习期间,我的建议,不要好高骛远,不要去评价语言的好坏,平台的好坏,没有多大意义的,你并不能确定这辈子最终能在哪个平台下用哪种语言开发。捡着手边有的书,老师教的课程,埋进去学扎实,出来后,换语言比吃盘菜也难不倒哪去。

IT人如何修炼编程的内功[1]


很多年以前,我还是一个学建筑的学生,但是很喜欢学计算机。不过呢,由于专业限制,我没有计算机用的。学校只开了一个学期的Fortran语言,上机时间只有可怜的5节课,那会把我憋坏了,呵呵。

大家不要笑啊,90年那会,生活不富裕,PC机还是一个很贵的东东,一般家庭都还停留在18吋电视机的时代,大学生又是最穷的,物质条件更为匮乏,我当时有个小收录机,京华牌的,呵呵,在同学中已经很牛叉了。因此,像现在的同学们,一考上大学,MP3、MP4、笔记本电脑家里给配齐的,在当时是根本不可能想象的事情。我作为过来人,还是要说大家一句,大家真是生在好时代了,很幸福的。

不过呢,我很喜欢编程,就养成一个习惯,想象编程,找一个题目,自己在脑子里把程序构思出来,写在纸上,然后自己模拟电脑的run,把程序过一遍,看能不能执行正确。这个习惯现在都还有。呵呵,我老是劝大家写简单的程序,其实和这个习惯有很大关系,因为我比较笨,稍微复杂的程序,脑子就想不过来了,就晕了。

也正因为有了这个经历,我就开始思考一个问题,编程究竟是什么?呵呵,当时我在学校,也是小有名气,大家都知道有这么个程序疯子,没事喜欢发呆,喜欢想程序。在一次舞会上(别激动,我也是过来人,也会跳舞的,虽然很难看哈,呵呵),一个计算机专业的师姐就考我,问我编程是什么?

我当时想了一下,很郑重地回答她,我的理解,编程就是拆解任务,把一个任务,拆解成很细很细的步骤,一步步教计算机去做。计算机很笨的,举个例子,我们说早上起来去上课,是个人都知道做什么,但是它不知道,因此,我们要告诉它:

起床--穿衣--拿饭盒--去食堂--买早饭--吃饭--洗饭盒--回宿舍--放饭盒--拿书--出门--如果人都走完,要记得锁门--去教室--推门--找到自己的座位--走过去--坐下来--等待上课--上课。

说到这里,我突然自己有点明悟了,编程,就是把复杂的问题简单化,简化到每个动作都是1+1=2那么简单,然后计算机照做就好了。这就是我理解编程的真谛。我师姐听到了,也若有所悟,这个话题就没有再说了。

我们来分析一下计算机的特点,准确的讲,目前我们这个社会的计算技术,还很原始,说它是计算机,正确,它确实只能计算,说它是电脑,太抬举它了,它不可能有思考能力。

在冯诺依曼体系架构中,计算设备就是具有一定计算能力,有能力和外界做出IO互动,并且能高速重复动作的这么一种设备,这可能和大家在教科书里面学到的不太一样啊,不过,我是这么理解的。

因此,我从一开始,就没有把计算机作为一个伙伴,一个可以帮助我出主意,或者代替我思考的伙伴,仅仅是看做一种工具,这种工具有什么用呢?我认为它最重要的,有两个作用:

1、无限可重复性,一个动作序列,一旦编订程序,计算机就可以无数次重复这个序列,不会感到累。这特别适合于那些乏味的,不断重复的劳动,比如,我们一个学校每天要敲钟,打上课铃,如果让人来做,这个人会很乏味,做久了,就可能出错,但是让计算机来做,它可没有什么思想,不会觉得累,而且做的很好。计算机特别适合做重复性工作。

2、服务品质的稳定性。计算机适合做重复工作,还有个有点,就是每次执行结果都是一样的。这体现了工业化时代最重要的一个思想:量产思维,大家可以看到,现在的社会,不可重复的艺术固然很好,但公众需要的是量产的产品,因为质量稳定,产量稳定,能满足大众需求。劳斯莱斯虽然很美,但绝大多数人在开大众、丰田等低端车。就是这个道理。还是打铃那个例子,如果是人,可能会生病,可能会请假,或者干脆搞忘了,但计算机不会,只要有电在正确工作,打铃就不会出错。

这样,我就慢慢理解到了,计算机其实就是能以恒定品质不断重复输出服务的机器而已。

职场修炼:平常心才是成功的晋级之路


职业规划是对职业生涯乃至人生计划的过程,职业生涯规划的好坏可能将影响整个生命历程。感谢您阅读《职场修炼:平常心才是成功的晋级之路》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

成功,是每个职场人都在全力以赴追求的东西,可是成功路上艰辛太多,坚持下来能取得最终胜利的却是寥寥无几。所以想要在众多的竞争者中脱颖而出,就必须要具备及保持平常心,否则想要取得成功,真的很难。

下面跟随着小编一起来看一则职场故事,希望能对您有所感悟帮助!

1、会笑是天分,却不一定是资本

艾米和琪琪是同学兼同事,艾米人缘好、聪明伶俐、性格也好,而且特别灵活,每天都是见人就开花的笑脸。而琪琪则是“不开窍”的脑瓜,不仅木讷,而且还不善于与人交流。

其结果是,艾米在单位混得如鱼得水,而琪琪被淹没在人海而黯然失色。然而1年后,琪琪却意外比艾米先升了职。是不是很惊诧?其实这种结局既是意料之外,也是意料之中的事。

就像“龟兔赛跑”一样,最后获胜得不一定是实力强的人。而这艾米和琪琪出现的这种结果,要从1年前追溯。

艾米凭借自己天分好、情商智商高,她觉得以自己的聪慧程度,只用花一点点心思就能完全应付下来,所以慢慢的只是停留在嘴巴上,而不去做实事。

而琪琪自觉自己天分不高,就不断的努力深造,对做的每一件事都认真负责,不怕苦不怕累,而且乐于向身边的人请教。

正是因为天分高的艾米太不用心,而琪琪一直悄然的努力,才导致了艾米和琪琪的差异。“笨鸟先飞早入林”还真是精辟。

2、气怕盛,心怕满

艾米恃才气盛,才会不求上进,以为脑子聪明就能轻松应付过去。殊不知,真正聪明的人都极力做到了虚怀若谷,谦虚低调。

因为只有成功的人,不仅会保持清醒的头脑,而且还会主动将身段低下去,只有这样才能取得更大的成功。

福特说过:那些自以为做了很多事的人,便不会再有什么奋斗的决心。而有许多人之所以失败,并不是因为他能力不行,而是他自恃自己已经很成功了。

这种观点深以为然,比如说艾米之所以比琪琪晚升职并不是因为她的工作能力和为人处事不行,只是因为她以为自己特别有资本去傲娇,而渐渐放松了对自己的要求,而慢慢的下滑。

失败不可怕,自以为成功才可怕。因为失败了还可以站起来,而自以为成功就会自高自大,甚至会跌倒。

3、平常心才是成功的晋级之路

成功时的喜悦人人都开心,只是不把开心变成自大狂妄,是一种智慧。

对于成功和失败,保持平常心就可以了,把成功当成幸运的开始,把失败当作努力的开始,遵循以下3个法则,这样更容易笑到最后。

第一,以目标为开始,做每一件事都需要一个明确的目标,比如说我写文章的初级阶段,我会先给自己定数量目标,每天写1篇;到中级阶段,会定要实现多高的阅读量;到高级阶段,会定要实现提升多少的深度内容,不同阶段的目标都是变化和适配的;

第二,沉住气,沉得住气就是做事要有自己的思路与方向,不过多受外界影响,也不因为短期没有看到目标的达成而焦虑苦闷;

第三,以结果为导向,直白地来说,不能只管做事,而不管结果,把过程刷完了就完事。如果只刷过程,是没有任何意义的努力与费劲,做了跟没做一样。

所以说笑到最后的赢家都是有一个长远的规划,然后逐步达成每一个阶段性的目标。要记住:跑得快不一定赢,跑得慢不一定输。不到最后一刻,无法定输赢,只有笑到最后的人,撑到最后的人,才是真正的赢家。

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


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

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

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

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

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

职场智慧之程序员的职业规划[2]


做自己喜欢与最擅长的工作

既然必须做出选择,如何选择就是关键。总不能写几个纸条,靠抓阄来决定自己以后的命运。从众多成功者的经历来看,成功的一个关键因素就是做自己感兴趣的和最擅长的事情。如果没有兴趣,就没有百分之百的激情与动力,如果不擅长,就不可能把一件事情做到最好。

刘翔是短跑冠军,王励勤是乒乓球冠军,乔丹是飞人,巴菲特是股神他们之所以成为英雄,正在于他们都是在做自己最擅长的事情,都是在拿自己的长处和别人的短处较量。他们本来是普通的常人,但因为在某一点上超过了所有的人,因而获得了成功。

职业规划的目的,不是要你变成另外一个人,而是要你变成最好的自己。搞清楚自己的优势在什么地方。做自己喜欢和最擅长的工作。不要羡慕别人的长处,不要绞尽脑汁地琢磨怎样才能像别人那样擅长某方面,不要幻想成为别人--做最好的自己!

成为行业专家

通常说到程序员的发展前景,一般是指如项目经理、软件架构师之类的,这种规划主要是在IT行业内就业发展的规划,更像一个职位的规划。所以,无论是就职资源还是职业前景都包含一定的局限性。随着IT行业的竞争加剧和其他传统行业的信息化进程,如今的程序员职业规划发展目标应该超越本职业概念的行业专家,这里所指的行业,并不是指编程的语言,而是比如电信、互联网、银行、电子商务之类的行业,成为一个领域在行业中应用的专家。而在现实招聘的需求中也大量地体现了这方面的要求,具有某一行业多年从业经验的开发人员一直是众多企业苦苦追寻的香饽饽。

坚持到底

除了选择,最终要想获得成功,唯一的办法就是专注.技术是层出不穷的,而人的精力却是有限的,怎样把有限的精力用到刀口上去,那就得认准了某个领域和某个行业坚持不懈地做下去,不但要成为这个领域的技术专家,还要成为这些行业的业务专家,你能熟知这个领域的点点滴滴,并能在这个领域的行业应用上发展创新,这样的人才,我想才是目前最需要的人才。我的一个同学,毕业的时候被公认为是编程水平最高的,但3年来他换了6次工作,他总是对这个感兴趣,对那个感兴趣,做过很多,每换一个工作几乎都是做的全新的东西,总在抱怨工作不如意,其实他换来换去,却始终是在起点上转。而另一个非常坚持的朋友,10年只跳了三次槽,第一个是程序员,第二个是部门经理,第三个是技术总监,不为什么,就因为他是专家,10年来他只做一个行业。用10年来做一件事情,不成功都难。

世界上没有完美的公司,重要的是,你要有自己的目标。知道你自己要的是什么。有些人习惯不满意就跳槽,跳槽可能会增加你的收入,但这种个人收入的增长,与一家企业由小到大而给员工带来的成长是无法相提并论的。职业规划就是要搞清楚自己的优势在什么地方,自己最适合做什么。当有了自己坚定的目标和定位,打工就不再是为别人卖命,而是为了自己的目标在奋斗!用这样的标准来衡量自己的成长和进步,那样的人生也会变得轻松而快乐。

职场女性迈向成功的七项修炼


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

在越来越突破性别的职场中,职场女性占有越来越重要的作用,大量的职场女性取胜于男性如林的高级人才职场。她们,究竟哪来的力量,职场女性迈向成功有哪些要领呢?

在越来越突破性别的职场中,职场女性占有越来越重要的作用,大量的职场女性取胜于男性如林的高级人才职场。她们,究竟哪来的力量,与男性拼抢?职场PK台上,她们如何成为大赢家?职场女性迈向成功有哪七大要领呢?

第一项修炼:健康自信

中国人说:身体是革命的本钱,的确,同样面对高强度的工作,需要女人同男人一样具有健康的体魄。即便你不是体力工作者,你也应该经常健身,注意饮食,少一些熬夜、酗酒等不良习惯,以保证自己身心的健康,才有充足的精力和体力在职场上拼杀。

外国人说人们都喜欢喜爱自己的人,的确,自信是为人的根本,一个不自信的女人永远都不可能在职场有任何建树。要注意自己的外在形象,要培养自己的主见,要敢于表达自己,只有自信的人才容易让别人信服,容易走向成功。

第二项修炼:大方得体

女人在职场,美丽者是奇葩,是锦上添花,当大多数的我们不具备美貌时,我认为大方的气度和得体的举止非常重要。

大方的女人在职场,无论走在哪里,遇到什么人,什么事,都能处变不惊,安然对待,而不是做小鸟受惊状,或者喋喋不休,或者花容失色;大方的女人,心境开阔,懂得宽容,乐于理解。

得体的女人在职场,不会刻意去抹杀自己的女性特质,非要装得跟男人一样强势硬朗;得体的女人知道区分什么是赞美,什么是诱惑,什么时候该假以辞色,什么时候该严辞拒绝。

西班牙有一句古谚语:不要在你要喝的水里洗脚,身在职场的女人,要学会与上司、同事、客户、供应商等等保持合适的距离,把握合适的情感尺度。

第三项修炼:装扮自己

外表美丽的职场女性总比一般女性更具魅力,更受欢迎,更能吸引男人,创业的成功率也更高。容貌是天生的,但我们可以在后天学会打扮自己,让自己更有女人味。或许一袭浪漫一身套装、一枚酷咔咔胸针、一款城市生活提包、一款雪孩子珍珠首饰就能平添女人的许多魅力。

职场女性的品位不单是出自美丽的眼睛和光滑细腻的皮肤,而是出自整体的装扮效果。眼睛和皮肤的美丽常常是一目了然的,而好的装扮是职场女性用智慧和修养精雕细刻出来的。那份与身体的和谐,那份洋溢于周身的风采和丰韵,那份内心世界精彩的描述和渴求,是可以用心去表现的。

爱装扮的职场女性是积极的女人,会装扮的职场女性是智慧的女人。

第四项修炼:专业专注

专业是一个人对于他所从事的行业、产品的熟悉程度,专注则是他对于这份工作的投入度。女人在职场,容易浮于表面,大多数的女人缺乏理性思维,对于产品的细节、性能、数据化的指标了解的不是很清楚。从事一个行业必须沉下心来,认真学习专业知识,不断提高专业素养,才能在客户心目中树立专业权威的形象,从而为工作铺平道路。

女人在职场,相对而言,更容易心有旁羁,容易心猿意马。要坚持顶住压力,克服沉闷,持之以恒做好自己职业的规划并完善其中的细节;坚持在一个行业纵深发展,而不是轻易跳槽。职业的基础是不断叠加上来的,成为资深人士是成功的前提。

第五项修炼:富有激情

女性天生是善于沟通,富有亲和力的,但通常缺乏感染力和号召力。

首先,学会做一个快乐的人,学会微笑着去面对工作,热爱自己的工作;然后,让自己激情四射,在团队中成为闪光点;最后,学会去争取项目,争取资源,再率领和鼓舞团队突破目标,勇创佳绩。

职场上的成绩是要有多方面条件为基础的,光做茉莉花飘着暗香是不够的,女人也要学会自己跳出来,吆喝自己,让别人关注自己。实质上来说,我们每个人都是一个大销售员,或者向顾客销售你的产品,或者向别人推销你的主意,或者向同事销售你的项目,销售的成功与否有时就决定于你的激情是否饱满,你是否有足够的说服力。

第六项修炼:诚信客观

诚信,即诚实守信。现代企业都在讲求诚信,女人身在职场,做人也要要讲求诚信。只有内心诚实,做事才能讲信用。言必信,行必果,在为人处世中我们将诚信视为根本原则,才能得到老板的信赖,客户的支持,并收获很多良朋益友。

女人相对比较感性,容易主观。在职场,男人往往可以做到对事不对人,女人却常常将别人对事情的评价联想为对自己的指责,并因此情绪化,从而影响到事物朝积极的方向发展。无论如何,要经常提醒自己:客观,一定要客观的去判断和对待工作,才可能正确。

第七项修炼:善于平衡

人生的艺术,也可以说是平衡的艺术。职场中的女性,不仅要学会平衡诸多社会关系,还要学会平衡职业与家庭,和谐的家庭永远都是职业女性坚强的后盾。

社会赋予女性的使命是非常复杂的,一个职业女性,同样必须是一个好妻子,好母亲,才有可能体会到成功的喜悦和生活的幸福。每个人的时间和精力都有限,我们要学会平衡,学会利用团队的力量来做事,而不是处处靠自己。假设家庭也是一个团队吧,父母、丈夫、孩子、保姆,让他们有序的相互合作着,分担你应当分担的一些责任。营造出一个融洽的家庭氛围,你身在职场才可以满怀斗志,而没有后顾之忧。

我们一直说女人要独立,一直说男女要平等,事实和男性比较而言,女性在职场有先天的性格优势,也有劣势。作为一个渴望成功的职业女性,应该遵循以上迈向成功的七大要义。而且必须注意三件事:一是要具备专业知识,相信自己有能力胜任;二是要学会合理支配时间;三是要学会控制自己,不能因为工作紧张而有沉重的心理压力。这才是职场女性迈向成功的最关键。

职场修炼7法 助你平步青云


为什么同样进一家公司,同样的环境,同样的培训,同样的上级,一些人在过了几年后发展的很好,而有些人就一直不得意。深而究之,都在于对工作的认知和职业基本意识的不同。以下职业人的职业素养的七项修炼,有这7法,一定能助你在职场上平步青云。

第一步 问题意识

养成问为什么的习惯是优秀职业人的杀手锏,他代表了精益求精,代表了追求完美,代表了一种敬业、负责的工作态度。那如何培养问题意识能力呢?第一、对待工作要敬业,在不明白的时候,当前的工作就是最好的,全身心的投入;第二、不断的学习本行业的基础和前沿知识,成为本行业的专家;第三、对工作的问题和公司的问题和行为,要用心思考,不能视而不见,充耳不闻,要注意观察;第四、碰到任何问题养成问五个为什么的习惯,俗话就是打破沙锅问到底,找出解决方案。

第二步 时间意识

时间对于我们每个职业人都是公平的,我们怎样才能更好的利用时间让我们的成长速度更快?一是在上班时间之外计划一个集中的时间(比如晚8:00-10:00,或早5:00-7:00)抓紧学习本行业、本职业有用的知识和技能,比如做营销的系统学习一下营销的理论,随时关注《销售与市场》杂志,上中国营销传播网下载有用的文章进行学习等等;二是在公司中(或者社会企业中)树立你自己努力的一个标杆,向他学习,以他为榜样,学习他的思考模式、行为方式等;三是在我们的客户中要培养几个你的铁杆客户,真正的朋友,经常的倾听他们的声音,这会对你的帮助很大;四就是建议大家经常去图书馆。读书可以改变命运,我们这些从农村读书出来的新城里人应该要明白这个道理。

第三步 目的意识;成果意识

花开的再漂亮,也没有果实丰满。你的岗位是做什么的?岗位的真正价值是什么?我做这项工作的意义和含义?做了这件事对公司会产生什么后果呢?基本上企业经营到最后都是以结果说话的,IT行业尤其重视结果导向,如果公司招不到人,那一定是人力资源的责任。我们一定要养成结果导向的思维,这可以使我们少走很多弯路。

我们要避免象电影《诱惑》的女主角一样,在疯狂的进行着婚外恋的时候,没有考虑后果(目的),最后导致了情人、自己、丈夫三败具伤的悲剧的收场。请看下回的责任意识。

第四步 责任意识

逃避是人的的天性,为什么?那是因为我们害怕,害怕死亡、害怕失去、害怕被上级骂!这是我们人性的弱点!我们要对我们的行为负责。我从报纸上看到很多杭州一个26岁的撞死人的肇事富家子弟逃逸,后来被抓。有记者问为什么要逃,他的回答让我喷饭:我想叫我妈妈来处理!每一位父母都要引以为戒,思考我们的教育问题。

我们要时刻树立:我是责任人,这事我负责!凡事到我为止的意识。我开句玩笑说:检验一个男朋友是否可以成为丈夫,不在于他对你态度如何,如何哄你开心,是否处处照顾你,而是他的责任意识强吗?负责任吗?可惜我往往看到报纸上登出来的很多傻女人都是婚前十分浪漫,婚后狂风暴雨,最后只落得一声叹息:子是中山狼,得志便猖狂无可奈何花落去,何时才得良人归!

第五步 客户(服务)意识

脸笑、嘴甜、腰软,这是服务意识的具体体现,我们的工作就是服务于他人,是工作价值的体现,你基本上为越多人服务,你的个人价值就越高,而服务的质量体现了服务的价值所在。如果在公司中,没有人对你提需求了;如果外部的客户再也没有电话给你了,那你就应该好好考虑一下你的工作是否有存在的必要性。谦卑、礼貌不代表我们的低下,而是内心强大的一种表现。

服务意识是职业人最基本的职业素养的体现。

第六步 团队意识

鼓励、相互的鼓励可以产生莫大的力量,1+1??2,魔戒中的哈比特人佛罗多和山姆之间真诚的鼓励、肯定、相互的协助是最终他们完成毁灭魔戒的最重要力量,记忆中最深刻的一句话是佛罗多在第二集中快结束时说的一句话:山姆,你真是一个勇敢的人,没有你,我早已支撑不下去!因此,团队精神的具体表现就是:融入,合作、鼓励、建设性的意见、相互协作。

第七步 成本意识

自己当过经营者的人都应该有成本意识。自己当老板是很多职业人的梦想,成本意识就是分析自己盈利模式,你在岗位上一天的盈亏平衡点在哪里,今天我给公司赚钱了吗?亏的话亏了多少?应该时刻记在心中。我们讲要做好一件事,除了目标、思路、方法以外,还需要成本意识,检验一个方案是否是一个好方案,除了结果、思路、方法如何以外,很重要的一环就是成本,投入产出如何?得到同样的结果可以采用更节约的方式吗?去一个地方进行销售活动,我能多拜访和联系一家客户吗?

阅读本文后毕业生简历网还为您推荐了更多相关的文章参考:

职业规划基础知识总结 女生的职业规划制定 毕业生的职场五大忠告

2025-03-26