C语言编程入门者的经历

    已经一个月了,感觉自己在编程的过程中有了一定的进步,毕竟以前没怎么编过程序,就以入门者自居吧(虽然以前想称自己为菜鸟,但是感觉还不能到达菜鸟级别)。下面介绍一下上个月自己编程的经历吧!算是和大家交流了,互相学习,当然是初学者之间了。

   初始阶段::当然是必不可少的hello world !程序了,我想每个程序员基本上都是从这个程序开始的吧,基本全部的编程书籍都是从hello world开始的(据说罗马那边不是)。在一天的时间内编出了这个程序,提交给了老师。O(∩_∩)O哈哈~

   

    两天过去了,准备下一个任务,就是实现两个程序之间的通信,现在想想就是信号,这还是第一次做两个独立的程序之间的通信,原来我都以为所有的程序都是一个main()函数呢,就没编过两个的,这次终于体会到了,做出来之后挺高兴——终于能做两个mian()函数的了,就叫他客户端与服务器端吧。基本的alarm()signal()等函数都会用了

    接下来的是做文件的操作,我做的是在linux下C语言编程,这个文件的思想很重要,因为所有的操作在linux基本上都看作是对文件的操作了,对文件的创建读写等有了接触吧,独立完成了这个任务。

   这时候已经过了一周了,感觉自己在这一周里学到了不少,在下一周里有了很大的进步,且听我道来。

   我下一个程序就是对链表的操作,现在想想这对我前几天做的程序非常有帮助,以前是自己定结构体自己实现链表的创建,添加,删除等,现在是要用库函数,这个倒是很简单,毕竟使用人家的函数吗,O(∩_∩)O~两三天就会了。

    那么开始做我的第一个真正的程序了,我做了一个DHCP功能的程序,什么是DHCP百度里肯定有,这里不说了,在这个程序里发现数据结构的重要性,激发了我现在对数据结构研究的欲望,由于对链表操作有了一定的基础,所以在做完详细设计后,很顺利的编出来了,发现软件工程很重要,不能想到哪就编到哪,应该之前至少有个详细设计。

    本来做完了挺高兴,因为做的很快,交给老师后,老师说让我标准化,对客户端的输入标准化,就是linux中的标准命令行形式,在这里我体会到了标准化的重要性,怪不得业内一直在标准化方向发展。顺便提一下用getopt_long()了,当然要复杂一点,因为要达到和linux基本命令行一样的效果。

    忘了说了,DHCP我是基于消息机制做的,应当算是模拟吧,后来才看的SOCKET,这个用到的东西不少,收获不小。

    接下来的任务比较艰巨,是做库函数,不会。但是现有想法吧,让我做个计时器,我心想linux不是有alarm()signal()函数吗,还用我啊!!发现真用的着我,链表,多线程什么的都用上了,并因此我写了《关于linux计时器》的两片博文,从那里可以看到我的收获,这里不说了。

    干完了这个半个月过去了,这时候老师们给我们组织了项目,锻炼我们。每6个人分一个小组,有的人编程,有的负责测试等,有了分工。真实做项目的模拟吧。小组决定由我来完成内核驱动的编写。当时傻眼了,一点不会,没听说过之前。没办法技术调查吧,第一天找了一天资料,第二天突然灵光乍现,我编出来了,下午编出来的好像,当然比较简单了。不过想想自己能编驱动了,十分兴奋就开始研究内核编程,算是丰富自己的知识吧。在此期间和其他同学一起合作完成了任务。

      还有一个星期就结束了四月了,还有最后一个任务了,就是实现虚拟路由冗余的设计与实现VRRP,这是最艰巨的任务。足足每天编将近11个小时,写了20多个模块,算法这叫一个麻烦,有时候一个if...else...语句我想了将近一上午,开始以为要三个星期才能变出来。月底到了,五一了好好玩玩,接下来打算用两周编完它,没想到五一玩回来,一下午就成功了,提前了两周,太棒了。这要归功于软件工程的模块化,之前把模块都写好了,最后就是组装,很快的。

       总结一下,这一个月收获很大,比如学会了链表,信号量,消息,多线程......但是做重要的是学会了用手,软件工程思想很重要,同时树立了自己的超级自信O(∩_∩)O哈哈~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值