24小时热门版块排行榜    

CyRhmU.jpeg
查看: 528  |  回复: 9
当前主题已经存档。

ppjason

木虫 (正式写手)

Nothing is final!

[交流] 【求助】弱弱的问个问题,大家给个意见

想好好学一下算法,和编程的东西,不知道除过基础的C外,C++和C#哪个更有应用前景,有什么参考书???

[ Last edited by 2007骑猪逛街 on 2008-4-7 at 21:34 ]
回复此楼
非线性,混沌,玻色爱因斯坦凝聚。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

loujing

铁杆木虫 (正式写手)

★ ★
sinapdb(金币+2,VIP+0):thanks
单机编程,我个人推荐Delphi,当然你也可以学C++,使用C++ Builder。
如果是WEB应用,推荐C#,毕竟小型企业占大多数,基本都用Windows系统的。

Delphi推荐:
刘艺. Delphi面向对象编程思想[M]. 北京: 机械工业出版社, 2003.
李维. Delphi 7高效数据库程序设计[M]. 北京: 机械工业出版社, 2003.
李维的其它基本Delphi的书也不错。

C#推荐:
C#入门经典
C#高级编程(第四版)
2楼2008-04-09 08:24:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

beinifaxian

金虫 (著名写手)

日易者

★ ★
sinapdb(金币+2,VIP+0):thanks
http://www.muchong.com/bbs/viewthread.php?tid=659494
这里有前辈sdlj8051说了很多好的建议,主要关于嵌入式的,我以为嵌入式很有发展前途
贷帮,将爱心投资于勤奋!
3楼2008-04-09 09:11:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jingtaocst

银虫 (小有名气)


sinapdb(金币+1,VIP+0):thanks
为什么不学JAVA?
4楼2008-04-09 10:00:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cityant

木虫 (正式写手)


sinapdb(金币+1,VIP+0):thanks
个人建议lz学java行了
就目前看java的热度超过其他的编程
竹直心虚乃吾友,水淡性泊是我师!
5楼2008-04-11 15:38:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aisingioro

金虫 (正式写手)

★ ★
sinapdb(金币+2,VIP+0):thanks
C主要用于比较底层的编程;C++用于大型工程的开发,往往在工程比较大且需要较高的执行效率时使用,譬如游戏,虚拟现实;Java用于网络编程,分布式编程,和服务器端程序开发;C#兼有C++和Java的特点,但目前应用——特别是开发大型系统的应用不如C++广泛,它的编译环境比C++,Java要好用的多。

几种语言各有千秋,不能用好坏来形容某种编程语言,而要看具体要做什么。如果楼主主要想学算法,那种语言无所谓,算法更重要的是思想。如果楼主要学编程,我把恩师教导我们的话写在下面的帖子里:
6楼2008-04-11 19:39:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aisingioro

金虫 (正式写手)

请不要做浮躁的人
==============================

请不要做浮躁的人!

做程序员的推荐看这篇文章,很经典的~^o^

==============================

[转贴]请不要做浮躁的人! BBS 水木清华站,作者做了部分内容添加

1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想 出来再参考别人的提示,你就知道自己和别人思路的差异。

2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久 都是只对部分功能熟悉而已,不系统还是不够的。

3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观。

4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。

5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸 出很多知识点;不会举一反三你就永远学不会。

6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。

7.学脚本并不难,JSP、ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览群书。

8.看再多的书是学不全脚本的,要多实践 。

9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。

10.学习脚本最好的方法之一就是多练习。

11.在任何时刻都不要认为自己手中的书已经足够了。

12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。

13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。

14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件。

15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中。

16.不要漏掉书中任何一个练习——请全部做完并记录下思路。

17.当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余 下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工作。

18.别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的。

19.每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解----你能讲清楚才说明你真的理解了。

20.记录下在和别人交流时发现的自己忽视或不理解的知识点。

21.保存好你做过的所有的源文件----那是你最好的积累之一。

22.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!

23,到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。

24,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。

浮躁的人容易问:

我到底该学什么;----别问,学就对了;

浮躁的人容易问:JS有钱途吗;----建议你去抢银行;

浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!

浮躁的人分两种:只观望而不学的人;只学而不坚持的人;

浮躁的人永远不是一个高手。其实,我是一个程序员。
7楼2008-04-11 19:39:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aisingioro

金虫 (正式写手)

Teach Yourself Programming in Ten Years

为什么每个人都急不可耐?

走进任何一家书店,你会看见《Teach Yourself Java in 7 Days》(7天Java无师自通)的旁边是一长排看不到尽头的类似书籍,它们要教会你Visual Basic、Windows、Internet等等,而只需要几天甚至几小时。我在Amazon.com上进行了如下搜索:
    pubdate: after 1992 and title: days and (title: learn or title: teach yourself)
    (出版日期:1992年后 and 书名:天 and (书名:学会 or 书名:无师自通))
我一共得到了248个搜索结果。前面的78个是计算机书籍(第79个是《Learn Bengali in 30 days》,30天学会孟加拉语)。我把关键词“days”换成“hours”,得到了非常相似的结果:这次有253本书,头77本是计算机书籍,第78本是《Teach Yourself Grammar and Style in 24 Hours》(24小时学会文法和文体)。头200本书中,有96%是计算机书籍。
结论是,要么是人们非常急于学会计算机,要么就是不知道为什么计算机惊人地简单,比任何东西都容易学会。没有一本书是要在几天里教会人们欣赏贝多芬或者量子物理学,甚至怎样给狗打扮。
让我们来分析一下像《Learn Pascal in Three Days》(3天学会Pascal)这样的题目到底是什么意思:

学会:在3天时间里,你不够时间写一些有意义的程序,并从它们的失败与成功中学习。你不够时间跟一些有经验的程序员一起工作,你不会知道在那样的环境中是什么滋味。简而言之,没有足够的时间让你学到很多东西。所以这些书谈论的只是表面上的精通,而非深入的理解。如Alexander Pope(英国诗人、作家,1688-1744)所言,一知半解是危险的(a little learning is a dangerous thing)
魔幻精灵www.mhjl.cn炫酷www.xvco.cn

Pascal:在3天时间里你可以学会Pascal的语法(如果你已经会一门类似的语言),但你无法学到多少如何运用这些语法。简而言之,如果你是,比如说一个Basic程序员,你可以学会用Pascal语法写出Basic风格的程序,但你学不到Pascal真正的优点(和缺点)。那关键在哪里?Alan Perlis(ACM第一任主席,图灵奖得主,1922-1990)曾经说过:“如果一门语言不能影响你对编程的想法,那它就不值得去学”。另一种观点是,有时候你不得不学一点Pascal(更可能是Visual Basic和JavaScript之类)的皮毛,因为你需要接触现有的工具,用来完成特定的任务。但此时你不是在学习如何编程,你是在学习如何完成任务。

3天:不幸的是,这是不够的,正如下一节所言。

10年编程无师自通

一些研究者(Hayes、Bloom)的研究表明,在许多领域,都需要大约10 年时间才能培养出专业技能,包括国际象棋、作曲、绘画、钢琴、游泳、网球,以及神经心理学和拓扑学的研究。似乎并不存在真正的捷径:即使是莫扎特,他4 岁就显露出音乐天才,在他写出世界级的音乐之前仍然用了超过13年时间。再看另一种音乐类型的披头士,他们似乎是在1964年的Ed Sullivan节目中突然冒头的。但其实他们从1957年就开始表演了,即使他们很早就显示出了巨大的吸引力,他们第一次真正的成功——Sgt. Peppers——也要到1967年才发行。Samuel Johnson(英国诗人)认为10 年还是不够的:“任何领域的卓越成就都只能通过一生的努力来获得;稍低一点的代价也换不来。”(Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.) 乔叟(Chaucer,英国诗人,1340-1400)也抱怨说:“生命如此短暂,掌握技艺却要如此长久。”(the lyf so short, the craft so long to lerne.)
下面是我在编程这个行当里获得成功的处方:

对编程感兴趣,因为乐趣而去编程。确定始终都能保持足够的乐趣,以致你能够将10年时间投入其中。

跟其他程序员交谈;阅读其他程序。这比任何书籍或训练课程都更重要。

编程。最好的学习是从实践中学习。用更加技术性的语言来讲,“个体在特定领域最高水平的表现不是作为长期的经验的结果而自动获得的,但即使是非常富有经验的个体也可以通过刻意的努力而提高其表现水平。”(p. 366),而且“最有效的学习要求为特定个体制定适当难度的任务,有意义的反馈,以及重复及改正错误的机会。”(p. 20-21)《Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life》(在实践中认知:心智、数学和日常生活的文化)是关于这个观点的一本有趣的参考书。

如果你愿意,在大学里花上4年时间(或者再花几年读研究生)。这能让你获得一些工作的入门资格,还能让你对此领域有更深入的理解,但如果你不喜欢进学校,(作出一点牺牲)你在工作中也同样能获得类似的经验。在任何情况下,单从书本上学习都是不够的。“计算机科学的教育不会让任何人成为内行的程序员,正如研究画笔和颜料不会让任何人成为内行的画家”, Eric Raymond,《The New Hacker's Dictionary》(新黑客字典)的作者如是说。我曾经雇用过的最优秀的程序员之一仅有高中学历;但他创造出了许多伟大的软件,甚至有讨论他本人的新闻组,而且股票期权让他达到我无法企及的富有程度(译注:指Jamie Zawinski,Xemacs和Netscape的作者)。

跟别的程序员一起完成项目。在一些项目中成为最好的程序员;在其他一些项目中当最差的一个。当你是最好的程序员时,你要测试自己领导项目的能力,并通过你的洞见鼓舞其他人。当你是最差的时候,你学习高手们在做些什么,以及他们不喜欢做什么(因为他们让你帮他们做那些事)。

接手别的程序员完成项目。用心理解别人编写的程序。看看在没有最初的程序员在场的时候理解和修改程序需要些什么。想一想怎样设计你的程序才能让别人接手维护你的程序时更容易一些。

学会至少半打编程语言。包括一门支持类抽象(class abstraction)的语言(如Java或C++),一门支持函数抽象(functional abstraction)的语言(如Lisp或ML),一门支持句法抽象(syntactic abstraction)的语言(如Lisp),一门支持说明性规约(declarative specification)的语言(如Prolog或C++模版),一门支持协程(coroutine)的语言(如Icon或Scheme),以及一门支持并行处理(parallelism)的语言(如Sisal)。

记住在“计算机科学”这个词组里包含“计算机”这个词。了解你的计算机执行一条指令要多长时间,从内存中取一个word要多长时间(包括缓存命中和未命中的情况),从磁盘上读取连续的数据要多长时间,定位到磁盘上的新位置又要多长时间。(答案在这里。)

尝试参与到一项语言标准化工作中。可以是ANSI C++委员会,也可以是决定自己团队的编码风格到底采用2个空格的缩进还是4个。不论是哪一种,你都可以学到在这门语言中到底人们喜欢些什么,他们有多喜欢,甚至有可能稍微了解为什么他们会有这样的感觉。

拥有尽快从语言标准化工作中抽身的良好判断力。

抱着这些想法,我很怀疑从书上到底能学到多少东西。在我第一个孩子出生前,我读完了所有“怎样……”的书,却仍然感到自己是个茫无头绪的新手。30个月后,我第二个孩子出生的时候,我重新拿起那些书来复习了吗?不。相反,我依靠我自己的经验,结果比专家写的几千页东西更有用更靠得住。
Fred Brooks在他的短文《No Silver Bullets》(没有银弹)中确立了如何发现杰出的软件设计者的三步规划:

尽早系统地识别出最好的设计者群体。

指派一个事业上的导师负责有潜质的对象的发展,小心地帮他保持职业生涯的履历。

让成长中的设计师们有机会互相影响,互相激励。

这实际上是假定了有些人本身就具有成为杰出设计师的必要潜质;要做的只是引导他们前进。Alan Perlis说得更简洁:“每个人都可以被教授如何雕塑;而对米开朗基罗来说,能教给他的倒是怎样能够不去雕塑。杰出的程序员也一样”。
所以尽管去买那些Java书;你很可能会从中找到些用处。但你的生活,或者你作为程序员的真正的专业技术,并不会因此在24小时、24天甚至24个月内发生真正的变化。
8楼2008-04-11 19:42:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aisingioro

金虫 (正式写手)

我这位老师就是一位脚踏实地的学者,平时就是这么教育我们的
9楼2008-04-11 19:44:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

可爱的小熊

银虫 (小有名气)


sinapdb(金币+1,VIP+0):同意,呵呵!!!
其实干什么都是一个样子的,不仅是编程,做人做学问都是一样
10楼2008-06-04 20:56:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ppjason 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见