从零开始熟悉一个软件程序需要多久?

风的回忆_LightS 2015-10-16 03:29:28
本人是刚刚入职的应届本科毕业生,毕业院校算是全国前十吧,编程能力中游,到公司后,领头人让我花时间好好熟悉一套项目的软件,并且在服务器上把源码也给我了,以后可能我的工作要在这上面展开了,可是这个软件和我在学校接触的编程任务相比大太多了,之前已经发布过一个版本到客户手上,是一个很成熟的软件,我才看了一两天发现自己了解的进度低得吓人,看一个函数的功能都要花上好久,软件的构架上也是一无所知,这样正常吗,各位大牛在一开始也遇到过这种情况吗,都是怎么度过的呢,大概多久可以理解这个软件了呢,我现在很怕面对领头人,我好担心他要我开展任务的时候我还是一知半解,这样会不会丢掉工作?该怎么提高了解一套软件源码的速度呢?
...全文
461 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 zxh707wk 的回复:
你不看项目文档的吗
都有在看,但是这个版本的设计文档和需求文档写得太简略了,都大概有2000多字的感觉,但是从功能上来看还是很多的,所以具体下来都不是很懂了,外加上源代码中出了其他维护人员修改部分注释比较清楚一些,功能模块中注释很少(吐槽一下,几百行代码就有两个字的注释,终于知道老师让我们养成写注释的好习惯的原因了。。。)
  • 打赏
  • 举报
回复
引用 2 楼 bear234 的回复:
我感觉楼主只是还没有从学生角色转化成职业角色 学生的时候,你有课本有老师有作业 你很清楚你要做什么 现在,你不清楚了...... BOSS只会告诉你你的工作目标 但不会给你具体规划每个步骤每个细节 谁应该做这些规划呢?---------当然是你自己 机会和挑战永远是共存的 特别在技术领域更是如此 如果你上来就做那些你能比较顺利开展的工作 那么我要“恭喜”你,你被当成一块砖头了....... 你现在做的东西有难度 说明你的BOSS比较器重你 他很可能希望你将来独当一面 所以他给了你一些你需要大量学习的任务 工作进度落后太多 是很严重的事情 轻则把你换到打酱油的职位上 重则被炒鱿鱼 那么该怎么办呢?当然你自己要想办法 加班?买书?看视频?你是成年人了 你要自己找到适合自己的方法 如果你觉得你接触的东西太难,我给你两个建议: 1)找到难点 写个报告给你的BOSS 列出你需要的资源 让他提供给你 2)自己加班花时间搞定 中国教育有个失败的地方,就是学生不会主动学习,好像没人告诉你此时此刻要具体做什么你就不知道该做什么了...... 你要尽快摆脱这种状态 主动给自己找任务、列出相关计划,然后去实行。 千万不要等着谁来监督你或者给你布置任务 BOSS告诉你你要熟悉这块内容 你就要想办法熟悉 这就好比我给了你一本数学书但是没老师一样 你需要自己想办法去看去学 需要被监督和被布置任务的都是水平低的纯打工者,我想你也不想做这样一个角色吧~~~
多谢教诲,确实有点不适应,还没有完全转换过来自己的身份,关于读懂软件的道理我也都知道,需求文档,设计文档也都读过只是从上面提取出来的信息总是觉得太少,可能是我的功力不够吧,要更加努力了。。
忘世麒麟 2015-10-19
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
最好能搞到前任(们)或前任的前任(们)的手机号、微信号、QQ号之类的,设宴招待他(们)一顿后,让他(们)给你详细讲一遍。 用Source Insight软件查看大型项目的源代码。
此为不二法门 我的建议是这样的: 我曾经碰过一个全球的项目软件,真的好大!当时不是让我看,而是让我改bug.心累啊! 一般是这样的:先看一下我接触的模块的相关文档(假如有的话),然后把这个模块的简单逻辑画一画(从输入到输出).然后运行起来,在这个模块的主要函数调用处添加短点,看看程序具体是如何走的. 细化上面哪个过程,知道你认为呢理解好了. 那里面有很多函数,是否每一个函数都要一行一行看呢?不是!真的不是!你需要的也许就是知道这个函数是做什么的.如果你对这个函数感兴趣,你不妨单独复制出来,用一个小的测试程序(写一个main函数,构造一些数据去调用这个函数)测试该程序. 我的建议就是这样.
赵4老师 2015-10-19
  • 打赏
  • 举报
回复
引用 8 楼 u010608071 的回复:
还有一点的是,对于一个软件来说,他们的函数中嵌套调用很频繁,常常看一个函数的时候其中有很多功能不明的函数(没有注释,通过命名也不确定是什么功能)转到定义后发现还会嵌套着另一个函数,如此往复。。。。以树结构打比方的话,我了解这个软件是应该广度优先遍历还是深度优先遍历呢?
从多方面深度优先遍历。
  • 打赏
  • 举报
回复
还有一点的是,对于一个软件来说,他们的函数中嵌套调用很频繁,常常看一个函数的时候其中有很多功能不明的函数(没有注释,通过命名也不确定是什么功能)转到定义后发现还会嵌套着另一个函数,如此往复。。。。以树结构打比方的话,我了解这个软件是应该广度优先遍历还是深度优先遍历呢?
707wk 2015-10-16
  • 打赏
  • 举报
回复
你不看项目文档的吗
paschen 2015-10-16
  • 打赏
  • 举报
回复
最好有个人给你大致讲一下,不用讲很细,不过如果这个软件代码注释以及命名用的好的话,你应该不会很难理解
bear234 2015-10-16
  • 打赏
  • 举报
回复
我感觉楼主只是还没有从学生角色转化成职业角色 学生的时候,你有课本有老师有作业 你很清楚你要做什么 现在,你不清楚了...... BOSS只会告诉你你的工作目标 但不会给你具体规划每个步骤每个细节 谁应该做这些规划呢?---------当然是你自己 机会和挑战永远是共存的 特别在技术领域更是如此 如果你上来就做那些你能比较顺利开展的工作 那么我要“恭喜”你,你被当成一块砖头了....... 你现在做的东西有难度 说明你的BOSS比较器重你 他很可能希望你将来独当一面 所以他给了你一些你需要大量学习的任务 工作进度落后太多 是很严重的事情 轻则把你换到打酱油的职位上 重则被炒鱿鱼 那么该怎么办呢?当然你自己要想办法 加班?买书?看视频?你是成年人了 你要自己找到适合自己的方法 如果你觉得你接触的东西太难,我给你两个建议: 1)找到难点 写个报告给你的BOSS 列出你需要的资源 让他提供给你 2)自己加班花时间搞定 中国教育有个失败的地方,就是学生不会主动学习,好像没人告诉你此时此刻要具体做什么你就不知道该做什么了...... 你要尽快摆脱这种状态 主动给自己找任务、列出相关计划,然后去实行。 千万不要等着谁来监督你或者给你布置任务 BOSS告诉你你要熟悉这块内容 你就要想办法熟悉 这就好比我给了你一本数学书但是没老师一样 你需要自己想办法去看去学 需要被监督和被布置任务的都是水平低的纯打工者,我想你也不想做这样一个角色吧~~~
赵4老师 2015-10-16
  • 打赏
  • 举报
回复
最好能搞到前任(们)或前任的前任(们)的手机号、微信号、QQ号之类的,设宴招待他(们)一顿后,让他(们)给你详细讲一遍。 用Source Insight软件查看大型项目的源代码。
seanking1987 2015-10-16
  • 打赏
  • 举报
回复
我也是刚做编程半年,略有心得,和楼主分享一下。 首先了解这个软件的一个具体功能,大致逻辑(一般会有设计概要文档),再根据了解的逻辑分模块一个一个看,看模块功能的时候,也不要一个一个函数看,了解这个函数的功能即可(一般函数也都有注释的),这样先整体看一遍。 有时间或者做某个具体小功能的话,再具体研究函数的实现,尤其是复杂的函数实现,可能需要拆分自己做做实验去了解,简单的就不说了,一眼看明白就过了。

15,446

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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