博文

软件开发学习(2009-03-02 09:05:00)

摘要: http://www.rupeng.com/forum/jian-145.html软件开发学习的好论坛。学习软件开发的人多多到那里去。你可以最快学习软件开发。呵呵。我就从那里起步的。......

阅读全文(1650) | 评论:0

IP地址和子网掩码的区别(2008-10-28 23:54:00)

摘要:我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 1.0.0.0 到127.255.255.255 B类IP段 128.0.0.0 到191.255.255.255 C类IP段 192.0.0.0 到223.255.255.255 XP默认分配的子网掩码每段只有255或0 A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑 B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑 C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑 我以前认为,要想把一些电脑搞在同一网段,只要IP的前三段一样就可以了,今天,我才知道我错了。如果照我这说的话,一个子网就只能容纳254台电脑?真是有点笑话。我们来说详细看看吧。 要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是把每段的IP转换为二进制。(有人说,我不会转换耶,没关系,我们用Windows自带计算器就行。打开计算器,点查看>科学型,输入十进制的数字,再点一下“二进制”这个单选点,就可以切换至二进制了。) 把子网掩码切换至二进制,我们会发现,所有的子网掩码是由一串[red]连续[/red]的1和一串[red]连续[/red]的0组成的(一共4段,每段8位,一共32位数)。 255.0.0.0 11111111.00000000.00000000.00000000 255.255.0.0 11111111.11111111.00000000.00000000 255.255.255.0 11111111.11111111.11111111.00000000 这是A/B/C三类默认子网掩码的二进制形式,其实,还有好多种子网掩码,只要是一串连续的1和一串连续的0就可以了(每段都是8位)。如11111111.11111111.11111000.00000000,这也是一段合法的子网掩码。子网掩码决定的是一个子网的计算机数目,计算机公式是2的m次方,其中,我们可以把m看到是后面的多少颗0。如255.255.255.0转换成二进制,那就是11111111.11111111.11111111.00000000,后面有8颗0,那m就是8,255.255.255.0这个子网掩码可以容纳2的8次方(台)电......

阅读全文(3363) | 评论:0

【笔试经验】高盛笔试题精解[转](2008-10-11 15:51:00)

摘要:【笔试经验】高盛笔试题精解 杨中科 发表于: 2008-9-30 17:27 来源: 计算机321 1、A是一个用户自定义类。int a = 100;A *ptr = new A [a];delete ptr;这段代码是干什么的,有个错误请指出来,如何提高效率?JSJ321.com老师分析:这段代码创建了一个包含100个类A的实例的数组。这个代码中删除对象数组占据内存空间的方式是“delete[]”而不是“delete”,因此应该改成:delete[] ptr。因为创建的是100个元素的数组,因此不需要一个单独的变量a,直接如下修改:A *ptr = new A [100];delete[] ptr;2、How to calculate (1 + 2 + 3 + … + n)?JSJ321.com老师分析:不要用老师讲的for循环来计算累计值,而是使用等差数列计算公式,这样效率会高很多int F(int n){return n*(n+1)/2;}3、 在一个火车站:每10分钟就有一火车离站向南开去;每10分钟,也有另外一辆火车离站向北开去。每天,你到达这个火车站的时间并不是固定的(换言之,在时间上你是随机到达火车站的)。但是在你每次到达以后,你就会乘坐最先到站的火车离开,而不管它是往北或者是往南开。 这样在乘坐了一年以后,你发现在90%的天数里,你所乘坐的是南行的火车。请问这是为什么?JSJ321.com老师分析:答案是“南行的火车时间比北行的时间早1分钟”。比如:南行的时刻表为:12:00,12:10,12:20,12:30,、、、 北行的火车时间表为:12:01,12:11,12:21,12:31,、、、 这样的话,除非是你在到达的时候为12:00以后而在12:01之前,那么,从12:02到12:10之间,你都会乘坐南行火车。依此类推、、、这样的话,你在每10分钟里,乘坐南行火车的几率为90%。 4、 你独自一人在一孤岛上等待着救护人员的到来,但他们只会在第10天到达(今天是第零天)。你手头上有两种药品:“甲”和“乙”各10粒。想要活到第二天的话,你必须吃一粒“甲”和一粒“乙”。可是,今天由于不小心你把“甲”和“乙”的颗粒混在了一块,而你又无法辨认出哪粒是“甲”、哪粒是 “乙”来。想要活到第十天的话,你需要怎么去做?JSJ321.com老师分析:把20颗粒......

阅读全文(2568) | 评论:0

【笔试经验】IBM公司的三道笔试题解析[转](2008-10-11 15:50:00)

摘要:【笔试经验】IBM公司的三道笔试题解析 杨中科 发表于: 2008-9-30 16:49 来源: 计算机321 1、在房里有三盏灯,房外有三个开关,在房外看不见房内的情况,你只能进门一次,你用什么方法来区分那个开关控制那一盏灯?JSJ321.com老师分析:先打开开关A,5分钟后再开开关B。然后进屋,不亮的是C,再摸灯管,温度高的是A,剩下的是B。2、有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?JSJ321.com老师分析:先把一根香从两头点,另一个只点一头,等两头香点完时候,是半小时,那根一头点的还剩下半小时,之后再把剩下的从两头点,然后完毕的时间就是15分钟。3、:一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三个女儿的年龄分别是多少?为什么?JSJ321.com老师分析:下属知道经理的年龄, 只要把13分成三个数, 三数乘积等于经理年龄有多种可能性 所以, 令下属猜不出答案的原因是: 缺乏附加条件, 三元方程无确定解,一定要转换成二元方程 假设三个女儿中没有双胞胎, 那么三个人年龄之间的差距应该大于一个值(生物学常识) 黑发是显性基因, 如果经理夫妇都不是黑发,那么这黑发的女孩就是... 真相只有一个: 女孩中没有双胞胎, 但是有有两个女孩的年龄是相同的! 然后, 解二元方程。显然3个女儿的年龄都不为0,要不爸爸就为0岁了,因此女儿的年龄都大于等于1岁。这样可以得下面的情况:1*1*11=11,1*2**10=20,1*3*9=27,1*4*8=32,1*5*7=35,{1*6*6=36},{2*2*9=36},2*3*8=48,2*4*7=56,2*5*6=60,3*3*7=63,3*4*6=72,3*5*5=75,4*4*5=80因为下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,说明经理是36岁(因为{1*6*6=36},{2*2*9=36}),所以3个女儿的年龄只有2种情况,经理又说只有一个女儿的头发是黑的,说明只有一个女儿是比较大的,其他的都比较小,头发还没有长成黑色的,所以3个女儿的年龄分别为2,2,9!......

阅读全文(2440) | 评论:1

软件开发方向的大学生千万不能被误导[转](2008-10-11 15:49:00)

摘要:软件开发方向的大学生千万不能被误导 杨中科 发表于: 2008-9-18 13:44 来源: 计算机321 今天看到两篇文章,都是谈软件开发方向的大学生应该学什么的。总是在网上看到大面积的在吹嘘“计算机专业高校教的已经过时了,企业要求掌握开发经验的大学生,培训机构异常火爆”之类的话,我突然意识到这些其实都是那些培训机构的本位主义的炒作而已。其实大部分企业招聘应届生的时候并不是要求学生有太多的所谓项目经历,但是要求最高的是应届生对专业课的掌握程度,企业的笔试题也是以专业课的题目为主。这是企业的校园招聘和社会招聘不同的地方。有人可能会举出反例,我只能说那样要求应届生有这样那样项目经历的公司都是草台班子小公司,不在我们考虑的范围之内。有的公司招聘应届生的时候如果看到你有太多项目经验的时候甚至怀疑你在校期间是否有认真学习专业课。不能忽视的一个事实是很多高校的任课教师并没有很丰富的开发经验,因此也不能教给学生关于“这门课有什么实际用途”之类的问题,这一直困惑着我们。可以看到像jsj321.com这样的网站已经开始在向这方面努力了,搞了很多针对在校计算机专业大学生的免费在线课程,请了很多有项目经验以及扎实理论基础的工程师来讲课,这样与学校的课程同步学习,“白天听大学老师讲理论,晚上听网上老师讲实战”,两者相结合就能培养出有实战经验,同时又不失理论基础的软件精英。下面是这两篇文章的摘录: 写给还在大学的兄弟姐妹 FROM:http://www.cnblogs.com/hanxianlong/archive/2008/09/17/1292446.html 基础很重要 许多企业招聘,要求大学本科毕业生有一定的工作经验。而现实是,当今的大学教育使得有工作经验的本科生少之又少。从大学过来的人都应该清楚大学生活是什么样子:要么很努力的学习——这是考研一族,要么外出找兼职——这是工作一族,要么就过一天少一天——这是混日子一族。其他的情况当然也有,在此暂且只分为这几类学生。考研的学生,若是考研成功便进一步的去深造,若失败则面临着求职。而他们学习是如此的刻苦,何来工作经验?兼职的学生,有些同学可能做的很好,能够很好的处理兼职与学习的关系,而某些认为兼职就是“赚钱”的学生可能处理的并不是那么好,认为“能让我毕业就行”,殊不知毕业时找工作别人对于兼职所带来的工作经验向来是不太认可的。混日......

阅读全文(2397) | 评论:0

计算机专业学生寻找实习的经历和思考(3)[转](2008-10-11 15:48:00)

摘要:计算机专业学生寻找实习的经历和思考(3) 1.    为什么要找实习a)    公司和企业的人才招聘趋势。越来越多的企业开始倾向于从实习生中选拔正式员工,而非校园招聘,譬如 i.    CA就没有校园招聘,完全从实习生中录取 ii.    IBM近两年也突出实习生招聘,而淡化校园招聘 iii.    腾讯今年的实习生招聘是校园招聘的一部分,通过实习生的招聘流程,校园招聘中可以直接到最后一个流程,面对HR。 iv.    MS,Baidu,Google等企业的转正几率也是非常大的。  理由很简单:成本低廉,质量可靠,所谓物美价廉。  i.    首先,实习生的筛选和校园招聘的筛选是一致的,更多的时候,我认为,实习生的竞争更加激烈,所以企业招到实习生质量不仅达到,甚至是高过校招的质量。据说今年IBM的Blue path way,简历达4W份,笔试1W人,面试1K+人,这样良好的人力资源,还会挑不到好的人才? ii.    实习生在公司实习期间,企业可以观察你的能力,发现优秀的人才,而不合适的人,由于签署的不是正式合同,要筛选掉,也是没有成本,没有风险的。 iii.    另外,实习生省去了校招的培训成本,并且至少比校招的人员在公司多干半年,甚至一年,同时拿的是实习工资。一方面是廉价劳动力, 另一方面能够更快的融入团队,进入角色。 iv.    宣传公司文化,IBM的浩浩荡荡,广移的香格里拉,不用多说了。 b)    企业有企业的利益,我们为什么要寻找实习呢?很简单,我们的利益也在里面。 i.    提高自己,增加实践经验,了解和掌握专业的工程化的开发方式,让自己变得专业。 ii.    提高自己的软实力,包括团队精神,沟通能力,以及性格,思维方式的成熟。 iii.    了解职场,了解自己所在的行业,对我们来说是IT业,以及在这个行业中的定位。更重要的,是了解自己选择的职业和工作,明白这条路到底是否适合自己,以便更早制定下一步的职业规划。 iv.&nbs......

阅读全文(3289) | 评论:0

计算机专业学生寻找实习的经历和思考(2)[转](2008-10-11 15:47:00)

摘要:计算机专业学生寻找实习的经历和思考(2) 3.    笔试和面试经历的总结,过于具体的东西,不便透露,毕竟签了保密协定。 a)    微软,我投的是测试部门的Linux职位 i.    电面问一些Linux多线程,网络编程相关的问题。包括同步互斥机制,异步IO等。另外,还有例行的项目经验的介绍。也问了一些基本算法,包括时空复杂度(“计算机321”注释:也就是时间复杂度和空间复杂度)的分析。最后让写一段字符串处理相关的代码,发到邮箱里。 ii.    笔试三个小时,200分,题目有选择题,编程题,分析题,设计题,难度我感觉是最大的,涵盖编程语言,算法,数据库,正则表达式,软件工程,操作系统,计算机网络等等。由于不同的部门关注不同的题目,所以总分不决定一切。貌似没有120分及格的…我深刻的体会了自己的弱小… 后面的都是研发职位了 。b)    Google i.    笔试也是一些基础的东西,算法,离散数学,比较简单。 ii.    一面基本算法+开放设计题。  c)    百度 i.    笔试三题基础选择,然后两题程序设计,最后一题系统设计,难度适中吧。 ii.    面试比较正规,一面基础,二面项目,三面HR,可惜没有机会去体验下。 d)    腾讯 i.    非常平易近人,笔试题目就像学校考试。半个小时交卷闪人…… ii.    面试也是传统的三面,面试官和HR都非常的Nice,一面之后就开始聊天了,呵呵,很赞。非常喜欢和他们聊天~ 一面主要在聊miaoftpd,问了一些具体实现的问题。二面在聊看过的书籍,学习的方法和方式,一些职业规划。三面和HR gg继续聊。那天聊的真的很high。另外非常感谢他们给我的一些建议,非常的中肯。 e)    CA i.    笔试题也非常博杂,我除了C++,Linux和DB以外,Win32,.Net,MFC,com基本上都不会…. ii.    面试只有一面,是team member + t......

阅读全文(2866) | 评论:0

计算机专业学生寻找实习的经历和思考(1)[转](2008-10-11 15:46:00)

摘要:计算机专业学生寻找实习的经历和思考(1) beida 发表于: 2008-9-27 14:03 来源: 计算机321 金三银四找实习 首先,把我的情况和找实习的结果总结一下。情况: 计算机科学与技术专业大三,在大二的时候我已经决定要找工作,并且出去做开发,这个思考有一个比较长期的过程,大一萌芽,大二思考,大三确定,具体我会在后一篇文章中说明。 主要方向是Linux/C/C++,坦白的说,我一开始的目标是baidu,但是现在的情况有变化。 结果: offer有两个,CA的研发和腾讯的后台研发,在这两边,据公司方面说,我都是唯一的一个本科生。其中腾讯由于北京研究院不接受本科研发,我只能选择深圳。 微软,种种原因,和我擦肩而过,昨天刚刚在CA入职,接到微软的电话,婉言谢绝了。 IBM,研发,当时已经拿到CA的offer,于是据掉了面试通知。 百度,新产品部的研发,笔试过后有消息说我的简历被锁定了,但是到现在为止一直没有通知,估计是被当备胎了T_T NOKIA:个人不是很想去,CA的offer拿到后就再没考虑过了。 Google:研发,清华笔试后,一面挂掉,第一次面试,认了。当然,我自己实力还不够是主要因素。 过程: 1.    前期准备 a)    就像我前面提到的,找工作这个目的很早就明确了,基于自身的职业规划,我于去年十月开始着手准备寻找实习。     实习的目标很明确,能转正,能积累经验,公司条件不错,外企最好。如同前面提到的,我的核心目标是baidu,这个很奇怪,之前的我对baidu有一种憧憬,没有特别的原因,大概是baidu给我的印象非常好罢。 c)    于是,     1.我收集了一些信息,包括查看baidu的招聘信息,另外请教了下牛人,和baicool聊聊天^_^。了解到baidu这边需要三个方面的能力: i.    1.Linux 编程。 ii.    2.算法和数据结构 iii.    3.C++。     2.明确路线和学习方式。明确了目标以后,在软件群里和大家请教了一番,基本摸索出一条路线,大三上学期的半年,踏上了每天自习的道路。可以说,那个学期的自习,无论从时间,......

阅读全文(3209) | 评论:2

国际:对初级软件开发者的一些建议(1)(2008-07-09 06:46:00)

摘要:这是我对初级开发者在学习编程过程中的一些建议,针对的对象主要是大学前期对编程感兴趣的新手。 选择一种能够快速见效的编程语言和平台         你需要选择一个既实用又喜欢的平台,让它保持您的兴趣,激励您快速扩展您的知识,最重要的是你要喜欢。 有的文章建议初学者首先学习C语言,因为它是必需的、基础的语言;但是有些人会让您先学习Lisp,因为它有坚实的理论并通过一种简单的方式教给你许多编程概念。         这些都是好的建议,只不过思考问题的角度不同。但是对于“第一种”要学习的语言,我认为选择一种你喜欢而且能够激发潜力的语言是比较重要的。Lisp和C语言都很好,但在更高版本中更容易欣赏到这些特点。       我建议您将VisualBasic.NET作为首先要学习的语言。微软提供了免费完整的IDE,你只要安装包文件就可以了。重要的是,平台里包含了创建桌面程序和web程序的快速可视化设计器,你不需要学习整个图形工具而只需要熟悉编程环境就可以了。学习的代价是非常小的,同时你会学到很多以后学习其他编程语言的编程技巧。从教学的角度考虑,VB.NET不是特别的令人讨厌的陋习,它简单有趣,让您在一周内就可以做出实用的程序。         另外一种语言选择是Python。这种语言和VB.NET有许多相似之处,有terser语法。选择Python的唯一原因是它有一个较小的内置库和不提供固定的、标准的创建桌面程序或基于网络的应用服务设计器和框架。您可以单独下载这些工具包,但它不是立即见效,没有设计器您将在启动和运行上花费不少时间。 参加论坛和在线社区        通过加入论坛你会学到很多东西,坚信知识就是力量,在发问、解答问题或者仅仅是参与讨论的过程中你都会获得他人的尊重。 不要陷入“政治”讨论         参加您喜欢的编程语言社区或论坛,不要陷入编程的宗教讨论。......

阅读全文(1875) | 评论:0

必须掌握的八个【cmd 命令行】[转](2008-05-04 22:18:00)

摘要:一,ping       它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。       -t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。       -l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。       -n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。       说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如"ping IP -t -n 3",虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。       下面我们举个例子来说明一下具体用法。       这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。    ......

阅读全文(1547) | 评论:0