博文
[转]我的IT从业经历:给师弟师妹们(2005-07-06 10:16:00)
摘要:我的IT从业经历:给师弟师妹们作者:sunxiaozi真的不知道如何写 ,所以就瞎写吧。既然现在是上班时间,就说说工作吧。毕业三年了,工作也三年多了,从没毕业时在一家7、8个人的小公司打工,到现在将近700人的大公司,一共换了3家公司,在每一家公司的经历都是我最可宝贵的财富,就象罗雪鹃得了百米蝶泳冠军所说:感谢我的父母,感谢那些给我帮助、支持,培养我的人,感谢那些憎恨我的人。在这三家公司里,他们给我的不管是支持、诋毁、帮助、嫉妒和打压或是欺侮,回过头来我都从中汲取营养,完善做人、做事的准则和技巧。我到现在也不能确切的说出到底我的第一步走的是不是对了。在科技城里面那家小公司确实学到了些东西,特别是那个“精明”的老板一直是我回忆的对象。刚开始有打算找个工作是毕业前的寒假。因为有个师兄也在那家公司可以引荐所以决定去看看,其实本来有两个师兄的,其中一个不堪忍受跳到一家大公司了。老板笔试的题目都被师兄提前透漏给我们了,说实话他出的那些题多数我还可以,但我想一般的大学生很难在规定时间内完成的,特别是有一段计算机英语的翻译题,很多单词是没地方查的,如果师兄不提前告诉题目真的会答的一塌糊涂。跟我一起去还有一个同班同学,他不怎么爱钻研,基础也不好,但在师兄的帮助下当然也笔试过关。老板不喜欢我们称呼他“经理”,我们就跟师兄一起称呼他“赵老师” 。赵老师打算对我们用个下马威杀杀刚出校门学生的锐气,笔试通过就开始上机的实际操作考试,他要我们做一个绑定数据库的系统,那时候数据库编程刚开始大行其道,当然我们做的不是很好,但他也不说“考试结束”之类的话,就这样我们一直都没有做完,就从早上8:30开始到16:30,坐在那里没动弹,最后他跟我们说:其实按道理你们都没有通过考试,只不过觉得还可以挖掘下潜力,努努力说不定也可以,所以呢就再考察考察你们的学习能力。之后给我们两本Domino方面的书,说好第二天再考察学习的成果。其实这些话,这些事情的背景是公司里根本没有可以接济的开发人员,师兄就是公司的救世主,很少有象我们这样的傻子学生来参加他的狗屁考试(不过程序走的还挺正式),就这样,他利用少有的拒绝人的机会拒绝我们俩,但又给了一个机会,实际上都看出来,想留我们,但还是让你的精神上觉得老板不错,我不行,还给了个机会。第二天的面试对我当然少了过去的严肃,始终带着微笑,我也顺理成章的通过了他的对于学习能力的考......
[转]满大街跑的都是月薪上万的小程序员(2005-07-05 08:11:00)
摘要:满大街跑的都是月薪上万的小程序员作者:佚名 我住在海淀区,这里满大街跑的是月薪上万的小程序员儿,还有痛骂计算机专业无美女的项目经理,他们大脑袋、厚眼镜、因熬夜而布满血丝的眼睛,因不见阳光而酷似吸血鬼的脸,穿一个星期不洗的T-SHIRT,很有很有味道的,他们供楼不供车,他们翻开报纸只盯住北边的楼盘,倒不是因为关心奥运村,实在是想离公司近一些。我,衷心地喜欢着这个区。有女友去国贸那边应聘工作回来,一脸幸福状地向我描述,地铁站里全是帅哥,地面上更是临风玉树站成了森林,让她的小心灵经受了一次美的洗礼,她晕乎乎地回来了,对那些西装革履、散发名贵男用香水味道、气宇轩昂的白领男人们再三再四地概叹:“F4那算个啥,肚里没货,只知卖相,看看人家,啊,那才叫自信来源于知识,气质来源于财富……” 我打断她语无伦次的胡说八道,问她工作有戏没戏,她说,“凭我的英语水平,能没戏吗?!” 过几日,女友去上班。再过几日,女友辞职。我问为个啥,她说,她是属于海淀区的好市民,与朝阳区那个高级白领集居地格格不入。 “她们化妆都太精致,显得我象个黄脸婆,她们中午在洗手间用的是外国带回来的化妆品,我用的是外国牌子国内生产的东西,她们早餐吃意大利浓汤和甜点,我吃的是小笼包子跟豆浆……”女友愤愤地数落着,“非穿职业装不可,我的那十来条仔裤算是没有用武之地了,你看看我的可怜的脚,被高跟鞋折磨得都变形了,封建社会摧残人也不过如此了吧。靠,就这样,她们还说我搭配得不对,灰衬衫不能跟紫色外套一起穿!” 我说,“这有什么关系,这跟一份好工作有什么关系?你啊,也太注重技术层面的问题了。” “我郁闷……”女友象迷路的孩子一样:“我还是在海淀这边找工作吧。在这儿如鱼得水,要多自在有多自在,加班也愿意,你知道吗,他们东边儿啊,真不是人待的地方!” 我立马制止了她的人身攻击:“别瞎说!都是首都人民,哪儿来的种族歧视啊?” 女友几乎声泪俱下地声讨:“不是我啊,是她们等级观念严重啊。你看咱们这儿,上亿身家也穿着懒汉鞋去小馆儿吃京酱肉丝儿,谁也不怵谁,你有钱那是你的事儿,我有技术是我的骄傲,可是东边儿,什么都攀比,连丝袜的牌子都比,那天我戴了我奶奶给的玉镯儿,被她们笑话了个半死,什么老土啊什么没品啊,好象她们生下来就在钻石堆里长大的,如果我稍微有个行差踏错,那就要沾污了她们的小资阵营!” 我笑:“傻子,现在小资过时了,都兴B......
[转]影响中国软件开发的20人(2005-07-04 10:33:00)
摘要: 影响中国软件开发的20人来自:《程序员》杂志进入2004年,伴随着各种机遇和挑战,中国的软件开发仍然在摸索中前进,程序员也在不断的学习和工作中探寻自己的未来。在这个过程中,当然少不了各种技术和公司对他们施加的影响。跟随谁,选择什么路线永远是一种充满未知数的挑战。谈到影响,可能以微软为首的软件巨头更容易被提及,毕竟开发人员所直接应用的操作系统、语言、开发工具等各种技术都掌握在这些公司手中。然而,这并不能抹杀和妨碍提起国内一些企业和人士对中国软件开发各方面产生的影响。站在这个角度,本刊在国内的软件企业和个人中评选出了如下20位人士,他们对近期软件开发产生了一定程度的影响。选出这些人,也是为了抛砖引玉,让国内的开发者更了解自己正在经历的变化和面临的挑战。在这些人员中,有些属于早一代的程序员,他们创造的业绩激励了很多程序员进入软件开发。鲍岳桥就是一个,尽管现在他已经成为了联众的总裁,但之前从UCDOS步入辉煌,Windows时代一度面临困境,最终凭借网络游戏成功转型,这种以技术创业成功的例子对中国的程序员来说就是巨大的诱惑。与此同时,很多人从软件教育方向在逐渐改变整个软件行业的人才结构,这一说法毫不夸张。青鸟APTECH就是将印度软件教育模式带到中国来的典型,尤其是在中国软件人才结构并不合理的情况下,他们所做的工作也是有益的尝试。而且,面向未来的眼光也必不可少,很多人所做的工作带来的变化现在还不显著,但对未来可能会产生相当的影响。比如,中国软件人才的培养结构在逐渐向国际化靠拢,软件学院功不可没。更为超前的是,为了探索未来中国软件在底层技术上的引导性,有很多人在做努力,从Linux在中国的推广,到科泰世纪打造自己的操作系统和开发平台,尽管这些尝试可能会失败,但带给我们的是经验和深入的思考。现在,有人说程序员面对着太多的头绪,已经迷失了方向。的确,是有一些人迷失了方向,但这里的20位人士能够让我们以更清醒的眼光看待中国的软件开发,了解我们取得的成绩和面临的挑战。开国元勋严援朝所属公司:新浪网入选理由:开发第一个中文操作系统CCDOS,参与创办四通利方,掌控最大的中文网站新浪网技术总架构。“做软件就是在不断地明确目标,就是搞清楚你的GO 是什么,所有的软件都逃不出那三句话——IF、THEN、 ELSE。棒的程序员很快能够知道自己的GO是什么,没长进的程序员老也弄不清楚......
[转]软件工程师的务实职业生涯规划(2005-07-04 10:25:00)
摘要:软件工程师的务实职业生涯规划 [1] 好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手! [2] 可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师! [3] 不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。8051很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此! [4] 多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低! [5] 知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务,法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!! [6] 抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这......
[转载]宏的妙用(2005-07-03 13:26:00)
摘要:作者 阿荣1、概述 C++中出了const关键字以后,宏定义常量的功能已经不在被推荐使用。这使得宏似乎没有了用武之地。实际上,宏还可以做很多事情,笔者也难以全部列举。这里,仅仅列举几个典型的用法,希望大家能够从中获益。 2、实现多环境兼容 常见的情况是,我们实现了一个函数,希望它只在某种编译条件满足是被编译和使用。例如,我希望在源码中插入调试语句,以便以Debug方式运行时能够通过调试信息观察程序运行情况。但是,在产品发售给用户时,我又希望这些调试信息不要输出,以降低代码尺寸,提高运行性能。 这一问题的解决方法就是使用宏。根据条件编译指令,对于不同的编译条件,提供不同的实现。例如:我们希望在特定的位置向日志中写入当前行号和文件名,以判断对应代码是否被执行到,可以使用下面的宏: #ifdef _DEBUG #define TRACE_FILE_LINE_INFO() do{\ CString str;\ str.Format(_T("file=%s,line=%u\r\n",__FILE__,__LINE__);\ CFile file("logfile.txt");\ file.Write(str,str.GetLength());\ }while(0) #el......
[转]学习C语言,不利于学习C++语言么(2005-09-14 11:37:00)
摘要:(乾坤一笑发表于2004-11-16 10:40:13)C++的定义已经作了许多修订,以保证任何同时在C和C++里合法的结构在两个语言中都具有同样的意义(除了少量例外)。C语言本身也在发展和演化,部分地是在C++开发地影响之下。ANSI C标准就包含了从“带类的C”借去的函数声明语法。借鉴是双向的,例如void*指针类型是为ANSI C发明的,但是却在C++里第一次实现。正如本书第一版所允诺的,C++的定义已经过修订,以去掉无缘无故的不兼容性。今天的C++比原来更加与C兼容了。这里的想法是让C++尽可能接近ANSI C——但又不过于接近。百分之百的兼容性从来就不是目标,因为这将危害类型安全性以及用户类型和内部类型的平滑集成。了解C并不是学习C++的先决条件。在C中编程序被鼓励使用的许多技术和诀窍由于C++语言的特征而变的多余了。例如,显性类型转换(casting)在C++里就没有在C里那么频繁。然而,好的C程序倾向于也是C++程序。例如,在Kernighan和Ritchie的《The C Programming Language》, 2nd Edition 里的每个程序都是C++程序。任何有关静态类型语言的经验对于学习C++也都能有所帮助。以上引自Bjarne Stroustrup的《The C++ Programming Language (Special Edition)》。偶从中悟到的是:如果你能把C程序写得在C++编译器中也正常通过(没有warning),那也不是坏事。^_^ 所以,偶现在也就安心的做编写C代码的工作,业余研究研究C++了,两者并不冲突。:)//////////////////////////////////////////////////////最新评论 [发表评论] 查看所有评论 推荐给好友 打印 嗯,C语言是基础呀! ( NQC 发表于 2005-4-28 9:56:00)如果没精通C,直接学C++的话,一定写不好程序,甚至不知道什么是好程序。 ( nbcool 发表于 2004-11-23 23:36:00)......
[转]学习C++必须“罢黜百家,独尊儒术”么(2005-07-03 13:11:00)
摘要:(乾坤一笑发表于2004-11-16 10:41:18)许多朋友都认为,学习C++要专一,了解过多的其它语言就把精力分散了,有百害而无一利。我不同意这种观点。我认为,程序语言的演化是相互学习、相互借鉴的,一个好的语言往往是吸纳了多种其它语言的优点、摒弃了它们的缺点才形成自己的风格的。所以,了解的知识面越宽,所能够横纵比较的范围才越大,才越能够明白C++为什么要设计成这个样子。闲言少叙,现看看Bjarne Stroustrup设计C++的灵感都源于何处,一下摘自《The C++ Programming Language (Special Edition)》:很清楚,C++大大地受惠于C。除封闭了其它类型系统中的少量严重漏洞之外,C++仍然保留C作为一个子集。我还保留了C在功能上的强项,能在足够低的层次上处理最苛刻的系统设计工作。C转而从其前驱BCPL受惠颇多;事实上,BCPL的//注释约定也被(重新)引进了C++。给C++以灵感的另一个主要来源是Simula67;类的概念(包括派生类和虚函数)都是从那里搬过来的。C++有关重载运算符和自由地将声明放置在可以出现语句的任何位置的功能,使人联想到Algol68。.......模板机制部分地受到Ada中类属(generic)的启发(包括其威力及其弱点),部分地受到Clu语言参数化模块地影响。与此类似,C++的异常处理机制部分地受到Ada、Clu 和ML的影响。其它方面的开发是在1985~1995的时间跨度中做出的,例如,多重继承、纯虚函数,以及名字空间,这些基本上是在C++使用经验推动下推广而来的,而不是由其它语言引进的。由此可见,C++语言的设计者Bajarne Stroustrup、STL的设计者Alex Stepanov绝非只懂一种语言,我推测他们每人至少懂个七、八、十来种,不然怎么取长补短的设计出如此优秀的C++语言呢?另外,C++重实用的语言,而不是那种盲目追求完美的语言。在《C Traps and Pitfalls》(中文版叫做《C陷阱与缺陷》)的中文版的附录上记录着这样一个典故:王曦和孟岩采访Andrew Koenig时,曾问:“有时,编写平台无关的C++程序比较困难,而且开发效率也不能满足需求。您是否认为把C++与其它的语言,尤其类似Python和TCL/TK那样的脚本语言合并使用是个好主意?” Koenig......
[转载]排序小结(2005-06-30 13:47:00)
摘要: 排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。 对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。 我将按照算法的复杂度,从简单到难来分析算法。 第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N)(因为没有使用word,所以无法打出上标和下标)。 第二部分是高级排序算法,复杂度为O(Log2(N))。这里我们只介绍一种算法。另外还有几种算法因为涉及树与堆的概念,所以这里不于讨论。 第三部分类似动脑筋。这里的两种算法并不是最好的(甚至有最慢的),但是算法本身比较奇特,值得参考(编程的角度)。同时也可以让我们从另外的角度来认识这个问题。 第四部分是我送给大家的一个餐后的甜点——一个基于模板的通用快速排序。由于是模板函数可以对任何数据类型排序(抱歉,里面使用了一些论坛专家的呢称)。 现在,让我们开始吧: 一、简单排序算法由于程序比较简单,所以没有加什么注释。所有的程序都给出了完整的运行代码,并在我的VC环境下运行通过。因为没有涉及MFC和WINDOWS的内容,所以在BORLAND C++的平台上应该也不会有什么问题的。在代码的后面给出了运行过程示意,希望对理解有帮助。1.冒泡法:这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:#include void BubbleSort(int* pData,int Count){ int iTemp; for(int i=1;i......
[转]Bjarne Stroustrup语录[C++经验](2005-06-30 13:41:00)
摘要:摘录自Bjarne Stroustrup 的《The C++ Programming Language》(Special Edition) 一、致读者1. 在编程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示。让程序的结构尽可能地直接反映这些思想: ★.如果你能把“它”看成一个独立的概念,就把它做成一个类。 ★.如果你能把“它”看成一个独立的实体,就把它做成某个类的一个对象。 ★.如果两个类有共同的界面,将此界面做成一个抽象类。 ★.如果两个类的实现有某些显著的共同东西,将这些共性做成一个基类。 ★.如果一个类是一种对象的容器,将它做成一个模板。 ★.如果一个函数实现对某容器的一个算法,将它做成为对一族容器可用的模板函数。 ★.如果一组类、模板等相互之间有逻辑联系,将它们放进一个名字空间里。2. 在你定义一个并不是实现某个像矩阵或复数这样的数学对象的类时,或者定义一个低层的类型如链接表的时候: ★.不要使用全局数据(使用成员)。 ★.不要使用全局函数。 ★.不要使用公用数据成员。 ★.不要使用友元,除非为了避免a或c。 ★.不要在一个类里面放“类型域”(指那种为了说明一个类所存储数据的情况而放置的标志域) ;采用虚函数。 ★.不要使用在线函数(inline function),除非作为效果显著的优化。二、C++ 概览1. 不用害怕,一切都会随着时间的推移而逐渐明朗起来。2. 你并不需要在知道了C++的所有细节之后才能写出好的C++程序。3. 请特别关注程序设计技术,而不是各种语言特征。三、标准库概览1. 不要像重新发明车轮那样企图做每件事;去使用库。2. 不要相信......
[转载]编写优秀技术文档的技巧(2005-06-29 17:59:00)
摘要:编写优秀技术文档的技巧 ---------------------------------------------------------------------来自:天极论坛 作者:ganyun [2004/12/27] 拥有准确的技术文档不仅对于公司是非常有益处的,而且也能够让客户从中受益。由于产品如何使用在某种程度上是要依赖技术文档来进行说明的,因此技术文档必须十分的准确可靠。使用不准确的和已经过时的技术文档对于公司的发展也会产生一定的阻碍,同样的,它也会对公司的客户们产生消极的影响。一旦客户发现在他们使用产品的时候遇到了问题,却不能通过求助于伴随产品的技术文档的手段进行解决的时候,客户们就会对这种产品产生怀疑乃至于失去信心,那么,公司的信誉和利益自然而然的就会受到损害。这就是不准确的和过时的技术文档给我们带来的危害。 缺乏准确性以及内容晦涩难懂都会让开发新手以及其他的一些技术工作者们对这些技术文档敬而远之,从而不利于他们的学习和掌握。在本篇文章中,我们要讨论的就是如何在你的开发小组中编写出准确而且易于掌握的技术文档。 技巧一:制定出一个技术评价核对表 许多的程序开发设计者以及管理者都缺乏从技术上评价一个文档的经验。这里有一些方法可以提高这些技术文档的准确性: 把注意力集中于技术事实上,这样能够核实这些技术是作为技术文档而被编写出来的。技术评论的工作并不等同于一般的编辑工作。 一定要从技术上核实,在技术文档里编写的程序与步骤的准确性。 一定要从技术上核实,在技术文档中使用的图片捕捉的准确性。 技巧二:一定要在技术文档编写的过程中明确责任 技术文档编写不好的一个原因常常是由于对它不够重视。这是由于在编写技术文档的时候,没有十分的明确各种责任。因此,一定要在技术文档编写的过程中明确责任,这些方法包括: 在技术文档中加入作者以及相关人员的姓名。一些公司可能有规定,禁止出现员工的姓名,但是在技术文档中包含作者以及相关人士姓名的做法能够促进这些内部员工之间的交流。对于外部的文档使用者,比如为商业现货软件编写的用户指南,可以加入作者以及相关人员的姓名,用以明确和承认他们对开发所做的工作和贡献。 把文档的技术评论作为提供给开发设计人员的年度评论的一部分。 在项目计划中指派专人负责技术评论的工作。 技巧三:增加技术文档编写者的准确性 由......
