热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

关于学习编程,我曾走了一些弯路

大家好,我是程序员吴师兄,刚刚跑完三公里,明天就能完成100公里的里程碑了,以前跑步的时候喜欢带着耳机听音乐,

大家好,我是程序员吴师兄,刚刚跑完三公里,明天就能完成 100 公里的里程碑了,以前跑步的时候喜欢带着耳机听音乐,现在越来越喜欢摘下耳机边跑边想事情,回想过去的失败教训,规划未来的发展。

今天这篇和大家简单分享一下我对学习编程的一些想法,希望能带给你一些思考。

不知不觉自己的编程生涯已经有 6 年,变秃了,也变强了。

在学习编程的过程中遇到过不少弯路,有的弯路很短,走进去就当散步,马上就能出来,增长了一些经验倒是好事;有的弯路是五连发夹弯,资深编程老司机都容易翻车;但还有一些弯路更可怕,它们前半段是笔直的,后半段却来了个大转弯,弄不好你以为走在康庄大路上,实际上南辕北辙却浑然不知。

我所知道的一个“隐形弯路”就是用学生的思维学习编程

一、记笔记 Vs 写技术教程

在我们十几年的求学生涯中,关于知识的获取基本上都在执行以下步骤: 学习课本上给的教程案例,练习课后的配套习题,如此反复,直到通过考试。

很多学生思维的人会把这种学习方式映射到编程上:学习基础语法,练习几个小的教学案例,如此反复,直到认为学会编程。

在学习编程的过程中,读书时记笔记的习惯变成了抄代码,变量名、if语句是否换行、函数名完完全全照搬书中案例。

不可否认,在初期抄代码是不错的一个入门方式,每次都可以成功的运行代码极大的增进了学编程的信心,但一直抄很明显不是理智的行为,需要调整为写技术教程

当你自己去写技术教程的时候,你必然会重新回顾一下整个流程,甚至会亲自再操作一遍,很容易发现之前学习过程中的疏漏点,为了弄明白它,你会查阅相关的资料,知识点得到了补充。

其次,由于你写的技术教程是发布于网上,为了让更多人看明白、更多人认可,肯定会尽可能的讲清楚,在讲清楚的过程中,对于所学的知识更加全方位的了解。

二、害怕未知 Vs 接受未知

学生时代大家总是会如饥似渴的学习,想尽办法把所有难题都弄明白,学生害怕的是未知,害怕一切不确定的问题,不知道问题是哪个范围,一旦问题找不到方向,总是会陷入焦虑的状态。

由于所学内容被限定了范围,所以总能通过书本、同学、老师、互联网找到明确的答案,即使无法弄明白也明确知道这个知识点属于哪个明确的范围,只是由于自己的问题做不出来而已。

但编程不同,很多编程问题无解的,无人知晓怎么去解决。

为了学好编程,我们必须忍受一定的未知。

未知是永远存在的,这是一个客观规律现实,不因人的意志而改变,和客观现实做斗争是无效的行为。

其次,有些未知的事情就是无解,把时间精力投入到无解的事情上属于浪费,有些未知的事情是因为当下的知识贮备不足以解决,需要忍受这一时的未知、咬咬牙坚持学习后面的内容才能得出答案。

三、按部就班 Vs 不断回溯

课本上的内容都按部就班阶梯式上升,如果没有学会前面的 A 内容,后面的 B 内容根本搞不懂。

由于未知的存在,学习编程过程中总是有一些问题会拦住我们,我们需要做的是先记录它,然后搁置在一旁,继续前行,继续学习新知识、练习新技能、接触新领域,不断的积累,不断的成长,以后时不时回溯一番,把它拿出来重新审视,说不定在学到某个新知识、练习某个新技能、接触某个新领域的时刻突然豁然开朗:哦,原来是这么一回事


推荐阅读
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • SQLite 动态创建多个表的需求在网络上有不少讨论,但很少有详细的解决方案。本文将介绍如何在 Qt 环境中使用 QString 类轻松实现 SQLite 表的动态创建,并提供详细的步骤和示例代码。 ... [详细]
  • 作为一名程序员,从大学步入职场后,常常感受到一种难以言喻的空虚感。这种感觉或许源于对生活的不满、职业发展的瓶颈,或是日常琐事带来的压力。本文将深入探讨这种复杂的情感,并尝试寻找解决之道。 ... [详细]
  • 深入解析:阿里实战 SpringCloud 微服务架构与应用
    本文将详细介绍 SpringCloud 在微服务架构中的应用,涵盖入门、实战和案例分析。通过丰富的代码示例和实际项目经验,帮助读者全面掌握 SpringCloud 的核心技术和最佳实践。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 深入理解Spring:Aware接口、异步编程与计划任务
    本文将带你深入了解Spring框架中的 Aware 接口、异步编程以及计划任务。通过具体示例和详细解释,帮助你掌握这些核心功能的实现原理和应用场景。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
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社区 版权所有