【导语】“然思”通过精心收集,向本站投稿了9篇从糟糕到不朽 程序员的八个级别,下面是小编给各位读者分享的从糟糕到不朽 程序员的八个级别,欢迎大家分享。
- 目录
篇1:从糟糕到不朽 程序员的八个级别[1]
从糟糕到不朽 程序员的八个级别[1]
]在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题,在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商需要的更高。
在著名的“Coding Horror”上出现了这样一篇文章,我把其转到这里(我并没有完全一模一样的翻译,我只不过是用自己的话转述罢了),也让大家看看国外人的思考方式(当然,这篇文章只是分析程序员的`级别而不是工种)。正如其作者结尾时所说,这八个级别并不是很严格的,其只不过是一种想法,希望能给大家另一种思路。
第八级 不朽的程序员
这一级别是程序员的最高级别。你的代码比你的生命活的还长,当你死后,你将会成为整个历史的一部分。其它程序员对你顶礼膜拜,或许你会获得计算机最高奖“图灵奖”,不然就是一系列极其影响力的论文,再不然,就是发明了一些可以影影响整个编程界根基的技术,
你拥有的不仅仅是在维基百科上的一个词条,还会有一个专门的网站来研究你的生平和你的工作成果。
比如:Dijkstra, Knuth(编程艺术的作者),Kay
第七级 成功的程序员
这类程序员一方面很著名,另一方面在商业上也很成功,他们影响了整个工业界。他们似乎决定了工业界中发展的方向,这些人,自己的编程能力固然了得,但估计他们的Business方面的能力应该大于他们编程的能力。(我个人认为Linus应该属于这一类)
比如: Gates(比尔盖茨), Gates(Doom和Quake 3D游戏), DHH (Ruby on Rail的创建者)
第六级 著名程序员
这一类的程序员,在编程圈子内比较有名气,但是他们的这种名气并不一定能给他们带来某种利益。名气是一件好事,但是成功可能更好一些,这类人一般正在给一个很著名的大的公司,或是是一极具影响力的小公司里工作,或者正在创建自己的事业。无论怎么样,其它的程序员听说过你的名字,并以你为榜样在效仿着你。
第五级 骨干程序员
这类程序员一般来说都是公司里的骨干份子,他们担任着公司内最重要的编程角色,在公司内部,他们受到老板和其它程序员的尊敬,他们不会失业,因为他们随时都可以很容易地找到工作。他们工作过的公司都会因为他们而有所发展。
篇2:从糟糕到不朽 程序员的八个级别[2]
从糟糕到不朽 程序员的八个级别[2]
]第四级 一般的程序员
这类程序员的优点在于,他们很清楚地意识到了自己可能这一辈了也无法成为一个伟大的程序员,天才只是很少的一部分人。如果这类程序员有一些商业和人员管理能力,他们也会在公司里相当的成功。“认识自我”并不简单,这并不是一般人能做到的,能够认识自己的人已经是很不错了,找到自己的长处,并像那个方向努力,一定也会很成功的。因为在公司里,并不只有程序员一种职位,经理,PM,流程,SQA,技术支持,售前,管理员,测试人员等等都可能会让这类程序员有更为广阔的天空。
第三级 业余的程序员
这类人员不管是不是计算机科班出身,基础如何,他们对编程有着特殊的`爱好,他们可能会是一些很有前途的学生或实习生,也许他们可能会给开源做一些贡献(比如说提供一些语言包或是一些插件什么的),有时候,他们也会写两个小工具软件放在网上让人下载,也行有些时候就是为了玩玩而开发一些小程序而打发一下他们空闲的时间,
他们完全是靠热情和承诺来编程。兴趣永远是最好的老师,也是最好的一件事,因为兴趣而引发的热情通常会让这些程序员成为“骨干程序员”。
第二级 不知名的程序员
这一级的程序员是典型的为大众所知的程序员,他们有一定的编程能力,但并不出众,也许他们会在一家大公司里工作,只程序员只不过是他们的工作而已,并不是他们人生的全部。当然,这样的程序员也挺好的。必竟,平凡地人还是大多数,平凡地活着也没有什么错的。
第一级 糟糕的程序员
这类程序员不知道为什么就走上了编程这条路,他们甚至连最基本的编程经验和能力都没有。所有被他们碰过的事情都需要他们的同事重头再返工一遍,他们根本不就是程序员。程序员这个职位对于他们可能就是一个错误。
正如原文作者所说,“这些级别并不是很严肃的,也并不是每个程序都会去思考一下自己的未来,但是这些级别可能会让你去想一想从事程序员十年/二十年/三十年后,自己可能变成什么样。”
篇3:从程序员到产品经理
1984年,微软有一个叫Sabe Blumenthal的人,在Multiplan产品组担任开发组长,即技术负责人。在开发Multiplan过程中他感觉到有必要有人专职做产品功能的定义、规划和设计。这个人需要做产品开发中的决策,协调开发人员、测试人员和市场部门的日常运作,但他不必做实际代码的实现或测试,也不直接做市场方面的调研。他自己试着扮演这种角色,成功地完成了产品的开发。不久,他把这个想法和经验汇报比尔盖茨,比尔非常重视并肯定了这一尝试。
1994年,微软在中国推出Word中文版,同很多国外厂商开发的软件一样,这个产品被批评为“只是从英文版汉化的软件,而不是给中国人使用的产品。”短短的几年之后,现在再也听不到这种声音了。
这是Office XP中文版产品经理毛永刚最为自豪的事情。正是在他的倡导和鼓动下,开发团队在围绕如何适应中国人使用习惯方面做了很多工作。“不断增加Word的功能,像Word中的斜线表头、中文字体支持、中文输入法、中文排版格式、简繁转化、中文语音输入等方面进行了大量的开发,甚至在帮助动画中,向导精灵都改为了与上海电影制片厂合作的孙悟空形象。”
作为产品经理,毛永刚将自己对软件的理解淋漓尽致地体现在了产品中。正是在这些产品经理的带领下,产生了一个个被用户称道的产品。为了更广泛了解产品经理,我们还采访了两家国际性的软件企业,趋势科技产品经理杨淑娟和友立公司资深产品经理凌旺林。他们结合公司情况和成长过程对产品经理做了全方位的阐述。
什么是产品经理
一般来说,产品经理是负责并保证高质量的软件产品按时完成和发布的专职管理人员。他的任务包括倾听用户需求;负责产品功能的定义、规划和设计;做各种复杂决策,保证开发队伍顺利开展工作及跟踪程序错误等。总之,产品经理全权负责产品的最终完成。
在不同的公司,产品经理的定义和职责并不尽相同。友立公司的产品经理分为产品工程经理(Product Program Manager)和产品行销经理(Product Marketing Manager),而趋势却将产品经理同开发经理和行销经理区分开来;在微软,因为其独有的历史文化,我们所谈的产品经理,他们往往称为项目经理。
在产品管理中,产品经理是领头人,是协调员,是鼓动者,但他并不是老板。作为产品经理,虽然针对产品开发本身有很大的权利,但从行政上讲,并不像一般的经理那样有自己的下属,但他又要运用很多资源来做事,因此如何做好这个角色是需要相当技巧的。毛永刚举了一个例子,如果把软件产品开发当做扛木头,要所有的参与人员把这个木头扛起来,每个人负责一段,最前面的是产品经理,他还要保证所有人的方向都是一致的,都知道朝那个方向走,不能出现有人用力不对的情况。
很多时候产品经理并不是从始至终只做一个产品,往往在一个产品还没有结束时又开始其他的产品立项了。比如很多产品都有多国语言版,当英文版开发到一定程度之后,德文、中文等其他语种的产品也开始进行了,此外还包括了OEM版本,而且很多公司在产品没有上市之前,又要开始规划下一个版本的产品。
向产品经理发展
对程序员来讲,每个人对自己的职业生涯都有不同的设计,根据自己的兴趣、能力和性格进行相应的规划。所以,无论朝那个方面发展,首先自己要主动向这方面努力。而作为公司的管理者,更要支持程序员的这种规划,只要有可能,就要想办法给他们提供机会。
凌旺林毕业于资讯工程系,按照很多人的看法应该去做研发。但他认为自己的个性不太适合每天面对计算机,而是更喜欢与人接触,对自己来说产品经理是最合适也最喜欢的工作,所以毕业后一直在这个方向上发展。
从程序员发展到产品经理,杨淑娟做了更好的诠释。她做开发的时候,很喜欢学习新技术,也写了很多文章,希望将自己的想法与他人共享,更希望将这些想法转变为产品。她关注电信、无线、手机方面的应用,关注像洗衣机上网这样的未来趋势。面对未来的数码化、网络化世界,她有很多想法,但所在的公司没有办法应用这些新技术和新思想,于是她去应聘了趋势的产品经理。
一般来说,R&D可能会更愿意去钻技术,而在大多数公司,对测试人员的重视程度比不上R&D,因此为了寻求更好的发展,测试工程师更愿意向产品经理发展。产品管理部门也喜欢测试转行过来的,因为他们对产品了解的很深入,明晰产品的优缺点。
因此,如果你有这方面的意愿,除了软件技术之外,还要留心去掌握相关的知识。这些方法无外乎多读文章,多问为什么,多和自己老板沟通。比如,当公司决定做某些事情的时候,你要想为什么,自己对此有什么想法,这些想法是否与公司的策略吻合,再加上关注行业的竞争状况,慢慢建立商业的头脑。开发人员不要只是闷头让做什么就做什么,而是要知道这样做能给整个软件业带来什么样的改变,进而培养决策的头脑。
善于利用公司提供的资源也是非常重要的,而且要将每种方式都发挥到极至。比如杂志、会议、公司内部在线学习的资源库等都是很好的学习渠道。毛永刚介绍说:“微软内部有一些基本的课程,比如如何精确了解对方的意图,还有一些课程是讲授如何写规格,如何与他人合作。讲座的时间有的是一天,也有可能三五个小时。很多时候是通过在线网络听美国讲师的授课,有时他们也到北京专门给我们讲课。这些课程并不是系统化的讲如何成为一个产品经理,而是传授某方面的能力,这些都是提高性的,有时还可能点透一些长期困扰自己的问题。”
对于公司来说,在机制方面要给予程序员更多成长的机会和空间。微软作为成功的软件企业,很重要的一点就是能够给开发人员提供各种职业成长空间。毛永刚表示:“首先我们平时会考察员工,看他愿不愿意在产品管理、市场业务方面多想、多做。除了个人的要求,我们还要衡量能不能把他培养成为产品经理,看他是否具备了一些基本素质和潜力,比如他的交流能力,思维能力,尤其是对于市场、对于产品技术发展趋势,对竞争的处理。一旦确定下来,就会尽可能的去锻炼他,让他成长起来。”趋势在这方面也有自己的做法,在程序员表达了这种愿望之后,首先会看业务部门或者行销部门有没有缺职,如果有,就把他调动到这些部门去做一至两年的工作,进行历练,培养他们的业务经验,出来之后加上以前的技术能力,这些人就具备了两方面的经验。
培养产品经理所需的素质
同程序员不一样,产品经理主要是同人打交道,要组织处理好很多复杂的关系和工作。所以做好产品经理并不是一件容易的事情,很多方面的素质培养是必不可少的。
协调沟通能力:产品经理要协调好各种关系,包括研发、测试、文档、市场、销售等部门的人,在保证品质的情况下如期的推出产品。任何事情都是靠人实现的,所要协调的主要是人力资源,绝不能因为要完成一个OEM的项目而占用所有测试人员的时间。不同部门的沟通并没有多大的区别,但不同部门的Leader做事方式可能不一样,因此一方面要看对方配合的程度高低,同时要学会在恰当的时候和恰当的人谈恰当的问题,只有解决好问题才能有效的将事情向前推进。尤其是在没有下属关系的情况下,人与人的互动上,要做的非常好,能够把自己的想法非常好的表达给其他人,说服这些人配合去做事。
有人认为女性在做产品经理方面比较占优势,但杨淑娟认为有时反而会是一种障碍,阻力更大一些。因为大部分开发人员都是男性,他们面对女性,都会产生一种自信、骄傲的心态,尽管当面比较柔性一些,但私下可能对女性产品经理重视程度不够。“产品经理要站在用户的角度,我觉得某个功能很棒,但可能在技术上不太容易实现,这时软件开发人员会说,浪费我们这么多精力和时间做这些太麻烦了,这个功能真的有这么重要吗?这也是每个产品经理都会遇到的疑问。”刚开始遇到这样的情况时,杨淑娟产生过很大的挫折感。但过一段时间,通过市场和用户的反馈证明当初的想法是对的,这样就慢慢改变了开发人员的想法。杨淑娟表示:“这其实也是任何一个产品经理都要经历的过程。现在带过两三个产品之后,慢慢树立起来自己的信任度,让开发人员相信自己,赞同自己,当初遇到的这些障碍自然就被慢慢克服了。”
当然并不是任何问题都可以通过协调解决,产品经理有时也会遇到沟通也无法处理的事情。这时可能会感到自己的权利不够,凌旺林建议,遇到这样的问题,报告自己的老板,通过主管去解决就成为了必要的途径。
对事务优先级的控制:产品经理的工作是相当琐碎的,要处理各种各样的关系和进度,不像其他的工作都有自己专注的方向,专业的领域。所以如何在一天之内高效的做事就显得尤为重要。毛永刚说,“总的原则就是要先选择最重要的工作去做,同时要兼顾时间统筹规律。我们这里和美国时间是不同的,如果你早上处理发给美国的邮件,对方是下午,就可能当天回复,但到下午的时候,对方已经休息了,就只能等到明天才能得到回复了。”
对事务的安排每个人都有自己的方法,有些喜欢用Project来控制进度,有些喜欢用行事历或者PDA来协助安排。不过杨淑娟的习惯是每天早上到公司,先打开文本编辑器,给自己列一份优先次序表,指出哪些今天一定要完成的工作。她说:“我喜欢这种最简单的文本方式,而且效果也还不错。如果太复杂的话,自己都懒得用了。”
要有市场感觉:市场能力又是另外一门学问了,围绕市场调查、市场细分、目标市场、市场定位,通盘考虑产品、价格、渠道、促销、公关、服务这些因素是开展营销工作的最基本理论。毛永刚认为其实这些知识通过阅读相关书籍很快就可以掌握,不会比写程序更难,但肯定欠缺实际操作经验。他认为所谓市场感觉,更为重要的是如何能够通过市场现象去生成一些战略,而不是对方降价自己也降价,对方做广告自己就做广告。“所谓战略,就是从产品定位、用户定位、价格和竞争对手入手,了解
篇4:从程序员到软件工程师[2]
从程序员到软件工程师[2]
]当时看算法本身的文档,然后又回头看线性代数,终于理解了算法,并用程序表达了出来,由于是嵌入式用的,又花了大量时间进行算法优化。
后来跳槽时终于尝到甜头:
1。薪水高,基本上一应聘就是Senior的职位
2。稳定,这个一般大街上招一个程序员是做不来的
3。机会多,这个怎么说呢,反正只要是大公司招人,象微软、Google等,除了问一些语言本身的问题外,基本上就是算法和数据结构的问题。
通常面试那些时间你写源代码是来不及的,基本上就是写伪代码。或说明你的算法基础和思路。答的好一两句话就解决了。
想走这条路的朋友,我首先建议好好读读《数据结构与算法:C++版》,里面所有常用算法和经典算法及数据结构必须烂熟。其次,建议将大学课本找回来,几本高数好好复习复习。《线性代数》《概率和数理统计》《微积分》《常微分》等等。
我们不是大牛,基本上创造不出新算法,但是我们能够将别人的算法实现或者能把一个具体问题分解成已知的算法,那么你就是一个很不错的算法工程师了,
说实在话,语言只是工具,是很容易掌握的。泡沫时期,不是很多人突击那么三个月就可以上路做programmer么。就象刀法是很容易学会的。要应用精熟,也不过是长时间的积累而已。
对语言的理解实际上就是对刀法的领悟,有人是顿悟。但是多用总是会渐悟的。
最重要的是基础,就是数学能力,那可是内功。可以这样说,你要想真正和其他程序员拉来差距就在这里。
我朋友的孩子想走计算机编程这条路,考大学我就推荐考数学系!
再有就是多做那些大公司的面试题,一是锻炼自己的.大脑,二是熟悉这些算法的应用。
好了,现在能想到的就这几点,这里给几个面试的例子,看看能不能用最简单的描述解答
1.如何生成一组正态分布的随机数?
2.有一个二维迷宫,如何找到出口路径?
3.有数据库存储一股票每五分钟的实时报价,如何生成每小时,每天,每周……的股票价格变动曲线?
====>我的建议答案
1。生成二维随机数,只取落在正态分布包络线内的数
2。二维连通图深度优先遍历
3。傅利叶变换
篇5:从程序员到软件工程师[1]
从程序员到软件工程师[1]
]看了程序员系列文章,颇多同感,做为一个从业,一直做软件开发的人,我想给那些已经、将要和有志于走上这条路的朋友一点点忠告。
首先,说说程序员和软件工程师。虽说都是编程的干活,但是还是有一点高下区别。
主要说来区别是程序员programmer是将程序(已经有流程,伪代码或设计模板)写成代码;需要熟练掌握至少一门编程语言。而软件工程师则要将目的描述成程序语言并实现的能力。例如将数学算法、自然语言、思维模式描述成程序算法,程序流程/类或/和人工智能,并写成代码的能力。
对初入行的人,当然重在语言,要做一个合格的程序员,首先要熟练掌握语言。包括语言特性和实现的能力。例如使用尽量中文说的面试题,就要求面试对象掌握C++中的类的封装;构造函数的重载和运算符重载。
做过一两年后,要想继续吃这碗饭就必须提高自己,首先当然是深入了解语言,特别是语言的思维方式,编译器的工作方式和常用设计模板。就拿C++的多态性来说,很多公司面试就会问什么是虚函数/纯虚函数(思维方式)?用C如何实现函数重载(函数指针和了解编译过程)?接口类/工具类/工厂类和 Sigleton类的实现(常用设计模板)。另外还有一大块就是内存管理了。
如果能做到深入了解语言本身,那么恭喜你,你现在Title至少是高级程序员了。
在对自己的语言有信心后,下一步就想一想自己要想哪方面发展。是管理方面(项目经理)还是技术方面(软件工程师)。既然这里讨论编程,我们就先不考虑项目经理。想发展为一个软件工程师其实也有两条路。一条是走系统软件工程师或者叫架构工程师的路;另一条就是算法工程师。
在国内的朋友我建议走架构工程师的路。要求就是知识面广,对整个系统熟悉,能很快了解和分析客户/设计需求,很快估计工作量、风险和所需要的资源(承担相当部分项目经理的任务),能根据现有技术人员储备提供一个解决方案,
当然还需要一定的表达能力和文档写作能力。例如我当年走访某省农行,和对方聊了银行卡和医院医疗卡的联网,当天晚上就和市场部的人合作,搞了一个通宵,写出了60页的技术方案和外加40页的基于此方案的标书。
一般来讲,要做到对整体系统的深入了解,没有两三年的时间是做不到的。所以给国内程序员的.建议是不要频繁跳槽,尤其是不要频繁跨行业跳槽。踏踏实实地将本行业的软件吃透,最好每个部门或模块都工作过。如果有这个想法,一般情况下你可以和项目经理沟通,通常他们会鼓励你这样到各个部门/模块工作。
我出国后,发现情况有点变化,由于语言和文化的区别,对自己走系统工程师的路没有很大的信心。只好转向走算法工程师的路了。
确定了这条路后,突然发现自己的数学能力太差了。不得不重新恶补线性代数,概率和数理统计等高等数学。同时将《数据结构与算法:C++版》好好从头到尾读了一遍。然后终于蒙混到了一个职位。
当时第一个任务就是在一个嵌入系统中写一段程序将bmp压缩为jpg。各位可能会问了,这个在网上满大街都是源代码,为啥还要自己写呢?其实这就是我不太建议国内工程师走算法这条路的原因。除非你是数学大牛,有自己原创的算法。否则在国内实在没有算法工程师很大的生存空间。但是在国外有很大的不同,稍正式的公司基本上都禁止使用open source。因为open source也是有版权的,有的是不能商用,更有的copy left是那些公司碰都不敢碰的。因为copy left要求你使用了他的代码,你也必须公开你的代码。
当然,我们可以看那些open source,然后自己重写。不过相信我,通常情况下如果你不是想简单做些变量替换就交差的话,看原代码不如看这个算法文档本身。
篇6:程序员的进化――从学生到首席执行官
--------------------------------------------------------------------------------
中学阶段
10 PRINT ”HELLO WORLD“
20 END
--------------------------------------------------------------------------------
大学一年级
program Hello(input, output)
begin
writeln(”Hello World“)
end.
--------------------------------------------------------------------------------
大学高年级
(defun hello
(cons ”Hello (list “World))))
--------------------------------------------------------------------------------
初级程序员
#include
void main(void)
{
char *message[] = { ”Hello “, ”World“};
int i;
for(i = 0; i < 2; ++i)
printf( ”%s“, message[i]);
printf( ”“);
}
--------------------------------------------------------------------------------
编程老鸟
#include
#include
class string
{
private:
int size;
char *ptr;
public:
string : size(0), ptr(new char(”\\0“)) {}
string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}
~string()
{
delete [] ptr;
}
friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};
ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}
string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}
int main()
{
string str;
str = ”Hello World“;
cout << str << end
return(0);
}
--------------------------------------------------------------------------------
编程高手
[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib( ”actimp.tlb“);
importlib( ”actexp.tlb“);
// bring in my interfaces
#include ”pshlo.idl“
[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{
// some code related header files
importheader(
importheader( );
importheader(
importheader( ”pshlo.h“);
importheader( ”shlo.hxx“);
importheader( ”mycls.hxx“);
// needed typelibs
importlib( ”actimp.tlb“);
importlib( ”actexp.tlb“);
importlib( ”thlo.tlb“);
[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};
#include ”ipfix.hxx“
extern HANDLE hEvent;
class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);
CHello(IUnknown *pUnk);
~CHello();
HRESULT __stdcall PrintSz(LPWSTR pwszString);
private:
static int cObjRef;
};
#include
#include
#include
#include
#include ”thlo.h“
#include ”pshlo.h“
#include ”shlo.hxx“
#include ”mycls.hxx“
int CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}
HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf( ”%ws“, pwszString);
return(ResultFromScode(S_OK));
}
CHello::~CHello(void)
{
// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);
return;
}
#include
#include
#include ”pshlo.h“
#include ”shlo.hxx“
#include ”mycls.hxx“
HANDLE hEvent;
int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);
// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);
// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF- >Release();
// Tell OLE we are going away.
CoUninitialize();
return(0);
}
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
#include
#include
#include
#include
#include
#include ”pshlo.h“
#include ”shlo.hxx“
#include ”clsid.h“
int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];
// get object path
wcsPath[0] = ”\\0“;
wcsT[0] = ”\\0“;
if( argc >1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, ”Object path must be specified“);
return(1);
}
// get print string
if(argc >2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L ”Hello World“);
printf( ”Linking to object %ws“, wcsPath);
printf( ”Text String %ws“, wcsT);
// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(SUCCEEDED(hRslt)) {
hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **) &pHello);
if(SUCCEEDED(hRslt)) {
// print a string out
pHello- >PrintSz(wcsT);
Sleep(2000);
ulCnt = pHello- >Release();
}
else
printf( ”Failure to connect, status: %lx“, hRslt);
// Tell OLE we are going away.
CoUninitialize();
}
return(0);
}
--------------------------------------------------------------------------------
初阶
#!/usr/local/bin/perl
$msg= ”Hello, world.“;
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ”>“ . $outfilename) || die ”Can“t write $arg: $!”;
print (FILE $msg);
close(FILE) || die “Can”t close $arg: $!“;
}
} else {
print ($msg);
}
1;
--------------------------------------------------------------------------------
有成
#include
#define S ”Hello, World“
main(){exit(printf(S) == strlen(S) 0 : 1);}
--------------------------------------------------------------------------------
高手
% cc -o a.out ~/src/misc/hw/hw.c
% a.out
--------------------------------------------------------------------------------
大虾
% cat
Hello, world.
^D
--------------------------------------------------------------------------------
初级经理
10 PRINT ”HELLO WORLD“
20 END
--------------------------------------------------------------------------------
中级经理
mail -s ”Hello, world.“ bob@b12
Bob, could you please write me a program that prints ”Hello, world.“
I need it by tomorrow.
^D
--------------------------------------------------------------------------------
高级经理
% zmail jim
I need a ”Hello, world.“ program by this afternoon.
--------------------------------------------------------------------------------
首席执行官
% letter
letter: Command not found.
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout
--------------------------------------------------------------------------------
篇7:十年磨一剑:从自考生到著名公司程序员
十年磨一剑:从自考生到著名公司程序员
12月尘埃落定,我最终被深圳华为录取,J2EE程序员,得到这个结果,按我的努力程度来说,实不为过,但按我以前的实力,却无异于是奇迹发生。
从乍暖还寒的春天,我拖着重重的行李,来到了北大青鸟。
我是一名技校生,想要成为一名程序员,我知道希望几乎为零,但我还是来了,我希望给自己一个机会。在这近两年的学习中,我的目标很明确,第一、我要拿一个大专文凭作为敲门砖;第二、使自己成为一名程序员。说实话,真是很需要勇气。坚持自己该做的,叫做勇气,坚持自己不该做的,又何尝不是勇气?那段漫长的岁月里,我的心情起起落落,悲悲喜喜,多次游荡于网上企图从别人的故事中找到自己的希望,却没有希望的火种可供点燃。在青鸟,我相信自己不是这样艰难路上的第一人,也绝对不会是最后一人,所以,誓言如果能达成理想的目标,一定要把自己的成功经历写出来,鼓励志同道和的后来者:你们正在经历的,我曾经经历过,而我现在已经获得的,你们将来也会获得。
我叫李科,生长在风景如画的云南,从小喜欢看书,擅长体育,无奈梦断少年时期。
十五岁那年中考,我以优异成绩考取高中,可父亲却说:“孩子,去上技校吧,你看你姐正在读大学,你哥在读高中,如果你再上高中,我怎么供得起啊……”听着父亲无奈的话语,我同意了,要知道那时上技校每月有生活补助,这对于家境贫困的我们,无疑是很大的帮助,并且三年毕业后就能分配工作,于是,我人生中重要的一步就这样的被选择了,而年幼的我并不知道这意味着什么,我在今后的岁月中要为此付出多大的代价?坦白的说,时至今日,就这件事上,我对父亲一直有一种恨,恨他为什么要我做出这样的牺牲?
十八岁那年技校毕业,我被分进一家国营小厂。接我们进厂是一辆大卡车,连人带行李被扔上货厢,一路颠颠簸簸,一路战战兢兢。
每天都在黑漆漆的车间里工作,白天都得开灯,而灯光却又是昏黄的,螺丝钉掉下去,只能伸手去摸索而不是去捡。十八岁的小男生,每天要把一百二十斤重的机器翻来翻去进行装配。工资实行计件制,为了多做,我不分昼夜的干,即便这样一个月下来也仅仅只有350元左右,每月还要寄100元回家。记得在春节的时候,我的积蓄就剩下人民币35元,连一张回家的车票钱都不够……一年下来,我不敢给自己添上一件新衣服,除此之外,脏兮兮的工作服,满是油污的双手,每次下班洗手都要拿刷子才行,指甲缝里仍是黑漆漆的,和别人一起吃饭时都不好意思伸手夹菜。面对这样的生活,我对自己渺茫未知的前途充满了恐惧,我对自己说:这不是我要的,我要改变这一切!
我知道知识能改变命运,于是我做出了改变我一生的'决定――重新读书。当然我不可能再回到学校去上学,于是我参加自学考试,在报考的时候看见北大青鸟的IT程序员的讲座在华南师范大学进行,出于好奇心就进去听了,主讲老师讲得很精彩,选择一个行业非常重要,要真的改变生活,只能通过读书、平时多交朋友,多做好事,从此我就进了北大青鸟天河培训中心。
在北大青鸟求学时是另一种滋味的艰难。我底子差,所以我不得不花十二分努力的去学校补习功课。为了求生存,我又不得不在上课之余还在外打工,同时我还得应付自考课程。到要考试的最后两三个星期时,我都觉得自己快撑不下去了,早上6点起床,要复习自学考试的功课,白天要上ACCP程序员的课,到机房做练习,晚上看书经常到凌晨两点睡觉,因为太累了,抬着书的时候,经常不自觉的睡着,冷不防惊醒过来,心里又充满了内疚。面色铁青的考完试,只有一个感觉:总算结束了。
在这样得生活状况下过了差不多两年,我终于拿到了自考大专毕业文凭,也以优异的成绩从北大青鸟毕业,所做项目还拿到奖学金,如果没能成功,我真的不知道自己是否还有勇气再来一次!
2011月,华为公司来我校招人,我凭着扎实的功底通过了机试、面试。2004年12月10日,一个激动人心的事情发生了,华为公司通知我12号到公司参加新员工培训,我凭着我的努力,终于改变了我的生活,走进了新的道路。
今日,坐在初夏明媚的阳光里回忆这一切,我任激动不以。回顾这几年来的点点滴滴,艰难与坎坷,万语千言,我用一言以概之:十年磨一剑。
篇8:八个从员工到总监的经验心得
八个从员工到总监的经验心得
同样是职场人士,我也有我的经验和感受。在打工的3年里,我得到了7次加薪(同时进入公司的员工,加薪不超过2次的员工大有人在),顺利地从员工做到了总监,是公司所有员工中成长最快的。我敢肯定,在看过这篇文章的人当中,肯定有人比我更优秀。但是对于那些更渴望得到帮助的朋友们来说,我还是希望把自己的经验写出来,与大家分享。
1.一定要清楚自己未来的目标是什么
这是几乎所有初入职场的朋友都会面临的问题。而这些问题通常会在步入职场的1-3年之内最明显(3年之后之所以不明显,是因为你已经被现实折磨得太久了,已经被种种不平现象同化了,因此也就习惯了。你曾经的种种抱负被现实碾得粉碎,于是,你也从一个志向远大的年轻人一下子变成了一个碌碌无为、甘于平庸、成天为了生计而奔走的普通打工者)。
如果不及早解决这些问题,那么,你就会荒废这3年的时间(有的人可能会更长),而对于一个职场新人来说,这3年至关重要,是锻炼能力、积累资本的黄金3年!一旦错过,则要花费更多的时间,从头再来,重新弥补!更有甚者,可能一辈子都无法弥补!这绝对不是危言耸听!因此,如果你的职场年龄还没有超过3年,恭喜你,还有改变命运的机会。而一旦超过了3年,那么,你的每一次改变,都将付出巨大的代价!
为什么要清楚自己的目标?因为,有了目标,才有行动的指南。知道自己想干什么,喜欢干什么,这才是你前进的最终动力。工作不开心、动力不足、盲目跳槽的最根本原因是职业目标不清晰。没有目标,便没有了追求,于是,所有的行动只是为了挣一口饭吃。你根本没有考虑过自己的未来应该端什么饭碗。
或许你在30岁之前还有挥霍的资本,因为年轻嘛,做什么都不怕。连广告上都说了,“30岁之前,有什么好怕的?!”而一旦过了30岁,你走的每一步都必须要慎之又慎,因为:你要结婚、你要养活老婆孩子、你要供房贷、你要供养年迈的父母、孩子大了还要上学、父母年迈了需要照顾……等等,所有的这些责任,都要你来承担。如果没有规划,一旦出现问题,你只能自乱阵脚。
2.能力固然重要,但并不能代表全部
这里所说的能力,是指专业技能。步入职场你会发现,能力其实并没有你想像的那么重要,它并不是是山寨牌升的全部资本。你会发现一个能力不太强的人做了你的上司,只因为他在这个公司干了――这说明“资历”是你高升的本钱(这种现象,在国有企业和政府机构里特别明显,因此,在国企工作的朋友和同志要注意了);有时候你会发现能力并不怎么强,但是与老板关系非常好的人通常能够得到提拔――这说明“关系”也是本钱。
对于有些朋友而言,可能会对这些“软实力”不屑一顾。很多人会说,如果老板喜欢爱拍马屁的人,难道我就要委屈自己,学着去拍马屁?很不幸,我会告诉你,答案是肯定的,你一定要学会拍马屁,否则吃亏的是自己。但要声明的是,我不是教你诈。中国有句成语,叫外圆内方,用在人际交往上,就是说你与人相处要学会妥善处理各种关系,但不可因此而失去了内心的准则,否则就变质了。尤其在中国这种注重人情的,这种人际交往的能力一定要好好练练。
3.要有足够的“亮剑”资本
有的大学生经常会跟我说,我毕业之后一定要找到一份月工资多少多少的工作,争取做到什么什么职位。这时候我总是会耐心听完他们的“远大蓝图”,然后问一句:“你凭什么达到你的目标?你的资本是什么?”然后他就会哑口无言。
对于职场上的朋友而言,你“亮剑”的资本又在哪里?你的业绩提升了吗?你的能力提升了吗?你在一年内看过多少本对自己的职业有益的书籍?你参加过几次培训班来为自己充电?如果没有,你又凭什么让老板为你加工资?靠抱怨?你肯定会提前被职场淘汰出局!
4.要保持一种“空杯心态”
我见过很多的大学毕业生,刚进入公司时常常处处吹牛,说自己在学校如何如何,本来可以找到更好的工作,迫不得已才来到了这里等等之类的话,好像这家公司委屈了自己。在这里提醒一下那些即将步入职场的大学生:这种心态千万要不得!不要认为自己很牛。还是那句你不爱听的话:中国什么都缺,就是不缺人!
话又说回来,你要是这么牛,为什么不像比尔盖茨、戴尔、乔布斯那样,大学没毕业就退学去创办一家世界级的大企业?火车不是推的,牛皮不是吹的。你要是有本事,就用事实证明给人家看,而不是成天抱怨!
对于身在职场的朋友而言,这一心态同样重要。中国有一个词,叫“虚怀若谷”。我们都知道,优秀的人有极高的素养,甚至是虚怀若谷,他们都有一个能包容一切的胸怀,有了这样的胸怀,你在职场上就会获得别人的尊重,就会获得更多的发展机会。类似的词还有“大智若愚”“大巧若拙”等等,不多说,自己去体会。
5.慎重对待第一份工作
这一观点,对于大学生来说,更有意义。现在整个、媒体、专家等等各种单位都一直在鼓吹“先就业,再择业”。这种论调不是今年就有,而是多好多年前就出现了,并且屡屡出现,不绝于耳。相信当年我们大学毕业时候,也会有很多人相信了这一点吧?管它呢,骑驴找马,先找份工作挣钱填饱肚子再说!
但是根据本人自身的经验及职场发展的现实情况来看,本人绝对不赞同这种说法。相信现在在职场上发展不顺的朋友,多半也和第一份工作有关系吧?俗话说,“男怕入错行,女怕嫁错郎。”第一步错了,以后就会经常犯错。正所谓一步错,步步错。
6.要懂一点做人的常识
职场就像一个大熔炉。在职场中,不仅仅是要挣一碗饭吃,更重要的是学会做人的道理。如果连最起码的道理都不懂,你不仅得不到别人的尊重,更会失去更多的发展机会。因为,在中国,人际关系也是生产力。中国有句古话:得道多助,失道寡助。
我见过很多人,虽然已经工作多年,但对于做人,却连一点最基本的常识都不懂。做人的道理万万千,但其中最重要的,莫过于以下三条:1、严于律己,宽以待人2、学会倾听3、诚实守信。
职业中固然处处充满了相互利用、利益至上的现象,在这种情况下,诚实守信仍然不失为一种传统美德。诚信同样可以带来效益。只要你诚实守信,长此以往,大家都会对你形成一种良好的印象,都愿意和你交往。而那种两面三刀、当面一套背后一套的人,固然可以占一点小便宜,但要想成就大事业,诚实守信的基本原则绝对不能丢。
7.要学会遵守游戏规则
提醒“愤青”或者“类愤青”们不要看这篇文章。因为他们多半是放荡不羁、不会遵守游戏规则的主儿!很多人都会感觉到,在职场上发展,不仅会受到各种约束,而且处处都充满了不公平现象。比如上班迟到老板会扣你工资,但你加班的时候却从来没有拿过加班工资。这是最常见的一种现象,其他不公平的现象也比比皆是,这里就不多就了,大家都有体会。
在这个世界上,不要奢求公平。那只是一种乌托邦式的理想,从来都不存在于现实中。员工和老板之间的'关系,就好像是一场游戏。是游戏就会有游戏规划,否则,游戏就玩不下去。但是,游戏规则是谁制定的呢?当然是老板,各种利益也偏向老板!身在职场的你,一开始看不惯这种现象,是很正常的,因为你初涉职场,本质上还是比较纯洁的。
但你一定要学会慢慢接受这种游戏规则。不要试图改变这种规则,因为在老板面前,你没有太多的话语权。说得再难听些,你只是一个打工的,混口饭吃,给你吃就不错了,还嫌饭凉?如果不想做,可以离开。还是那句话:中国什么都缺,就是不缺人。
记住这句话:“如果你不是游戏规则的制定者,你的选择只有两条:要么屈从,要么离开!”
8.机会只垂青有准备的人
无论你再怎么抱怨,再怎么不开心,饭还是要吃的,觉还是要睡的,工作还是要做的,未来的事情永远只属于自己的。买房子也好,娶老婆也罢,压力只有自己扛,老板不会为你操任何心。与其有时间去抱怨,但不如踏踏实实静下心来,好好提升自己的基本功,用事实证明自己的本事,让别人对你刮目相看,万不可因为自己的书生意气而自做一个自毁前程的“愤青”。
当然,你的准备是多方面的,除了专业技能外,其他的辅助技能也是非常必要的,比如沟通能力、人际关系处理能力、管理能力等等。当然,更重要的是要为自己的未来做一个规划,清楚地知道自己的目标是什么,应该怎么努力才能实现。适当的时候也要充充电,不要舍不得那半个月的工资,这也算是为自己的未来进行投资,有什么舍不得的呢?如果你现在不学会“舍”,以后将永远也“得”不到。
篇9:五四时期胡适人生观评价-从《易卜生主义》到《不朽》
五四时期胡适人生观评价-从《易卜生主义》到《不朽》
不认同”‘五四'时期胡适的人生观发展经历了一个从‘个人'主义到‘社会'主义的转向“的观点,[作者]适在这一时期所提倡的以<易卜生主义>为代表的.西方个人主义实际上只是他基于民族主义这一时代认为需要而”引进“的从而也是经过精心”曲解\"的一种西方个人主义,它体现了一种试图以西方价值观来整合中国传统价值观的思想努力,而稍后的<不朽>一文也只不过是这种思想的自觉努力的自然延伸而已,二者并不矛盾。
作 者:陈科华 作者单位:株洲工学院法律系,湖南株洲412008 刊 名:株洲工学院学报 英文刊名:JOURNAL OF ZHUZHOU INSTITUTE OF TECHNOLOGY 年,卷(期):2001 15(6) 分类号:B821.2 关键词:胡适 易卜生主义 不朽 人生观★ 据分析师的级别
★ 程序员工作总结
★ 年终总结程序员
★ 程序员如何面试
★ 程序员简历范文
★ 程序员简历
★ 程序员辞职报告
★ 程序员年终总结
从糟糕到不朽 程序员的八个级别(共9篇)




