奋斗吧,程序员——第三章 平生渭水曲,谁识此老翁

“说说framebuffer设备的两块内存怎么申请的?”

“只有一块吧?”明显是给我挖坑。

面试官:“那说说framebuffer怎么用吧?"

“先打开fb设备,再mmap映射到用户空间,然后用write、ioctl之类的系统调用去写那块内存就可以。”

“你刚才提到用户空间,那用户空间和内核空间申请内存有什么不同?”

“vmalloc申请的虚拟内存,物理上不一定连续,kmalloc是物理上连续的。”

“vmalloc和用户空间申请内存是一回事吗?”面试官顿了一下,又问道“内核空间怎么申请,有什么方法?”

“kmalloc”

“还有吗?”

“ioremap”

面试官明显面露不豫:“ioremap是申请吗?”

“哦,是内存映射。”

“中断上下部为什么要分?”

“呃,好像一部分是为了比较紧急的任务,一部分稍微不紧急一点,具体是上半部还是下半部,不太记得了。”

这两天终于陆续得到一些公司的面试机会,好在准备充分,七七八八能答个大概。

我在这几天把大学阶段的教材C语言基础和嵌入式系统重新看了一遍,指针、结构体、重载、链表、重构,那些以前看到就想把书扔掉的概念,又被拾了起来。

老三这几天最兴奋,每天拉着我做模拟面试,针对各种考官可能问的问题做了小卡片,处女座有处女座的优点,至少日本人那种一丝不苟的管理风格是无师自通的。

 IT公司格局大都差不多,一般在豪华的写字楼租个一层或者几间,大公司才会有独立的建筑。进门后是Lobby,大厅的豪华程度某种意义上体现了公司的硬实力。直接打交道的人员是Reception(前台),好一点的公司还有Security Assuarance(保安),保安会用警惕的目光来回扫是你,不必介怀,职业习惯而已。大厅和working area之间有门,要刷卡进入,进去后很容易区分工作性质,神情憔悴的是研发,女生较多的是HR,工位空缺较多的是销售,总监以上有独立的办公室。

“你好,请问您要找哪位?”前台MM看到我,很礼貌地询问道。

这已经是我第三家面试的公司了,之前面试的中兴大厅相当的豪华,面试官是两位,一个唱红脸一个唱白脸,总体来说,也算和善,唱白脸的也没有故意的刁难,只是问了一些项目上的事情,我没做过什么项目,就把循迹小车的项目仔细说了一遍。中为和华为是通信业的死对头,实力都很强,相比而言,中为的工作压力没有华为那么大,前不久频繁传出的传出华为公司员工过劳死事件让人不寒而栗,如果能拿到中为的offer,还是比较不错的。

另外一家日企进去就做几百道数学题,感觉是考智商,这方面是我强项,应该问题不大。不过对大和民族没什么好感,不到万不得已不会去。

现在的这家公司在浦东新区的一幢写字楼里,公司的网站很简陋,介绍说这是一家从事软件外包的公司。软件外包是最近新兴的一个行业,所谓的“人脑”+“电脑”的模式。从前台来看这家公司规模并不大,不过从前台MM的姿色来看,应该软实力还是可以的,最近流行一个词叫做“颜值”,前台MM的初步打分可以在85分以上。

“你好,我是来面试软件的。”

“请稍后。”前台MM指示我在一旁的沙发等候,然后打内线电话通知面试官,接下来给我打了一杯水,这个细心的举动让我好感大增。

面试官很快就出来了,看上去很斯文的一个人。

进入工作区后没有那种塞满了人的大厅,而是一个个房间,房间都要刷卡进入,看样子估计公司规模并不大。

简单的自我介绍后,问了我为什么来应聘,家庭状况如何,一番blabla后,面试官似乎对我简历中的专长一栏写了“曾代表校队获得上海高校足球联赛冠军”很感兴趣,问了很多问题。又问口语怎么样,面试官说公司的性质有时候需要和老外沟通,让我用英文说一下自己做的项目。这个我早有准备,说的很流利。

“现在我要问你几个技术问题。“

我知道关键部分来了,连忙正襟危坐。

”线程同步有哪些方式?“

”信号量,互斥锁“

考官面带微笑:”还有吗?“

”还有消息队列吧。“我不太确定。

他又笑了笑,笑的我心里很没底。”可以说说linux建立线程的函数吗?“

”pthread什么的,pthread_create?“

这次考官点了点头。

”c里面可以有同名函数不同参数?“

”不可以。“

"const有什么作用?"

"常数"

"具体一点,const和define有什么不同?"

”define是预定义,预处理时候展开。const在编译时候展开。。。“

考官又点了点头,看上去对这几个回答还算满意。 ”恩,你有什么问题要问我的吗?“

之前老三和我准备了几个问题,比如说公司的状况如何,自己的职业发展前景之类。

我临时改变了主意,觉得应该适时地表现自己的求知欲。

”刚才线程同步的问题,我是不是答得不太对啊?“

"只能说不全面吧,标准答案呢,线程同步用的比较多的是互斥锁和条件变量,你说的信号量还有消息队列,是进程间通信的范畴,不过也可以用来做同步,也不能说错。"

”哦,对哦“我一拍脑袋,”当时背的时候记岔了。“

”没关系,你们刚毕业的学生,都是背概念,没什么理解,知道为什么要线程同步吗?“

”愿闻其详。“

”线程和进程的区别,想必你们都背过,线程间是有共同的地址空间的 ,虽然线程本地存储可以避免线程访问共享数据,但是线程之间的大部分数据始终还是共享的。在涉及到对共享数据进行读写操作时,就必须使用同步机制,否则就会造成线程们哄抢共享数据的结果,这会把你的数据弄的七零八落理不清头绪。“

”哦,明白了。“我做出心悦诚服的样子,其实也不是做样子,对方确实看上去就很厉害。

“我先自我介绍一下,我叫颜嘉庆,负责整个公司研发。我们公司虽然规模不大,但是因为有固定的客户,所以营业状况比较稳定。你过来的话startup的salary不会太高,但是我相信假以时日以你的聪明才智,肯定可以有个jump的,如果表现出色会提前给你promote到senior,对了,你可以cancel掉后面其他的interview吗?”

虽然有点不适应夹杂英文的古怪句式,但是看样子他对我印象不坏。

“兄弟们,拿到offer了。”我回到宿舍就兴奋地大叫。

老四狐疑地问了问过程,阴阴地说:“就这样简单?二哥,小心有诈啊。”

我不满地看了他一眼:“我日三省吾身,发现就是被你们屑小所累,你们就是看不得我咸鱼翻身。”

老四不甘心道:“江湖险恶不得不防啊。”

老三沉吟许久,皱眉道:“按理说有好的leader赏识不是坏事,问题是他直接让你推掉后面的面试,是不是操之过急了,这家公司是不是要人要太急了点?”

“这么说来是有点,技术方面也没怎么考察,不会是个坑吧?我听说有这种外包公司就是卖人的,招个junior的工程师就敢当senior卖。”老大也在旁边补充道。

我想了想说:“那再等两天,等不到中为的,就去这家看看吧。”

由于华为公司入职前有集中培训,老三提前离开我们,坐上了去深圳的飞机。

“兄弟们,我要先走一步了。”老三这个人最是儿女情长,说到离别,鼻子有点红。

“你放心去吧。”老大不耐烦地挥挥手。

“三哥,到了那边,记得给俺写信啊。”老四在旁边念念不忘他的脱单大计,“还有,你们公司有好看的妹子别忘了介绍啊。”

华为公司在洗脑方面有独特的一套,狼性文化自上而下得到彻底的贯彻,老板军人出身,尤其推崇毛泽东思想,对企业也是军事化管理,所谓军事化管理,就是尽量不要让员工有思想,让员工成为企业运转机器上的一个螺丝钉,老三从这一刻起踏上一条不归路。

我这几天一直心神不宁,中兴的offer虽然已到,但兄弟中已有老三去了大公司华为,我自己不太喜欢规模过于庞大的组织,想去小公司多历练。

最终在接到颜嘉庆电话后我打消了所有顾虑,他表达了对我加盟的期望,作为我的直接leader,他以后会直接领导我的工作,今后的工作内容是嵌入式linux方面,我一下子心花怒放。这东西技术要求比较高,入门不易。现在外面有很多培训机构,比如达内嵌入式,教授arm嵌入式linux,培训出来的学生大多一知半解,要入门还是有门槛。像我这样一个毫无经验的新人,很难有机会搞这个。作为一家大公司来说,只要他认定你三观正确,比较稳定,愿意去培养新人。一般小公司倾向于招能很快上手的熟手,所以这样的机会可以说是很难得。我电话里就很快答复他,一定会来公司上班。

我在宿舍下载了华清远见的嵌入式linux视频教程反复研究了起来,感觉没有实践,很多地方理解起来有难度。

 一切就绪,就等着早日上岗,边做项目边理解。

你可能感兴趣的:(程序员,职场,嵌入式,工程师,小说,ic)