自学程序员的学习顺序和课程都是什么?

作者&投稿:邵洋 (若有异议请与网页底部的电邮联系)
小白,想入门程序员,应该从什么开始学,顺序是什么?~

首先,你需要选择一门自己感兴趣的编程语言。现在常见的编程语言有:
C / C++:属于大多数情况下能接触到的相对基础的编程语言了,优势是基本掌握以后面对其他语言均可以“无压力”;坏处是学习起来非常的困难,需要系统性的了解非常多知识点,且耗时一般较长。如果你有更多的时间和精力,同时希望能够长期更好的发展成架构师,那么这可能就是你比较合适的语言选择了。
Java:应用广泛,几乎大多数开发场景都有java或者java变体的身影。学习java你可以了解到面向对象思想,了解虚拟机等的概念,面对常见的开发也能够有应对方案。同时这个语言对比C/C++能简单不少,在很多情况下是面向新手比较合适的选择了。
Go:最近一段时间流行起来的语言,在面对高并发等场景下有天然的优势。Go语言有自己独到的特性,同时也可以支持一些C语言的能力,而且也越来越在国内的互联网公司作为首选开发语言之一。
PHP / Python / JavaScript / .net / Swift / ...:这些语言大多有自己的特定应用场景,比如Python在大数据和人工智能领域比较常见,JavaScript是前端开发的必备语言等。如果你希望的工作有比较强烈的语言要求,那么选择上面的语言准没错。

其次,掌握数据结构及算法,同时能够通过程序语言实现。
比如常见的数据结构,像是数组、链表、堆、栈、队列、树、图等,尽量都有机会了解数据结构的实现原理(包括自己用代码能够简单编写),知道数据结构的优缺点,以及在什么场景下使用。算法原理上如时间空间复杂度,一些数学概念;同时一些经典的排序、与数据结构结合的实现,也应当有了解。
这些推荐你去找专业的书籍,系统性的选择;尽量减少如面试宝典等取巧的方式,深入掌握不仅仅是找工作,在后续的工作中也能更好的帮到你。

再次,了解计算机基础。
常见的计算机基础包括计算机组成原理(简称机组)、操作系统、网络、编译原理等。这里需要投入比较多的精力,如果确实时间上比较紧张,可以有侧重的选择。
比如你希望从事偏底层的开发工作,那么更侧重在机组和操作系统上;如果侧重在上层开发,那么可以侧重在网络上,以此类推。当然,更好的掌握以上知识能够在很多不经意的时间给到你帮助,如果有空,也建议多深入的理解。
最后,知道一些计算机知识的应用。
这里就比较多了,比如数据库、一些基本的项目设计、项目实战等等,根据你希望的工作有针对性的去了解,或许有不小的帮助。

按照上面这几个步骤进行下去,可能确实需要投入一定的时间和精力,但是一旦你选择希望成为一名程序员,就一定要坚持下去,才能取得更好的结果。

基础课程包括:计算机硬件基础、计算机网络基础、操作系统、计算机组成原理、计算机体系结构、数据库原理、软件工程、离散数学、算法设计与分析、数据结构、编译原理
编程语言可以根据需要选择,底层开发人员必学:汇编语言、c、c++;web应用表示层开发人员:html、xml、javascript、jsp(或asp,php)等;普通应用程序开发:c++、vb、.net(其中包括多种语言,可根据现有基础选择)、java等。

如果你是学生,或者如果你有充足的时间。我建议你仔细的掌握下面的知识。我的建议是针对那些希望在IT技术上有所成就的初学者。同时我还列出了一些书目,这些书应该都还可以在书店买到。说实在的,我在读其他人的文章时最大的心愿就是希望作者列出一个书单。

大学英语——不要觉得好笑。我极力推荐这门课程是因为没有专业文档的阅读能力是不可想象的。中文的翻译往往在猴年马月才会出来,而现在的许多出版社干脆就直接把E文印刷上去。学习的方法是强迫自己看原版的教材,开始会看不懂,用多了自然熟练。吃得苦下得狠心绝对是任何行业都需要的品质。

计算机体系结构和汇编语言——关于体系结构的书遍地都是,而且也大同小异,倒是汇编有一本非常好的书。《80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)。你需要着重学习386后保护模式的程序设计。否则你在学习现代操作系统底层的一些东西的时候会觉得是在看天书。

计算机操作系统原理——我们的开发总是在特定的操作系统上进行,如果不是,只有一种可能:你在自己实现一个操作系统。无论如何,操作系统原理是必读的。这就象我们为一个芯片制作外围设备时,芯片基本的工作时序是必需了解的。这一类书也很多,我没有发现哪一本书非常出众。只是觉得在看完了这些书后如果有空就应该看看《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。

数据结构和算法——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时)。很多人喜欢买C#版的,但我觉得没有必要。C#的语法让算法实现过程变得复杂多了,而且许多老师喜欢用模块这一东西让算法变得更复杂。倒是在学完了C版的书以后再来浏览一下C#的版的书是最好的。

软件工程——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华)。不要花太多的时间去记条条框框,看不懂就跳过去。在每次自己完成了一个软件设计任务(不管是练习还是工作)以后再来回顾回顾,每次都会有收获。

Windows 程序设计——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本《Inside Windows 2000》也最好放到这本书的后面读。

在这本书中,没有C++,没有GUI,没有控件。有的就是如何用原始的C语言来完成Windows 程序设计。在学完了它以后,你才会发现VC其实是很容易学的。千万不要在没有看完这本书以前提前学习VC,你最好碰都不要碰。我知道的许多名校甚至都已经用它作为教材进行授课。可见其重要。

上面的几门课程我认为是必学的重要课程(如果你想做Windows 程序员)。

对于其它的课程有这样简单的选择方法:如果你是计算机系的,请学好你所有的专业基础课。如果不是,请参照计算机系的课程表。如果你发现自己看一本书时无法看下去了,请翻到书的最后,看看它的参考文献,找到它们并学习它们,再回头看这本书。如果一本书的书名中带有“原理”两个字,你一定不要去记忆它其中的细节,你应该以一天至少50页的速度掌握其要领。尽可能多的在计算机上实践一种理论或者算法。

你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书。

展开全部
基础课程包括:计算机硬件基础、计算机网络基础、操作系统、计算机组成原理、计算机体系结构、数据库原理、软件工程、离散数学、算法设计与分析、数据结构、编译原理
编程语言可以根据需要选择,底层开发人员必学:汇编语言、c、c++;web应用表示层开发人员:html、xml、javascript、jsp(或asp,php)等;普通应用程序开发:c++、vb、.net(其中包括多种语言,可根据现有基础选择)、java等。

如果你是学生,或者如果你有充足的时间。我建议你仔细的掌握下面的知识。我的建议是针对那些希望在IT技术上有所成就的初学者。同时我还列出了一些书目,这些书应该都还可以在书店买到。说实在的,我在读其他人的文章时最大的心愿就是希望作者列出一个书单。

大学英语——不要觉得好笑。我极力推荐这门课程是因为没有专业文档的阅读能力是不可想象的。中文的翻译往往在猴年马月才会出来,而现在的许多出版社干脆就直接把E文印刷上去。学习的方法是强迫自己看原版的教材,开始会看不懂,用多了自然熟练。吃得苦下得狠心绝对是任何行业都需要的品质。

计算机体系结构和汇编语言——关于体系结构的书遍地都是,而且也大同小异,倒是汇编有一本非常好的书。《80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)。你需要着重学习386后保护模式的程序设计。否则你在学习现代操作系统底层的一些东西的时候会觉得是在看天书。

计算机操作系统原理——我们的开发总是在特定的操作系统上进行,如果不是,只有一种可能:你在自己实现一个操作系统。无论如何,操作系统原理是必读的。这就象我们为一个芯片制作外围设备时,芯片基本的工作时序是必需了解的。这一类书也很多,我没有发现哪一本书非常出众。只是觉得在看完了这些书后如果有空就应该看看《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。

数据结构和算法——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时)。很多人喜欢买C#版的,但我觉得没有必要。C#的语法让算法实现过程变得复杂多了,而且许多老师喜欢用模块这一东西让算法变得更复杂。倒是在学完了C版的书以后再来浏览一下C#的版的书是最好的。

软件工程——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华)。不要花太多的时间去记条条框框,看不懂就跳过去。在每次自己完成了一个软件设计任务(不管是练习还是工作)以后再来回顾回顾,每次都会有收获。

Windows 程序设计——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本《Inside Windows 2000》也最好放到这本书的后面读。

在这本书中,没有C++,没有GUI,没有控件。有的就是如何用原始的C语言来完成Windows 程序设计。在学完了它以后,你才会发现VC其实是很容易学的。千万不要在没有看完这本书以前提前学习VC,你最好碰都不要碰。我知道的许多名校甚至都已经用它作为教材进行授课。可见其重要。

上面的几门课程我认为是必学的重要课程(如果你想做Windows 程序员)。

对于其它的课程有这样简单的选择方法:如果你是计算机系的,请学好你所有的专业基础课。如果不是,请参照计算机系的课程表。如果你发现自己看一本书时无法看下去了,请翻到书的最后,看看它的参考文献,找到它们并学习它们,再回头看这本书。如果一本书的书名中带有“原理”两个字,你一定不要去记忆它其中的细节,你应该以一天至少50页的速度掌握其要领。尽可能多的在计算机上实践一种理论或者算法。

你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书。

自助课程包括计算机硬件基础,计算机网络基础操作系统,《计算机组成原理》,计算机体系结构,数据库原理,软件工程,算法设计与分析数据结构等等!


为什么老师推荐学编程从Scratch编程开始学,之后再学C++。
那么,我们为什么要学习编程呢?有人说让孩子学习编程,是要让孩子去做程序员,其实并不是(我们学习文字,也不是就为了要称为作家吧?),而是去学习逻辑思维方式,让以后的生活中都可以用到的思维方式。这种思维方式,会让你慢慢懂得怎么把一个复杂的问题分解成比较简单的单独的部分,然后按照一定的顺...

学编程要准备什么
2、选择自己要学习语言种类,如VB,C++,Java等 3、最好找一个辅导班配合书本同步学习,因为程序的问题如果自己只是看书的话很难理解,有前辈指点会有事半功倍的效果;4、语句和循环是最基本的结构,所以无论学习任何语言都要把它们掌握好,这是在学习过程中一定要注意的;5、一定要多上机操作。程序是...

深入学习C语言的具体步骤
C语言是可以写很多核心和高级的东西,而不只是小东西,但是从你代码来看,居然用到了 goto,我不是说你那些程序用到GOTO有什么不好,而是一定要避免用GOTO,goto是错误之源,如果你有什么内容非要用到goto才能写到,说明你的编码技巧还有不少提高空间。你的学习顺序应该是:C:做一个超级马里奥出来,并...

Java是一门什么样的语言?
第二步:理论知识学习 这一过程尤为重要,毕竟这是学习Java的关键,而且,这一过程对于系统化的要求更高,如何循序渐进,有方式有目的的学习,将是小白更加快速的学懂Java的关键。所以给大家分享一个学习Java知识点的先后顺序安排,希望对大家有所帮助。1、Java 基础以及 Web 开发基础—小程序项目阶段,...

AS3程序员(网站)应该怎么走这条路!?学会基础的入门应该学什么了?请列...
甚至有些老师喜欢先教oop的思想,再在opp的前提下讲变量和函数等。这个其实对建立面向对象的思维很好,就是很多学生一开始无法接受 至于flash作品,我跟一楼的看法不同。我认为一开始不是要去看别人的程序,而是自己去理解代码,然后以自己的理解来做作品。我认为学习的阶段应该是这样的:一无所知 知道...

前端程序员怎么自学?
聊过之后你就会知道web前端具体是干什么的,该怎么学,这是我个人的小建议,可以不采纳。自学路线:第1阶段:前端页面重构(4周)内容包含了:(PC端网站布局项目、HTML5+CSS3基础项目、WebApp页面布局项目)第2阶段:JavaScript高级程序设计(5周)内容包含:(原生JavaScript交互功能开发项目、面向对象进阶与ES5...

电脑程序员要学什么知识?
程序员需要学习:1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;2、理解计算机的组成以及各主要部件的性能指标;3、掌握操作系统、程序设计语言的基础知识;4、熟练掌握计算机常用办公软件的基本操作方法;5、熟练掌握基本数据结构和常用算法;6、熟练掌握C程序设计语言,...

想要自学JAVA,应该如何入门?
学习数据库较为简单,基本的操作就是增删改查。 三、Web开发 Web前端内容:HTML\/CSS\/JavaScript\/(前端页面) 注意:Java后端开发可以不用过多关注HTML页面及CSS的处理,但是最起码要会用简单的HTML,JavaScript是必须要会的,因为Javaweb后端程序员毕竟要接触使用AJAX方式处理数据及显示。当然如果只关注服务器端实现而不考虑...

学完JAVA基础后又该学什么,什么SE EE框架的,这些的学习顺序是什么...
9、接下来你可以学习Hibernate框架,是对数据库访问的一种封装!!这个学习时候重点是要理解这个框架的思想,知识点不用死记硬背,因为这框架也是一些程序员开发出来的,他们定义的东西,我们没必要都记住,要用到时候再去查即可。10、下来学习spring,这个主要要能应用spring的整合思想来整合自己的应用。让...

初学python入门都需要具备那些条件?
毕竟我们没有基础,靠自学又没啥时间去坚持,能有合适的【线上陪伴式】的课程,还是挺值得一试的。建议大家可以先从体验课开始,了解清楚课程含金量,看看往期学员的体验回馈后再报班学习。Python的学习学习顺序如下:①Python软件开发基础 ②Python软件开发进阶 ③Python全栈式WEB工程师 ④Python多领域开发 ...

五营区13635681181: 我想向程序员方面发展,自学需要学哪些课程和学习的顺序,谢谢大家多多帮忙. -
寿妮阿奇: 基础课程包括:计算机硬件基础、计算机网络基础、操作系统、计算机组成原理、计算机体系结构、数据库原理、软件工程、离散数学、算法设计与分析、数据结构、编译原理 编程语言可以根据需要选择,底层开发人员必学:汇编语言、c、c+...

五营区13635681181: 自学编程的顺序? -
寿妮阿奇: 从QB即QBASIC起步,进入VB6.0,多写代码上机实践,在学习中提高,打好基础,如果能解决实际问题,你的兴趣就会大大提高.要想编程知识扎实,化时间学好C及C++语言则更好.只有学好用好一种语言再改学其它语言能不至于学一种扔一种.遇到问题上BAIDU或SINA提问,网友会给你帮助的.

五营区13635681181: 学习计算机编程,这些课程按照什么顺序学习? -
寿妮阿奇: 你好,就计算机编程而言,只需要学习:1、C语言2、数据结构3、数据库原理4、另外一门语言(例如VB、C#、Java、C++等等,因为C语言主要是培养你的编程感觉、习惯和思维,在实际运用中并不是很多) 计算机软硬件基础知识是为了普及你的计算机知识;汇编语言更偏重硬件级程序开发,比如单片机,当然学了比不学的好,在有能力的情况下要学习;操作系统原理是让你理解操作系统的架构,可以作为补充知识,如果你以后想从事系统级开发,是要学习的;算法,这个其实就包含在数据结构里了.PS:有问题可以Hi我!

五营区13635681181: 要作为一个程序员要学习什么知识 学习顺序是什么 -
寿妮阿奇: 要从硬件学到软件1,先学计算机组成原理等描述硬件的学科;《计算机组成原理》2,然后学习软件,如C++等;《C++语言程序设计》 谭浩强著3,再学数据库;《数据库原理与设计》4,修软件工程;《软件工程概论》5,最后学操作系统;《linux系统与网络服务管理技术大全》杨明华著1是为了做程序打基础,先掌握程序在硬件里是怎么跑起来的;2就不用说了;3数据库是大多数软件都需要用的,举个例子,像华腾的上海交通卡系统,就是有数据库来存放用户的信息的;4是程序员到软件工程师的必备;5是软件工程师到高级工程师的必备.希望对你有帮助.

五营区13635681181: 0基础学编程先学什么?
寿妮阿奇: 0基础学编程,可以先选一门简单的语言进行学习,如c、java、Python,这样可以先对编程有一个初步的认识.在没有基础的情况下,买书自学是一个办法,如果想要速成...

五营区13635681181: 自学计算机编程应该以怎样的顺序学?
寿妮阿奇: 如果学c.有点英语基础比较好学.主要的32个单词记住.从c语言学起.单看书没多大用.要一边看书.一边看视频.多练习.潭浩强的书大多都是针对考试.想学好不要书都行.有电脑.看视频.找题做.不会就查.

五营区13635681181: 一个职场小白想当程序员,应该从哪学起? -
寿妮阿奇: 从最基础的课程开始学起,程序员最基础的工作开始做起,一点一点地学.

五营区13635681181: 我想自学程序员 怎么学呢??? -
寿妮阿奇: 1 培养兴趣 兴趣是能够让人坚持下去的动力.多关心一些行业趣事,多想想盖茨.不是提倡天天做白日梦,但人要是没有了梦想,觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至...

五营区13635681181: 程序员都要学习哪些课程? -
寿妮阿奇: 很多想做程序的同学开始的时候都纳闷程序员都要学习哪些课程,今天迅腾国际(西安)软件工程师培养基地就来告诉大家 如果你是学生,或者如果你有充足的时间.我建议你仔细的掌握下面的知识.我的建议是针对那些希望在IT技术上有所成...

五营区13635681181: 想通过自学找到程序员的工作,需要学哪些课程 -
寿妮阿奇: 首先,C语言是基础,学透了可以学Java和Javascript.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网