不知不觉做软件已经做了五年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。
1. 扎实的基础。数
据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写
出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,
即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
4. 不钻牛角尖。当
你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责
游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注
意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成
部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这
也许是"高手"和一般程序员最大的区别。A good programming is 99% sweat and 1%
coffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个
10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。
posted @
2007-09-25 10:52 章无计 阅读(167) |
评论 (2) |
编辑
大家喝的是啤酒。这时你入座了。
你给自己倒了杯可乐,这叫低配置。
你给自已倒了杯啤酒,这叫标准配置。
你给自己倒了杯茶水,这茶的颜色还跟啤酒一样,这叫木马。
你给自己倒了杯可乐,还滴了几滴醋,不仅颜色跟啤酒一样,而且不冒热气还有泡泡,这叫超级木马。
你的同事给你倒了杯白酒,这叫推荐配置。
人到齐了,酒席开始了。
你先一个人喝了一小口,这叫单元测试。
你跟旁边的人说哥们咱们随意,这叫交叉测试。
但是他说不行,这杯要干了,这叫压力测试。
于是你说那就大家一起来吧,这叫内部测试。
这个时候boss向全场举杯了,这叫公开测试。
菜过三巡,你就不跟他们客气了。
你向对面的人敬酒,这叫p2p.
你向对面的人敬酒,他回敬你,你又再敬他……,这叫tcp.
你向一桌人挨个敬酒,这叫令牌环。
你说只要是兄弟就干了这杯,这叫广播。
可是你的上司jj听了不高兴了,只有兄弟么,罚酒三杯。这叫炸弹。
可是你的下级mm听了不高兴了,我喝一口,你喝一杯,这叫恶意攻击。
有一个人过来向这桌敬酒,你说不行你先过了我这关,这叫防火墙。
你的小弟们过来敬你酒,这叫一对多。
你是boss,所有人过来敬你酒,这叫服务器。
酒是一样的,可是喝法是不同的。
你喝了一杯,boss喝了一口,这叫c#。
你喝了一杯,mm喝了一口,这叫vb。
你喝了一杯,你大哥喝了半杯,这叫c++。
你喝了半杯,你小弟喝了一杯,这叫汇编。
你喝了一杯,你的搭档也喝了一杯,这叫c。
酒是一样的,可是喝酒的人是不同的。
你越喝脸越红,这叫频繁分配释放资源。
你越喝脸越白,这叫资源不释放。
你已经醉了,却说我还能喝,叫做资源额度不足。
你明明能喝,却说我已经醉了,叫做资源保留。
你喝一段时间就上厕所,这叫cache。
酒过三巡,你也该活动活动了。
你一桌一桌的走,这叫轮巡。
你突然看到某一桌的漂亮mm,走了过去,这叫优先级。
你去了坐下来就不打算走了,这叫死循环。
你的老大举杯邀你过去,你只好过去,这叫激活事件。
你向一桌敬酒,他们说不行不行我们都喝白的,于是你也喝白的,这叫本地化。
你向boss敬酒,可是boss被围了起来,你只能站在外圈,这叫排队。
你终于到了内圈,小心翼翼的向前一步,这叫访问临界区。
你拍着boss的肩膀说哥们咱们喝一杯,这叫越界。
你不知喝了几圈了,只会说两个字,干了,这叫udp。
可是还有人拿着酒瓶跑过来说,刚才都没跟你喝,这叫丢包。
喝酒喝到最后的结果都一样
你突然跑向厕所,这叫捕获异常。
你在厕所吐了,反而觉得状态不错,这叫清空内存。
你在台面上吐了,觉得很惭愧,这叫程序异常。
你在boss面前吐了,觉得很害怕,这叫系统崩溃。
你吐到了boss身上,只能索性晕倒了,这叫硬件休克。
posted @
2007-07-08 11:36 章无计 阅读(189) |
评论 (2) |
编辑
写在前面的话:这是在对公司项目的几点看法,为了方便说事,将其中的项目名称用“A项目”来代替,甲方用“甲A”来代替。
大家好!
根据调整,我从昨天(4月12日)将A项目的工作内容抓紧往前赶着做,由于所涉及到的功能和页面内容比较多,到现在还有几个功能没有做完,做完的只作了简单测试。我对这次的项目谈几点自己的体会:
1、 开发工具的使用:由于这次使用VS2005+Oracle来做开发,公司大多数人员对于这些都不是很熟悉,尤其B/S结构的界面设计比较费劲。我们把大多数的时间都花在了类似于调表格、布局等等上了。在这里,我告诉大家一个方法:你如果看到某个页面的布局比较好,你可以将其存成HTML格式的,然后用 Dreamweaver(或者其他的)打开,对于它是怎么布局,怎么对齐表格等等就一目了然了。
2、 Oracle数据库的掌握:Oracle与SQL Server在SQL上差的并不多,只是一些数据类型和SQL中的特殊写法上不一样。我们这次把大多数时间花在了对Oracle数据库的管理上了,像Oracle数据库中的表空间,方案,用户,监听等。甲A方面的数据库拿过来,不能直接用,多次与甲A方沟通。虽然像SQL Puls中的查询乱码问题解决了,但在WEB页面中仍不能正常显示。我个人认为这可能是数据库的问题,因为我们现在在数据库所看到的就是乱码,如果甲A那边的数据不是乱码,那问题就好办了。如果不是数据库问题,可以调一下.NET的运行环境。
3、 工作内容的前后安排:由于是B/S的开发,界面设计比较难做,我们做界面精益求精,固然是好,但目前A项目比较紧,我们不应花太多的时间在这上面。但也不能随便对付一个过去,界面能拿得出手就行,赶紧做功能,等功能差不多了,再回过头来细做界面(部队的项目界面一定要好看)。有些问题可以先放一放,把能做的做了,等大体做完了,再细做,就像我们考试一样,先做会的。
4、 获得帮助的途径:遇到问题之后,如果我们不能解决,像Oracle的联机帮助,VS的MSDN等也不是摆设,我们也可以从网上去找。我有时候在对大伙遇到的难题解决上显得有些滞后,请大家能以理解,为了完成项目,没有过多的时间来对一个问题反复去研究。
记住我说的这么的一句话:F1在什么时候都管用,但要灵活去用。
后记:以上是针对初学者的几点建议,请指教。
posted @
2007-04-17 10:32 章无计 阅读(26) |
评论 (0) |
编辑
为什么IT英才难以成为CIO
作为企业的高级业务管理人员,CIO是企业管理与IT技术的全才,我认为至少应该包括下列四个方面。
管理者的基本素质
包括普通管理的计划、组织、协调、执行和控制能力,拥有项目经理的能力
,能够从质量、成本、风险、时间、流程等方面管理项目;还必须具备领袖气质、才能和大局观,从发展、战略、规划以及行业的角度去思考和解决企业的问题。
精通企业以及相关行业的知识
包括企业的研发、生产、计划、营销、市场、物流等核心业务流程,熟悉企业的人力资源管理、财务管理、组织结构、行政程序等基础资源,以及企业的愿景、发展目标、价值观等企业的文化范畴。
掌握并应用现代信息技术
包括IT基础设施方面的计算机通讯与网络系统、操作系统、安全系统、存储与备份系统等,了解当前企业管理软件的思想、原理、产品如ERP、PLM、SCM、CRM、EIP、BI、KM、OA以及供应商,具备现代软
件开发与管理的技术,掌握计算机服务与运行管理(如ITSM),能够熟练地运用信息技术解决企业的实际问题。
全面、均衡的个人品质
优秀的个人品质是成功的管理人员的基本素质,但是在目前国有企业从事信息化工作之艰辛和痛苦还要求CIO具备超常的个人品质,包括坚忍不拔的毅力、顽强的工作作风、吃苦耐劳的精神、谦逊和蔼的态度以及耐得住寂寞、
体贴下属、不断学习、沟通和交流的技巧等。
诚然,要求达到上述近乎理想的广博知识、丰富经验、特殊才能和优秀品质,对任何一名员工都显得十分苛刻,难以具备。尤其是对成长阶段的IT技术或普通管理人员,这样的要求实际上就是追求的目标、努力的方向、前进的
指南。有些品质,比如领袖的亲和与影响力,需要在长期的工作中不断磨炼、逐渐形成。由于没有达到胜利的彼岸,我没有做CIO的体会,也难以刻画出成功CIO的其它特性。
成为CIO的主要障碍
技术和管理的不同点有许多,比如:管理对人、技术对事,管理似水、技术如钢,管理重感情、技术重理性,管理贵在均衡、技术追求完美,管理是宏观的、技术是微观的。IT技术人员,即使可以做好研发管理、项目管理、甚
至IT部门经理,要想成为企业的高级管理人员,必须改变思维和言行举止,摒弃个性,隐藏锋芒,提高情商,甚至经历地狱般的摧残磨炼。
下面我根据自身的经历,讲述IT专家、IT经理、部门IT技术主管等在向高层管理的成长过程中六个主要的、必须逾越的障碍。
障碍1:全面的沟通艺术
交流与沟通对技术人员本不是件困难的事,做学术报告、参加研讨会、撰写文章等是技术专家的看家本领。但是,作为CIO的沟通与交流就不能仅仅是这么乏味、简洁、单纯。从方向上讲,CIO的沟通是全方位的上中下:企
业高管、中层主管以及基层员工;从内容上讲,CIO要沟通的包括战略、管理、技术和理念;从形式上讲,除了上述的正规渠道和书面材料,更重要的是在饭桌旁、走廊上、娱乐场、家庭里等的轻松谈论。
需要注意的是,企业高管不仅仅是CEO,还有CFO、CTO,有董事会成员,监视会成员。中层主管包括企业主要职能部门如战略发展、投资管理、财务管理、人力资源、研发管理等,业务领域如采购部门、销售部门、生产
计划部门、车间管理等以及子公司或产品事业部的主管。基层员工除了从事IT的技术人员,还有各个业务领域的一线经理、关键骨干。
与他们沟通什么?CIO要学会说话,要学会根据不同的场合、时间、对象和问题,说不同的话。比如,与企业高管,CIO要了解企业的发展战略、企业最关心的问题、高管对IT技术与应用的认识和期望,要学习战略层次的
企业管理。同时CIO还要用大白话宣传企业信息化的基本知识和当前最新的技术进展,忌讳穿插英文三字经,消除高管人员对IT的神秘感:实实在在的解释IT可以干什么,不能干什么。
这看起来简单的与谁沟通、沟通什么、如何沟通,对于技术人员可能就是难于逾越的山峰。
障碍2:与CEO/CFO艰难的汇报
信息化建设需要大量的资金。从投资方面上看,信息化建设属于长期投入、长期回报、风险性高的投资。而且,现在的趋势是,IT系统越来越庞大、复杂;建设周期更长,更新升级更快,投入就越来越多,效益产生时间却越来
越长。象其它管理项目一样,信息化建设难以直接计算投资回报(ROI),尤其是把IT投入定位在企业某项具体工作改进的具体比例或价值上。让企业不安的是,任何IT管理项目在国内外都有失败的案例,而与本企业相同
的企业几乎不存在,人人都说自己的企业特殊:流程复杂、基础薄弱、资金有限、生产模式特殊、管理独特,等等。具有IT背景的专业人员如果没有受过成本管理、投资管理的训练,就很难以CEO/CFO可以理解的方式提
出IT投资的合理性。而且,IT的投入产出分析在理论与实践方面都极为匮乏,仅有的一些计算和分析方法又不同于传统的财务(投资)管理算法,大多依赖于理想的假设,建立在国外统计数据的数学模型上。如果IT专业人
员对ROI的分析方法不娴熟,不能在实际工作中灵活运用,就难以同CFO/CEO汇报和沟通。
经常听到CFO/CEO说“我是外行,不懂什么IT……”之类话的IT人员,请放弃走向管理层的台阶,因为你还无法与企业的决策者交流。掌握高层管理层的意图,掌握投资管理和企业战略管理的交流手段,这是IT专业
人员在管理上继续攀登的难关。
障碍3:对企业的肤浅认识
具有悠久历史的国企可谓高深莫测,即使在向现代企业迈进的知名国企依然成为许多精英志士的滑铁卢:如TCL、清华同方。企业的组织构架、经营方式、管理水平、人员素质、开放程度、变革愿望、执行力度、价值观念等等
企业文化的范畴,远远超出了技术的深度和广度。盘根错节的人员关系更是错综复杂,非技术人员短期内可以把握。CIO不能忽视任何一名员工,不论表面上看工作毫不相关。要想进身CIO、完成伟业,IT技术人员必须精
通对包括上述范围的企业文化,掌握精髓。国企的CIO则必须磨炼身心,改变心智模式,潜移默化地成为企业的一员。我的前CEO曾对我讲过至理名言:要想改造企业,你必须首先融入企业、成为其中的一员,但是又不能染
上它的不良习气。
参加企业的经营和管理活动、与企业的各类人员进行充分的沟通—上至决策者、中到部门主管、下到普通员工—是了解企业的一条最佳途径。这些人员实际上就是企业信息化的最终用户,与他们的沟通就是与最终客户在沟通,就
可以从各个侧面了解企业,了解企业的历史、发展、如今的问题、未来的愿景,了解企业的组织和各种关系,了解企业的生产、经营和管理模式以及核心业务流程,了解企业的文化。表面上看,这些都与IT技术无关,但是,这
些都与IT应用戚戚相关、紧密相连,是IT人员成为CIO必须渡过的难关。
障碍4:兰博式的个人英雄主义
在中层、基层做管理工作,管理者应该是领队、教练、运动员和队医,是策划者、组织者、鼓吹者和实践者。但是,如果要做高层管理,更需要的是领队和队医,是策划者和鼓吹者。CIO要引领企业的IT方向、制定战略和规
划,要扬鞭呐喊、鼓舞士气,而不仅仅事事亲躬、埋头冲锋;CIO应该利用组织的力量,而不仅仅是个人的才华,这是科学家与经理人的重大区别。技术出身的人要培养一个视野,一个管理者的宽广视野;要善于协调、组织和
利用他人,特别是技术能力比你低的人。技术一般都是比较强调个人的作用(尽管要求合作的态度和能力),但是当你期望进入决策层的时候,要管一个大型项目、管一个战略、管一个领域的时候,你就要对整个企业、整个组织
、整个战略负责。这个时候CIO决不能只表现个人的力量,而要建立一个组织,并且依靠这个组织,而这正是从技术到管理必须跨越的台阶。
在企业信息化建设的工作当中,CIO自己不能成为、也不应该使用兰博式的个体,而应该充分、合理地运用组织的力量。我的前CEO告戒过我:我们企业的发展迅猛异常、各种关系错综复杂,就是有十个你这样的专家也难以
完成这么大企业的信息化建设。我信服。
障碍5:IT是拯救或提升企业的利器
最近几年,中国的IT行业十分引人注目:在每年的十大企业家评选中都少不了IT企业的领军人物,党和政府把信息化建设提到重要日程上来,认为是改造和提升传统产业的重要手段,政府和地方都加大力度实施电子政务、电
子商务和电子教学等等。这些都极大地提升了信息技术的重要性,也提升了IT人的自豪感和责任心。在企业里的IT人员仿佛有一种优越感和救世主或先进文化代表者的使命,以为企业的提升或从困境中摆脱,完全可以用在西
方成功的ERP、CRM、PLM、SCM等工具和思想来改造中国的企业。孰不知,除了概念炒作、市场运作以及其他营销手段以外,信息技术最终是一些先进管理思想的载体,任何信息系统都无法包含它声称管理哲学观念和
实践的全部。而且,如果未掌握企业管理的核心,没有掌握IT信息系统的实质,没有正确使用的IT系统也就谈不上是先进思想的代表。
在我经常随时随地收到网络不通、邮件发不出、打不开网页、密码遗忘等电话询问和报告时,我恍然大悟:无论是在管理帐务、制作生产计划、记录销售合同、管理研发文档与产品,还是在支持数据分析、网上招聘以及协同办公
等,人们终究只是把信息技术当作企业的一个工具。
实质上,IT在企业里就如同那里的机床、水电、通讯工具等的作用一样,而且这些看不见、摸不着、还容易莫名其妙出错的应用软件和网络系统有时让人感觉还不如电话、传真有用。更不用说把IT与资金管理、人力资源、客
户资源、研发能力、制造能力等企业的核心领域相提并论,把IT提升到资产管理和企业的战略资源管理。
信息技术不可能从根本上彻底地改变一个企业的命运和状况。IT专业技术人员务必真正了解企业的需求与核心问题,用技术解决日常实际上看似简单的工作。必须把IT从神坛上请下来,让IT成为企业日常运作不可缺乏的要
素,这样,具有专业背景的CIO才有存在的意义。这种从天上到地下的态度和能力,对于IT人员是必须跨越的障碍。
障碍6:技术精英的清高与孤傲
要想成为合格的CIO,你一定努力成为企业需要的技术专家、管理专家。做专家的事,一丝不苟、踏踏实实、精益求精,但决不要自认为是专家,更不能有意无意地表现出领先一步、技胜一酬。IT技术人员要将中国的传统美
德—谦虚—铭刻在心。不要以为学习、掌握和应用了欧美的先进技术与管理,就把争强好胜、坦荡直爽的文化也引入到中国,特别是带入到历史悠久的国企中。在中国,权位越高、技术越精、职责越大,就越是要老老实实地做人
。在领导面前唯唯诺诺、视为马首,在平级干部中一团和气、称兄道弟,在下属里嘻嘻哈哈、言听计从,尽管这些行为在IT技术人员看来无法理解、难以做到,甚至是虚伪的表现,但是,做不到这些正是阻碍IT专才成长为高
级管理者的一个巨大障碍。
中国不乏和蔼可亲、面带微笑、平易近人的学者、专家和技术精英,他们都是IT技术人才做人的典范。有志于加入CIO行列的IT人员,必须学会与企业的各类人员交朋友,与你的最终用户交朋友。我的前CEO多次公开说
过:中高级领导干部必须诚心诚意地听取群众的意见,夹着尾巴做人。
在中国,做管理就是做人,做CIO更是如此
posted @
2006-10-19 16:23 章无计 阅读(53) |
评论 (1) |
编辑
我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的朋友说点心里话,希望你们能从我们的体会中,多少受点启发(也许我说的不好,你不赞同但看在我真心的份上别扔砖头啊).
一、 在中国你千万不要因为学习技术就可以换来稳定的生活和高的薪水待遇,你千万更不要认为哪些从事 市场开发,跑腿的人,没有前途。
不知道你是不是知道,咱们中国有相当大的一部分软件公司,他们的软件开发团队都小的可怜,甚至只有1-3个人,连一个项目小组都算不上,而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块功能而心怀忐忑,有的时候如果你不幸加入现场开发的团队你则需要背井离乡告别你的女友,进行封闭开发,你平时除了编码之外就是吃饭和睡觉(有钱的公司甚至请个保姆为你做饭,以让你节省出更多的时间来投入到工作中,让你一直在那种累了就休息,不累就立即工作的状态)
更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外你几乎见不到做其他行业工作和职位的人,你的朋友圈子小且单一,甚至破坏你原有的爱情(想象一下,你在外地做现场开发2个月以上,却从没跟女友见过一面的话,你的女友是不是会对你呲牙裂嘴)。
也许你拿到了所谓的白领的工资,但你却从此失去享受生活的自由,如果你想做技术人员尤其是开发人员,我想你很快就会理解,你多么想在一个地方长期待一段时间,认识一些朋友,多一些生活时间的愿望。
比之于我们的生活和人际关系及工作,那些从事售前和市场开发的朋友,却有比我们多的多的工作之外的时间,甚至他们工作的时间有的时候是和生活的时间是可以兼顾的,他们可以通过市场开发,认识各个行业的人士,可以认识各种各样的朋友,他们比我们坦率说更有发财和发展的机会,只要他们跟我们一样勤奋。(有一种勤奋的普通人,如果给他换个地方,他马上会成为一个勤奋且出众的人。)
二、在学习技术的时候千万不要认为如果做到技术最强,就可以成为100%受尊重的人。
有一次一个人在面试项目经理的时候说了这么一段话:我只用最听话的人,按照我的要求做只要是听话就要,如果不听话不管他技术再好也不要。随后这个人得到了试用机会,如果没意外的话,他一定会是下一个项目经理的继任者。
朋友们你知道吗?不管你技术有多强,你也不可能自由的腾出时间象别人那样研究一下LINUX源码,甚至写一个LINUX样的杰作来表现你的才能。你需要做的就是按照要求写代码,写代码的含义就是都规定好,你按照规定写,你很快就会发现你昨天写的代码,跟今天写的代码有很多类似,等你写过一段时间的代码,你将领略:复制,拷贝,粘贴那样的技术对你来说是何等重要。(如果你没有做过1年以上的真正意义上的开发不要反驳我)。
如果你幸运的能够听到市场人员的谈话,或是领导们的谈话,你会隐约觉得他们都在把技术人员当作编码的机器来看,你的价值并没有你想象的那么重要。而在你所在的团队内部,你可能正在为一个技术问题的讨论再跟同事搞内耗,因为他不服你,你也不服他,你们都认为自己的对,其实你们两个都对,而争论的目的就是为了在关键场合证明一下自己比对方技术好,比对方强。(在一个项目开发中,没有人愿意长期听别人的,总想换个位置领导别人。)
三、你更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己是搞技术的。
如果你那样认为,真的是大错特错了,你可以做个调查在非技术人群中,没有几个人知道C#与JAVA的,更谈不上来欣赏你的技术是好还是不好。一句话,技术仅仅是一个工具,善于运用这个工具为别人干活的人,却往往不太擅长用这个工具来为自己创业,因为这是两个概念,训练的技能也是完全不同的。
创业最开始的时候,你的人际关系,你处理人际关系的能力,你对社会潜规则的认识,还有你明白不明白别人的心,你会不会说让人喜欢的话,还有你对自己所提供的服务的策划和推销等等,也许有一万,一百万个值得我们重视的问题,但你会发现技术却很少有可能包含在这一万或一百万之内,如果你创业到了一个快成功的阶段,你会这样告诉自己:我干吗要亲自做技术,我聘一个人不就行了,这时候你才真正会理解技术的作用,和你以前做技术人员的作用。
[小结]
基于上面的讨论,我奉劝那些学习技术的朋友,千万不要拿科举考试样的心态去学习技术,对技术的学习几近的痴迷,想掌握所有所有的技术,以让自己成为技术领域的权威和专家,以在必要的时候或是心里不畅快的时候到网上对着菜鸟说自己是前辈。
技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢他,但最好不要一辈子靠它生存。
掌握技术的唯一目的就是拿它找工作(如果你不想把技术当作你第二生命的话),就是干活。所以你在学习的时候千万不要去做那些所谓的技术习题或是研究那些帽泡算法,最大数算法了,什么叫干活?
就是做一个东西让别人用,别人用了,可以提高他们的工作效率,想象吧,你做1万道技术习题有什么用?只会让人觉得酸腐,还是在学习的时候,多培养些自己务实的态度吧,比如研究一下当地市场目前有哪些软件公司用人,自己离他们的要求到底有多远,自己具体应该怎么做才可以达到他们的要求。等你分析完这些,你就会发现,找工作成功,技术的贡献率其实并没有你原来想象的那么高。
不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国不会出现BILL GATES,因为,中国目前还不是十分的尊重技术人才,还仅仅的停留在把软件技术人才当作人才机器来用的尴尬境地。(如果你不理解,一种可能是你目前仅仅从事过技术工作,你的朋友圈子里技术类的朋友占了大多数,一种可能是你还没有工作,但喜欢读比尔。盖茨的传记)。
posted @
2006-10-19 16:21 章无计 阅读(441) |
评论 (3) |
编辑
熟练人员经过多年的积累加上自己的CodeSnip的总结,基本不用额外再查找资料。而一般的开发人员在开发过程中会花掉10-20%时间去查找资料。
熟练人员注意代码复用,并且时刻注意重构和抽取公用代码。一般开发人员是代码拷来拷去完成功能。
熟练人员非常注意查找,定位,标签等各种快捷键的使用,定位查找方便快捷,IDE环境也根据习惯定义到最方便状态。
熟练人员编码前先思考清楚整个流程,在头脑或纸张上规划好整个实现方式和方法函数的划分。一般人员想到哪里写到哪里。
熟练人员写了50行以上或更多代码才Debug一两次,一般人员写了几行代码就要Debug多次,完全通过Debug来验证代码正确性。
熟练人员注重代码的质量,单元测试和可维护性,注重各种业务逻辑的验证和边界条件的校验。一般人员只注重简单功能的简单完成。
熟练人员提交测试的代码BUG很少,返工工作量很小。一般开发人员由于自测不完善BUG较多,造成大量的返工工作量。
熟练人员合理分配自己的时间,规划好每天工作任务,开发过程各位专注。一般开发人员一心多用,边开发边聊Q。
熟练人员善于知识的总结和积累,形成自我的知识库和经验库。
熟练人员善于发现问题,分析不足而自我持续改进。一般人员在外力干预侠被动改进。
熟练开发人员开发重点已经专业到对业务的深刻理解,一般开发人员考虑的是开发上编程的语言和工具。
熟练人员善于从各种影响自己开发效率的因素中挤时间,善于使用各种辅助开发工具。而一般人员则不善于这种总结。
posted @
2006-10-19 16:16 章无计 阅读(40) |
评论 (0) |
编辑
诸位,咱当软件工程师也是好几年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强!
[1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!
[2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师!
[3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。8051很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!
[4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!
[5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务,法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!
[6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!!
[7]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错!
[8]工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!
[9]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会...
[10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功!
posted @
2006-10-19 15:26 章无计 阅读(383) |
评论 (8) |
编辑
选择一个有个责任感的人,放心的给他一个任务,一个责任,让他知道这件事情做得好,还是做得不好都是他一个人的责任,你只是会给予他必要的支持,这就足够了。
我曾经做的第一个项目就是独立的开发一个项目,虽然不是真正的项目,它依然带给我的很大的压力,同时很强的责任感,不为别的,我的责任感告诉我一旦把这个担子接下来了就应该尽自己的能力把它做好!
posted @
2006-08-22 09:40 章无计 阅读(57) |
评论 (0) |
编辑