我的程序设计学习之路1——C语言

前言

 

首先贴几个公司的招聘需求。

-----------------------------------------------------------------------------------------------------------------

A博世的招聘要求:

 

职位描述:

1、Linux系统维护。
2、Linux驱动程序开发、调试和优化。
3、Linux系统的内核的裁剪与移植。
任职/技能要求:1、精通C/C++开发,熟悉 LINUX内核,精通Linux下多线程/多进程编程,并有3年以上的开发经验。
2、熟悉各类嵌入式linux开发环境搭建,能够熟练使用GCC、GDB等开发工具,熟悉makefile文件编写。
3、两年以上Linux底层开发经验,精通嵌入式Linux内核的裁剪、移植,驱动的开发、优化。
4、精通socket编程,linux各类文件系统有深入了解。
5、具有一定的硬件知识,精通底层驱动软件,启动引导,电源管理, USB,Bluetooth,Wifi等优先。
6、良好的英文水平,能快速阅读和理解英文技术文档。
7、具有较强的学习能力、良好团队合作意识、解决分析问题能力以及良好的沟通能力。
8、至少参加过一个以上的大型软件项目的模块设计设计和代码开发。

 

B华为底层软件工程师(终端产品线)一职的招聘要求:

 

岗位职责:
1、承担终端解决方案驱动软件的需求分析、架构设计、操作系统&模块性能优化,开展软件技术归一化及CBB等工作;
2、承担终端解决方案集成芯片IP规格定义、系统级芯片验证、模块特性开发、联调及特性交付,开展持续集成等工作。

岗位要求:
1、通讯、计算机、软件、机电等相关专业本科以上学历,英语4级及以上;
2、精通汇编/C/C++,深入理解操作系统原理;
3、掌握嵌入式主流CPU芯片(ARM等)的工作机制、深入理解常用终端芯片接口、存储介质等的工作原理及应用场景、注意事项,熟练使用TRACE32、Workbench、DDK等驱动软件开发工具和环境;
4、有SIM/SD/文件系统/USB驱动开发、认证、兼容性测试经验、有LINUX/WINDOWS/USB驱动开发、有通信行业大型企业工作经历者优先。


C杰得微电子的招聘要求:

 

1协调团队项目研发,开发嵌入式操作系统(WINCE或LINUX)BSP、设备驱动及应用软件;

2 针对项目进行系统及软件方案设计。

要求:

1电子或计算机本科以上学历,五年以上相关经验,英文熟练;

2 有大型嵌入式项目的从业经验,有一定项目管理经验;

3 精通ARM(或其它MCU)体系结构和指令系统;

4 精通WINCE或LINUX操作系统架构体系及驱动开发流程;

5 精通常见的硬件接口技术;

6熟悉视频编解码技术;

7 有PMP/MP4、IPTV、SmartPhone或数字电视等相关产品开发经验者优先。

 

D国微电子的招聘需求:

 

任职要求:
1、本科及以上学历,计算机、电子相关专业,能够熟练阅读英文资料;
2、3年以上开发经验,精通C/C++语言;
3、熟悉嵌入式开发(尤其是驱动)流程和方法;
4、熟悉底层硬件和驱动,熟悉嵌入式Linux操作系统;
5、工作主动、踏实负责、耐心细致、乐于奉献,具有较强沟通能力和团队协作精神。
工作职责:
1、负责嵌入式软件总体、详细设计方案设计;
2、负责软件驱动开发,包括但不限制于Windows/linux驱动应用开发;
3、辅助硬件工程师进行单板硬件调试;
4、负责解决客户提出的关于软件方面的技术问题;

 

      对比了上面的招聘需求,作为一个研究生,我愈发觉得自己一无所长,硬件学的很一般,软件学的更糟糕。软件与硬件知识都亟待加强。 本科的课程以硬件知识为主,软件方面有些欠缺。对于嵌入式开发这个方向显然是十一分不够的。 所以现在愈来愈觉得编程的重要性,不管以后是去做硬件还是做软件,编程都是需要很深的功力的。当然这里并不仅仅要学习编程,只是我想目前它是一个又重要,又紧急的问题。即便以后不做技术,其中所闪耀着的思想的光芒也足以吸引我。

      在这种情况下,学习不免会变得功利急躁。但是过分的功利与急躁是深入学习和思考的大忌。我想我需要的是:安静的读书、大量的实践、深入的思考、激烈的讨论。

      “学历代表过去,能力代表现在,学习力代表未来”,我想我的C语言学习的过程将是这样一个过程:

        这将是一个增强学习力的过程;

        这将是一个锻炼排除干扰,集中精力于一事的过程;

        这将是一个明确目标,主动收缩,放弃不重要的事务的过程;

        这将是一个充满了对于学习的连续性的快乐体验的过程;

        这将是一个充满自主性、创造性的过程;

        ……

 

      这里先列出学习内容的规划,以及一些基本的规矩用来依循,不足之处是尚未涉及时间管理,后面将会对时间的管理进行规划。

 --------------------------------------------------------------------------------------------------------------------------------------------

 

目标

1.最低目标:

   熟练掌握C语言

   通过学习用C编程掌握程序设计的思想和方法

2.最高目标:

   能够根据问题,抽象出模型,设计程序

 

--------------------------------------------------------------------------------------------------------------------------------------------

总的思路

 

1.基本阅读——基础知识

      书目中1和2

2.进阶阅读+编程训练——实践是检验真理的唯一标准

      使用书目中的3,通过大量的训练熟悉基础知识

3.高阶阅读——最大限度的提升程序设计思想

      书目中的4

 

 --------------------------------------------------------------------------------------------------------------------------------------------

 

本学期读书目录

此处根据大家的推荐,准备先将两位国内砖家的书拿下,然后读读老外的书。

1.谭浩强《C程序设计(第三版)》虽然很多人说他怎么怎么不好,代码风格怎么怎么不好,错误一大堆,但是我个人觉得可以把它作为其他所有书的一个参考的基准点。

2.林锐《高质量程序设计指南--C++/C语言(第3版) 》读这本书,主要是为下一阶段做准备,下一阶段要进行大量的编程训练

3.《C语言程序设计:现代方法(第2版)》(已买下,挺基础的,内容也很多,本学期将以之为主)被誉为“近10年来最好的一部C语言著作”。

4.C语言四大名著:

C代码大全》(已买下)(书名让人以为它是一本给出很多代码的书,其实不然。不过叫它大全是合适的。也是本相当好的书,评价也很高,在卓越上试读了一下前面的部分,感觉还不错。期待中……)

C专家编程》(据说很好,评分也不低,9.2。不过要对编译原理(因为很多是针对编译器的)、操作系统(Unix、Linux)有一些了解读这本书才不会太吃力。)
C陷进与缺陷》(据说2008版的排版排的不怎么样,让我犹豫了,买不买呢,不过还好,手头有2003版的电子版)

C与指针》(据说不错)

 

---------------------------------- 

学习过程

 

 

1.仔细读书

2.认真敲书上的例子

3.独立完成习题 (习题的)

留下所有的代码!!

 

 

---------------------------------- 

编程基本功训练规则

硬规则:

1.预设编程所需时间

         事先对于要解决的问题设置一个时间上限,例如一个小时。避免在一个问题上耗费太多的时间,规定时间内没有完成就去寻找答案。

2.编程分两遍

         第一遍以完成要求为目的(最快);

         第二遍以提高性能为目的(最好)。

3.以自己编,自己思考为主

         首先,自己编,自己去思考,积累利用已有的知识去解决新的问题的经历,体验无法达到目标、无法找到思路的感觉;

         而后,将自己的程序和书上的程序比较,吸取书上的程序的优点。

软规则:

1.尽量在脑中想清楚,争取一次完成

2.无法一次想清楚的,尽量画出流程图

3.对于一些典型的问题要认真研究

         不局限于完成一个可以实现目标的程序。尝试多种解决办法,使用多种解决方法,并尝试寻找并总结新的解决问题的模型。

 -------------------------------------------------------------------------------------------------------------------------------------------

要明确的一点

C语言程序设计,我们的注意力往往放在“C语言”三个字上,因此偏移了学习的中心。
所以学习的过程应该叫做:“用C语言学习程序设计”——“学习程序设计”是目的,“”是方法,“C语言”是工具

  

 -------------------------------------------------------------------------------------------------------------------------------------------

(哥再看电影哥就是小狗,欢迎各位实验室的同学监督!)

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值