技术篇

技术篇

1.职业修养(团队精神)

作为一个软件人员,应是高素质,有修养。先做人,再做事。

做软件,是以项目为单位,由多个人聚在一起,形成一个团队,共同完成任务。既然是多个人共同完成任务,你必须要融入到他们当中,要与他们多交流,才能做好事情。既然是一个团队,就要学会怎样去交流,怎样相处。

这是我从事软件工作的一些心得,做项目所要注意的一些东西。希望对大家有所帮助。

宽容,我们都是年轻人,难免犯错,我们这个年龄不犯错的人不多,几乎没有。要包容。犯错的人不要不好意思,下次注意一点不要再犯了就可以。对方也不要计较,包容他们。

要多问多想,做软件是这样的,一个人解决问题,如果不问,可能2-3天也处理不了,问一问人家5分钟解决问题。这就是做软件交流的好处。不要碍于面子,要多问。不要认为问的问题太简单,而不愿意回答。也不要因为问题过于复杂,而随便应付,随便打发了事。当然问问题尽量注意一点方法,不要问这个问题怎么做,而是问是不是这样做。自己先考虑一下,把自己的观点先描述出来,再问是不是。这样听者受益,能在你的描述问题的过程中学到一些东西,也减少对方解答问题的时间。

努力提高自身素质。要有敬业精神。

互相帮助,我们是一个团队,一个人的能力再强也没用,团队强才是好的。每一位成员都要为团队带来积极性,建设性。

以诚信,从容的心去和他们交往。和同事建立很深的感情。

作为一个项目领导者,要辅导项目成员做事,要教他们做事。不是只问什么时候做完任务。要把自己知道的东西耐心的描述,直到对方弄懂为止。如果碰到自己不太懂的方面,拿不准的话,要去问人家,不耻下问。听听人家的看法,观点,多问多学。不断的提高自己的能力。只有自己是行家,才知道任务的难点在哪里,哪些是容易的。合理安排任务给项目成员,心中有数。

“尊重人,赏识人“这是北大就业中心主任讲的话,我是在电视上看到的。自己有能力一定要尊重人,要看到别人的优点,学习人家的优点。

我们要以一种感恩的心态去看待这个社会,公司要感谢我们的辛苦劳动。我们要感谢公司给予薪水,给予生活。要发自内心的感激。公司要感谢客户的扶植。我记的我们以前公司的经理说过一句话“我们是帮客户做事,客户在扶植我们成长”。

尊重人,赏识人。衷心的赞扬人家的长处,诚恳的讲出自己的缺点,向人学习。虚心做人,降低自己,低下头来与人坦诚交流。每个人都有自己的长处,都有我们学习的地方。如果只知道说话,不去好好做事,做一些表面形式的东西,努力表现个人。看不到人家的长处,不能很好的和人交流。因为害怕交流的时候,自己有不懂的地方,觉得很没面子。当然学不到东西,他的水平是很浅浮的,问他一些深的东西,可能是蒙的。只有尊重人,赏识人,这个团队才有活力和竞争力。就能在现有的基础上更进一层。认识事物就有一种新的境界,人就有一种大气。

我见过北大的软件研究生,看到他写的程序,很健壮。北大就是不一样。

诚信是根本,只要根基是好的,再加以培养。只有诚信,才能放心让他做事情。

多与同事接触,特别是优秀的员工,努力学习他们好的一面。

只有胸怀广阔的人才可以有所作为。否则就是平庸。

一个人最难得的是内心深处的东西,也是最难培养的。我们要发出内心的感激。

只有这样才可以成为一位合格的软件人员。

 

2.编程思想

对于专业水平方面,我主要是在C/C++方面。

市面上关于C/C++的书很多,比较好的书也有很多。可以参考一下,有一定的价值。当然我们要有点探索精神。随着时间的推进,大家的水平也在不断的提高,我们都要有自己的看法。有一些书描述的东西仔细思考如果有点问题,我们不能说他们不好,起码他们引导了我们思考。刚接触C/C++时,你看一些书,觉得很不错,但是过了几年,你就觉得有欠缺。

对于初学VC的人,应先学C/C++,再理解MFC的内部结构,MFC就是把一些东西封装了。VC其实就是C++,只是把一些图形界面,消息机制都用类封装好了,我们只是调用一些类的接口。

初学C/C++ 时,指针,内存,堆栈难以理解。如果结合概念再想想他们是怎么实现的,就好理解。再如果能让你看一看源代码,或者自己想想源代码是怎么实现的,理解就好多了。概念是人们为了描述某一存在的事物,用他们的语言和方式来表达。我们在理解他们时,先看他们做的是一个什么样的东西,再看是如何描述的。

软件的根在硬件,如果没有CPU,没有硬件的支持Windows操作系统再牛也没用。没听说CPU坏了,或内存条坏了,Windows还能运行。

一些应用程序大部分是在Windows平台运行,要依赖于OS。但是OS也要在硬件上运行,也要依赖于硬件。自然界的事物都是相互依存的。硬件的生产厂家完全可以搞个认证,让Windows的新版OS运行速度变慢来,或不支持新版的Windows OS,让LinuX正常运行。

相信每个Windows程序员,都学过DLLCOM/DCOM的东西,比较难懂。他的思想是好的,DLL做成分离式,便于维护,COM/DCOM把模块做成对象的形式。就像零部件,再组装。但COM难以理解。

COM他是怎么实现的呢?我认为不是很难。像我们编游戏一样。比如编挖雷游戏,就是让地雷随机分布,再在旁边添上数字。玩游戏的人就要根据这个数字来计算是否地雷。我想,编COM内核的就跟编游戏差不多。我们用COM编程是跟玩游戏一样,有一些东西是不可知得。游戏在无聊的时候可以玩一玩,找点乐趣。

COM是一种编程思想,不是一种技术,要形成自己的一种编程思想。我想COM底层没什么东西。编写COM内核比在COM的基础上做应用我认为还要容易,是两种不同的概念。再比如说五笔输入法,我们在用五笔时,要背字根,怎么去拆字。相信初学五笔打字的,是很辛苦的。但是编一个五笔输入法应是很简单的,就是检索字库。五笔输入法这个思维方式真的是很妙。他的编程思想好像跟软件编程关联性不大。我们做软件不妨借鉴五笔输入法的这个思想。这个编程思想值得我们软件人员深思!

DirectShow也是一种思想,把解码器封装了,提模块组件化,把一个个Filter封装成对象,各个Filter通过CPin类把Filter连接起来,就好像硬件一样,把软件做成一个一个的硬件,再把他们通过引脚连起来。行成一个链。Source Filter从一个媒体文件分析是什么类型,是音频还是视频,Transform Filter把数据接收过来,再通过引脚发给Rendering FilterRendering Filter根据类型。音频,视频,调用相应的解码器,显示。

我认为运行效率不是很高,感觉比较庞大,调用的东西很多,所以运行效率不高。只是他是微软的东西,可以和操作系统很好的结合运行。这个软件将来不知道要到什么样了,真的很可怕。

Windows下做开发,严格的讲不是软件开发人员,而是组件应用人员,是外包装式的开发人员。与办公室文员用五笔字型打字差不了多少。

软件的底层是用数学,算法来做实现的。我们不是去思考怎么去开发这个软件,而是思考怎么去使用这个软件,比如MFCCOM,控件,组件之类的东西。如果能把CPU,硬盘,内存卡,网卡,键盘,鼠标和一些设备驱动了,操作系统基本完成(操作系统好像没什么神秘)。一个简单的计算器也可以说有一个操作系统。以后就是和其他软件的兼容性问题,就有了进程管理,内存管理。有了通讯,就有网络管理。

比如说计算机的网络通讯TCP/IP,有卷1,卷2,卷3,翻译版的书,厚厚的比较经典。从头至尾读一篇不说理解,都要很长一段时间。我觉得既然是通讯,就是二个PC的通讯,就是字节流通过网卡,向另一个PC发送,就有一些握手信号,交互方式。假如现在要向另一PC发数据,首先我发一个字符过去,如果在规定的时间内没有收到预定的符号,就说明网络有问题,或目标不存在。如果收到了,就可以发数据,这就是TCP的连接方式。对方受到数据后,要不要对方返回确认符号,就是TCP,UDP的区别。发送方在等待连接时,能不能做其他的事情,就是阻塞和非阻塞方式。在发送数据时,可不可以同时接受数据就是异步。当然如果有nPC相互通讯,是一个网络的话,就有路由器路由了。

我想TCP/IP刚开始时,就是这样的考虑。只是经过2030年的不断完善,肯定是非常庞大的,就一个数据结构都很大的,要每一个细节都理解很困难。如果从底部开始考虑,效果会好一点。

3.计算机技术的思考

现在的操作系统是微软的天下,依我看如果能把外围设备驱动,操作系统基本完成,我想人人都可以编的,只是好坏的问题。硬件驱动之后,再显示一些图片罢了(这是我的观点,欢迎交流)。

如果说大学里学的东西没有用,我认为没有用学的书本上的东西去思考问题,要努力的提高自己。在企业里做的东西都是一些应用性的东西,Visual C++只是一种工具,对于一些工具的操作,是由工人师傅来做的。我经常听说这辈子能把MSDN看透,就够了。MSDN只是操作说明书,没有什么技术在里面。如果没有学校的基础教育,就不能很透的思考问题。虽然大学的课本还是70年代的东西,但是那是计算机的源头,是经典,要好好的学。

如果能看一看世界第一台计算机,你就能很好的理解,认识计算机。

在学校如果能再学一些实用,操作性的课程,加强动手能力,就更好了。

如果你是一个真正的技术人员,你会觉的微软的东西不值一提。

传统的OS底层是驱动程序,驱动程序上面是硬件抽象层HALHAL就是一些接口,人们不能直接去调用设备,统一由系统通过HAL来操作硬件。可能有队列或堆栈,以及响应策略。

Windows内核在轮询的检查进程,有一个进程调度算法,按照调度算法,把占用CPU的时间片分配给进程。进程的时间片用完对现场进行保护,现场保护好后,调用进程调度算法,让其他的进程运行。当多个程序在运行,频繁的转换,对CPU的负载是很大的。Windows经常死机可能就是这个原因。它是实时的,抢占式的系统。

LinuX机制不同,是非抢占式的系统,适合做服务器。可以理解为LinuX是专用机。Windows是通用机。Windows如果做服务器是不行,机制不同。

发明二进制才是伟大的发明,以后都是顺其自然的必然发展。01让电流来实现机器的思维。

只有理解硬件的制作工艺,才能深入的做好软件。才会在做程序的时候很好的珍惜你的资源。

一些高级语言,让人们从繁琐的工作解脱出来,但是作为技术人员要理解这个工作是怎么一回事。

如果编操作系统的话,不了解硬件,我想是不能让机器高效运行的。

接受新的东西,先想想这些东西提供什么功能,如果让我来设计,该怎么做,带着这个问题去看资料,用自己的想法去看人家的思维方法,去融会贯通。

站在门外看事物会透彻一点。

以前也琢磨过CPU,网卡的工作机制。

我思考过CPU的工作机制(我对硬件接触不多),晶振依我的想法应是一个电源开关,一秒钟能开关几亿次,因为世界第一台计算机有很多的开关,我估计是集成到晶振里面。一个脉冲,高电平是开,低电平是关。CPU有寄存器,数据0的位置就是断开的,1的位置就是通的,二个寄存器相通的,一个高电平脉冲,结果就出来了,这就是一个与门电路。所以计算机就是这么快。防静电可能就是说在一秒钟内电流高频率的通断,电流在很短的时间内不能完全消失,会影响数据的准确性。

再比如说网卡一根网线怎么能传输数据,数据的缓存器是和网线我认为是相连的,一个脉冲,数据就过去了,马上转到下一个地址。就像手枪发射子弹一样,一个子弹打出去,马上转到下一个位置。如果网线太长,网线是由多路电线组成的,多路电线的电流同时到达的时间有可能不准。所以网线不能太长。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值