从C语言实战谈C语言编程,谈谈C/C+今后发展!

通过实战,讲C语言,谈编程,这是系列文章的两个主要内容。

一、学前要思考

从今天开始,我会按照我的想法一步一步地谈论如何编程。可能我的想法和你不太一样,和其他人不太一样,这不奇怪,每个人都有每个人做法和想法嘛。我从不是照书宣讲,但也不随便乱讲,我还是有系统的、有针对性的、把自己对编程的看法呈现给你们与你们交流。不要拒绝新的尝试、试试听听别人想法,说不定会有一些收获。

我想问一下读者,当你要学一门新的语言的时候,你应该首先考虑什么?你应该怎么学?你怎么才算学好了?。你会考虑这些问题吗?如果你从不考虑这些问题,不知道怎么去考虑,那我第一课就要告诉你,要学会思考。一个程序员不善于思考就不会是一个好的程序员,记住要学会思考,不习惯也要习惯。

如何思考?思考什么?学一门语言首先要把学习一门语言当做一个整体来思考。在学之前就要考虑好,为啥要学?怎么学?学什么?学多长时间?学到什么程度?

很多过来的程序员在学习语言的时候,由于没有很好考虑这些问题,急于编程序、急于看到程序运行出来的结果,或者一切顺其自然,没有急迫感,边学边做,若干年后也不知道自己到底学的怎么样。这些是我最不愿意看到的。

1、 为啥要学?

我认为这个问题一定要从实用主义出发,一定要学了有用。比如,工作需要、找工作需要、做自己项目的需要。总之能够在近期带来经济效益的,可以考虑去学。那些因好奇、因升级、因流行、因新品、因技术而去学则不要浪费时间去学,最多去了解就行了。而如果为了兴趣,这个就要考虑了,可以考虑比较一两个有用的程序语言去学习。人的时间本来不多,而程序员的时间更是不多而且珍贵,所以要珍惜使用。

2、 怎么学?

我看到大部分人都是找本书,先看,再试,不懂网上去查,是向书学习,向网学习的个人学习。这种方法一定学出来的是一个平均水平的程序员。我提倡的是不要看书(这个方法我在《程序员成长路线图:从入门到优秀》一书中专门说过),找人学。通过向别人学习,可以加快学习的进程、找到学习的重点、避免无谓的自己长时间查出错原因,更重要的是培养程序员团队意识,通过与其他人的交流,取长补短,共同进步。有些同学会说:“我找不会编程的人呀,向谁去学呀?”我只能说,现在会编程的人很多,只要你用心找,一定会找到的。至于人家肯不肯教你,那就要看你的了。

分享之前我还是要推荐下我自己建的C/C++开发学习群:【二四八,八九四,四三零】,都是学C/C++开发的,如果你正在学习C/C++ ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有C/C++软件开发相关的),包括我自己整理的一份2018最新的C/C++零基础资料和C/C++进阶教程,欢迎进加入前面我写过一篇文章谈了自己的C/C++学习经验(我学C/C++的经验),里面谈到"技巧宛如一颗一颗珍珠",后台有好几个小伙伴留言,能不能分享一些技巧. 其实我的企鹅号里面多多少少分享过一些,今天我分享一些自己私藏的非常不错的技巧和代码给大家,希望对大家有用!

C/C++游戏编程比较系统的学习路线

c语言入门 程序设计-算法-运算符-顺序 分支 循环结构。C语言精通 数组-函数字串符

-指针-构造类型-预处理-存储管理-文件操作-数据结构。c++入门 面对对象编程-类和对象-运算符重载

-派生于继承,异常处理技术-C++语言 11标准-数据结构-(双向链表-双向队列-树-图)。c++精通

stl标准模板库(容器-迭代器-算法)正则表达式-boost标准模板库-socket网络编程-大型企业项目实战:

-员工信息管理系统-推箱子-俄罗斯方块-服务器-播放器-人工智能。windows高级工程师:win32/mfc

-windows高级编程-QT框架编程-大型企业级项目实战项目(人脸识别-车牌识别-局域网远程监控-等项目)

linux系统应用程序开发-linux内核构架研究-linux顶级网络服务器开发及搭建。大型企业项目实战

(linux内核高级虚拟内存驱动设计-linux网络间谍系统软件-linux内核网络数据劫持-linux网络阅读系统开发

等等)上述学习6个月时间左右,如果一天高效率用6个小时学习,加油奋吧,骚年们!

3、 学什么?

一个语言就像一个大海,你都不知道这个海有多大,有多深,所以,我们如果像平常一样,去喝几口海水,是喝不光的。因此,我们更重要的是要掌握喝海水的方法,而不是喝了那几口海水。学什么一般人很难说的清,因为,他们面对的无边的海水。我则更注重方法,我初步总结了一下要学会:

1) 语言环境的安装

2) 编辑源程序

3) 编译源程序

4) 运行程序

5) 语言的语法

6) 调试

7) 语言中的架构

8) 语言中重要的系统调用和引用

9) 打包安装程序制作

我希望能在文章全部发表完成之后,能把这个列成一个表格,便于记忆和学习。其他细节的东西可以不要过多考虑。

4、 学多长时间

学多长时间的确是因人而异,有的人基础好一些,经验多一些,脑筋活一些,有人带一些,学的就快一些。而有的人则相反,则要慢一些。一般情况下,一个月到二个月就能学的不错了。

5、 学到什么程度

语言学习无止境,学2年学10年都不能学透的。我还是提倡实用,只有学了以后,能满足工作要求就行了,就可以告一个段落了。以后,在工作中,可以随机地学,慢慢积累。

可能有些网友对上面要思考的问题,不太重视,感到学程序那需要考虑这些东西,学编程就是要学语法、学调用就行了。而根据多年的体会,我认为语言本身的语法、函数、调用反而不太重要,那是死的东西,跑不了。而学会思考,学会从流程上学习编程则是重中之重。

二、hello world编程

好吧,再说思考,大家可能会把我扁死不可。我把这次我的C语言的环境告诉大家:AIX操作系统、ORACLE数据库。AIX可以看成是传统的UNIX环境,是面向命令行编辑、编译、运行(不是面向windows)。其实,各行C语言的环境大同小异,大家可以根据自己的环境做适当的调整。如果网友准备好了C语言环境后,我们就可以开始C语言实战了。

我还是不能免俗,还是照顾到急于看到C语言程序的朋友们,开始我的helloworld编程。

我用vi 编辑了a.c 这个helloworld程序,编译,并运行。

其流程如下:

1、 编辑a.c

1.在系统命令行键入

Vi a.c

2.编辑a.c

#include “stdio.h”

main()

{

fprintf(stdout,”hello world! ”);

exit(0);

}

2、 编译a.c

在系统命令行键入

cc a.c

3、 运行a.out

在系统命令行键入

./a.out

4、 显示结果

hello world!

好了。第一C语言程序编出来了,运行出来了。你们也可以试试。也算是会编C语言了。

接下来我们要对这个程序进行思考了:

1、 这个程序功能比较简单,但是,你的重点不要放在程序的功能上。而是放在一个语言的流程上。记住这个流程是:

2、 大家注意了没有我的源程序名是a.c,而不是取helloworld.c。这关系到源程序取名问题,下次抽空谈。

3、 大家注意了没有这个程序的可执行文件名为a.out,而不是a.exe或a

这个也值得谈一谈。这个和编译有关,下面在谈编译的时候,会详细谈的。

4、 大家注意了没有,运行这个程序的时候,a.out前加了./。这也是一个技巧。在有时候,明明看到目录下有这个可执行文件就是执行了别的文件。这是保证就是执行当前目录下的可执行文件的。因为,操作系统在接受命令行命令的时候,是会按照命令路径的顺序去找这个文件的,而当前目录一般是放在bin目录之后的。这个命令路径是放在path环境变量。

5、 关于a.c中每一行程序放在下次再谈吧。这次重点还是在流程,希望大家记住我们上学时候学到的东西:

总之,通过本文,如果你记住了程序员要思考,要思考为啥要学?怎么学?学什么?学多长时间?学到什么程度?牢记编程流程: 就算及格了。我对编程十分强调基础,强调原理,对编程要做到知其然,知其所以然。编程不要急,慢慢来,要克服自己自发的想当然的欲望,克服基于编程的那种冲动,多思考、多思考,这样你的编程基础才能打得牢,你今后的编程水平才能有很大的提高。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180206A0MCM900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券