我是如何自学C语言的(一个菜鸟的学习路)「建议收藏」

我是如何自学C语言的(一个菜鸟的学习路)「建议收藏」—————————————————————————————————————————零基础扫盲课:计算机科学速成课(扫盲课):http://www.bilibili.com/video/av21376839?…

大家好,又见面了,我是你们的朋友全栈君。

零基础扫盲课:          

 计算机科学速成课(扫盲课):【计算机科学速成课】[40集全/精校] – Crash Course Computer Science_哔哩哔哩_bilibili

        简介:这个视频会以自下而上的方式,给你介绍整体计算机行业的各项知识,这样初学者对整个计算机的概貌就能有一个全面的了解,会知道自己现在所学的知识处在计算机知识体系的哪一层,视频讲的非常好,推荐刚刚入门的学习好好看看。如果有一定的基础,看起来会格外通畅。

—————————————————————————————————————————

更新:2018/10/13

我是如何自学C语言的(一个菜鸟的学习路)「建议收藏」

由于百度分享链接经常失效,所以把网盘中的链接整理出来,方便大家查看。

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

1.Mark  编程先导课[也可以只看上面的 零基础扫盲课 ](链接:https://pan.baidu.com/s/1tz_IDqtiE0lGoQD-oMMqzQ 
提取码:zeri )

2.翁恺  C语言程序设计【C语言】翁恺C语言程序编程全系列

3.小甲鱼  带你学C带你飞【C语言】《带你学C带你飞》_哔哩哔哩_bilibili

4.小甲鱼  汇编语言【汇编入门】《零基础入门学习汇编语言》_哔哩哔哩_bilibili书用王爽老师的《汇编语言》

 

学习路线:

1.按照序号来学习,计算机科学是  Po学校  Mark老师的课程,很精辟实用,耐下性子看完,会对你学编程有很好的帮助作用。(这个和上面的计算机科学速成课类似,但是更直接更精炼)

2.两个C语言教程是有目的的。第一个翁恺老师的我推荐速看,速看不是不思考,而是一天看一章把它看完,快速看掉,因为这一遍会在你的脑海里留下一个C语言的框架,这很重要。入门的书,谭浩强C语言教程第四版(别听网上说这本书不好【确实有错误的地方】, 这本书对于初学者来说,是最适合的,在指针那块讲的挺好的。里面的编程风格啥的,小甲鱼老师会纠正的。—》个人观点)

3.然后细看小甲鱼的视频,去鱼C论坛做课后题,每一题都要做!不会的在论坛提问,很快会有人回复你的,论坛的学习氛围很好。

4.学完对指针可能还有困惑,你想完全掌握指针的最好办法,就是学会汇编,所以第四个是汇编语言。汇编还有会让你对C语言有更深层次的领悟!

5.坚持!!!坚持!!!坚持!!!有些东西刚开始接触搞不懂很正常,坚持学下去,学到后面你就明白了。有时在敲代码的时候,某个知识点突然就懂了,很多人搞不懂就放弃了不学了,这是最可惜的。所以那些大牛们都是很有毅力,坚持到最后的人。

6.C语言开发项目实战:http://c.biancheng.net/cpp/u/xiangmu/ ,感觉自己学的差不多了,就来操练一个项目吧!!(学完C就可以开始动手做了)

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

—————————————————————————————————————————

带我入门的鱼C论坛http://bbs.fishc.com/forum.php

—————————————————————————————————————————

    首先,本人也是一个菜鸟,目前依然还在学习,当初在我开始自学C语言的时候,走过了好多弯路,如果你看到这篇文章,希望你不要走我走过的弯路,这也是我写这篇文章的目的,我也不想像老头子一样叨叨叨,哪些要做,哪些不要做,好像自己很牛逼一样。我只是把自己觉得是坑,是弯路的地方,结合自己的看法,复述给你听,希望你有自己的理解。

1.  不停的换教程,我总觉得自己正在学的教程没有把我给讲懂,就认为这教程不行,后来慢慢的深入了之后才发现,教程大体上都是差不多的,并不是教程讲的不好,而是本来应该自己花时间去思考的东西,认为应该是由老师来讲的,所以即使再好的教程,我也觉得不怎么样(当然也有很差的教程,就是特别啰嗦的,说半天说不到点子上的,这种视频就不要看了!)。还有书,入门的书我买了好几本,到最后真正看的只有一本,就是谭浩强的那本。虽然这本评价不是很高,但是确实是这本书带我入门的。我当初的入门书是谭浩强的《C语言程序设计》第四版,指针部分讲的通俗易懂,非常形象。教程是小甲鱼的,叫做《带你学C带你飞》。当初自己就应该完整学完一本书和一套教程,你在学习的不同阶段,对知识和体系的理解是不一样的,这也是为什么在计算机学习中,囫囵吞枣是一个褒义词了。换了那么多书和教程,实在是浪费时间,现在想想,挺后悔的。

2.  下载各式各样的教程,我看见名字牛哄哄的教程就会把它保存到百度云盘里,然后下载到电脑上,典型的教程收集狂,,我的电脑硬盘几乎是满的!我电脑里有800G左右的视频教程,每天看着这些个教程,就好像看着满大箱的金元宝,感觉自己好有钱,像 渗透测试,WEB安全,逆向破解看着就叫人热血沸腾,哪里还有兴趣学C语言,恨不得直接上  渗透测试。当然,这是不可能的,万丈高楼平地起,C语言都没学会,谈何这些呢?这些电脑里的教程,让我越来越浮躁!一天我不知哪里来的想法,把电脑里这个阶段没学到的“高深教程”全都给删除了,顿时感觉世界都清净了!专心学基础的,接下来的这段时间,我专心了不少,这些教程给了我莫大的学习计算机的动力,也耗费了不少精力,去胡思乱想,万丈高楼平地起,专注很重要!

   

3.  不动手,只用眼睛看,我刚开始学的时候,觉得教程讲的我都听得懂,干嘛还要敲一遍代码?然后到自己写作业的时候,就是各种出错,天花乱坠的错误!!!输入法错了啊,关键字打错了啊,少一个括号啊!崩溃!然后我再也不敢怠慢了,该自己敲一遍的代码,就自己好好打一遍。还是会出错,各式各样的错误,很蛋疼!过了两个星期左右,我就明显的感觉自己的错误变少,思路也更清晰了!到最后要学完的时候,有一个作业是做一个简易通讯录的程序,一百多行的代码,我敲完顺利编译运行!没有错误,如果我一直偷懒不动手,是不可能达到的。现在想想,编程也是一个不断试错的过程,一开始学的时候,是不断纠正自己的错误,因为开始的程序都是简单的。到后来,程序越来越复杂了,就是找程序的错误,如果自己的错误都没有解决,何谈后面解决程序的错误呢?

4.我这个人喜欢刨根问底,应该有很多才入门的朋友和我差不多,总想把东西彻底搞明白,再学下面的东西。这种习惯其实是非常好的,但是在学计算机方面的东西有点不现实,因为有些知识是要你有一定的基础之后才能理解的。当初我记得自己一直纠结常量和常变量有什么区别,问了老师。老师也没把我讲明白,后来学到内存自然而然的就懂了。所以我建议不懂的知识,先囫囵吞枣,先吃下去。最后回过头来就自然而然就消化了。

5.  一开始我听老师说,编程主要学的是其中的思想,听完自己感觉挺轻松,认为学思想,不就是听听课,没作业吗?所以没有吧课后作业当回事。过了几天,继续上课听老师讲,直接听不懂了。后来还是和一个学长交流,他说课后作业很重要,这是一个巩固的过程,将自己的知识用起来,这样就能更好的理解了,这也是一个反馈的过程。反馈非常重要,通过作业,写出一行行的代码,直到顺利运行,是一件很有成就感的事情,更能够激励自己去学习!学长讲的挺有道理的,我也听进去,按照他说的操作了,自己实践证明,写课后题确实是一个很好的巩固和反馈的方法!

自己当初就是不专注,眼高手低,懒,才浪费了那么多时间,现在想想其实也挺可贵的,毕竟是一段难忘的经历,但还是希望看到这篇文章的朋友,别走我走过的坑。

——————————————————————————————————————-

更新:2019.02.27

我是如何自学C语言的(一个菜鸟的学习路)「建议收藏」

      强烈推荐一个免费良心的Arduino教学网站(太极创客):太极创客 – Arduino, ESP8266物联网的应用、开发和学习资料内容超详细,讲的深入浅出,谁听谁知道!!!

        太极创客讲的C++面向对象编程基础讲的非常好,结合Arduino开发实例,如果你学完了C,对C++面向对象编程有兴趣,不妨先看看他们的课,作为入门资料是非常不错的。

        说实话学C语言其实挺枯燥的,学完了也不知道干啥。本身自己是学机械,所以对硬件特别感兴趣,所以经常做一些小制作,但是这些小制作都很没啥技术含量。我当时就想学单片机来着,于是就上网找学习路线,无意中就关注到Arduino,这是一款开源微控制器(看着像玩具,实际功能很强大)。淘宝上十几块就可以买到了一个入门的板子,当时挺感兴趣,就买了一块,而且它是C语言来开发的,并且集成了大量的库,我们可以用很少的代码实现我们想要的功能,总之非常好玩。如果你也喜欢小制作,我推荐你学完C语言可以玩一玩Arduino,相信你一定会喜欢的。

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

更新:2019.07.26

           博主本身是机械专业的学生,接触代码的时间不多,但是本身也非常喜欢计算机,因为这个东西实在是太神奇了,不是吗?好像是无所不能的。如果你看过了上面的计算机科学扫盲的视频,就会知道,计算机的内部全部都是精心设计的电路,通过一层一层的抽象,最终形成了程序这个东西。博主当时才开始学的时候,也听老师这么说过,但是自己的知识还不足以理解,当时应该才学到C语言,对底层的知识一概不知,因为这时候你的认知还局限在内存(对内存很浅显的理解)。

          如果你想对底层的东西有一个比较清晰通畅的理解的话,还需要好好的学学汇编,学完汇编之后,你就会明白为什么指针那么重要了。这时候你的认知就跨在CPU内存之间了。然后再看两本小书,这两本书是《程序是怎么跑起来的》《计算机是怎么跑起来的》。这时候你的思维就活跃在整块主板之上了,如果再稍微有一点数电的知识,你就会彻底明白计算机到底怎么一回事(这个时候你会感到很通畅,当然还有很多东西还是不懂),这个时候从C语言往下的脉络就很清晰了,这个时候再往上深挖,像《数据结构》《操作系统》这些内容就可以学习了(可能还是要补一补《计算机组成原理》的知识),当然要学好还是要花很大功夫的,如果对底层结构非常感兴趣可以看一本非常牛逼的书,冬瓜哥写的《大话计算机》

         自己当初在才开始学的时候很迷茫,因为完全是自己摸索,所以有很多疑惑诸如一些:学编程要不要数学好,英语好等等(你只要会打字开机关机,就能学好编程)。

         对于大多数人来说,编程是一个新的思考方式,所以一开始不适应很正常。从一开始懵逼到开窍需要一个过程,可能非常漫长(有些人两个月就开窍了,有的人半年,有的人一年,这个说不准),一旦开窍之后,进步就会非常快。度过这个过程最简单的方式就是动手敲代码和思考(花时间独立思考),时间一到,自然而然就开窍了,所以不要急。

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

更新:2019.11.15

大家可能听过“XXX是世界上最好的语言”,实际上的情况是每个语言都有它最适合的领域,Java适合Web,Python适合深度学习 与数据分析,C/C++适合开发底层程序,即使是汇编也会在某些对性能要求极其高的项目中用到。当然了不是说某某某语言只能干什么,只是最适合,也可以用来干其他事,只不过很费劲,很麻烦而已,而且有很大可能达不到预期的效果。

其实,扯那么多,就是想引导思考下,C语言到底适合来干什么事情,还有为什么说C/C++,C和C++到底有着什么样的关系?C语言最适合开发硬件程序,例如单片机程序,驱动程序,甚至操作系统。

之前推荐了一个太极创客的Arduino教程,Arduino就是一款单片机,这里要说的也和Arduino有关。如果已经学习了Arduino,并且想要制作自己的小制作的时候就会遇到下面问题:

            用原装的板子做电路,线路复杂容错性差。想要做专门的板子来运行Arduino程序,可是不会画PCB板,不知道如何打印PCB,不知道如何焊接元器件等等一系列的问题。这个问题也是博主之前遇到过的,这里推荐大家一个教程,手把手教你制作自己的Arduino电路板,制作电路的全过程都会涉及,包括但不限于:画原理图库和封装库,绘制原理图,绘制Pcb,打印Pcb,焊接元器件,烧录BootLoader程序等整个流程。

           链接放这里了:Altium Designer 学习—–手把手绘制Arduino PCB线路板(零基础)_哔哩哔哩_bilibili(讲的非常棒!!!)学完这个视频,在自己的小项目中制作PCB电路板这个技能,自己应该可以上手了!

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

(2021.08.10)更新:小甲鱼老师《带你学C带你飞》的后续课程补充

帮老污龟填一下坑

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

以前博客写的文章,放在这吧:

其实在之前写过一篇[文章](https://blog.csdn.net/C1664510416/article/details/79283512),但是也不清楚当时是怎么想的了,就是单单写相互独立的几点,并没有把自己学习的整个过程都写出来,所以一直想完整的记录一下过程。不过,已经过去了这么长时间了,只能凭着记忆来写了。

第一次接触编程是初中的时候,不过只学了一个“Hello World”就学不下去了。那时候我哥还在上大学,我说:“想学编程,你能不能给我带本书然我看看?”。我哥借了一本C语言的书,名字记不得了,是一个外国人写的,讲的倒是挺好的,看完了第一部分就迫不及待的上机了,在我哥的电脑上摸索了一个多小时,那个Hello World都没有运行起来。。。。。。当时内心是何其崩溃和绝望,至今还记得。然后我哥也看了半天,他也没找出原因。。。那时候网络还没有普及,他就带了一台电脑回来,后来我就回去继续看书,好像看到变量类型哪里看不懂了。就是这样我学不下去了,然后就一直停滞在了变量类型… …**(所以初学一定要多上机,还有就是要找一个好请教的人,不会的立马请教,比如上论坛提问也可以,有问题就立马解决了,一直拖会把自己给拖垮的)**

后来就到大学了,之间一直没有碰过编程,但是一直保持着对计算机的兴趣。可能会有人问要不要英语好,数学好。这个问题其实分层的,就是这个问题对于程序员来说,是存在的!但是对于初学者,对于刚刚入门的人来说,根本就不存在英语好不好,数学好不好的问题。只有等你成长到了一定水平的时候,才会面对这些问题。所以,对于初学者来说,干(学)就完事了!

大一下学期,自己买了电脑,然后就又燃起学习编程的欲望了。学之前查过很多,看看到底学哪一门编程语言比较好,网上都说是C语言,也有推荐Python的,但是当时启蒙老师“[小甲鱼]( https://fishc.com.cn/forum.php )”(没错,就是那个老污龟)推荐先学C语言,然后就义无反顾的“入坑”了!

你可能有疑惑,就是为什么有那么多编程语言?现在解释给你听的话,只能打比方,你能大概体会到意思就行了。以后不断学习,自然而然就明白了。编程语言相当于工具,有些工具适合做驱动开发,内核开发,像C语言;有些工具适合做,服务器的开发像Golang;有些适合开发前端的开发像JS… …这些语言都是人为设计的工具,每种工具都有他适合的领域。如果你听着还是很难理解的话,没关系,大致明白意思就行了,后面你自然会懂的。

而大多数人选择C语言作为入门语言是为什么呢?因为这些大多数人的人都是计算机系的,C语言构建了计算机的半壁江山,C可以说是计算机产业的[核心语言]( http://c.biancheng.net/view/1715.html )。而且后面的许多程序需要要么是用C来写成的,要么是收到C的启发。学完C之后,再学习其他的东西,都会有一种游刃有余的感觉,因为你可以隐约感觉到他们之间千丝万缕的联系。或者你也可以参考这篇[文章]( http://c.biancheng.net/view/1716.html )。

决定以C语言作为入门教程,就开始找书了,买了很多书,最后真正看的是这两本:《C语言程序设计-谭浩强(第四版)》,《C语言程序设计现代方法(第二版)》。前者入门,后者进阶。入门书能入门就行,太厚的看着都费劲,更别提学了。入门后,再用一本体系完善的书进阶。

因为是完全自学,我其实学了两遍才入门。第一遍看的翁恺的视频,老师讲的很好,不做学完没啥效果,因为单单就看视频也没上机做题。第二遍看的小甲鱼的《带你学C带你飞》,有配套的课后题,自己都认真做了,这次真的入门了。所以,初学一定上机做题,敲代码,否则想入门真的非常困难。

那些课后题可能很难,想不出来,有时候是有思路,代码写不出来,这都很正常,没思路就看答案,看完答案自己动手实现一遍,多练就行了。因为才开始学编程的话,大脑还没有适应这种“模式”,写程序对于大脑来说是一种新的表达“模式”,要慢慢适应,要有耐心。我理解的“编程思维”就是大脑表达的一种“模式”,一旦大脑“适应”了这种表达“模式”,你就拥有了“编程思维”。而这种模式不光要花时间,更重要的是“练习”,所以要多上机多敲代码。

最后,我想说这句话给你听:**过早退出是一切失败的根源!** 

   

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129958.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 我的 Vue.js 学习日记 (四) – v-bind:class / style 用法

    我的 Vue.js 学习日记 (四) – v-bind:class / style 用法

  • 如何制作微信小程序_制作微信GIF表情

    如何制作微信小程序_制作微信GIF表情作为一个小程序从业人员,我经常在公众号推荐各种好玩的软件和小程序。题特意整理了一下,从工具类、娱乐类、游戏类分享一些值得推荐的小程序,希望有所帮助。整理内容花了大半天,觉得有用的话求个赞。娱乐类1.头像小助手这是一款微信头像制作工具,方便一键定制各种个性头像,功能包含给微信头像加V、加字、加1、粉丝头像等功能,轻松制作个性微信头像。2.昵称工具一款昵称制作工具,可以一键生成各种花式昵称,包括空白…

  • 《移动App测试的22条军规》—第5章5.3节规范与习惯

    《移动App测试的22条军规》—第5章5.3节规范与习惯

  • git log 查看 当前分支的 提交历史[通俗易懂]

    git log 查看 当前分支的 提交历史[通俗易懂]gitlog查看当前分支的提交历史在提交了若干更新之后,想回顾下提交历史,可以使用gitlog命令查看默认不用任何参数的话,gitlog会按提交时间列出所有的更新,最近的更新排在最上面。看到了吗,每次更新都有一个SHA-1校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。gitlog有许多选项可以帮助你搜寻感兴趣的提交,接下来我们…

  • datetime.date()_datenum函数使用

    datetime.date()_datenum函数使用比如在windowscmd命令行窗口执行date命令后这个环境变量的值为当前日期:2014-03-01 星期六那么如下的各个操作的意义如下:%date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2014(年的值)%date:~5,2% 表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是03(月的值)%date:~8,

  • 防欺诈盗号,请勿支付或输入qq密码

    防欺诈盗号,请勿支付或输入qq密码不知道读者是否留意过这种情况:通过微信内置浏览器打开带有表单的页面,点击其中任何一个表单项都会在窗口顶部显示红色背景的防欺诈警告信息“防欺诈盗号,请勿支付或输入qq密码”,如下图所示  1)申请书下载地址:https://mp.weixin.qq.com/htmledition/res/urlrequest.doc。2)申请人主体材料包括:申请人的姓名(…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号