很多道理大佬们都已经说了,不再赘述。首先得搞懂你学c语言的目的是啥?只是为了应付大学考试,还是想要打好基础能以后能运用在工作中。如果是应付考试,跟着老师学,再看看书刷刷题,这些都是理论功夫;如果是想用在工作中,那就要找点实践来做。
[quote=引用 48 楼 早打大打打核战争 的回复:] 不错,自学成才是要条件的(自身的和外在的),是个例
先读一遍Linux内核源码吧,这样对c的理解比较深刻
我告诉你几个真相: (1)你班级里学得好的,全是自学的,甚至有的同学中小学就开始学了 (2)教你课的老师,可能是不会编程的,不会编程的照样可以教这门课 (3)你不用学会编程一样可以通过考试,只要认真听讲,把作业做好 (4)你跟着老师学,学个一个学期或者一年,除了能通过考试,什么用也没有 (5)你老师最后会出一个“大作业”,自己能从头独立做到尾,没有几个人能做到,所以大多数人都是抄一个或者找枪手。 (6)所谓多看代码多记忆,多敲代码多思考都是废话,关键是你要真的感兴趣,去钻研,并且一开始有人指导你养成良好的思维和编码习惯,但是你还有很多别的课程要学呢,你还着急要完成作业通过考试呢。你要真想学会编程,除非放弃别的课程拿高分。 (7)csdn论坛里提问,大多数回答者水平还不如你呢,有些可能是大学没念过的,甚至是扫地种菜当保安的。他们为什么回答你的问题,因为他们要水经验赚积分,去下载站下载个什么软件,同时不想花钱。
我们来比较下这三个维度: 我会编程:我可以写各种软件。如果某个功能没有,我自己写一个软件。我不需要搜集那么多软件了。但是我需要学习各种软件开发的技术。 我会使用软件:我可以使用各种软件,我需要大量搜集软件,这样才能保证我需要什么功能才能有对应的软件。但是我一旦有了一个铃声制作的软件,我可以生成很多铃声。所以我不需要下载那么多铃声了。 我什么都不会,我只能通过花钱购买各种铃声,要什么买什么。 你可以很明显看出,每一个维度,对于下面那个维度,有着碾压的技能优势。并且你还发现,上一个维度的人,可以做到下一个维度所有的事情,尽管上一个维度的人的知识体系并不是无穷的,但是对于下一个维度来说,他仿佛是无穷的。比如说会编写程序(有限的编程技能),等于无穷多的软件搜集。有限的软件搜集,等于无穷多的产出某个软件制作的结果。 反过来说,下一个维度的人,他如果不让自己的技能和思维升级,他使无穷的力,也达不到上一层的高度。比如你买了无数铃声,你遇到一个新歌手新出的歌曲,还是得花钱。你搜集了无数的软件,总是有需求,还是任何软件满足不了的。 上一层对于下一层的比较优势,这就是降维攻击。 当一个思维框架比你低的人和你交流。你不但可以理解到他说了什么意思。你还可以认知到他为什么有这种观点,他的这种观点从哪里来的,在什么情况下适用。当一个思维框架和你一样的人和你交谈,你仅仅可以理解他的观点。当一个思维框架比你高的人和你交谈,你可能并不能理解他的观点是什么,你必须让他打比方——实际上所谓通俗易懂,就是把高思维框架的观点投影到低思维框架中。相反,当你处于高思维框架的时候,你可以从简单的事实中洞察出复杂的逻辑, 回到学习编程这件事情上来,在一个名师指导下提高学习效率10倍固然很好,你能在各个方面都遇到名师也当然好,遇到知识更新了,再回到学校去学习那也很好,但是你不会自学,没有学习的技能,你永远只能在你的那个层次上。对于有自学能力的人来说,轻轻松松就能做到和你一样的。 所以,掌握学习方法,就是比学习具体知识更高一层的思维框架。但是这不是最终的维度。在掌握学习方法之上,还有学习的学习方法——当你深刻认识了学习的方法的本质,你就会进入深度学习的理论研究之门。或者反过来说,如果你从事深度学习的研究,你自然会把学习这件事情看得很明白——学习真的需要老师么?甚至学习连学习者本身是个活人都不需要。
你可能需要本C primer plus 我之前买了本,结果发现我的专业不学C只学Java
学习c语言就跟打游戏一样,从新手教程开始,逐渐的增加难度,刚开始就要从最基础的开始,从豆瓣上搜关于c的教材,建议选择评分较高的那种,开始慢慢看,装上visual studio或者其他你觉得合适的ide,敲一敲代码,遇到不懂的地方,百度,Google,MSDN,同学,老师,花上几个月的时间,然后开始自己找一点能做的项目,比如游戏,GitHub,尽量选择简单一点的,不要太难的,否则容易放弃,这个时候以观察和复现为主,因为你大概率是不会自己开发出一套完整的项目出来的,同时用c语言做做算法题,同时继续精读领域内关于c的书籍,等你的技能差不多了,就可以找这方面的工作,在实战中继续学习,总之这个过程会很漫长,希望你能够坚持下来
15,440
社区成员
58,165
社区内容
加载中
试试用AI创作助手写篇文章吧