初入开发组(3)--一个程序员的成长史(18)

在去食堂的路上,代是雄回忆了一下,自己从初中便开始住校,那时一日三餐便是在食堂里面解决的,高中是如此,大学也基本如此。这样算下来,代是雄和食堂已经打了十几年的交道了。“这个食堂会不会像学校的食堂那样,饭菜很难吃呢?”代是雄在心里想到。

进入食堂之后,代是雄左右看了一下,这个食堂的布局和之前自己所见过的食堂差不多,也是几个大的窗口用于卖主食,两个小的窗口用于卖面点。由于代是雄去得比较晚,现在每个窗口前面都排起了长队。代是雄排了将近五分钟的队才打到饭,这期间他没有看到有插队的人,看来,程序员普遍都是遵守规则的人。

很快,代是雄吃完了饭,便又回到了工位上。一走进办公场所,代是雄就发现里面的灯都被关掉了,之前宽敞的过道上摆满了小小的午休床。代是雄感到很好奇,便问旁边的同事这个是什么情况。同事告诉他,公司的员工在中午都有午休的习惯,他们会将办公区域的灯关掉,然后见缝插针地将午休床摆到空的地方,就可以做一个好梦了。代是雄也看到有很多人直接趴到桌子上便睡,有的睡觉时甚至仰着头。如果你在午间到程序员的办公室里面去看,会发现什么样的睡姿都有。

午休的时间大概有一个小时,之后大家便又重新回到了工作状态。也许是又有一段时间没有办公了,大家在午休之后又显得特别的忙碌,各自目不转睛地盯着自己的电脑,将代是雄遗忘在了某个陌生的角落里。代是雄感觉很无聊,不知道该做什么,就随便拿起放在旁边的一本旧书看起来。说来也巧,代是雄拿到的书是谭浩强那本影响了中国很多程序员的《C程序设计》。之前邹总也说了,以后的工作中要用到C语言,那么现在复习一下也好。

一提到C语言,大家可能要问这门语言到底有什么作用,到底能够开发什么样的产品?代是雄记起了自己之前在网上看到过的一个帖子,标题是:C语言主要做哪些方面的开发?有个人的回复是这样的:

C语言是计算机及其相关专业(如通信、电子、数学等)学生大一时的必修课程,也是很多人所学的第一门编程语言。要想了解C语言主要做的开发工作有哪些,我们先来简单回顾下C语言的产生历程。

美国的贝尔实验室在IT领域占有非常重要的地位,从这里面走出来的发明创造不计其数,C语言就是其中之一。话说在1970年,贝尔实验室的一个名叫 Ken Thompson的研究员设计出了一种很接近硬件的编程语言,取名B语言,并用该语言写出了世界上第一个UNIX操作系统。注意,B语言的特点是接近硬件。一年之后,另一位叫做Dennis M.Ritchie的研究员看到UNIX这玩意儿很有前途,便加入了Thompson的开发项目。然而,Ritchie并不是一位只会用B语言编程的“码农”,他对B语言进行了改进,并于1972年设计出了C语言,他也因此被誉为“C语言之父”。

C语言被发明出来之后,Ritchie和Thompson用之对UNIX进行了重写。直到现在,虽然C语言经过了多次标准的制定和修改,但基础都是Ritchie所设计的最初的那版C语言。而C语言是对B语言的改进,那么自然而然地继承了B语言的“基因”:接近硬件。

那么,这种“接近硬件”的编程语言可以做哪些方面的开发呢?由于任何软件都要运行在特定的硬件之上,我倾向于将当前的系统表示为如下图所示的四个层次。

对于软件开发工程师来说,关注更多的是上面的三个层次:操作系统层、中间层和用户层。

(1)操作系统层:包括Windows、Linux、iOS、Android等。它们的主要实现语言都是C语言,这和C语言“接近硬件”的特性是有关的。
(2)中间层:该层在操作系统层和用户层之间充当了一个桥梁的作用,它将很多对于操作系统的操作封装成了API,供上层(用户层)调用。既然操作系统几乎都是用C语言实现的,那么如果要使用其中的某些功能,C语言就是最佳的实现语言。因此,在中间层的开发中,C语言也是主流的语言。
(3)用户层:该层是直接与用户进行消息交互的层次,也是用户能够直接感受到的层次,如WEB界面、客户端软件操作界面等。目前看来,该层的主流编程语言是Java,这也与Java自身的特点有关。

现在来总结一下,C语言可以用于操作系统的开发或与操作系统很靠近的中间层的开发。具体到的软件种类就相当的多了,如本人之前开发过的支付业务接口和现在正在开发的通信接口机。

任何一门语言的产生,都有其特定的背景,也有其具体适用的场合,因此,并没有孰优孰劣之分,最主要看学习这门语言的人掌握到了什么程度。在大家学习的过程中,我的建议是可以学习不同的几门编程语言,但一定要有一到两门比较熟练或精通。

看了上面这个回复,代是雄觉得自己受益匪浅,他觉得自己明白了这几点:第一,每门语言都有其存在的价值,不能说哪门语言一定要比另一门语言更好;第二,C语言开发的东西大都是偏底层的,离操作系统和硬件比较近(这一点和Java语言相反);第三,不能单纯地学习某一门语言,还要顺带学习操作系统、网络等相关知识,也就是说,程序员的视野不能太狭窄。

时间: 2024-11-08 18:58:41

初入开发组(3)--一个程序员的成长史(18)的相关文章

主人公的出场—一个程序员的成长史(1)

        (大家好,从今天起,我的微信公众号(logiczhou)会连续推送<窗内窗外-一个程序员的成长史>系列.本系列以我本人从学校到职场的经历为原型,同时结合了我对软件开发工作.程序员的学习和生活的认识和感悟,欢迎大家阅读.你的点赞和支持是我写作的动力.下面是本系列的第一篇文章,让我们跟随主人公代是雄的脚步一起去体验程序员生活吧!)         翻开日历,已是2012年的4月.代是雄,中国一个普通高校的的硕士研究生,就要毕业了.         回首自己的在校的学习生涯,代是雄感

“一个程序员的成长史”系列答读者问(1)

"一个程序员的成长史"系列文章已经断断续续写了一年多的时间了,现在已经更新到第16篇了.在每一篇文章发布之后,总会有一些读者通过博客留言.微博.微信.QQ等方式发表他们的意见,在此,我对大家的支持表示感谢. 本系列更新至今,我想就一些读者常见的问题来做一下系统的答复.我希望大家能够一如既往地支持本人的写作,能够将"一个程序员的成长史"系列文章推荐给身边的人,让更多的人来了解程序员的工作与生活. 问题一:请问本系列文章的主人公代是雄就是作者本人吗? 答:不全是.主人公

毕业典礼—一个程序员的成长史(4)

今天就要举行毕业典礼了,每个人的脸上都洋溢着甜美的笑容.是啊,三年之前选择读研的人,哪个不是为了今天呢?哪个不是为了想要拿到这张文凭呢? 代是雄他们宿舍的人很早就起来了,因为昨天已经约好了今天要一起去照毕业照.研究生三年下来,同宿舍的人之间已经结下了深厚的友谊.代是雄他们宿舍室友五人,来自五个不同的地方.代是雄本人来自重庆,前面提到的小郭和小林同学分别来自四川和福建,另外两位室友小许和小李同学分别来自江苏常州和南京.小许同学算是他们五人中最时尚的了,在代是雄还不知道苹果为何物时,小许同学便用上了

初入开发组(1)--一个程序员的成长史(16)

也许是昨天晚上睡得早,今天代是雄起了个大早.在外面吃了点包子稀饭之后,便坐着公交车来到了公司.公交车还是一如既往的拥挤,代是雄一路上都是站着过来的,对于长期在大城市上班的人来说,大家都已经习惯了. 来到公司的大门口,代是雄发现很多人都是坐班车来上班的.下了班车之后,有些人又往另一个方向走去.代是雄放眼望去,才知道他们去食堂了.对于像Z公司这样的大公司来说,在每个研发中心都设立了食堂,提供早中晚三餐.这样,很多人就不用早起在家里面做早饭了,睡醒之后到公司吃饭更方便.代是雄决定从明天开始,自己也直接

入职学习(6)--一个程序员的成长史(26)

代是雄一直等着唐师傅的答复,可得到的却是一份开发人员常用的软件工具的清单.唐师傅说,"工欲善其事,必先利其器",从代是雄对之前所提问题的回答来看,他觉得代是雄的基础还不错,可以开始通过阅读实际的程序代码来学习了,但还有一个预备工作就是安装软件工具.听了唐师傅的评价之后,代是雄的心里美滋滋的,觉得自己正在踏入软件开发的门槛. 代是雄看到这份软件清单包含了如下这些软件:Microsoft Visual C++ 6.0.Source Insight.Notepad++.Araxis Merg

入职学习(5)--一个程序员的成长史(25)

一个短暂的周末结束了,代是雄带着意犹未尽的心情早早地来到了公司.自从给唐师傅反馈了自己学习<C语言编程规范>和<数据库编程规范>的学习心得之后,代是雄一直没有收到唐师傅的下一步的学习计划,因此他一直惦记着这件事,想主动询问唐师傅,又不知道这样做是否合适.很多刚进入职场的人都会有这个问题,就是不知道主动向指导老师询问学习计划是否恰当.实际上,在工作中,我们要发挥自己的主观能动性,自己的任何问题都要尽快反馈出来,这样才能让指导老师知道大致的学习情况,才能安排下一步的学习和工作计划. 正

上班第一天(4)--一个程序员的成长史(13)

代是雄等了将近一个小时,终于看到赖科长离开了座位,朝他走了过来.在过来的路上,赖科长还叫了另外一个人.那个人的年龄看起来和赖科长差不多大,带着一副厚厚的眼镜(估计有1000度左右). 赖科长对代是雄说要找个地方好好聊一下,叫他跟着他们走.穿过坐满程序员的开放办公区域,他们来到了一个小会议室中.这个会议室大约有十个平方米大小,中间放着一张长方形的会议桌,桌子周围摆着几把椅子,桌子上放着一个投影仪. "随便找个位置坐下吧."赖科长对代是雄说.同时,他和另外一个人也找了一个位置坐下了. 代是

上班第一天(2)--一个程序员的成长史(11)

电梯稳稳当当地停在了八楼,代世雄在曹MM的引领下走到了一片宽敞的办公区域.这是开放办公区,也就是以后代世雄上班所在的地方.代世雄大致估算了一下,整层楼的办公区面积可能有几千平方米,分成了一个一个像格子一样的工位,每个工位上面放着一台电脑,有的还放有几本书,座位上的人目不转睛地盯着电脑屏幕.选择了程序员这个职业,就注定要随时和电脑打交道. "这位就是开发一部的幸部长",曹MM的话将首次见到如此大的办公区域而陷入沉思的代世雄拉回了现实."部长好",代世雄赶忙说到.&qu

上班第一天(5)--一个程序员的成长史(14)

"你有什么实际的项目经验吗?"赖科长继续发问了. "我上学的时候在一些公司实习过,具体参与的项目不方便说出来."代是雄对自己这样"机智"的回答感到满意.他在准备工作面试的时候看了不少资料,也了解了很多面试的技巧,有些资料就建议面试者对自己的弱项采取这种委婉的回避策略. "还不方便说出来,"赖科长一口挖苦的语气:"你就说自己没有做过实际的项目不就行了,现在的应届毕业生真的是一届不如一届了,在学校里面学了一大堆东西,参加