algorithm - 编写桌面应用程序所需的最低 CompSci 知识

标签 algorithm qt computer-science

作为业余程序员 3 年(主要是 Python 和 C)并且从未编写过超过 500 行代码的应用程序,我发现自己面临两个选择:

(1) 学习数据结构和算法设计的基本知识,使我成为一名 l33t 计算机科学家。

(2) 学习 Qt,这将帮助我构建长期以来渴望构建的项目。

对于学习(1),大家好像都比较推荐看CLRS。不幸的是,阅读 CLRS 至少需要一年的学习时间(或更多,我不是 Peter Krumins)。我还明白,要使用 (2) 完成任何中等复杂的任务,我至少需要了解 (1) 的基础知识,这让我想到了我的问题:假设我使用 C++ 作为编程选择的语言,CLRS 的哪些部分能让我充分了解算法和数据结构,以便使用 (2) 处理大型项目?

换句话说,我需要对日常应用程序编程任务绝对必要的理论 CompSci 主题列表。此外,我想将 CLRS 用作方便的引用,因此我不想跳过任何对理解本书后续部分至关重要的 Material 。

不要误会我的意思。离散数学和 CompSci 的理论基础已经在我的“待办事项:紧急”列表中大约 6 个月了,但由于大学工作,我没有足够的时间。很长一段时间后,我有 15 天的假期可以做任何我想做的事,我想用这 15 天来构建我真正想要构建的应用程序,而不是坐在我的办公 table 前,拿着笔和纸在手,尝试写下教科书问题的解决方案。

(顺便说一句,我们将高度赞赏关于算法的少数学多代码资源。我刚从高中毕业,我的数学还没有达到应有的水平。)

谢谢:)

最佳答案

这可能被认为是异端邪说,但绝大多数应用程序代码并不需要对算法和数据结构有太多了解。大多数语言都提供包含集合类、搜索和排序算法等的库。您通常不需要了解这些工作原理背后的理论,只需使用它们即可!

但是,如果您从未编写过超过 500 行的代码,那么您确实需要学习很多东西,例如如何编写应用程序代码以使其灵活、可维护等。

关于algorithm - 编写桌面应用程序所需的最低 CompSci 知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375272/

相关文章:

macos - Qt 在停靠栏中显示进度条 (macOS)

c++ - Qt定义类似于-D的变量

machine-learning - 除了数据可视化之外,分类中的数据分离还有哪些指标或指标?

python - 寻找离散函数的全局最小值

java - 如何将算法缩减为更小的部分以便我可以扩展它?

qt - QML 组件枚举类属性

x86 - 现代 x86 CPU 使用什么缓存一致性解决方案?

compiler-construction - 表达编程语言语义 (AST -> ASG)

c++ - 在神经网络上为Levenberg-Marquardt算法选择起始参数

java - 绝对矩阵之和