出于明显的原因(做一个更好的开发人员),我希望不仅对我的代码,而且对我使用的系统/框架/库有更深入的了解。作为一名高级开发人员*我觉得我应该有更多的表面水平的理解,然而,我正在努力使自己达到这个水平的专业知识。
更具体地说。我已经和Android一起工作了5年了。我非常了解API,但最近遇到了一个bug。在第二次屏幕旋转中,FragmentManager在恢复后未能找到它的目标Fragment,从而使应用程序崩溃。
做完平常的事后
我空空如也,所以再往前走一步。
如果这不起作用,通常情况下,它最终会导致我尝试阅读一个或两个框架代码的全部内容,以便更全面地理解它。这几乎总是徒劳无功。
听起来不太戏剧化,但当我到了这个地步,仍然没有解决办法的时候,我会觉得很绝望。现在我正在阅读整个代码类。但我很难把这些信息放在上下文中,或者掌握它的真正用途。
举个例子,读下面这样的东西,我可以说它与恢复残存的孩子的碎片有关,但是当我移动到下一个成员或方法时,它只是一个模糊的断开信息。
// For use when restoring fragment state and descendant fragments are retained.
// This state is set by FragmentState.instantiate and cleared in onCreate.
FragmentManagerNonConfig mChildNonConfig;读完整堂课后,我脑子里杂乱无章地想出了许多看似不相关的概念,但仍然不知道它们是如何与自己和其他班级互动的。
有时候,我想知道我是不是太笨了,不可能成为高级开发人员。(如果这是真的,可以这么说。我不是想在这里戴上眼罩,假装一切都好,如果不是这样的话)
如果你能做到这一点的话,至少谢谢你能略读我的闲话。我想说到底是
*我已经从事了近十年的专业软件开发工作。然而,我犯了一个错误,就是找一个角色,要么我独自工作,要么B)很少考虑到个人成长。我当然是自导学习,在我的职业生涯中学到了很多东西,但我仍然觉得与处于类似位置的人相比,我落后了。我真的希望能找到一些策略来帮助我把自己提升到更高的水平。
另外,我正在一个合适的软件开发团队中找到工作,在那里我可以进行代码审查,并与同事交流想法。我相信这会有所帮助,但我不确定这是否会如我所希望的那样有益。
发布于 2018-07-12 19:32:16
你说的一切听起来都是合理的。学习复杂的东西真的没有简单的方法。
我鼓励您进一步研究的一个想法(您已经提到过)是在调试器下运行。
如果您可以让一个符号调试器工作,并为所有隐藏的系统组件编写源代码(这在很大程度上取决于您正在使用的语言和工具,如果库源代码都可用)--我发现调试器中的代码只是一个很好的学习工具。
通常-选择一个您能理解的操作或操作(从用户的角度来看,运行该软件)-然后介入并遵循您所经历的过程。在每个阶段的调试中,您都可以决定您想深入了解哪里,在哪里跳过并查看接下来会发生什么。
https://softwareengineering.stackexchange.com/questions/374061
复制相似问题