当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 25 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 计算机专业学生提问~~~迷惑中
帖子发表于 : 2008-09-06 10:26 

注册: 2008-05-30 8:51
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
我是计算机科学与技术专业的学生 我以前用过国产的magic 后来因为ubuntu出了新的8.04 我就转用ubuntu

由于自己比较贪玩 由于ubuntu在玩游戏上的缺陷(我一直没能解决 天下2 窗体偏移 和穿越火线获取服务器列表

乱码的问题)

现在由于很多问题 我没那么多时间去玩了 想好好静下来学习

我本来是想在ubuntu 下面好好的研究编程 但是某些大虾在网上又有说 学编程的学生在win下用集成环境编程更好

但是也有人说 在linux下的编程更强大 我该怎么选择啊

希望高手们不要喷我 给我这个菜鸟一些指导 谢谢了


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-09-06 10:31 
头像

注册: 2007-10-19 14:51
帖子: 4953
地址: 深圳
送出感谢: 0 次
接收感谢: 2
什么说法都有的,还是要你自己选择,在ubuntu论坛,肯定首推 ubuntu 了。。。。


_________________
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-09-06 20:24 
头像

注册: 2007-03-01 20:46
帖子: 2393
地址: 湖南长沙
送出感谢: 0 次
接收感谢: 0 次
选择是由你自己来做的,这些选择是通过自身的体验才能获知的,别人说的永远只是别人认为对他们自己最合适的~~如果真的想接触编程,那就首先选择自己最熟悉的环境开始,如Windows,多看,多写,先把编程的基础做好,慢慢就会知道自己应该在哪中环境下了~~


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-09-06 20:34 
头像

注册: 2008-07-30 23:21
帖子: 13217
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 36
接收感谢: 121
我推楼主去 FreeBSD 逛逛不会有人扔石头吧!


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-09-06 21:21 

注册: 2008-06-22 22:47
帖子: 64
送出感谢: 0 次
接收感谢: 0 次
在哪个平台下学编程不是主要的,关键是编程思想,,就对我们计算机专业来说,现在不论那个平台的都是够用的,我以前在win下,现在到ubuntu上,win越用越不爽,不过还留着呢


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-09-07 21:03 
头像

注册: 2008-07-30 23:21
帖子: 13217
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 36
接收感谢: 121
headway 写道:
在哪个平台下学编程不是主要的,关键是编程思想,,就对我们计算机专业来说,现在不论那个平台的都是够用的,我以前在win下,现在到ubuntu上,win越用越不爽,不过还留着呢

这话谁都会说。还不如来点实在的。
楼主去bsd逛逛,你会有新的收获的。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-09-07 21:25 
头像

注册: 2008-03-05 16:22
帖子: 83
送出感谢: 0 次
接收感谢: 0 次
headway 写道:
在哪个平台下学编程不是主要的,关键是编程思想,,就对我们计算机专业来说,现在不论那个平台的都是够用的,我以前在win下,现在到ubuntu上,win越用越不爽,不过还留着呢

留着上淘宝和网银


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 计算机专业学生提问~~~迷惑中
帖子发表于 : 2008-09-09 12:07 

注册: 2008-07-08 23:21
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
暴龙眼镜 写道:
我是计算机科学与技术专业的学生 我以前用过国产的magic 后来因为ubuntu出了新的8.04 我就转用ubuntu
由于自己比较贪玩 由于ubuntu在玩游戏上的缺陷(我一直没能解决 天下2 窗体偏移 和穿越火线获取服务器列表
乱码的问题)
现在由于很多问题 我没那么多时间去玩了 想好好静下来学习
我本来是想在ubuntu 下面好好的研究编程 但是某些大虾在网上又有说 学编程的学生在win下用集成环境编程更好
但是也有人说 在linux下的编程更强大 我该怎么选择啊
希望高手们不要喷我 给我这个菜鸟一些指导 谢谢了



我以一个已经毕业的计算机科学与技术专业的学生给楼主一些建议,当然这些建议可能有些跑题。。

编程哪个专业的人都能很快学会,只是时间问题而已!而作为计算机专业的毕业的学生,你要比他们专业在哪?这才是你应该考虑的。

我上学的时候觉得专业课程全都是摆设,拿到社会好无用武之地,现在想想觉得很幼稚。。。
我真心的希望你能把精力用在C语言、汇编、数据结构、算法设计与分析,编译原理,操作系统原理等等这些课程上,而不是用大量时间跟人家去学什么VC,VB,DELPHI等等,虽然短时间就能做出点东西来很让人有成就感。。大四的时候作毕业设计再去学,你会发现不过就跟WORD一样而已,重要的是算法的实现过程,这也是计算机专业比跨专业学编程的人的优势所在。

所以现在你的问题已经不是问题了,选择什么操作系统,什么编译环境,甚至自己没有电脑,学校的机房足矣。。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-09-09 13:07 

注册: 2008-08-31 18:30
帖子: 25
送出感谢: 0 次
接收感谢: 0 次
ivershuo 写道:
headway 写道:
在哪个平台下学编程不是主要的,关键是编程思想,,就对我们计算机专业来说,现在不论那个平台的都是够用的,我以前在win下,现在到ubuntu上,win越用越不爽,不过还留着呢

留着上淘宝和网银

呵呵,网银和淘宝可以用ie4linux哈


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-09-09 13:08 

注册: 2008-08-31 18:30
帖子: 25
送出感谢: 0 次
接收感谢: 0 次
个人感觉win下编程容易变成傻子,知其然不知其所以然


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-09-10 17:36 

注册: 2008-08-31 2:41
帖子: 19
送出感谢: 0 次
接收感谢: 0 次
自由建客 写道:
我推楼主去 FreeBSD 逛逛不会有人扔石头吧!


不会,free应该有免费和自由的意思,而自由应该包含“言论自由”和"使用自由"吧!


_________________


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 计算机专业学生提问~~~迷惑中
帖子发表于 : 2008-09-14 9:54 

注册: 2007-10-14 17:45
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
zhangqqqf 写道:
暴龙眼镜 写道:
我是计算机科学与技术专业的学生 我以前用过国产的magic 后来因为ubuntu出了新的8.04 我就转用ubuntu
由于自己比较贪玩 由于ubuntu在玩游戏上的缺陷(我一直没能解决 天下2 窗体偏移 和穿越火线获取服务器列表
乱码的问题)
现在由于很多问题 我没那么多时间去玩了 想好好静下来学习
我本来是想在ubuntu 下面好好的研究编程 但是某些大虾在网上又有说 学编程的学生在win下用集成环境编程更好
但是也有人说 在linux下的编程更强大 我该怎么选择啊
希望高手们不要喷我 给我这个菜鸟一些指导 谢谢了



我以一个已经毕业的计算机科学与技术专业的学生给楼主一些建议,当然这些建议可能有些跑题。。

编程哪个专业的人都能很快学会,只是时间问题而已!而作为计算机专业的毕业的学生,你要比他们专业在哪?这才是你应该考虑的。

我上学的时候觉得专业课程全都是摆设,拿到社会好无用武之地,现在想想觉得很幼稚。。。
我真心的希望你能把精力用在C语言、汇编、数据结构、算法设计与分析,编译原理,操作系统原理等等这些课程上,而不是用大量时间跟人家去学什么VC,VB,DELPHI等等,虽然短时间就能做出点东西来很让人有成就感。。大四的时候作毕业设计再去学,你会发现不过就跟WORD一样而已,重要的是算法的实现过程,这也是计算机专业比跨专业学编程的人的优势所在。

所以现在你的问题已经不是问题了,选择什么操作系统,什么编译环境,甚至自己没有电脑,学校的机房足矣。。


经典。算法,os ,ds这些东西,都说没用。但是拉开 差距的 就是 这些东西。
c++,java语言只是实现这些精髓的媒介。
就像汉语是表达我们思想的工具一样


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-09-14 10:00 

注册: 2007-10-14 17:45
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
算法的力量
2006年5月 李开复

算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。

* 算法与我

当我在1980年转入计算机科学系时,还没有多少人的专业方向是计算机科学。有许多其他系的人嘲笑我们说:“知道为什么只有你们系要加一个 ‘科学’,而没有‘物理科学系’或‘化学科学系’吗?因为人家是真的科学,不需要画蛇添足,而你们自己心虚,生怕不‘科学’,才这样欲盖弥彰。” 其实,这点他们彻底弄错了。真正学懂计算机的人(不只是“编程匠”)都对数学有相当的造诣,既能用科学家的严谨思维来求证,也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”。

记得我读博时写的Othello对弈软件获得了世界冠军。当时,得第二名的人认为我是靠侥幸才打赢他,不服气地问我的程序平均每秒能搜索多少步棋,当他发现我的软件在搜索效率上比他快60多倍时,才彻底服输。为什么在同样的机器上,我可以多做60倍的工作呢?这是因为我用了一个最新的算法,能够把一个指数函数转换成四个近似的表,只要用常数时间就可得到近似的答案。在这个例子中,是否用对算法才是能否赢得世界冠军的关键。

还记得1988年贝尔实验室副总裁亲自来访问我的学校,目的就是为了想了解为什么他们的语音识别系统比我开发的慢几十倍,而且,在扩大至大词汇系统后,速度差异更有几百倍之多。他们虽然买了几台超级计算机,勉强让系统跑了起来,但这么贵的计算资源让他们的产品部门很反感,因为“昂贵”的技术是没有应用前景的。在与他们探讨的过程中,我惊讶地发现一个O(n*m)的动态规划(dynamic programming)居然被他们做成了O(n*n*m)。更惊讶的是,他们还为此发表了不少文章,甚至为自己的算法起了一个很特别的名字,并将算法提名到一个科学会议里,希望能得到大奖。当时,贝尔实验室的研究员当然绝顶聪明,但他们全都是学数学、物理或电机出身,从未学过计算机科学或算法,才犯了这么基本的错误。我想那些人以后再也不会嘲笑学计算机科学的人了吧!

* 网络时代的算法

有人也许会说:“今天计算机这么快,算法还重要吗?”其实永远不会有太快的计算机,因为我们总会想出新的应用。虽然在摩尔定律的作用下,计算机的计算能力每年都在飞快增长,价格也在不断下降。可我们不要忘记,需要处理的信息量更是呈指数级的增长。现在每人每天都会创造出大量数据(照片,视频,语音,文本等等)。日益先进的记录和存储手段使我们每个人的信息量都在爆炸式的增长。互联网的信息流量和日志容量也在飞快增长。在科学研究方面,随着研究手段的进步,数据量更是达到了前所未有的程度。无论是三维图形、海量数据处理、机器学习、语音识别,都需要极大的计算量。在网络时代,越来越多的挑战需要靠卓越的算法来解决。

再举另一个网络时代的例子。在互联网和手机搜索上,如果要找附近的咖啡店,那么搜索引擎该怎么处理这个请求呢?

最简单的办法就是把整个城市的咖啡馆都找出来,然后计算出它们的所在位置与你之间的距离,再进行排序,然后返回最近的结果。但该如何计算距离呢?图论里有不少算法可以解决这个问题。

这么做也许是最直观的,但绝对不是最迅速的。如果一个城市只有为数不多的咖啡馆,那这么做应该没什么问题,反正计算量不大。但如果一个城市里有很多咖啡馆,又有很多用户都需要类似的搜索,那么服务器所承受的压力就大多了。在这种情况下,我们该怎样优化算法呢?

首先,我们可以把整个城市的咖啡馆做一次“预处理”。比如,把一个城市分成若干个“格子(grid)”,然后根据用户所在的位置把他放到某一个格子里,只对格子里的咖啡馆进行距离排序。

问题又来了,如果格子大小一样,那么绝大多数结果都可能出现在市中心的一个格子里,而郊区的格子里只有极少的结果。在这种情况下,我们应该把市中心多分出几个格子。更进一步,格子应该是一个“树结构”,最顶层是一个大格——整个城市,然后逐层下降,格子越来越小,这样有利于用户进行精确搜索 ——如果在最底层的格子里搜索结果不多,用户可以逐级上升,放大搜索范围。

上述算法对咖啡馆的例子很实用,但是它具有通用性吗?答案是否定的。把咖啡馆抽象一下,它是一个点”,如果要搜索一个“面”该怎么办呢?比如,用户想去一个水库玩,而一个水库有好几个入口,那么哪一个离用户最近呢?这个时候,上述“树结构”就要改成“r-tree”,因为树中间的每一个节点都是一个范围,一个有边界的范围(参考:http://www.cs.umd.edu/~hjs/rtrees/index.html)。

通过这个小例子,我们看到,应用程序的要求千变万化,很多时候需要把一个复杂的问题分解成若干简单的小问题,然后再选用合适的算法和数据结构。

上面的例子在Google里就要算是小case了!每天Google的网站要处理十亿个以上的搜索,GMail要储存几千万用户的2G邮箱,Google Earth要让数十万用户同时在整个地球上遨游,并将合适的图片经过互联网提交给每个用户。如果没有好的算法,这些应用都无法成为现实。

在这些的应用中,哪怕是最基本的问题都会给传统的计算带来很大的挑战。例如,每天都有十亿以上的用户访问Google的网站,使用 Google的服务,也产生很多很多的日志(Log)。因为Log每分每秒都在飞速增加,我们必须有聪明的办法来进行处理。我曾经在面试中问过关于如何对 log进行一些分析处理的问题,有很多面试者的回答虽然在逻辑上正确,但在实际应用中是几乎不可行的。按照他们的算法,即便用上几万台机器,我们的处理速度都跟不上数据产生的速度。

那么Google是如何解决这些问题的呢?

首先,在网络时代,就算有最好的算法,也要能在并行计算的环境下执行。在Google的数据中心,我们使用的是超大的并行计算机。但传统的并行算法运行时,效率会在增加机器数量后迅速降低,也就是说,十台机器如果有五倍的效果,增加到一千台时也许就只有几十倍的效果。这种事倍功半的代价是没有哪家公司可以负担得起的。而且,在许多并行算法中,只要一个结点犯错误,所有计算都会前功尽弃。

那么Google是如何开发出既有效率又能容错的并行计算的呢?

Google最资深的计算机科学家Jeff Dean认识到, Google 所需的绝大部分数据处理都可以归结为一个简单的并行算法:Map and Reduce(http://labs.google.com/papers/mapreduce.html)。这个算法能够在很多种计算中达到相当高的效率,而且是可扩展的(也就是说,一千台机器就算不能达到一千倍的效果,至少也可以达到几百倍的效果)。Map and Reduce的另外一大特色是它可以利用大批廉价的机器组成功能强大的server farm。最后,它的容错性能异常出色,就算一个server farm里面的机器down掉一半,整个farm依然能够运行。正是因为这个天才的认识,才有了Map and Reduce算法。借助该算法,Google几乎能无限地增加计算量,与日新月异的互联网应用一同成长。

* 算法并不局限于计算机和网络

举一个计算机领域外的例子:在高能物理研究方面,很多实验每秒钟都产生几个TB的数据量。但因为处理能力和存储能力的不足,科学家不得不把绝大部分未经处理的数据丢弃掉。可大家要知道,新元素的信息很有可能就藏在我们来不及处理的数据里面。同样的,在其他任何领域里,算法都可以改变人类的生活。例如人类基因的研究,就可能因为算法而发明新的医疗方式。在国家安全领域,有效的算法可能避免下一个911的发生。在气象方面,算法可以更好地预测未来天灾的发生,以拯救生命。

所以,如果你把计算机的发展放到应用和数据飞速增长的大环境下,你一定会发现,算法的重要性不是在日益减小,而是在日益加强。

* 给程序员的七个建议

(1)练内功。不要只花功夫学习各种流行的编程语言和工具,以及某些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好。大家不妨试试高德纳所著The Art of Computer Programming里的题目,如果你能够解决其中的大部分题目,就说明你在算法方面有一定的功力了。

(2)多实战。通过编程的实战积累经验、巩固知识。很多中国大学毕业生缺乏编程和调试经验;学习C语言,考试过关就算学会了;课题项目中,只要程序能够编译,运行,并且输入输出满足要求就算了事。这些做法是不行的。写程序的时候,大家必须多想想如何把程序写得更加精炼、高效、高质量。建议大家争取在大学四年中积累编写十万行代码的经验。我们必须明白的是:好程序员是写出来的,不是学出来的。

(3)求实干。不要轻视任何实际工作,比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与敬业精神。我发现不少程序员对于知识的掌握很肤浅,不求甚解,没有好奇心,不会刨根问底。比如,学会了C++,是否了解一个对象在编译后,在汇编代码中是如何被初始化的?这个对象的各个成员在内存中是如何存放的?当一个成员函数被调用时,编译器在汇编代码中加入了哪些额外的动作?虚函数的调用是如何实现的? 这些东西恐怕在编程语言或编译原理中都没有详细提到,只有通过踏实的实干才能真正掌握。

(4)重视数学学习。数学是思维的体操,数学无处不在。学计算机至少要学习离散数学、概率论、布尔代数、集合论和数理逻辑。这些知识并不难,但是对你未来的工作帮助会很大。 尤其当你对一些“数学密集型”的领域如视频、图像处理等有兴趣时,这些知识将成为你手中的利器。

(5)培养团队精神,学会与人合作。今天的软件工程早已经不是一个人可以单独操作的,而必须靠团队合作才能成功。不懂得合作的人是不能成大器的。大家要多去寻找可以与人一起做项目的机会。

(6)激励创新意识,培养好奇心,不要死记硬背。没有掌握某种算法技术的根本原理,就不会有应变和创新的能力。想成为一位好程序员(其实从事任何一个行业都是如此),重要的是要养成钻研,好奇,创新,动手,合作的优秀习惯,不满足于填鸭,不满足于考试交差,不满足于表象。这不是学几门课能够一蹴而就的。

(7)有策略地“打工”。在不影响学业的前提下,寻找真正有意义的暑期工作或兼职。去找一个重视技术的公司,在一个好的“老板”指导下完成真正会被用户使用的程序。

不要急于去一个要你做“头”而独挡一面的地方,因为向别人学习才是你的目的。找工作也是一样,不要只看待遇和职衔,要挑一个你能够学习的环境,一个愿意培养员工的企业,一个重视你的专业的公司。最后,还要挑一个好老板。

希望大家都能把握机会,养成好的学习习惯,把算法学精学透;希望大家都能有一个美好的未来!


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-09-14 19:06 
头像

注册: 2007-08-24 20:16
帖子: 164
地址: Hangzhou, China
送出感谢: 0 次
接收感谢: 0 次
哦~~~

原来算法最重要!


_________________
http://www.google.com/profiles/chenk85


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2008-09-14 19:08 
头像

注册: 2008-05-03 23:05
帖子: 383
送出感谢: 0 次
接收感谢: 0 次
crsiny 写道:
自由建客 写道:
我推楼主去 FreeBSD 逛逛不会有人扔石头吧!


不会,free应该有免费和自由的意思,而自由应该包含“言论自由”和"使用自由"吧!


恕菜菜问:什么意思?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 25 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译