快速学习C语言途径,让你少走弯路
1.标准C语言能干什么?
坦白讲,在今天软件已经发展了半个多世纪,单纯的C语言什么都干不了。标准C语言库只提供了一些通用的逻辑运算方法以及字符串处理,当然字符串在C语言看来也是一种操作内存的方法,所以单纯的C什么都做不了,不论是游戏客户端,服务器以及其他插件标准C语言要配合相应的系统C调用和其他语言共同完成一个完整的软件。所以C只是一个入门,要想吃软件这碗饭还有很长的路要走
2.从学会C语言到能写软件还要做什么?
I.个人认为第一步是学习数据结构和算法。推荐一本书:《数据结构(C语言版) 》
有能力的同学应该从这本书开始就要慢慢开始英文原版阅读,当然在这里我给大家说的还是中文版的名字。
数据结构和算法两者密不可分,数据结构体现了数据在内存和硬盘中存储的形态,如何运用这些形态进行最优化操作,就要靠相应的算法来实现了
II.了解一点汇编知识。推荐一本书《汇编语言》作者:王爽
可以说这本书是中国代码人的骄傲,目前为止我还未看到过像王老师这样文笔流畅,深入浅出的把一个生涩的汇编语言描述的如此清晰的大师。王老师用中国人的思维方式,语言习惯,学习思路为我们介绍了汇编,这一点上惊为天人!!!
III.还是介绍一本书,不过这本书算是课外读物吧《编码——隐匿在计算机软硬件背后的语言》。看这本书时可以和前面几个步骤平行进行。这本书并不教你软件编程,却用宏观的角度概括了从数模电到C语言层次计算机的整体思路。非常棒
3.用什么系统学C?
linux!毫无疑问,天下武功出少林,所有操作系统出UNIX。而linux则是UNIX集大成者。linux版本众多,推荐Ubuntu,其界面友好,又不失UNIX本真。当然有钱的朋友用个苹果本本在Mac上搞也是一样牛逼的,但苹果这个东西学生party还不是每个人都消费的起的,所以没有条件的同学搞个Ubuntu玩玩就够了。现在用wubi这个软件,可以在window上直接格出一个文件夹作为Ubuntu的系统路径,跟安装一个应用软件一样简单,所以大家为何不试试呢。
在Ubuntu上我推荐大家跟着一本书来走《LinuxC一站式编程》宋劲彬老师所写。现在已近绝版,但网上有开源免费书籍可以下到。宋老师在国内时一直是一个较为有名的软件培训学校老师,这本书也是从零基础直接到LinuxC程序员的一条捷径,但由于是职业培训学校教材,就在基本功方面砍去了一些东西,我希望大家不要把这些基本的东西丢掉,否则到了三四十岁可能你就没饭吃了
4.掌握几种语言就可以算是个合格的程序员了呢?
这个问题仁者见仁智者见智。从我个人的角度讲,我现在玩过的语言全加起来一共有这么几种
C,C++,JAVA,Javascript,VB,Lua,SQL
不要被他们吓到,也不要膜拜哥,吼吼吼(自恋了)
快速学习C语言途径,让你少走弯路的更多相关文章
- 快速学习C语言一: Hello World
估计不会写C语言的同学也都听过C语言,从头开始快速学一下吧,以后肯定能用的上. 如果使用过其它类C的语言,如JAVA,C#等,学C的语法应该挺快的. 先快速学习并练习一些基本的语言要素,基本类型,表达 ...
- C语言超全学习路线(收藏让你少走弯路)
刚入门是否觉得C语言很难?那可能是你还没找到正确的C语言学习路线,收藏以防找不到,让你少走弯路. 基本语法 选择控制语句 if,swith 循环控制语句 while,for 控制语句相关关键字分析 变 ...
- 快速学习C语言三: 开发环境, VIM配置, TCP基础,Linux开发基础,Socket开发基础
上次学了一些C开发相关的工具,这次再配置一下VIM,让开发过程更爽一些. 另外再学一些linux下网络开发的基础,好多人学C也是为了做网络开发. 开发环境 首先得有个Linux环境,有时候家里机器是W ...
- 快速学习C语言二: 编译自动化, 静态分析, 单元测试,coredump调试,性能剖析
上次的Hello world算是入门了,现在学习一些相关工具的使用 编译自动化 写好程序,首先要编译,就用gcc就好了,基本用法如下 gcc helloworld.c -o helloworld.o ...
- 快速学习C语言四: 造轮子,ArrayList
高级语言里的列表是最常用的数据结构,在C里造个轮子玩玩,C没有泛型,先用int练习. Collection的ADT一般有hasnext,next,add, remove操作,List一般还加了remo ...
- 学习swift语言的快速入门教程推荐
随着苹果产品越来越火爆,苹果新推出的swift必定将在很大程度上代替oc语言.学好swift语言,对于IOS工程师来讲,已经是一门必备技能. 有一些比较好的英文版教程,值得学习. 1. Swift T ...
- Dart语言快速学习上手(新手上路)
Dart语言快速学习上手(新手上路) // 声明返回值 int add(int a, int b) { return a + b; } // 不声明返回值 add2(int a, int b) { r ...
- 如何快速高效率地学习Go语言
要想快速高效率地掌握Go语言,关键是要通过不断写代码去训练,熟能生巧.方法是没问题的,但具体的路径呢?就像开车,能不能给个导航?我希望这篇文章能起到一个导航的作用,这里提供的路径,应该对很多人都适合. ...
- 大神教零基础入门如何快速高效的学习c语言开发
零基础如果更快更好的入门C语言,如何在枯燥的学习中找到属于自己的兴趣,如果把学习当成一种事务性的那以后的学习将会很难有更深入的进步,如果带着乐趣来完成学习那将越学越有意思这样才会让你有想要更深入学习的 ...
随机推荐
- 程序员之路:python3+PyQt5+pycharm桌面GUI开发
http://blog.sina.com.cn/s/blog_989218ad0102wz1k.html 先看效果: 图 1 没错,学过C#的同学应该很熟悉这个界面,按钮风格和界面风格很相似,万万没想 ...
- S0.2 灰度图
目录 灰度图定义 灰度图优点 RGB转灰度算法(OpenCV3) 量化 算法公式 OpenCV自带函数实现 综合比较 灰度图定义 对于单色(灰度)图像而言,每个像素的亮度用一个数值来表示,通常数值范围 ...
- php获取文章的第一张图片
今天做东西的时候遇到一个问题就是如何把文章提取出来作为文章列表呢? 因为用了Ueditor,所以提交的数据包含了html标签. 搜索了一会找到了一个方案,用php自带的函数去掉了html标签. $ar ...
- (55)Wangdao.com第八天_JavaScript 字符串中使用 \u 输出Unicode字符
JavaScript中,使用Unicode 需要 \u 进行转义,格式 "\u十六进制" console.log(\u0031); console.log(\u0041); // ...
- three.js 使用DragControls.js 拖动元素
首先,引入js文件: <script type="text/javascript" src="./path/to/DragControls.js"> ...
- verilog中signed的使用
1.在verilog中有时会用signed修饰符来修饰定义的数据,运算的时候也会用$signed()任务来强制转换数据,那么signed的修饰是为什么呢,是为了区分有符号数和无符号数的加法和乘法吗?其 ...
- lcr电桥浅谈
此图告知,现代的lcr电桥使用的都是虚地,阻抗很高. 系统采用的鉴相器比较简单,是检半个正弦基波(RMS有效值积分),可以有效抵御偶次基波. 倒不如直接使用运放电容移相,比较采样法直接采样最高点. 此 ...
- Python 学习笔记3 变量-数字
我们来具体了解下有关 number类型的变量的使用方式和含义. 在Python中的Number类型的变量包含以下几种: int: 通常我们所说的整数, 比如 1, 2 ,3 ,100, 3000 等等 ...
- type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到range级别,最好能达到ref。 作者:高
MySQL EXPLAIN详解 - 简书 https://www.jianshu.com/p/ea3fc71fdc45 type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: syst ...
- 20175303 Mycp实现Linux下cp xxx1 xxx2的功能
20175303 Mycp实现Linux下cp xxx1 xxx2的功能 一.题目要求 编写MyCP2.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP2支持两个参数: ja ...