初学者怎样学习编程?有哪些 *** ?
初学者学习编程更好的就是跟着视频学习,现在很多网站都有编程的学习,里面的老师教学是很好的,再者他可以教更多的知识给我们,学习起来很方便的,学编程更好的 *** 是多写代码,只要写得多,自然就会很熟悉,很容易上手。
电脑代码教程
1、电脑编程入门教程——最基本的语言有Java、C/C++、Python、C#等。在2019年8月的世界编程语言排行榜中,Java排名之一,Python大涨,这里可以看出来当前哪些语言最火。
2、电脑编程入门教程——首先要选择一门语言开始学习编程。学习编程当然要从学习编程语言开始,至于具体选择哪种语言开始,根据个人的喜欢来决定即可。
3、电脑编程入门教程——开始学习编程后如何入门。网上有很多编程社区,编程论坛,以及免费的学习教程、视频资源等。刚开始学习,除了看书,要亲自上手实践,遇到问题去这些地方查找。
4、电脑编程入门教程——入门教程之菜鸟教程。上网搜索:Java 菜鸟教程,找到这里红色圈所指示的网址。
5、电脑编程入门教程——免费自学编程的教程。打开这个网址后,可以看到,有很多种语言的教程,而且这些教程都非常基础,适合初学者学习。
6、电脑编程入门教程——入门教程之school教程。上网搜索:Java school,也是一个类似于上面的自学编程的教程。
7、电脑编程入门教程:要学习电脑编程,对于刚入门的新手来说,一定要多实践,多敲代码,遇到bug上网查找,多看看别人的博客、个人网站,向程序员大牛学习。
编程入门教程?
1. 我应该选择什么编程语言
可能困扰编程新手最多的一个问题是【我应该学什么编程语言】或者【我需要学习哪些课程才能做出一个web、一个app】,很多人一直纠结这个问题,陷入了东学一点、西看一点的死循环,到头来啥也没学好,这会很浪费时间。
刚上大一的时候,我也很想知道应该选择什么编程语言。我问了很多人,网上各种查资料,但所能得到的答案都很片面,多数对这个问题答非所问,总是回答说“某某编程语言难”,“某某编程语言性能好”。其实作为初学者,我们对计算机体系都不了解,就不要过多地去纠结性能,或者难易等因素,原因我等下再说。
如果你有明确的方向,那么很好选择。如果你想做算法、机器学习方向,那么python是更好的选择。如果你想做web开发,java、php等都可以。如果想做一些更底层的工作,那么就可以选c。当然这是建立在你有明确方向的基础上。可是,很多人都没怎么接触过计算机行业,特别是和我一样刚入学就被调剂到计算机专业的人。对这些同学来说,各个编程语言就只是个名字,除了叫法不一样,你根本不知道它们有什么差别。所以索性不要纠结了,我替你选一个吧。
如果你是在校大学生,那么你有大把连续的时间,就先学习c,然后再学c++。我个人是学c入门的,也许很多人不理解我为什么推荐学c,因为c和c++都很难、很复杂,看起来并不适合入门。然而正是它们的难和复杂才能让你更好地理解计算机系统【计算机系统不是指操作系统】。学习编程不是学习编程语言,而是学习一个计算机生态,即一个庞大的知识体系。只会编程语言而不理解整个计算机的体系,就像只会写字而写不出好文章。了解c/c++和了解计算机系统是极为贴合的,向下可以帮助你更容易地理解操作系统、编译原理、计算机 *** 、计算机组成原理,为什么呢?因为较为底层的东西很多都是用c实现的,和系统的贴合度极高,很多教材源码甚至教程,在讲述这些知识的时候都是用c或c++作为媒介。而向上,c++面向对象的机制,也可以做出一些应用,譬如五子棋游戏等,也不会显得那么枯燥。花个小半年时间了解c和c++,之后你就会觉得看书、看资料可以轻松很多。
如果你是一个上班族,但是刚刚学习编程,可能学c和c++对你来说有些复杂和困难,因为学习它们确实是很需要时间。你们不像在校生那样有大把的连续时间,而零碎的时间去学习一个比较复杂的东西效果不见得有那么好,所以可以先学一些【更容易见效】的编程语言,从python入手吧,至少能快速做出一些小应用,不至于丢失了兴趣,但是真的要入门编程又还得看看与计算机系统相关的书籍,这样才能更深层次地去编程,譬如【深入理解计算机系统】这一本书可以读很多遍,这本书把整个计算机系统给串起来了。
2.学习编程,我需要学习哪些课程?
我要学哪些课程?我为什么要学习如高数、离散数学、线性代数、概率论等课程?
这个问题也是之前困扰了我很久的问题。不过我现在想通了,对于【高数、离散、线性代数、概率论】等课程,很好解释,做算法的同学肯定知道为啥要学习这些课程。机器学习中会大量用到上述提到的课程,所以会比较好理解。对在校生而言,学校开设的很多课程我们不知道为什么要学,我们很疑惑,不知道学它有什么用,这个时候我们就会很纠结,还会产生抵触情绪。这很正常,因为我们学习得不够深入,自然不能理解它们的用处。
在我看来,大学本科课程更多的是面向“面”的教学,即什么课程都教给你一些,但是又讲得不那么深入;而工作或者读研,更多的则是面向“点”的学习,用到的知识更专。本科时,学校也不知道你以后是去搞算法、还是搞架构、还是搞服务器开发,甚至去搞硬件,所以学校需要你学很多课程,至少有个了解。对学生来说,一方面可以从中选择自己感兴趣的点;一方面也可以对未来的就业方向有些启发。所以即使像数电、模电等课程,虽然之后可能用不着,但是你也要学,并且会花费大量的时间。虽然你最后不一定去搞硬件,但是这些课程也会让你更容易去理解一些知识,比如cpu中的逻辑器件。
如果你在大一的时候就有一个明确的定位,知道自己今后想从事哪方面的工作,课程与课程之间是可以调一下优先级的。不过像大学物理,这种课程确实是对编程没有帮助,但是像我前面所说的,大学教育更注重广度,大物等课程可能就是为了给你普及生活常识吧。
其实,大学教育的问题是普遍存在的,我认为我们学习一项技能的时候,应该采取的是项目驱动式学习,即需要用到什么东西时不会了再去学,而不是先填鸭式的都填进脑子,并且在学习的过程中我们还不知道它这是干嘛用的,等之后用到了,甚至不记得自己学过,反而查资料才会想起:哦,原来我之前学的xx科目是这个用处啊,可是我当时并没有好好学。很多时候学生时间的浪费可能还是要怪老师、怪学校,他们一开始没给我们做好充分的课程介绍。所以,在经过比较多的编程和项目实践后,我认为一个比较好的学习方式是,改良版的项目驱动学习法。即:
学习一段时间,做个小项目,将做项目遇到的问题记下来,针对性地学习相关知识,然后再实践,再学一段时间理论,让知识成网状发射状地变大。当然,项目驱动式学习有一个弊端,就是每次学习的知识都是项目所需要的,很零碎、不成体系,所以需要改良,即在采取项目驱动学习法的时候每天抽一段时间去完整地读一本书,或者一个相关问题的完整介绍,这样就很容易把一些知识成体系地串起来。这样一段时间下来,慢慢的,你就知道我们为什么要学那么多科目,学这些科目能干什么。
为了表达地更加形象,我就举一个小例子,是我最近遇到的。我本身的工作是做Linux C++的,但不仅限于此。我个人对python、数据分析,以及机器学习等内容比较感兴趣,大家可以看到我最近也在我的专栏发布了很多文章。就从数据获取开始,我讲讲我这两个月做了什么东西。
谈到数据获取,可能最容易想到的是爬虫,爬虫是一个在知乎上被说烂了的话题,所以我不想多说它是什么。很多时候有人觉得爬虫简单,为什么呢,因为有现成的框架,所以获取少量的数据就比较容易。但是当你需要爬取的数据很大的时候(比如我之前抓取了知乎500万用户的数据,在下班的时间、用自己家里普通的pc,计算机性能并不是那么好,比不上服务器,又要在不被封IP的情况下抓到这么大量的数据,然后对数据进行清洗,最后还要可视化展示),使用现成的爬虫框架就并不是那么容易实现了。况且,我需要抓很多数据源,并不是一锤子买卖。所以我选择去开发一个系统,即在现有的框架下进行二次开发,搭建一个属于自己的爬虫系统,并植入一些算法。我在系统中添加了很多中间件,直到现在,它还可以在10分钟内就部署一个能抓取大量数据的爬虫应用。
我想学编程,请问该怎么入门?
我的建议是首先学习C语言和VB,这是两种不同风格的基础知识。
然后可以根据自身的兴趣和发展方向来选择各种编程语言。如C++,C#,JAVA等等。当你学习的时候你自然会发现算法和数据结构的重要性,这是必须要努力学习的方面
与此同时必须要学习一下数据库的相关知识。
学习的时候,我认为实战很重要,自学如何实战?那就是做题,多做题才能多发现问题,多发现自己的不足。
以下是我查询到的一点参考:
方案一 Basic语言 Visual Basic
优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您更佳的选择。
Basic/Visual Basic简介
方案二 Pascal语言 Delphi
优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。
缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。
Pascal语言简介
Delphi简介
方案三 C语言 Visual C++
优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软 *** 的产品,与操作系统的结合更加紧密。
缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业沟靡话愕谋喑贪 谜哐 捌鹄椿嵊胁恍〉睦 选?
综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。
C语言简介
方案四 C++语言 C++ Builder
优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
缺点
由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是更好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。
C语言简介
方案五 SQL语言 Power Builder
对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是更好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。
、《计算机组成原理》(熟悉)
2、《数据结构》(掌握)
3、《操作系统》(了解-熟悉)
4、《The C language》(掌握)
5、《编译原理》(了解原理)
6、《汇编语言》(了解)
7、《计算机 *** 》(了解)
8、《软件工程》(了解)
9、《关系数据库》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
1、《The C Programming language》 (Keinighan Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向对象高效编程》
8、《设计模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推荐)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技术内幕》
14、《MFC 深入浅出》
15、《软件需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序员参考手册》
19、《用TCP/IP进行网际互连》
20、《COM 本质论》
编程怎么学。
1、首先要明确自己的学习目的,为什么要学习编程。如果是要考级,那么建议学VB,因为它语句比较简单,易上手;如果是真的要掌握一项技术搞研发之用,那么建议学习C++或Java,因为它们语句功能很强大,虽然难度大一点但很实用;
2、选择自己要学习语言种类,如VB,C++,Java等
3、更好找一个辅导班配合书本同步学习,因为程序的问题如果自己只是看书的话很难理解,有前辈指点会有事半功倍的效果;
4、语句和循环是最基本的结构,所以无论学习任何语言都要把它们掌握好,这是在学习过程中一定要注意的;
5、一定要多上机操作。程序是抽象的,有时看程序看的懂,但自己去编却不一定能编的出来;而有时候虽然程序没看懂,但如果经常着手去编,就会非常熟悉该程序用的时候应该怎么去处理,时间久了自然就理解了;
6、有了一点的操作基础以后,就要去背一些简单的语句体了,这些小的语句在你以后编的大程序里是基础的基础
7、最后就是独立编程了,看到一个编程要求之后,首先要在脑中有一个大体的轮廓,独立构思,不要看参考揭示,只有这样才可以达到真正的训练目的,才可以一步步地把思路培养出来
总之呢,学习编程一定要树立信心,首先从思想上就不要去害怕它,只有以此为前提,才可以学的更好。
编程快速入门
之一:入门阶段
在刚开始接触一门新的知识的时候,我是建议以视频起手的,咨询过很多自学的前辈们也都建议零基础起步的话还是建议跟着视频走。可能有的人当初入门的话一开始就是看书,我这里仅发表一下自己的看法以及自己自学时的感受。
为什么刚开始我不看书学习,因为我一直认为书是用来进阶用的,因为刚开始就看书的话不容易沉得住气,很可能看不下去,因为看书要比视频花费更多的精力去思考,书中的内容有些知识点需要你一遍又一遍的去看去理解,而且很可能还是不懂,但是视频的话因为视频本身就是一种泛娱乐的形式,所以我们看视频的话不会感到太累。另外视频因为是有老师在讲,我们更容易听的进去,所以看视频入门会更快,因此我建议刚开始入门—–看视频教程。
注意:
关于视频的选择,作为入门选择的视频教程的标准一般是较新涵盖的知识点较全面。
根据视频章节,一定要做好每章的笔记,尤其是自己不太明白觉得以后要重点学习的内容。
笔记很重要,一定要保存好!
视频中的demo自己一定要实践一遍。
特别声明:
这一点非常重要那就是在之一入门阶段,我们只看视频教程,记住只看视频教程。为什么呢?我们在之一入门阶段不是让你精通的,而是让你以最快的速度去走进这门技术,让你的大脑中有这门技术的印象,要达到一些普遍的技术点知识你脑子里都有印象,当然你可以不会,我们是在建立知识网,以后慢慢填满它,记住,认真的把视频教程学完,其中遇到很是不明白的,记录下来不用纠结,另外视频中的demo自己一定要亲手试一下。
形成知识框架
第二:看书
经过之一阶段整套视频的学习我们对要学习的技术已经有个大致全面的了解了,一些基础的知识点也掌握一二了,下一步就该进阶了。在之一阶段我说过看书适合进阶,那么在第二阶段我们选择一本口碑不错的书籍进行学习,这个时候有两点,如果经过之一阶段视频教程的学习,觉得自己学的还可以的话,选书的时候不用太注重偏入门,可以挑选偏提高一点的书籍,如果觉得在视频教程阶段入门不够彻底,第二阶段学习书籍的时候则可以选择偏入门的书籍进行学习。书籍不同与视频,这个阶段我们就要对书中的一些知识点力求完全理解了,对于书中某一点的讲解如果不是很明白的话,可以反复看几遍,多多理解,自己多动手实践,尤其对于看视频教程时笔记中标记不明白的知识点在看书阶段一定要把他看懂。
注意:在第二阶段进阶阶段看书的时候,更好也是只看书,因为该有的知识书中已经包含,这个阶段更好把在看视频阶段遇到的问题都解决掉,在看书阶段同样要把不明白的知识点和比较重要的知识点记录下来,然后认真把书从前到后通一遍,这个时候你可能把视频阶段遇到的问题解决掉,但是由于自己学到的更多了,理解的也更透彻了,所以在看书阶段肯定会遇到更加高深的问题,别担心,把问题记录下来,看完书,我们继续!
记住,将知识点形成知识框架
第三:拔高
经过之一视频阶段和第二看书阶段我们已经熟悉了要学习技术的百分之八九十的知识点了,到了第三阶段我们就要进行拔高训练了,这个时候该知道的也知道的差不多了,而且也有自己的一套知识框架了,像这样(以Android为例)
这里写图片描述
但是不是很精通,尤其对于一些很重要的模块可能还有点模糊,这个时候就要进行专项攻克了,要有针对性的进行训练学习,对于一些比较重要的知识点更要多加学习练习,这个时候要多找点demo来练习,这个时候也可以去找一些有针对性的视频教程或者书籍去看,另外的话应该去看一下在这个技术领域大牛的一些博客以及经验分享,这个时候的主要学习资源就要集中在优秀博文学习再加神奇“Google”,要记住这个阶段就是去解决各种问题,攻克各个难点,能利用的资源工具尽量通通用上,也可以多找前辈请教咨询,这将是一个非常大的转折点,也是一个分水岭,真正度过新生期向熟练过度的阶段,有的人甚至能成为高手,这个时候就要看自己的勤奋努力程度了,很重要的一个阶段,也会让你觉得对这个技术,自己原来真的可以掌握学会的一个阶段!
第四:精进
这个阶段你已经不是新手了,有的可以说是高手了,这个时候就要开始做项目了,找一个完整的项目开始练习,要成为github的老熟客,要开始熟悉了解并掌握学习各大流行开源项目,自己也可以试着写一写开源项目,然后写一写专项博客,将自己独到的见解分享出去,总之就是开始”高逼格”学习,做项目,学习开源项目,写开源项目,分享技术等等!你离大牛越来越近了!
最后,你应该已经学会这门技术了吧!如果你想说,还可以继续深入学习吗?遇到瓶颈?以我目前的水平,更高深的我不知道,我觉得基础应该是重点,编程技术这块,数据结构啊,算法啊等应该可以让你突破瓶颈!
关于知识框架
这一点我觉得非常重要,形成自己的知识框架对我们系统的学习一门新的技术非常重要,所以在学习的过程中,要慢慢的形成自己的知识框架,主要是记录一些知识点,由点到线,由线到面,从而形成属于自己的一套包含这个技术所有知识点的知识框架。做知识框架的工具有很多,这里我推荐下幕布,使用很简单,至于好不好,只有自己用了才知道,它是支持在微信上使用的,当然也有客户端,扫描下方二维码,立即注册,还能获得15天的高级版体验。