热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

零基础者学习编程真的难吗?看了这些帮你掌握正确学习方法

很多人觉得学编程难,大都是掌握方法,而不是能力、性别或其他原因。除了想达到行业顶级开发者的水平,如果你是想学编程,掌握了对的方法,就能学好。个人通过题目描述分析,应该是学习方法不对

很多人觉得学编程难,大都是掌握方法,而不是能力、性别或其他原因。除了想达到行业顶级开发者的水平,如果你是想学编程,掌握了对的方法,就能学好。

个人通过题目描述分析,应该是学习方法不对,没有培养出编程的思维和能力,这是一个因果关系。

学习编程的过程,大致如下:

看书、看博客、学课程或者看视频等
模仿着书上或者博客的代码,进行复现,复现不重要,思考才是关键 ️
思考学习别人思路后,脱离书本和博客,完全自己实现功能
自己实现一些 DEMO,看别人项目代码,与别人讨论,提升代码能力
在别人的框架和要求下,写代码实现业务
自己负责别人设计的模块的实现
独立设计业务模块并开发实现
负责大项目框架设计和拆分,带领别人进行开发
其他高阶的架构和管理工作,已经不仅仅是代码能力了
感觉编程难,我在初学编程的时候也遇到过。刚刚学习编程会走很多弯路,想找一个合适的方法学习。有这样想法是值得鼓励的,至少是知道怎么学习更好。我本人有些参考经验,可以吸取适用自己的地方。

计算机重点在于用已有的知识搭构建功能,而构建功能的步骤是固定的,只是需要掌握牢基础知识,并且提升自己的思考能力。思考能力也算是程序员的核心了(不是看,不是写,而是思考,如果照着别人代码写同时带上了思考,那么也是有效果的)。我建议的学习方式如下:

学习基础知识:

  1. 数据结构,经典算法。可以根据学到的算法和数据结构解决书本习题后面的算法问题(注意不是看了解答过程再重复写一遍,而是在自己不知道情况下写一遍,代码量可能是只有十几行,写花不了多少时间,只是思考得花些时间——一定要坚持,我曾经思考了几天就为了解一道算法题,当然根据自己的情况,不用一下选这么难的。这里培养的是解决问题的思考能力)。

  2. 学会写递归,同时把递归变为循环实现相同的功能。(此处是完善思考能力,再提升一步)

当你学会前面2条的时候,即使你是第一次接触计算机,经过努力和学习掌握后水平已经超过了入门的同学,达到了中级的概念。这是内功,不是说你对某个语言运用自如了。武林高手比武比拼的是内功,外面掌握语言学习用法只是熟悉程度是外在的招式(这个非常容易掌握,多写几次就会)。

为什么开始就进入内功的修炼,因为万法归一,万变不离其宗,无论你以后学习什么语言,学了多少语言,刚进入的水平就是中级,一劳永逸。

后面只需要花点时间掌握语言的用法,方法调用,框架的使用,那么恭喜你,你的能力已经可以胜任大部分互联网公司的职位了。(这里得注意顺序,是先掌握了核心的算法和思想后才是熟悉语言本身)

下面是通往高手的进阶篇,只有在你掌握上面的东西后,才能开启下面的技能:

开发过程中多思考,多尝试新东西,思考是通往编程高手应该具备的基本素质。

这里还是思考,和上面还有不同。思考不是瞎思考,而是有深度思考,出色的程序员写代码的时间非常少,大部分都是在思考。给你一个功能,需要根据自己有的基础知识在脑海中想怎么实现合理,高效,想清楚后再写,而不是边写边改边想,那么水平永远都是止步不前的抑或进步和蜗牛一样。

当思考同一类问题,用的时间越来越少,那么侧面反映出水平提高了,可以试着思考更复杂的问题。思考需要循序渐进,不能一开始拿一个非常复杂的问题思考,而是在自己跳一下就能够到的高度。

对于在公司上班,你会发现思考时间越来越少,完全是需求到了就马上知道怎么写了。然后就是无聊听着公司领导介绍,开会讨论。但是不要忘了,自己得给自己找事做,停止思考或者习惯了某种思考模式后进步就会减慢,要进步就要不断尝试新东西,多思考。


推荐阅读
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 阅读本文大约需要3分钟。微信8.0版本的发布带来了许多令人振奋的新功能,如烟花特效和改进的悬浮窗,引发了用户的热烈反响。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • 探讨架构师在项目中应如何平衡对产品的关注和对团队成员的关注,以实现最佳的开发成果。 ... [详细]
author-avatar
___何鵬
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有