Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 编写桌面应用程序所需的最低CompSci知识_Algorithm_Qt_Computer Science - Fatal编程技术网

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

Algorithm 编写桌面应用程序所需的最低CompSci知识,algorithm,qt,computer-science,Algorithm,Qt,Computer Science,3年来,我一直是程序员爱好者(主要是Python和C),从未编写过超过500行代码的应用程序,我发现自己面临两个选择: 我要学习数据结构和算法设计的基本知识,这样我才能成为l33t计算机科学家 2学习Qt,这将帮助我构建我渴望已久的项目 对于学习1,每个人似乎都建议阅读CLR。不幸的是,阅读CLR至少需要一年或更长的学习时间,我不是Peter Krumins。我也明白,要用2完成任何中等复杂的任务,我至少需要理解1的基本原理,这就引出了我的问题:假设我使用C++作为编程语言,CLR的哪些部分可以

3年来,我一直是程序员爱好者(主要是Python和C),从未编写过超过500行代码的应用程序,我发现自己面临两个选择:

我要学习数据结构和算法设计的基本知识,这样我才能成为l33t计算机科学家

2学习Qt,这将帮助我构建我渴望已久的项目

对于学习1,每个人似乎都建议阅读CLR。不幸的是,阅读CLR至少需要一年或更长的学习时间,我不是Peter Krumins。我也明白,要用2完成任何中等复杂的任务,我至少需要理解1的基本原理,这就引出了我的问题:假设我使用C++作为编程语言,CLR的哪些部分可以让我充分了解算法和数据结构,以便使用2进行大型项目

换句话说,我需要一个对日常应用程序编程任务绝对必要的理论CompSci主题列表。另外,我想使用CLR作为一个方便的参考,所以我不想跳过任何对理解本书后面部分至关重要的材料

别误会我的意思。离散数学和CompSci的理论基础已经在我的待办事项清单上列出了大约6个月了,但由于大学的工作,我没有足够的时间。很长一段时间后,我有15天的假期去做我喜欢做的任何事情,我想用这15天来构建我真正想要构建的应用程序,而不是坐在办公桌旁,手里拿着笔和纸,试图写下教科书问题的解决方案

顺便说一句,一个较少的数学更多的算法代码资源将受到高度赞赏。我刚从高中毕业,我的数学没有达到应有的水平


谢谢:

有关算法的数学知识要比CLR少,代码资源要多,请查看。如果你要编写桌面应用程序,我不认为CLR是需要阅读的。如果使用C++,我想是一个更合适的选择。

对于较少的数学,比CLSR算法更多的代码资源,请检查。如果你要编写桌面应用程序,我不认为CLR是需要阅读的。如果你使用C++,我认为是一个更合适的选择。

< P>尝试一些在线的COMP SCI课程。伯克利有一些,麻省理工学院也有。软件工程广播也是一个很棒的播客

请参见以下问题:


尝试一些在线comp-sci课程。伯克利有一些,麻省理工学院也有。软件工程广播也是一个很棒的播客

请参见以下问题:


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


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

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


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

请注意Don的智慧并付诸实践。您能定义您希望应用程序具有的功能吗?你能把这些功能分解成更小的任务吗?你能把这些任务产生的代码组织成一个连贯的结构吗


你当然可以。找出你不了解的任何“危险”领域,例如,需要比你知道的更多数学知识的东西,或者你必须研究的特殊算法,或者找到另一个解决方案,原型解决方案,或者回来问具体的问题。

注意Don的智慧,就去做吧。您能定义您希望应用程序具有的功能吗?你能把这些功能分解成更小的任务吗?你能把这些任务产生的代码组织成一个连贯的结构吗


你当然可以。找出你不了解的任何“危险”领域,例如,需要比你知道的更多数学知识的东西,或者你必须研究的特殊算法,或者找到另一个解决方案,原型解决方案,或者回到原来的解决方案并问具体问题。

如果小型应用程序不是那么容易,从500 loc移动到真正的eve。 正如唐所指出的,你会 需要学习很多关于代码灵活性、重用等方面的知识,您需要学习一些非常基本的配置管理以及可视化源代码安全,svn

但主要的问题是,您需要一种方法来避免被功能性/代码对淹没。这并不容易。我可以建议你做一些事情来“自动”测试你的代码,即使是通过一些回归测试以一种非常基本的方式。否则就很难了

正如你所看到的,我认为它与数据结构、算法或其他任何东西都没有任何关系


祝你好运,让我们知道从500 loc移动到真正的eve,如果小应用程序不是那么容易的话。 正如Don所指出的,您需要学习很多关于代码灵活性、重用等方面的知识,您需要学习一些非常基本的配置管理以及可视化源代码安全,svn

但主要的问题是,您需要一种方法来避免被功能性/代码对淹没。这并不容易。我可以建议你做一些事情来“自动”测试你的代码,即使是通过一些回归测试以一种非常基本的方式。否则就很难了

正如你所看到的,我认为它与数据结构、算法或其他任何东西都没有任何关系


祝你好运,让我们知道

我必须说,坐下来看一本枯燥的旧教科书并不是学习如何有效地做任何事情的方法,即使你在做笔记。以教科书为参考,这样做是最好的学习方式。事实上,使用这样的网站作为参考

至于数据结构——了解哪种结构适合您设想的任何情况:集合排序和未排序、列表ArrayList、LinkedList、映射HashMap、树映射。执行基本操作的复杂性—添加、删除、搜索、排序等,这些操作将帮助您选择在应用程序中使用的适当库数据结构

同时也要确保你对MVC相当热情,也就是说,确保你的模型与你的视图分开,尽可能最好地使用QT前端。最好是让模型和算法自己工作,然后把GUI放在上面。或者在顶部进行单元测试。等等


祝你好运

我必须说,坐下来看一本枯燥的旧教科书并不是学习如何有效地做任何事情的方法,即使你在做笔记。以教科书为参考,这样做是最好的学习方式。事实上,使用这样的网站作为参考

至于数据结构——了解哪种结构适合您设想的任何情况:集合排序和未排序、列表ArrayList、LinkedList、映射HashMap、树映射。执行基本操作的复杂性—添加、删除、搜索、排序等,这些操作将帮助您选择在应用程序中使用的适当库数据结构

同时也要确保你对MVC相当热情,也就是说,确保你的模型与你的视图分开,尽可能最好地使用QT前端。最好是让模型和算法自己工作,然后把GUI放在上面。或者在顶部进行单元测试。等等


祝你好运

这就像说你想搬到法国,那么你应该从一本书中学习法语,哪些是最基本的单词?或者你应该去法国,从经验和模仿当地人中找出你需要知道的单词

编写代码是学习计算机科学的一部分。早在我听说这个词之前,我就开始写代码了,很多人在这个词发明之前就开始写代码了

此外,你说你渴望编写某些应用程序。这是教不到的,所以就去做吧。有些事情你只能从实践中学到


理论基础只会让你更深入地理解你最终会做什么,这主要是模仿别人的方法。唯一需要注意的是,在某些情况下,理论上的东西会告诉你什么是徒劳的尝试-例如,如果你的渴望之一是解决一个NP完全问题,你可能不会成功:-

这就像说你想搬到法国,那么你应该从一本书中学习法语,关键词语是什么?或者你应该去法国,从经验和当地人的模仿中找出你需要知道的词语

编写代码是学习计算机科学的一部分。早在我听说这个词之前,我就开始写代码了,很多人在这个词发明之前就开始写代码了

此外,你说你渴望编写某些应用程序。这是教不到的,所以就去做吧。有些事情你只能从实践中学到

理论基础只会让你更深入地理解你最终会做什么,这主要是模仿别人的方法。唯一需要注意的是,在某些情况下,理论上的东西会告诉你什么是徒劳的尝试-例如,如果你的一个渴望是解决一个NP
如果是完整的问题,您可能不会成功:-

我会说编码的实际方面更重要。特别是,如果您还没有使用源代码管理,那么源代码管理是至关重要的。我喜欢作为一个易于设置和使用的系统,尽管GUI支持还没有成熟到可以达到的程度

然后,我将继续讨论关于编码技术的一个或两个经典,即


您也可以查看。

我认为编码的实际方面更重要。特别是,如果您还没有使用源代码管理,那么源代码管理是至关重要的。我喜欢作为一个易于设置和使用的系统,尽管GUI支持还没有成熟到可以达到的程度

然后,我将继续讨论关于编码技术的一个或两个经典,即



您也可以查看。

我觉得这本质上是一个复制品。有人有不同的感觉吗?呃…不知道现在是否值得关闭。答案差不多。有人能解释一下CLRS的首字母缩略词吗?托马斯·H·科曼、查尔斯·E·莱瑟森、罗纳德·L·里维斯特和克里夫·斯坦的《算法导论》。我觉得这基本上是一个复制品。有人有不同的感觉吗?呃…不知道现在是否值得关闭。答案差不多。有人能解释一下CLRS的首字母缩略词吗?托马斯·H·科曼、查尔斯·E·莱瑟森、罗纳德·L·里维斯特、,还有克里夫·斯坦。我想问题是,我怎样才能避免为了学习手艺而尽可能多地学习comp-sci呢?有些人发现倾听而不是坐着看书是有用的。听起来他不想在这方面做太多的工作,但他有一种感觉,有一些知识可以帮助他…我想问题是,我如何才能避免为了学习这门手艺而尽可能多地学习comp-sci?有些人发现倾听而不是坐着看书是有用的。听起来他不想在这方面做太多的工作,但他觉得有一些知识可以帮助你…事实上,你很少需要写一个AVL树,从最近的SO问题来看,答案是使用哈希表,不管怎样,你通常不需要理解这些工作背后的理论,只要使用它们就可以了我认为你确实需要理解这个理论,这样你才知道该选哪一个!幸运的是,所需的理论是最小的:数据结构操作的复杂性。事实上,你几乎不需要编写AVL树,从最近的SO问题来看,答案是使用哈希表,而不管怎样,你通常不需要理解这些操作背后的理论,只要使用它们我认为你确实需要理解这个理论,这样你才知道该选哪一个!幸运的是,所需的理论是最小的:数据结构操作的复杂性。哦,上帝,不要使用可视源安全哦,上帝,不要使用可视源安全