当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2016-12-03

    本文导语:  本帖最后由 steptodream 于 2011-05-22 21:58:09 编辑 由于没有做过真正意义上的软件开发,所以想向csdner请教几个心中疑惑好久的问题。 1.linux下环境编程,真的有那么多说道么?就比如说:unix环境高级编程这本书里讲了很...

本帖最后由 steptodream 于 2011-05-22 21:58:09 编辑
由于没有做过真正意义上的软件开发,所以想向csdner请教几个心中疑惑好久的问题。

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

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

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

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


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

|
刚毕业时看了点ucos2,发现理解想来很难。
现在工作几年之后,很多当时不理解的东西渐渐理解了。不过之后再也没有看过ucos2了,不是做嵌入式系统。
目前主要做*nix的中间件。

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

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

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

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


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


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

能够解决两个以上问题的书,就是好书了。如果一本书翻完,讲的东西你都懂,这样的书就白看了。看一本书,平时看的时候是翻看,一天内要看完,只需记住这本书的知识点,工作时遇到问题知道翻那本书,就行了。要不然计算机书那么多,就当小说看,一年也看不了几本的。据我所知,创建线程和信号量是工作中最没用的知识。写书的人讲这些知识,是炫耀自己懂得比别人多的。因为别人都不想了解这些知识。

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

除非脑子出问题了,否则不会有人去读几百M的源代码的,高校教育工作者闲得发慌,可以写一本源码分析之类的书,提高一下知名度。实际情况是,如果你是项目组成员,在一个几百M的项目里面工作,只需要搞懂你负责的模块就可以了,如果是项目经理,还要对项目的整体架构有些了解。微软一个office项目组一千多人,一个版本要搞一年多时间,你拿到这个项目的源代码,当小说看,一辈子也看不完的。

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

国内的公司不出意外都是这样,因为改bug的速度跟不上产生bug的速度,统计数据是,一年产生一万行/人的公司,(这种公司本来就很少)每改掉两个bug,就会增加3个bug.

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

不见得要在工作中才能提高,最好的方式是买一块开发板,自己写程序down下去run,我还没见过哪个专职的代码工人是靠纯看书学会敲代码的。从嵌入式层面来说,应用层和内核层的代码差不多,想学哪层就编哪层的代码down下去试。

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

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

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

|
实x话x实x说,先x找x个x项x目x从x改x代x码x开x始x吧~!

成x长x的x第x一x步x永x远x是x模x仿。


除x非x你x机x会x非x常x非x常好,遇到一个刚刚开始的项目,从新x设x计x编x码。

但是,作为没工作经验的情况下,开发大量的基x础高x效多x复x用的代码,难度还是挺x高的。

|
如果想做开发的有几个阶段:
1.开发语言的熟悉,基本上在学校都是学的理论知识,比较空,只有多动手,才能把基本语法和用法熟练,再就是对基础的理解深度。
2.开发工具的熟悉,一般在学习的时候,基本上都是开发语言和开发工具同时进行的,开发工具的话,一般都是工程的配置,和工程相关的基本设置。
3.简单模块的编写,一般对于初级人员,刚才接触项目或者进入项目,最开始都是从小模块开始入手的,开始慢慢了解基本概念,和行业应用;基本上在这个阶段的朋友,一般都是些功能点,对整体框架不是很了解,随着以后工作的深入,会了解越来越多。
4.框架设计和系统设计,基本上这个阶段,对开发流程很熟悉,更多的是关注接口和功能,而不只是纠结具体实现细节上面;
后面的几个阶段就不说了,我现在还理解不了,大师级的;
基本上对刚毕业的朋友来说,开始都比较浮躁,不知道自己到底要干什么,自己的规划和目标要很明确,如果一直徘徊的话,两三年一下就过去了。对于在校学生,最主要的还是把理论学好,再自己有兴趣的可以多练练手,想想为什么要这样做,对自己理解很有帮助;

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

而前面提到的不停的改bug,开发的时间其实不是很长,主要时间花在bug上面。基本上现在开发都是ctrl+c和ctrl+v,现成的东西太多,主要是比较成熟,比起自己写的更稳定,现在很多都不是自己写的,自己把别人的看懂,改成自己想要的。如果自己有时间,可以自己归纳自己的公共库,以后再用起来更加方便和快捷。

|
1.找几本好书看看。如果书都看不懂,你还希望看懂代码?
做什么东西都要理论基础的。把技术书当成小说看,几天看一本不是问题吧,看完掌握相关概念,理解某些关键地方就可以了。

2.找个感兴趣的开源的软件,尝试做一些改进,

3. 找个别人没做过的东西,自己觉得有用的东西,作成一个开源项目

我自己也混了好几年了,还在第一步徘徊,最近想看看算法方面的书。



|
没有工作经验的时候,就是找感觉,如何在有限的资源环境下提升能力,
不是看很多书,写很多代码就能实现。我觉得要有一个质进步和飞跃,
很多时候就是把思考习惯和做事习惯养好。公司让你做的是一个点的事情,
你要自己抽时间想这个点所在的线是怎么样的,所在的面又是怎么样的。
看到段代码不光看它做了什么,能做什么,更要看到写出它的人的思绪,思考方式
是怎么样的,高明之处在那,不足又在那!看到一个系统不是光看它界面有多炫目,
要看到系统框架的核心所在,设计思想的精髓有哪些。

|
3.我的师兄和我说过,他的工作最大的工作量就是bug fix

其实写代码,很大部分是在调试

|
中真的都会用到么?--》据我所知,好像只有创建线程和信号量这两个用的比较普遍。

2.对于一个很大的工程,base代码大概要几百M 上G的样子

|
基础很重要,同样的代码,不同的人阅读的效果是不一样的
很多大的工程的确只是fix bug,但有时候也会遇到增加某些模块的问题,
这个时候就体现基础,和代码阅读能力的时候,fix bug你能做,但很有可能,加模块你就做不了了,
要么加的很烂,要么不稳定,要么。。。。

所以,fix bug只是工作中的一个而已,重要的还是基础

|


1. 《Unix环境高级编程》是经典的好书,有口皆碑,W.Richard Stevens是Unix,网络编程, tcp/ip领域的大师。此书即可以细读,也可以做为工具书,依据个人情况而定。

2. 用source insight建个工程, 说细情况参考我的另一个贴子,我没有找到,也许是论坛有bug,丢了。

3. 工作上尽量避避去外包公司, 纯粹维护别人代码的工作, 这样提升自己很慢,最好是新的项目从零开始。送给楼主四个字:严谨,勤奋。

Linux开发可以参考我的另外一个贴子:http://topic.csdn.net/u/20091228/21/9d77de1e-7100-4033-bd67-2f15063ff24e.html.





    
 
 

您可能感兴趣的文章:

  • 求助! 各位前辈给点建议撒
  • 求助前辈们:solaris 10 x86 安装oracle 10g 错误
  • 新手开发银行业务系统,没人带,向前辈们求助!
  • 求助,有经验的前辈给点意见!!!
  • 紧急求助:请教在如何将一个文件夹上传到CVS上去
  • [求助]请教各位一个关于setsockopt的问题!
  • 【求助】请教一个linux命令。
  • 【求助】小弟现在正在学习Linux,遇到一个问题,请教各位
  • 高分求助,请教关于在ARM Linux下启动goahead服务器的问题。很急,在线等待,希望各位大虾帮帮,万分感激
  • 关于Applet和Servlet的通讯,请教各位大侠。紧急求助!!!
  • 【求助】请教一下关于条件变量的一个问题。
  • 请教高手关于linux安装分区问题?(紧急求助)
  • 求助:linux下,通过servlet画图,非得在xwindow下打开tomcat吗?内容:请教各位是怎么做的?
  • 求助 请教各位大人 SHELL编程
  • 求助:向各位大哥请教个进程问题,谢谢!
  • 求助~~请教怎么把这段代码修改成在windows xp 里能运行的说
  • 求助:还向各位大哥请教一问题,编译成功了,可是运行时提示:段错误 ,谢谢!
  • 怎样解析xml文档?急切求助!!请教高手了??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助!如何在linux中移植SOAP协议?有经验的朋友提供一点建议
  • 求助:哪位仁兄有在Solaris上编译STLPort的经验,可否指点一二?
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3