① 做软件编程师要学些什么
首先,我想说一下学习思想.学编程其实跟网络游戏有着类似的效果.开始的时候,你会对那些代码,函数等产生很大的兴趣,尤其是刚接触编程的人,刚学习第一种语言的人.可是,当你一步步深入的时候,你会发现你没有了以前那种斗志.就好象你在玩韩国泡菜网游似的,玩到一定程度,每天就是练级练级,完全是一个想冲到高级别的意志力在支持着你.而学编程就更难了,学了两个月后,总是觉得你好象全都学会了,却又什么都做不了,又没有其他的意志力支持你.这时候你会很容易放弃,或者转到别的如网业制作,PS,FLASH等行业的.其实我告诉你,虽然你觉得你好象已经学了很多了,其实你还是什么都没学呢,等你跨过这道坎,才是你刚入门的时候.说这些,只是想告诉你,学编程中会遇到很多困难,你要努力的克服这些困难,才能真正学到东西.否则,你根本别想学编程,趁早转行.
接下来,我帮你规划一条编程之路.
学编程的人,很少有人没学过C语言的.我推荐让C语言作为你第一个学的语言.虽然有的人说要先学VB,其实这种观念是错误的.C确实比VB枯燥, 而且说实话学完C后不学别的就好象没学过,感觉什么都没学会.可是,对初学编程的人来说,只有C语言才能建立起你对编程概念的理解.VB不是编程,VB只是一种工具而已.C语言确实是个不折不扣的语言,真正让你知道什么是编程的语言.有初学C语言,用TC2编译器的人总说他学了C什么都不会.什么软件也写不出来.我可以告诉他,编程编程,编的是程序,而不是软件,软件这是程序的一个构价.你想编程出软件,那以后很轻松的就能掌握,现在你需要学的就是编程, 说明确一点,你现在所需要学的就是算法.编程的灵魂是算法,这点每个人都要记住.
所以,第一门语言要学C,推荐的书为谭浩强老师的<C程序设计>(清华大学出版社)或者克尼汉的<C程序设计语言>(美国).
初学者也许需要一套视频教程来帮助自己更快的入门,那么就推荐你去网络搜索"C语言视频教程",第一页的第一条记录就是这个教程.而且是和谭老师的<C程序设计>配套的教程!
注:有些人说谭浩强的书不好,太死板.那么我只能说你最多是个一瓶子不满,半瓶子逛荡的人.真正要掌握高深技术的时候,你会发现你没办法掌握.
C语言要学到什么样才算个头呢?其实,C语言没有学到头一说.有些人学了一辈子,还在钻研.那么你应该到什么时候学下一种呢?按时候算的话,我推荐,如果你每天有6个小时的时间学习的话,一个半月以后,你就可以转到下一个语言的学习过程中了...(我估计普通人在这一个半月内该掌握的都掌握了)
那么,下面要学的是什么呢?这会不会还有人说VB吧.还美其名曰加深对编软件的印象.这种说法很幼稚.学了C语言还学什么VB呀.其实VB确实是很强大的,容易入门,想精通了也不容易.着名的DOS系统就是用BASIC语言写出来的.可是,这种这么易用的软件对于专业学编程的人是一种不好的东西,会让人产生依赖,让人产生惰性.VB的那些控件的功能实在是太强大了,你都不用怎么思考,就可以编写出来.可是,控件毕竟是不能随你的意愿支配的,控件是死的东西.你真正要学的是编写的思想,是函数(Java中称方法).另外,学VB还不如去学Delphi呢.
注:市面上的软件一般一眼就可以看出是用什么语言编程的,而VB编写的软件几乎找不到多少.
所以,下面要学的也就那两种选择了,C++/Java.我推荐,先学Java.
Java实际上是C++改的.去除了C++中指针的部分,让C++变得更安全,同时也比C++稍微简单了一些.你需要去找一些关于Java的介绍,在看下面的东西.
我听一个北大青鸟的老师说Java的最终发展目标是J2EE.我觉得不然,J2ME一定也是个发展方向,只是他跟J2SE,J2EE有很大的不同,开发环境也很不同.关于J2ME的部分我不做讨论.而J2SE呢.说实在的,市面上的J2SE软件确实也是很少的,你见过有几个拓展名为.jre的软件?不过还是要告诉你,学习Java的人肯定最先接触的是J2SE.Java的GUI软件只是技术性的问题,也是开发手段的问题.不管你是要发展到 J2EE,还是转到GUI编程,J2SE绝对不是弯路.还是那句话,算法是最重要的.而Java比C++最大的优势在于他的完全面向对象和跨平台.其实, 就算你先学了Java,你还是可以很容易的掌握C++,Java程序员和C++程序员的互转是很容易的!再说一些Java的优点.Java比C++方便很多,下载了编译器后一个记事本就能写程序,JBuilder实际上只是个辅助的工具.我去一个搞Linux系统开发的公司看过,用JBuilder的很少,一般都是直接用UltraEdit直接写程序.而C++必须要用VC++等编译器,不说电脑配置低很不好用,光说VS是要花钱的,而JDK永远都是正版(免费下载),就应该用Java.其实这只是习惯问题,不管你是先学Java还是先学C++,都会很快掌握另外一个的.
Java的书有很多,初学不要买实例的,买那种一直讲基础的,清华大学出版的书很好.另外推荐视频教程,孙鑫老师的Java无难事.去52ebook直接搜索名称"Java无难事",一共有12张CD,都下载下来就好了.教程的第一课会教你如何配置,去哪下载编译器等.
要学到什么时候呢?我是这么推荐的,学到你可以不看任何资料,(当然可查看JAVA帮助文档)熟练的编写出一个酒店管理系统来.接下来,你就可以去学别的了.
这个别的,就是C++,还是那句话,Java程序员可以很容易的掌握C++,只要学了C++的基础语法,剩下的就是实践了!
C++的书可以买一本C++语言+SQL的应用,就是讲数据库系统的例子.多练是很重要的.
视频教程推荐孙鑫老师的VC++视频教程,去讯雷上搜索"孙鑫 VC++",找到那个700M多的打包教程,就是了.
其实学懂Java和C,剩下的你真的可以自己掌握了.我粗略的说一下.
比如,你可以学汇编,汇编实际上是很磨人的,不过汇编高手永远都是抢手货.
那么VB呢?DELPHI呢?哈哈,又是VB,你学,这个时候学VB,学不了几天就掌握了.不比初学轻松?
想学的你都去学,甚至还可以去学Flash,连Flash ActionScript都可以很轻松的掌握.
其实现在,你的路已经定下来了.你剩下的就是不段实践,不段往更高的方向发展.
在这之前,建议你去考几个试.
去考中国计算机软件职业资格水平考试,直接考中级的软件工程师.或者再学一些别的,考个网络工程师.如果你愿意,你可以再多学点东西,把全国计算机等级考试的1到3级的所有东西都考下来.呵呵.
到了这种程度,我想真的不用我再说了,都考你自己了.
最后,记住两句话.
编程的灵魂是算法+数据结构!
学好编程实践最重要!
② 自学计算机编程应该看些什么书
一:第一阶段
C语言-------《C语言设计》 作者:谭浩强
大多数人都推荐谭浩强这本书,谭浩强的C语言程序设计,我觉得更适合当教科书,主要是篇幅没有那么大,书本的内容不是很全,由老师带入门是最好的。
《C Primer Plus》第五版 作者:Stephen Prata
这本书比较厚,内容也比较基础,扩展的也比较广,自学容易上手,唯一的缺陷在于它是外国人编写,而国内的翻译往往让人难以满意,如果你有较好的英语水平,最好阅读英文版的。
《C语言入门经典》第四版 作者:Ivor Horton
二:第二阶段
这一阶段看个人主攻的方向了,安卓一般就JAVA,PC游戏、软件C++,也有推荐C#,这些都是主流语言,其他语言要看个人爱好与发展。
面向对象的语言,一般懂一门,之后要转其他语言也很容易的,其实思想都差不多,主要的不同在于语法。C#容易上手,一个月入门,一年精通,而C++却有点难,一年入门,二十年也未必敢说自己精通。如果有时间,可以了解一下汇编语言。
C++ Primer, 4rd Edition
(入门类:
C++ Primer, 4rd Edition
Thinking in C++, 2nd Edition
The C++ Standard Library: A Tutorial and Reference
进阶类:
The C++ Programming Language, Special Edition
The Design and Evolution of C++
Inside C++ Object Model
C++ Templates: The Complete Guide
STL 源码剖析
Generic Programming and the STL
Modern C++ Design: Generic Programming and Design Patterns Applied
应用技巧类:
Effective C++, 2nd Editon
More Effective C++
Exceptional C++
More Exceptional C++
Effective STL
Ruminations on C++)
三:第三阶段
API/SDK------------- 《windows程序设计》(Jeff Prosise)
这书主要是开发Windows软件要深入研读的,毕竟是WindowsAPI。如果是主攻C++,那么这本书你可以大概略读一遍,不用过多的深入追究,QT才是C++主要深入思虑的关键。
四:第四阶段
MFC----《VC++技术内幕》、《深入浅出MFC》及视频教程孙鑫 VC++6.0
如果是C++,QT是要重点学习的对象。
五:第五阶段
COM/DCOM/ATL/COM+---------《COM技术内幕》
未知阶段:
《数据结构》,《算法导论》这些基本是编程的核心了,编程的很大情况都依赖于算法的实现,这个两门基本要深入研究,这是决定编程能力的核心标准。
如果不弄底层的话,《操作系统原理》可以简单地了解。
③ 电脑编程入门书籍,应该先看什么
我转载的,感觉对你有用!!! 都是我看过或正要看的书,晾晾书架,希望对后来者也有一点作用,当年我也是浪费时间看了一些没有价值的书籍,颇为后悔,现将精华总结如下:
c语言篇:(虽有人说学C++不用先学c,但我颇不以为然,不知数据为何,又何来的封装继承多态)
1:c语言入门大学教程c语言谭浩强版足以。
2:windows c语言API编程基础,推荐《windows程序设计(第5版)》 Charles Petzold着,通过学习可对界面编程一览无遗,剩下的就是看怎样用c++进行包装,体会c++面向对象复用代码的威力了。
3:《TCP/IP协议及网络编程技术》 罗军舟等编着 清华大学出版社 国货上品,是应用c语言在windows下进行网络编程的好教材.也是使用c++进行网络编程的知识准备。
C++基础篇: 1:《C++Primer(3or4版)》入门第一部.
2:《深入浅出MFC》 侯捷着 国货精品,本应归入学习vc的范畴,但他实际是对widows API的c++框架介绍,用来做vc项目只能起辅助作用,对建立c++面向对象思想却多有启迪。
3: 《C++标准程序库》 侯捷/孟岩译 库是语言的延伸,学习c++不可不看。
4: 《C++实践之路》 周良忠译 一个计算器例子贯穿全书,几乎用到C++所有知识,真正的例子驱动教学法。
面向对象技术:
1: 《设计模式-可复用面向对象软件的基础》 美国四人帮的跨时代大作 230页却足以开启一个时代,真正体现了面向对象技术的价值,是代码复用的经典之作,不能不看。
2: 《UML Distilled》 UML建模很火欧,但对我来说看主要目的是看懂类关系草图,这本小书足以。
c++进阶篇
1: 《C++高级编程》 刘鑫等译 有对c++知识的精要总结其中包括如何更好地实现重用、如何有效地测试和调试等C++专业人员常用的一些技术与方法,值得了解。
2: 《Effective C++》,《必知必会》,《c++编程规范》 三本小书却足以检测你对c++知识掌握的真正情况。
c++高阶篇:(本人仍在阅读中)
1: 《深入探索c++对象模型》 侯捷译 对C++内存布局的深入介绍,是真正理解com/corba等组件技术的必备基础。
2: 《C++ Templates中文版》 陈伟柱译 模板圣经,现代c++发展的前沿泛型编程思想总结 (是看懂boost类库的知识储备)。
3:《C++设计新思维》 侯捷/于春景译 泛型编程与设计模式的综合应用,锻炼思维的好书,(已经买了半年多了,等我有空时一定看'_')。
其他:
C++编程思想,C++语言之父的c++语言特别版 等书本人只在书店里见过,没有阅读就不敢置评了。
(一)语言入门:
《C++ Primer》
最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)
适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。
《The C++ Programming Language》/《C++程序设计语言》
最新版本:第三版特别版
简称TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来)
《Essential C++》
《Accelerated C++》
这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。
以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。
(二)进阶A:
这个路线侧重于语言本身
《Effective C++》
最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)
简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》
个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。
我的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不会过时,人们将广为传诵它制定的101条戒律。
还不知道他的简称,也许“101”会成为一个候选者?
提到《Effective C++》,那么另外三本书一一浮出水面:
《More Effective C++》
《Exceptional C++》
《More Exceptional C++》。
新书《Exceptional C++ Style》也是值得一看的好书。
上述几本书,一本也不应该放过。
个人建议上述书籍按顺序阅读。并且,在将来反复阅读这几本书。
④ 谭浩强是个什么样的人为什么说他害了很多人 很多人说他把中国的计算机编程水平拉低了一大水准
// 作为一个靠编程吃饭的已工作人士来说句话,谭老写的书,说实话,他的编码风格有点糟,通俗点就是不规范,所以呢,他写的例子,看看就好;
// 我记得那时我才大一(12年)接触到C语言的教材就是他的书,那时候真惨烈啊,我们班挂科一大半,想想这是啥概念,他的书真的不好看,理论知识过重,实践欠缺,例子又坑(编译器环境会导致运行结果的差异并没有指出),总结一句话,这书害人不浅,导致一开始我们班对编程感兴趣的人寥寥无几;
// 但是呢,毕竟他活跃的年代不同我们现在的年代了,那时候会编程的人并不多,所以他出的书还是有它意义的,不过真的对初学者不友好。师傅领进门,修行看个人,它有些理论只是还是能看的,算是老一辈的智慧结晶,但是说白了,还是得自己来写代码才行。
// 个人觉得,编程靠的是编,也就是多去尝试错误,理解错误,任何一本书都不能说它把所有坑都列举出来了,踩踩坑也是增加自己的知识,切记,书能看,但不能多看。
// 看别人的代码要保持着一种“探究”的心思,它这么写的目的是啥,为了实现啥功能,每一步是否都有它存在的意义,了解后再去“改进它”,而不是照搬,这样没任何学习的意义。