当前位置: 首页 > 科技观察

学会了这11个主要的元知识概念,妈妈再也不用为我写代码发愁了!

时间:2023-03-16 18:09:14 科技观察

小新认识的程序员中,大多更注重实际操作和实践,不太在意知识点的学习。尽管那些基础知识在编码中往往起着不可替代的作用,但仍然难逃被低估或忽视的命运。当然,还有大量的知识学习、指导文章或课程,成为大家“投机取巧”、短时间内掌握大量核心知识的“捷径”。并不是说这个“捷径”不好。在大多数情况下,有很多指南可以指导读者学习最热门的语言和最热门的知识,成为行业中的佼佼者。尽管这些指南可能有用,但它们只让读者了解表面价值。这些指南提供了一条浅显的学习路线。想要往更深的层次发展,还是需要自己慢慢的去实践和摸索。因此,小新今天帮大家梳理了“获得成为真正高效开发者所需的深度知识”。但是,这些不常见的编程“元”知识还是需要读者积极去学习的。编程元知识是计算机科学专业毕业生的必备知识,而自学者经常会错过。编程元知识是查看和编写代码的基础。PhotobyAphinyaDechalert-这些是“元”本文提供了一个清单式的指南,供读者浏览和选择这个新鲜而好奇的知识袋。大局综合指南(主要与语言无关)—AphinyaDechalert1.数组!因为一切都是数据在几乎每个教程中,您都会遇到一个非常简单的数组版本。比如著名的平面一维数组,包含几个元素。但在现实生活中,可以用数组表示的数据种类、形状和奇点更多。当涉及到生产级数据集时,多维和交错数组是经常使用的类型。如何优化这些数组的结构以供创建和使用,决定了开发人员能否高效地执行任务。2.谈算法每个人谈起“算法”,就好像它是一个被AI唤醒的会给大家带来厄运的神秘物体。或许这只是大众的一种看法。在开发人员加入编程潮流之前,算法只是编程中的一系列可重复规则以实现特定结果。在算法方面,了解排序算法的机制可以帮助开发人员在处理大量数据时保持理智。有时,问题出在数据和数据处理上。如果您熟悉针对特定类型数据设计和测试的方法,则可以减少对列表的sort()等方法的依赖。这是因为sort()倾向于运行自己的算法,该算法因绘图引擎而异。当您编写自己的算法时,您可以更好地控制代码处理的数据的质量和速度。3.SOLID设计原则SOLID是编程中五个设计原则的集合。这五个原则是可以实现面向对象编程的模式。SOLID原则的用处在于提高代码灵活性、长期可维护性,以及提高开发人员对工作方式的整体理解。除了创建健壮的代码之外,SOLID还形成了敏捷软件开发的核心理念。4.测试不要只学习如何测试,还要学习研究测试背后的理论。在测试方面,开发人员往往只关注单元测试,而没有弄清楚整体意识形态的机制以及为什么它们是健壮代码的基础。测试分为基于功能的测试和非功能测试,如性能、安全性、可用性和兼容性测试。这些测试通常优先级较低,或者根本不考虑。重要的是,测试还允许开发人员运行假设场景并预先确定数据的形状,以及在编码开始之前预测潜在的问题。5.树有时听说“树”。这里的“树”不是指通常生长在泥土中提供氧气的植物,而是基于关系的基础设施——通过节点、叶节点、子节点、父节点、兄弟节点访问来构建数据。如果您使用过HTML,就会听说过DOM树。那是一种树。二叉树是一种树,其中每个节点都由两个子节点连接,这会创建一个金字塔样式的图形,一直返回到顶部。但树远不止于此,它还涉及性能、处理数据以及如何快速检索数据。6.动态规划动态规划是一种通过递归地将复杂问题分解为尽可能小的子问题来解决复杂问题的方法。它是一种可以跨多个学科使用的编程技术,不仅限于代码。动态规划的关键点是它使用递归意味着一个问题只被解决一次,并且可以优化工作量而不是根据特定的重复算法组合事物。起初,动态规划的概念可能令人困惑,因为它类似于算法。但是动态规划和算法明显不同,具有不同的机制,学习动态规划从长远来看可以帮助开发人员成为更好的程序员。7.哈希表?(与Hashbrowns无关)以易于访问和理解的方式组织大量数据的程序。哈希表是另一种存储和检索数据的方法。当涉及大型数据集(具有数百万个数据点)并且需要快速数据检索时,哈希表是一种常见的选择。但同时,哈希表也可以针对本地应用程序存储中较小的数据集进行设计,以提高效率并对特定集进行分类。8.二分查找又回到了另一个与数据相关的话题。二进制搜索是一个需要探索的重要主题,因为它与性能有关。要使二分搜索正常工作,必须对要搜索的数据集进行预排序,以便算法可以快速遍历每个数据点并确定是否存在匹配项。关于二分查找,有多种实现方式,通常是算法和递归的混合。二分查找的思想可以应用于不同的语言,它更多的是基于数学推理的技巧而不是实际代码。9、认真对待进程、线程和并发当你开始关注进程、线程和并发时,意味着你已经开始深度编程了。然而,由于进程、线程和并发主要面向后端开发人员,作为前端开发人员,您可能从未遇到过它们,但了解它们的工作原理还是有好处的。因为它有助于全面了解计算机的工作原理以及代码如何作为人类、渲染引擎/解释引擎和机器之间的沟通桥梁。了解这些概念还有助于您了解存储系统的工作原理以及您编写的代码如何影响性能。10.链表除非你使用C++或Python,否则不太可能使用链表。尽管链表看起来与数组非常相似,但链表具有某些不同于数组的优点和缺点。如果您开始研究数据如何表示为链表,那么它非常适合处理大型数据集,因为它的容量是无限的。如果数据太大,您最终将需要调整数组的大小。链表可以维护数据之间的“联系”。11.设计模式的艺术一切都归结为模式。退后一步,纵观全局,确定您之前是否遇到过同样的问题,这时设计模式就开始发挥作用了。如果可能,建议使用设计模式以节省时间,防止潜在问题进一步发展,并为编码过程创建标准。虽然设计模式似乎是一个需要学习的大领域,但它实际上减少了将来由于结构不足或结构薄弱而可能从您的代码中出现的笑话数量,从而带来了良好的投资回报。从某种意义上说,设计模式就像是预先设计好的蓝图,有助于在持续的实际应用中保持代码的可读性和可理解性。EpilogueProgramming不仅仅是学习语言的工作原理。语言、框架和库背后隐藏着一些机制和技术。希望这份元知识指南能让您对编码有更全面的了解,而不仅限于……好吧,代码本身。ifelse语句会让很多刚入门的程序员感到困惑,但是掌握ifelse语句也是证??明知识的积累和应用达到了一个新高度的标志。不一定要全部都懂,但是这些知识点对以后的编程有帮助。了解或至少了解上述主题如何发挥作用并融入大局将有助于加快编码过程并提高您创建的代码的潜在健壮性以防止残缺和衰退。加油,你们这些聪明有才华的程序员!