【求助】向两年以上工作经验的前辈请教问题

fzc115100 2011-05-22 01:09:38
由于没有做过真正意义上的软件开发,所以想向csdner请教几个心中疑惑好久的问题。

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

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

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

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


由于自己的语言组织能力有待提高。以上说的比较零散,希望没有影响大家的理解。
希望前辈们能指点迷津。不胜感激!
...全文
6000 118 打赏 收藏 转发到动态 举报
写回复
用AI写文章
118 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzc115100 2011-06-03
  • 打赏
  • 举报
回复
谢谢大家的回复。
结贴
mcgrady0314 2011-05-31
  • 打赏
  • 举报
回复
mark
mcgrady0314 2011-05-30
  • 打赏
  • 举报
回复
1.linux的东西 不会像“unix环境高级编程这本书”说的需要知道那么多,除非你想往技术总监方向去。
2.大的工程的分工很细的。每个月都负责自己相应的模块。如果框架设计的好。很大一部分是公共类都抽象出来了。你可先看懂私有的那块,然后等慢慢的有时间了在看公共的部分。
zjpzyn 2011-05-30
  • 打赏
  • 举报
回复
linux比较复杂
mzzfj004588 2011-05-30
  • 打赏
  • 举报
回复
linux这块我也想研究
dungeonsnd 2011-05-29
  • 打赏
  • 举报
回复
刚毕业时看了点ucos2,发现理解想来很难。
现在工作几年之后,很多当时不理解的东西渐渐理解了。不过之后再也没有看过ucos2了,不是做嵌入式系统。
目前主要做*nix的中间件。

很多基本的东西是相通的,比如操作系统,比如数据结构,比如数学。这些基本的东西要扎实。

看代码确实相当头大,在学习apache和nginx的源码,几十万行是有点让人无从下手。于是我买了书让我快速入门,如 apache全景分析。

当时刚到某公司,面对十万行的代码要快速理解,确实很吃力。

我是先分析各个进程主要工作,然后再分析每个进程是如何启动的,接着分析每个进程的main入口,然后分析其中的主要线程。。。 中间可能要分析很多的数据结构。。。


说得比较乱,因为我也是新手。。 呵呵。

victorye81 2011-05-29
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
Linday 2011-05-29
  • 打赏
  • 举报
回复
学习下
GuySunYang 2011-05-28
  • 打赏
  • 举报
回复
真的很多啊
在飞的特拉斯 2011-05-28
  • 打赏
  • 举报
回复
mark
intel286 2011-05-28
  • 打赏
  • 举报
回复
膜拜一下楼主
zaghost 2011-05-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 devplus 的回复:]
我是大三生,前几天参加了某对日外包的面试。

后来看到评论说,在外包公司就是改代码,改代码,有时一年的代码量还是负数(删的比加的多)..

看到LZ也在做外包,借地核实下
[/Quote]
没这么夸张吧 不能管中窥豹的
不同的项目情况也不一样的
zaghost 2011-05-28
  • 打赏
  • 举报
回复
》》base代码大概要几百M 上G的样子
额的神呢 那编译出来得有多大啊
yongbing_yu 2011-05-28
  • 打赏
  • 举报
回复
如果想做开发的有几个阶段:
1.开发语言的熟悉,基本上在学校都是学的理论知识,比较空,只有多动手,才能把基本语法和用法熟练,再就是对基础的理解深度。
2.开发工具的熟悉,一般在学习的时候,基本上都是开发语言和开发工具同时进行的,开发工具的话,一般都是工程的配置,和工程相关的基本设置。
3.简单模块的编写,一般对于初级人员,刚才接触项目或者进入项目,最开始都是从小模块开始入手的,开始慢慢了解基本概念,和行业应用;基本上在这个阶段的朋友,一般都是些功能点,对整体框架不是很了解,随着以后工作的深入,会了解越来越多。
4.框架设计和系统设计,基本上这个阶段,对开发流程很熟悉,更多的是关注接口和功能,而不只是纠结具体实现细节上面;
后面的几个阶段就不说了,我现在还理解不了,大师级的;
基本上对刚毕业的朋友来说,开始都比较浮躁,不知道自己到底要干什么,自己的规划和目标要很明确,如果一直徘徊的话,两三年一下就过去了。对于在校学生,最主要的还是把理论学好,再自己有兴趣的可以多练练手,想想为什么要这样做,对自己理解很有帮助;

其实作为一个程序员得话,要了解的东西那是太多太多,随便找本相关书里面介绍的,最后还是自己都要会的,那都是一些基本东西,作为开发的工具。开发最总要的是思想,怎么发现问题,怎么分析问题,最后解决问题。在自己不但学习和提高后,会发现其实在开发思想和流程都大体差不多,只是行业应用不同。

而前面提到的不停的改bug,开发的时间其实不是很长,主要时间花在bug上面。基本上现在开发都是ctrl+c和ctrl+v,现成的东西太多,主要是比较成熟,比起自己写的更稳定,现在很多都不是自己写的,自己把别人的看懂,改成自己想要的。如果自己有时间,可以自己归纳自己的公共库,以后再用起来更加方便和快捷。
lifesider 2011-05-27
  • 打赏
  • 举报
回复
buf fix的时间是很多,项目越大,代码量越大,bug自然越多,QA的时间就更长。至于代码的编写量,对于成熟些的项目而言,通常是新功能需求。需求少了,程序员一年下来编写的代码量就不多了
Hyacinyh 2011-05-27
  • 打赏
  • 举报
回复
mark!
Felix_0920 2011-05-27
  • 打赏
  • 举报
回复
始终没明白,为啥需要两年才能进呢?
linghuchong001 2011-05-27
  • 打赏
  • 举报
回复
进来看看,马克一下
love260257778 2011-05-27
  • 打赏
  • 举报
回复
多动手才是硬道理

yujinxiang2211 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 devplus 的回复:]
我是大三生,前几天参加了某对日外包的面试。

后来看到评论说,在外包公司就是改代码,改代码,有时一年的代码量还是负数(删的比加的多)..

看到LZ也在做外包,借地核实下
[/Quote]

说的很对
加载更多回复(78)

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧