学习如何编程就是理解如何将想法转换成源代码,再在计算机上运行以实现一个或多个目标。
学习如何编程,包含很多个步骤:
关于应该如何开始学习编程存在好几种思想学派。 有一种思想学派认为像 Assembly 或 C 语言等低级编程语言最适合作为启蒙语言,因为它们要求 新手们编写他们自己的数据结构,学习指针,并且经常要求自行解决计算机科学中的难题。
当然这种“低层优先”的哲学存在些许合理性,因为它迫使初学者在移到像 Web 和移动应用开发等 更高级的主题前先牢固掌握好基础知识。这种哲学理念通常在大学计算机科学教学计划中使用。
“低层优先“型方法的学习过程分为
另一种思想学派认为新手们应该通过参与实际项目来提升自己,项目可以是 用任何编程语言编写的,关键是要能足够引起他们的兴趣以使他们能坚持 解决那些不可避免会出现的难题。
在这种”基于项目“的思想流派中,完成的项目数量是进步的基本单元,这些项目扩展了程序员的能力。 要想实现额外的提升,可以通过参与开源项目,和经验丰富的导师一起工作来学习他们如何改善他们自己的项目等途径获得。
在基于项目的方法中,Python 是个不错的选择,因为它有大量 免费和低成本的入门资料, 并且很多资料中都能找到可用作进一步开发的例子项目。
需要注意的是,对于一个有抱负的程序员来说, Python 是否是一门不错的首选语言这个问题 是非常主观的,并且这些方法并不相互排斥。Python 在大学中也被广泛用于教学,以便 解译计算机科学中的基本概念,这相较与项目优先的方法,似乎更符合”低层优先“的哲学了。
总之,Python 作为学习编程的首选语言是否适合,取决于你自己的学习风格和感觉。 如果你觉得 Ruby 或者 Java 看起来比 Python 更容易学习,那就选它们吧。 编程语言,以及围绕它们的生态系统,都是人造结构。找到一门看起来符合你个人 风格的语言然后尝试下,要知道无论你选择哪种语言,你都需要投入很多个日日夜夜才能 成为一个合格的软件开发人员。
致力于用 Pyhton 或者其它语言实践编程挑战并研究他们的解决方案是了解你是初学者或经验丰富的开发人员的好方法。 以下有众多有实践问题和解决方案的开源项目和站点:
Pytudes 是一个很棒的 Python 程序集合,用于 练习和演示技能。这些问题超出了其他实践问题集中常见的数据结构和算法问题。
交互式 Python 编码面试挑战 是一个很棒的学习和测试 Python 数据结构和算法知识的 Jupyter Notebook。
Kindling 项目 提供了一个精彩的资源列表,可以帮助初学者挑战他们可以解决的编程问题,从而提高他们的技能。
构建你自己的 "x" 不包含练习题,而是提供如何构建自己的编程语言,区块链, 机器人,数据库, 框架 和更多更棒的项目的教程。
Python 编程练习 是一本免费简短的 PDF 书籍,涵盖了许多标准 Python 语言功能,如词典,类和函数。
编程问题 使用包括 Python 在内的 多种编程语言的常见算法和数据结果挑战的解决方案。
Python 基础 包含学习基本的 Python 3 语法的材料和练习, 如变量,函数和列表。
TeachCraft 结合 Minecraft 和 Python 来学编程。
500 个数据结构和算法问题及解决方案 涵盖了大量的计算机科学知识。了解所有这些算法和数据结构并不重要,但对其中许多算法的经验 将对成为更好的开发人员大有裨益。
这些文章是由程序员编写的,他们解释了如何学习代码。你不应将它们视为“这是你必须学习的方式”,相反以下 给出一些你可以考虑作为开始的例子:
学习编程 是一篇很长的文章,但在完全致力于软件开发之前,他已经实践过了 Dan 在数学和工程方面的经验。
做为一个开发者开发 提供有关成为程序员所需品质的一般建议,包括坚持,尊重他人和考虑超出舒适区域的想法。
这张图片会改变你学习编程的方法 涵盖了开发人员使用的许多最新概念和工具的完美图形。这篇文章提醒你,你不会也不应该学习所有东西, 但是你应该选择你想要获得经验的工具,同时一般了解其他的东西。
您是一名与新程序员和初级程序员一起工作经验丰富的程序员吗? 这些文章可以让您深入了解如何构建你的教学经历:
编程语言学习者的五个原则 是教孩子们编程的观点,但对于任何年龄的观众都是一个很好的建议。
用漫画教技术 是一个很棒的资源,它解释了如何使用简单但有趣的图画向学生传授其他困难的技术概念。
向经验丰富的专业人员教授编程 是 Trey Hunter 的视频播客,讲述他向经验丰富的专业人员教授 Python 的经验。
自学计算机科学 意在成为一个自学工具,它带有 许多经典的计算机科学教科书。对于为什么每种资源在你的学习和教学过程中都有用,也有很好的解释。
Fix errors in your Python code before your users see them by monitoring with Rollbar.
Deploy web apps with the Ansible configuration management tool.
Build microservices with Docker, Flask & React in this great course.