作为一个业余爱好者程序员已经3年了(主要是Python和C),并且从未编写超过500行代码的应用程序,我发现自己面临两个选择:
(1)学习数据结构和算法设计的基本知识,这样我就可以成为一名计算机科学家.
(2)学习Qt,这将帮助我建立我一直渴望建立的项目很长一段时间.
对于学习(1),每个人似乎都建议阅读CLRS.不幸的是,阅读CLRS会花费我至少一年的学习时间(或者更多,我不是Peter Krumins).我也明白,使用(2)来完成的任何中等复杂的任务,我将需要至少了解的基础知识(1),这使我想到我的问题:假设我使用C++作为首选的编程语言的哪些部分CLRS会给我足够的算法和数据结构知识,可以使用(2)来处理大型项目吗?
换句话说,我需要一个理论上的CompSci主题列表,这对于日常应用程序编程任务来说绝对必不可少.此外,我想使用CLRS作为一个方便的参考,所以我不想跳过任何对理解本书后面部分至关重要的材料.
别在我这里弄错了.离散数学和CompSci的理论基础已经出现在我的"TODO:URGENT"列表中大约6个月了,但由于大学工作,我没有足够的时间.很长一段时间后,我有15天休息时间去做我喜欢的任何事情,我想花这15天来构建我真正想要建立的应用程序,而不是坐在我的桌子上,笔和纸在手,试图写下来教科书问题的解决方案.
(顺便说一句,关于算法的数学代码资源越来越少,我将非常感激.我刚从高中毕业,我的数学水平还没有达到应有的水平.)
谢谢 :)
这可能被认为是异端,但绝大多数应用程序代码不需要太多理解算法和数据结构.大多数语言都提供了包含集合类,搜索和排序算法等的库.您通常不需要了解这些工作原理背后的理论,只需使用它们即可!
但是,如果你从未写过超过500行的东西,那么你需要学习很多东西,例如如何编写应用程序的代码以使其灵活,可维护等.