- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
5年前关闭。
Improve this question
如果这个问题对网站来说过于开放,我们深表歉意,但这似乎是最好的提问地点。
我是一个自学成才的程序员,在他的教育背景下几乎没有数学,在十年的职业生涯中,他慢慢地从前端 Web 脚本和 Web 开发转向了中间层和数据层软件工程。因此,我在某些领域的知识和经验有些欠缺。
在最近与我的经理进行审查后,我向我表明,克服这些差距是我与晋升高级工程师职位之间的唯一障碍。然而,为了做到这一点,我必须为自己找到一种结构化的学习方法,并证明我已经接受了我需要知道的东西。
我个人认为我的弱点如下。请注意,在很多情况下,问题不是我从技术上不理解这些东西是如何工作的,而是我不知道在哪里应用它们或不适合应用它们。例如,我知道接口(interface)是什么,从技术上讲,它做了什么,但我很难区分何时适合使用接口(interface)而不是一组从基类继承的相关 OO 类。因此,与技术上的无知相比,对好的软件设计的无知更多的是——我确实在欣赏、消化和处理诸如松散耦合系统之类的事情时遇到了麻烦。
最佳答案
不久前我还是一名自学成才的程序员,所以我可以理解你的立场。
从那时起,我已经发布了 1000 万个 LOC 应用程序,因此我必须培养洞察力。
三件事帮助我获得软件工程:书籍、代码和人员。
首先,好的工程是关于美的,优雅设计的美,高效机制的美。你需要培养对美的感觉,并且要做到这一点,你需要看到它并讨论它。
像 SICP 这样的书, Refactoring , Head First Design Patterns和 Beautiful Code都是关于漂亮/更好的代码。大多数时候,它们与语言本身(或外来语言)无关。代码完整也很有趣,但不知何故更底层。
在线阅读代码也是培养品味的好方法。我没有想到任何例子,但这是 common question ,你应该很容易找到一些想法。此外,构建一个雄心勃勃的应用程序(游戏、3d 建模器、Web 服务器、数据库)是一个很好的实践:您可能会重做 2 或 3 次以获得更好的架构。
人也很重要。如果你找到一个/几个充满激情的软件架构师来讨论,你将能够面对你对什么是美的看法。我仍在消化几年前与经理进行的一些讨论。
这种“启蒙”是一个持续的过程,所以不要气馁,继续前进。有一天,您会看到带有明显替代实现的丑陋代码,您可以客观地讨论和比较它,它比原来的更好。
关于architecture - 建立软件工程技能的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944122/
hi,我是熵减,见字如面。 在软件工程中,最终的价值交付,都是要通过软件的部署上线来完成的。 那如何将新的或改进的软件功能交付给用户,同时还要确保高质量、稳定性和用户体验,选择适当的部署
hi,我是熵减,见字如面。 在软件开发中,你是否做过性能的优化,譬如: 有一个图片处理的程序,其中包含一个函数用于对图片进行滤镜处理。该函数中包含两个部分:一个可并行化的
hi,我是熵减,见字如面。 在软件开发中,你是否遇到过这种情况: 团队要开发一个简单的购物车应用,项目预期时间是2周工期。负责开发的工程师默认利用完整的2周时间来完成任务
hi,我是熵减,见字如面。 在软件开发中,你是否遇到过这种情况: 你正在开发一个新的软件,你已经完成了测试并发布了软件。然而,在用户开始使用软件之后,你开始接到了大量的错
hi,我是熵减,见字如面。 在软件开发中,你是否遇到过这种情况: 你正在开发一个文件上传的功能,用户可以上传各种类型的文件。按照用户的需求场景,程序应该能够宽容地接受各种类型和格式
hi,我是熵减,见字如面。 在软件开发的中,你是否也遇到过类似的场景: 团队的目标是在1个月内,开发出一款新的社交媒体应用程序。由于时间比较紧,任务重,所以在开发的初期,
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
我是一名优秀的程序员,十分优秀!