c程序员必备知识是什么?要看些什么书?懂得什么具体的知识?回答的越详细越具体越好
去verycd下斯坦福大学的开放课程《编程语言》看看,我相信会对你有所帮助的。主要是他们的课程教的不是让你怎样一步一步编程,而是如何成为一名程序员?成为一名好的程序员需要具有怎样的编程理念?老师讲话语速比较快。讲的是Java。书籍的话,呵呵,我也不知道。因为编程多数类似,差别在于细节。
c/c++程序员需要掌握的书籍大概可以分成几个方面:
计算机基础类书籍,这类书籍包括计算机组成原理、计算机网络、数据库、操作系统、数据结构与算法。
c/c++类专业书籍,这类书籍包括基础的C语言程序设计、C++primer。
扩展类书籍,c/c++相关扩展类,推荐的有C陷阱与缺陷、深度探索C++对象模型、effective C++。
平台扩展类书籍,这类就要看你在哪类系统下做开发,一般常用的系统平台是嵌入式、windows、Unix及ios(object C++),这类书籍就比较多了,可以按照个人需求选择。
按照上述推荐的理由是:
学习计算机语言需要一定的基础,这类基础是非常重要但是很无聊的,后续在做开发的时候会觉得非常实用。
学好语言其实不是非常麻烦的部分,一般的教材类书籍即可,重要而麻烦的是在敲代码的过程中去熟练掌握、运用和创新。
扩展类书籍3可以帮助你更深入的理解你所学到的东西,而深入理解是程序员进阶的必经之路。
平台类书籍略有区别,但是标准C++是一样的,只是针对各自平台做了相应扩展(objectc++除外)。如果需要在某个平台下做开发,或者学习再去学习使用即可。
熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。 在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
《程序员考试考点分析与真题详解(最新版)》
清华大学出版社出的国家软件专业技术资格和水平考试用书
数学、逻辑
程序员上午考试知识点有哪些?
软考初级程序员上午考试科目为基础知识,考试时间安排在上午9:00-11:30,程序员基础知识科目考试知识点如下:1.计算机科学基础;1.1数制及其转换;二进制、十进制和十六进制等常用数制及其相互转换;1.2数据的表示;数的表示;非数值数据的表示;1.3算术运算和逻辑运算;计算机中二进制数的运算方法;逻辑...
程序员需要学习哪些方面的专业知识?
程序员需要学习的专业 1、人工智能方向所选专业:计算机科学与技术、自动化(研究生阶段叫控制科学与工程)、软件工程推荐高校:北京大学、清华大学、复旦大学、北京航空航天大学、哈尔滨工业大学、上海交通大学、华中科技大学、南京大学、东南大学等。2、网络空间安全方向所选专业:网络空间安全专业推荐高校:...
菜鸟程序员需要学习哪些基础知识
java学习是由简入难的学习过程,不要一开始就学习太过于复杂的,也不要好高骛远,java的基础很重要,所以一定要由最基础的学起,抓实基础。下面是昆明北大青鸟java培训小编结合大部分情况为大家总结下:菜鸟程序员需要学习哪些基础知识。首先要学习java的基础知识。不要被新技术迷惑,所谓万变不离其宗,...
程序员需要学些什么?
10、了解信息化、计算机应用的基础知识; 11、正确阅读和理解计算机领域的简单英文资料。 程序员必备技能: 1、熟练开发工具 做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C\/C++和JAVA是重点推荐的开发工具,C\/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用...
程序员分几种,做程序员应具备什么样的基础知识
由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见\/见解,喜好尝试新鲜技术。6,资格证书 资格证书并不是识别真正程序员的方法,MCSE、SCJP、说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。...
软件开发的基础知识是什么
我们可以把软件的知识分为两个部分,专业技能知识和领域知识或说行业知识。1,专业技能知识 一门编程语言及库 你可以在书店里找到各色各样的关于编程方面的书籍,但是我建议你只需要深入地掌握 一门便可,而且任何程序员都需要熟悉C语言。你所深入掌握的语言可有多种选择。如果你从事的是驱动程序开发,...
Java程序员需要学习哪些基础知识?
五、开发工具:大家都知道,开发工具可以帮助您更好更快地开发,因此熟悉几种开发工具很有必要。目前JAVA的开发工具比较流行的有JBuilder,IDEA,Eclipse,HTML的开发工具有Dreamweaver等。六、java主要学什么熟悉一种框架:熟悉一种框架其实是成为JAVA程序员的一种可选知识,但目前开发B\/S结构的应用的开发小组...
做一个程序员要具备什么
要搞清楚程序员需要具备什么,先要了解程序员是做什么的,程序员(Programmer)是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,除了大厂或者规模很大,一般公司两者的界限并不非常清楚。程序员需要具备什么呢?1、程序员要有足够的知识储备,一般要求专科及以上学历,当然高中、中专也可以从事...
IT编程入门需要具备哪些知识技能?
电脑培训可以给你列举出最重要的几个技能,希望能给新人一个比较明确的学习重点和路径。一、IT入门学习:深入学习一门编程语言 没有掌握任何一门编程语言,就不可能成为一名编程人员。许多程序员试图在学习之初一次学习几种编程语言,以便应对他们第一份软件开发工作的需要。虽然我认为开发人员最终会学习多种...
程序员必备的一些数学基础知识
作为一个标准的程序员,应该有一些基本的数学素养,尤其现在很多人在学习人工智能相关知识,想抓住一波人工智能的机会。很多程序员可能连这样一些基础的数学问题都回答不上来。 作为一个傲娇的程序员,应该要掌握这些数学基础知识,才更有可能码出一个伟大的产品。 向量 向量(vector)是由一组实数组成的有序数组,同时具有大...
白岩迈爽: c语言入门的时候一定要打好基础,掌握编程语言的规则.不仅仅限于课堂的学习,要多思考,多看关于c语言方面的书,重点是掌握思想方法,最好记住一些常用程序设计.还要细心,多练
高阳县19313693061: 一般专业C语言开发程序员都做会看些什么书? - ?
白岩迈爽: 不敢说专业c语言的程序员都干什么,谨谈谈我个人看法: 1:在PC届,ASCII C早已经落伍了.Java,C#/C++,的份额很大 2:C语言大部分是接触硬件的,我们的嵌入式系统就是在C语言的光环下. 3:想学到C语言,别看国内的教材.《C现代方法》《C高级编程》(美)都不错 4:C语言是工具,更大的不是软件工具,而是硬件工具(要了解电子技术),他给硬件带来灵魂. 5: 有关硬件编程和嵌入式,欢迎交流.
高阳县19313693061: C程序员要学什么 - ?
白岩迈爽: c primer plus 是语法基础的书.接下来可以看数据结构和算法的书.接下来可以看计算机组成原理和操作系统的书,因为c语言是比较底层的,接近系统环境,看这些书可以提供c编程的功底.还有现在编程离不开数据库和网络,所以看数据库的书是必要的,还有socket网络编程,最好看一下网络基础和tcp/ip协议.还有为了更好地了解语言,看一下编译原理还是必要的,设置可以自己写一个比较简单的语言解释器.够看一年半了.
高阳县19313693061: C程序员要学什么?
白岩迈爽: c程序员.看你主要后面做什么类型工作了...一般学好c语言..数据结构..数据库. 汇编(最好学下) c++ 学完这些,,并且你是一名应届生..c语言学的不错的 找个工作不难..后面看你工作哪方面..在公司继续学习,,
高阳县19313693061: 如果想精通C语言需要哪些最基本的知识? - ?
白岩迈爽: 兄弟学习C语言也有六七年了,但决不敢说精通两个字,不过一些经验,可以和朋友分享一下. C语言,语言本身肯定是很重要的一部分,语言本身,最重要的语法,以及关键字的作用.语法不难,看过书再多多少少写点代码就会了解.关键字...
高阳县19313693061: 成为一名C程序员需要什么知识? - ?
白岩迈爽: 话是用口说的,更具体的是人的口和舌头以及喉咙的配合下发出的声音.语言是话的书面表示.如果我们不运用口或者根本不了解怎么用口,就不会说出话,这样的话,一个人即便是非常了解语言,例如汉语,那么没有实际用途.小孩出生不知道如何运用口和舌,所以不好说话,当然他也不懂语言,这个时候,即便懂文字的意思,他也不会念.综上所述:我们用C语言的本质意图是要编写程序,让它在CPU上运行.所以我们必须非常精通CPU,就像熟练我们的喉咙一样,只有这样,才能唱出好听的歌,编出好的程序.在这样的基础上,学会了C语言,才能编出好的程序,让CPU为你做事!
高阳县19313693061: 本科刚毕业的程序员,应该学习哪些知识来提高自己 - ?
白岩迈爽: 1. 程序员至少要学一门程序设计语言,这样才能开始做点什么.主流的程序设计语言一般都有一本圣经级别的书,例如 C 语言中, K&R 的 The C Programmer Lanugage,C++ 中的 C++ Primer, Java 中的 Thinking in Java.扎扎实实地选一本好好...
高阳县19313693061: 想当c语言程序员 都要学习什么 - ?
白岩迈爽: 数据结构,汇编语言,计算机体系结构,操作系统,计算机组成原理………………
高阳县19313693061: 程序员需要学会哪些? - ?
白岩迈爽: 做一名出色的程序员必须要学会的:C语言、汇编语言等多种语言的熟练编程、计算机硬件体系结构、计算机软件基础知识、计算机网络原理、算法复杂性分析、数据结构、数据库系统原理、高等数学、高等代数等理论知识.
高阳县19313693061: 请问想成为C程序员,需要具备C语言中的那些知识? - ?
白岩迈爽: 纯C语言现在就业很困难,一般都是在单片机之类的地方才会对C语言有很高的要求.要精通C汇编是必须熟练掌握的. 语言永远都是个媒介,不同的地方会有不同的情况.如果你真的精通C语言那C++基本也是精通的.一般精通一门语言,其它...