为Python / C ++初学者有效编写软件的资源/书籍建议
Resource/book suggestion to effectively writing software for python/c++ beginner
我正在寻找有关更有效地编写软件的资源/书籍建议。我刚刚完成了几门 python 课程、c++ 和数据结构,我现在知道如何编程的基础知识,但我还有改进的空间。我会说我有大约100小时的经验。我正在寻找从这里去哪里...目标是培养我的编码技能。
我不想要一本只供阅读的书,而是一本有具体例子的书,我可以从中学习。我认为我最大的问题是我自己制定了自己的设计方法,并编写了所有代码,我需要扩大视野,看看其他人是如何做到的。
我是一个初学者程序员(python和c ++(,我觉得我花了太多时间调试和重构我的代码,并自学设计方法。我最长的项目是500 LOC,我需要一本好书,最好有具体的例子,而不是自己重新发明轮子。我需要的最重要的事情是设计软件。我听过各种关于四人帮书的谈话。这是我在这一点上应该研究的事情吗?
我肯定学到了很多东西,但我认为如果我能从一本写得很好的书中学习,我的进步会快得多。到目前为止,我学到的一切都是"为了完成我的项目",用于其他课程,我想更精通编码。我想我最终的工作将涉及编码的重要方面。
感谢您抽出宝贵时间回答或讨论这个开放式问题。
编辑:Python有等效的列表吗? - 权威C++书籍指南和列表
一开始就远离GoF的书。真正帮助我起步的书是更容易消化的......
http://www.amazon.com/Design-Patterns-Explained-Perspective-Object-Oriented/dp/0321247140/ref=pd_sim_b_20
这是GoF书的温和入门书。这将使您处于正确的心态,并为任何OO语言提供有用的信息。祝你好运。
设计很重要。非常重要。但是为什么?这样您以后就不会遇到可扩展的问题,这样当您离开组织时,其他人可以轻松掌握和维护您的代码等等。
然而,在讨论上述内容之前,真正重要的是编写好的算法和构建可扩展的数据结构。因此,即使您拥有非常出色且设计良好的代码,但低于平均水平的算法,它也没有用,因为您不是在为客户提供设计,而是在为客户提供出色的算法。设计是为您和您的公司以及未来的。人们可能会说,一旦有好的设计后端算法,您可以随时更改。这是不对的 开发人员是拖延者(阅读Perl :)的创建者对优秀程序员的三个优点(。甚至创建STL C++Alex Stepanov也为一些算法编写了一个二次例程,他说STL已经发布了很长时间,他同意如果他不偷懒,他会做更好的复杂事情。
我并不是说设计不重要(请阅读我答案的起跑线(,但是包括算法(具有很大的空间/时间复杂性(,可扩展数据结构在内的所有内容都与设计齐头并进。在你进入设计之前,这两个应该掌握或学习好,并练习好(相信我,你会在编码时遇到反模式,你自己会自动将它们转换为好的设计模式(。在课程中,您将自己发明设计模式(但是像GOF或Head First Design Patters这样的书可能会给你一个良好的开端(。
我会推荐一本Jon Bentley的书,名为"编程珍珠"。如果你愿意,试着用Python写这些东西。解决这些问题,你会收获很多。然后去设计的东西。
如何设计程序对我真的很有帮助,它可以在互联网上免费获得(http://www.htdp.org(。它使用scheme/racket,这与c ++和python等语言有很大不同,但设计原则仍然适用,并且是一本大学中常用的初级/中级软件设计课程的书。
- 具有瞬态资源的RAII类
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 允许从 std::map 的密钥窃取资源?
- 参考资源文件VC++中的$(SolutionDir)
- 如何维护资源管理器项目视图中当前可见的项目列表
- 将 std::allocate_shared 与多态资源分配器一起使用
- 使用RAII在给定次数的迭代后重新分配资源
- 资源管理设计模式
- 如何跨平台将二进制资源构建到程序中?
- SetDlgItemInt 不会更改嵌入资源的编辑框
- Klocwork Inside的资源泄漏
- 从存储为 Windows 资源 (c++) 的 png 中获取 png 文件数据
- C++链接时间资源"allocation"而不定义
- 用于在并发环境中访问 MMIO 的软件模式
- 有没有办法实现 fmu 导出到基于 c++ 的仿真软件以使用 fmi?
- 使用 Bazel 生成 QT 资源文件
- 编译器资源管理器和 GCC 具有不同的输出
- 从C++调用 Python 并访问通过 Anaconda 安装的软件包
- 为Python / C ++初学者有效编写软件的资源/书籍建议
- 如果软件升级为uac (c++),则无法在资源管理器中访问远程共享