【求助】向两年以上工作经验的人请教一个问题

由于没有做过真正意义上的软件开发,所以想向csdner请教几个心中疑惑好久的问题。

1.linux下环境编程,真的有那么多说道么?就比如说:unix环境高级编程这本书里讲了很多很多的知识。但是实际工作中真的都会用到么?--》据我所知,好像只有创建线程和信号量这两个用的比较普遍(当然,我所接触的都是外包公司,汗!!)

2.对于一个很大的工程,base代码大概要几百M 上G的样子吧。大家是如何阅读的呢?大概需要多长时间呢?这个我首先解释一下,有人可能会说,这个东西是不能量化的,因为它涉及到方方面面,这个我承认,在这里我只想知道一个参考值,平均值,我想这个肯定是有的。这个问题困扰了我很长时间。所以希望大家能在这个问题上多多帮助我,不胜感激!我所接触的主要有两种方法:1,跟变量,个人觉得这种方法对于快速解决问题有一点点作用,对于理解代码,属于事倍功半,欲速则不达的类型呵呵~2,就是一步步一个函数一个函数看。有个师兄曾经和我说他的四年经验总结起来,就是在一个工程中,知道哪些代码粗看,哪些代码需要细看。至于其他的一些linux下的东西,他也是几乎小白级别。

3.我的师兄和我说过,他的工作最大的工作量就是bug fix。至于每年的代码量可能只有几K行,一万行左右。因为都是在base 代码的基础上进行修改的。所以我的第三个问题是,是否大部分软件公司都是以改bug为主,工作中需要的主要技能是对大工程代码的理解速度和深度。也就是说快速看懂。

4.最后一个问题可能比较笼统,是最不收人待见的问题--(因为属于等吃现成的)但是在这里还是一并说了吧。自己还是懒惰的。想从事嵌入式linux的工作,那么我现在需要怎么做?希望能通过应用层和内核层两个方面得到解答。前提是通过在工作中提高以外的方式。找个开源的代码学习??还是有其他更好的办法?总觉得单纯看书效果不好,而且一本书那么厚,看完一本书要好长时间,何况一本书是要看几遍才能大概领会其中的内容的,前辈们你们说是这样的吧?


由于自己的语言组织能力有待提高。以上说的比较零散,希望没有影响大家的理解。
希望前辈们能指点迷津。不胜感激!

最后补充一下,我所在的领域是嵌入式软件。对日外包。

作者: fzc115100   发布时间: 2011-05-22

晚生曾经有一年左右的单片机开发经验--裸机编程。代码量是单个工程3K以下,一个.C文件。没有接触过系统级别。有一点点硬件基础。

作者: fzc115100   发布时间: 2011-05-22

我linux一段时间了,其实文件系统用的也是非常多的,很多权限的问题,apue上都讲的不清楚呢,不过这样的东西比较少。外包可能接触不到核心的东西。如果你要学习的话,可以找下小的开源项目来学习下,这样就了解了一个工程的完整的开发。其实很多大工程也是在小核心上的一步一步的完善而已。通过一个小的项目,对你了解一个工程的形成还是非常有用的啦。

就是一步步一个函数一个函数看。有个师兄曾经和我说他的四年经验总结起来,就是在一个工程中,知道哪些代码粗看,哪些代码需要细看。
说的很对,哪不懂就gdb一下。有的地方看框架,有的地方就要研究细节。

光看书不行,找个开源的项目分析吧。不过你可能没有业余时间。

作者: jameszhanglei123   发布时间: 2011-05-22