没基础的大学生如何自学c语言 ?

C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。真的太多人学也有太多要学的东西了,以至于后台总有人问C语言该怎么学,甚至还有具体问编程问题的。

这一点专门针对「大部分时间都在写着重复的代码,感觉成长很低」这一问题。

一,职业规划

职业道路该怎么走?

就以「C语言开发工程师」为例,所以这里只介绍C语言相关的职业规划。

C语言这门语言可以发展的方向很多,这里给大家介绍六种:

1.C++服务器程序员(流媒体后台,游戏后台,高性能服务器后台)

2.嵌入式软件工程师(C/C++,Linux平台,软硬兼施)

3.应用开发工程师windows /linuxc++ (QT和MFC,偏前端)

4.C++逆向开发工程师(网络安全,黑客攻防,破解等)

5.C++游戏开发(游戏方向,熟悉游戏引擎cocos2dx等)

6.智能硬件 和可穿戴设备(智能硬件VR/C++,)

本文不做其他编程语言的发展道路以及非开发道路的职业分析,下面是计算机常见职业发展方向的思维导图,大家可以参考一下。

了解完了一门语言可能的职业发展方向之后,你就可以根据你的个人喜好以及当下情况,选择不同的方向钻研。

因为你的人生是你自己的,我只能给你提供道路,没办法帮你选择。所以第一步,我只能帮你到这里了。

二,学习规划

通过上面的分析,你可以看到,不管你走哪条道路,你都不能只会一门编程语言,也就是说「真正的C语言开发工程师」不能只会用C语言,你必须得会一些其他辅助性的语言。

所以,关于学习规划,我会分为下面三个部分来讲:

  • 编程通用知识
  • C语言的学习步骤
  • 其他编程语言的学习

编程通用知识:

每一个知识点后面,我都放了一门推荐课程,如果自觉掌握扎实,可以跳过。

  • 算法

算法导论-麻省理工:

【算法】算法导论-麻省理工_哔哩哔哩_bilibili

  • 编译原理

编译原理-哈工大:

编译原理(哈工大)_哔哩哔哩_bilibili

  • 网络原理

计算机网络(原理) 哈尔滨工业大学_哔哩哔哩_bilibili

很多人都会问,学这些有什么用?我编程又用不到。

这里我举个例子,都说学习就像盖房子,而基础学习就是打地基,没有地基能不能盖房子?当然可以!

但是你的房子想建高是不可能了,你的房子想建牢靠也是不可能的了。

所以,为了你之后的学习更顺畅,一定要耐着性子哪怕逼自己也要把这一块给啃下来。

这直接决定了你之后的发展高度。

C语言的学习步骤

这一块分未学什么以及怎么学两部分。

学什么

1.语言基础

说白了,就是学习这门语言的基本语法。

需要注意一点的是学习C语言语言基础的时候,一定要多动手,不要觉得自己理解了就跳过去了。不然等你真的要实操的时候,你会发现有很多细节是你之前忽略了的,而这些细节阻碍了你的整个编程。

下面是推荐的一些书籍以及课程:

书籍:《C程序设计语言》《写给大家看的C语言书》

学到最后,你能掌握下面这些知识就够了:

2.进阶学习

推荐书籍:

 《C专家编程》、《C与指针》、《C陷阱与缺陷》、《C语言解惑》

其他编程语言的学习

作为一个程序员,不可能靠一种语言走遍天下。所以你还要拓展至少一种其他语言。

至于,精通python之后的编程语言该如何选择,首先就得看你自己的工作需要。

怎么学?

每个人的学习方法都不一样,有的人喜欢边做项目边学习,有的人则喜欢学一段时间做一个项目,有的人喜欢看书学,有的人喜欢看视频学,这些都不是问题,重要的是找到适合你自己的。

但下面这几点,最好还是不要去做了,因为我带了这么多人,敢这样做的都是事倍功半,结果惨不忍睹。

1.一味的对着别人的代码去敲。

刚开始不会做只有跟着别人敲,这不是问题,问题是跟着别人敲了之后你要自己理解自己记忆把它变成自己的东西。照着别人代码敲一遍两遍哪怕三遍,除了让你看得仔细点,练了打字外并没有其它任何帮助。

因为模仿复现不是关键,思考才是关键。你要能做到思考学习别人思路后,脱离书本和博客,完全自己实现功能。只有这样,你的学习才是有效的。

2.想着一口气吃成个胖子

这一块的情况稍微少见,但也不是没有,有的人急于求成,学习只学个大概只求个会用,没有做到知其然还知其所以然。

一个典型的例子,我两年前带的应届生,北京一所高校来的。当时他做的那部分出了点问题,我就推荐了一本书给他,让他看完后把这个问题解决,因为不是很急,我说一个星期搞定就行了。结果两天后,他就跑过来跟我说书看完了,问题也解决了。我问他怎么做的,他说他看了个大概后直接照着书上做了。

技术这玩意儿,不是看了个大概能照着做就会了,一口气吃不成个胖子,必须得扎扎实实地把事情做好。所以不要试图一次性解决所有问题,这里给个建议:可以将每天的学习过程拆分成小块,分阶段学习,这样的效率会更高些。

说完了第一点如何学习基础知识,接下来说说第二点如何巩固基础知识。方法千千万,最有效的我认为还是刷题,有方法的刷题。

下面这个刷题方法很普通但也很实用,推荐给你:

第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。

第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。

第三遍:提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。

在这里,给大家推荐两本书还有一些学习网站,能够让大家学得更轻松些。

三,实操技巧

这一点专门针对题主所说的「大部分时间都在写着重复的业务代码,感觉成长很低」这一问题。

如何找项目练手:

1.做一些实操性强的个人项目,自己练练手

田纳西大学助理教授奥斯汀·亨利结合自身经验,给出了一份“程序员都应该尝试的挑战性项目”清单,包含下面六个项目,我之前做了一遍觉得还不错,推荐给大家:

  • 文本编辑器
  • 2D游戏-太空侵略者
  • 编译器-Tiny BASIC
  • 迷你操作系统
  • 电子表格
  • 电子游戏机模拟器

每一个项目都存在不同的挑战,比如文本编译器就要求在不使用GUI框架中内置的文本框组件的情况下,搭建支持光标移动、选择、插入和删除操作的文本框并将文本文档存储在内存中。

如果你能解决掉这些项目中的这些问题,然后把项目独立完整的做出来并且运行成功,你的能力肯定能再上一个台阶。

2.写技术文章

大家想必都知道费曼技巧,这也是其中的一种应用了,把你自己弄懂的东西教给别人,让别人也能看懂,在这个过程中你肯定还是要把一个完整的项目给做出来的,一整套下来,你会将自己理解的东西掌握的更透彻更深入。

也算是一种不错的实操方式了,能让你的基础更加牢固。

3.接一些开发兼职

这是三种方法中实操性最强的一种了,没有之一。

而且不用说,这也是最快最有效的方法了,毕竟编程这件事,光有理论是不够的,动手实践才是关键也是最终目的。

但兼职也有很多坑很多小门道,你首先得注意项目是不是靠谱,像那种没有需求文档的就不要接了。

  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值