敬畏知识

news/2025/3/10 2:52:25/文章来源:https://www.cnblogs.com/AurLemon/p/18749724

半夜写一篇散文,记录一则自己最近的观察和浅显的结论。

对于计算机专业的学生来说,「自学」是再普通不过的一个技能。老师上课不教、排的专业课全是水课、教的听不懂,这些问题都是国内大多数高校计算机教学的常态。但“自学”的方法到底是什么?对每个人来说,答案是不同的,效率和成果也各不相同。

以我的个人经历和身边案例来看,自学是一个和自身学习能力、思考方式和自制力高度相关的学习方式。特别是对于计算机这类十分注重实践的行业来说,理论和实践是相辅相成、缺一不可的。对于自主学习,结合我身边的案例,最需要注意、也是最影响效率的就是不要好高骛远、眼高手低。

对于一个没有掌握 Web 领域知识,或者没有编程经验的人来说,在学习一个方向的知识的时候,最需要警惕的就是像“前端这个东西很简单,给我一周我就搞定”、“这个 CSS 我忘了,我后面多看看就 OK 了”之类的话。对于从业者或者已经有过类似经验的朋友来说确实如此,但若是一个初入门者,如此简单地把一个领域的知识用一句十分简单的话概括完了,这是十分危险的。

诚然,绝大部分程序员的工作都是 CURD、调参侠、“面试造火箭,工作拧螺丝”,但有能力承担这些工作的前提是:你至少得会用相关的框架,熟悉相关的语言。比方说 Java 的后端,只需要会 SpringBoot 吗?你至少得了解和用过 Servlet、Tomcat、MyBatis、Redis 之类的东西,甚至还能扩展到各种后端相关的内容,比方说代理服务器 Nginx、Apache 等(再深就几乎是运维、网络相关的了)。

上纲上线地说,这缺乏一种对知识最基本的敬畏。即便是能背出各种编程圈的热梗、熟读 JavaScript 被人诟病许久的的随意的语法和奇葩类型转换、和别人因为 Vue 好还是 React 好大战三百回合…… 但如果缺少长期的项目实践和理论学习以及思考,就等于什么都不会。

计算机世界中,所有的东西虽然都是相同的,但是他们的规律不足以用一句简单的话总结。程序员的工作就是注重细节,注重逻辑,如果有一处地方出了问题,整个结构都有可能崩塌。笔者在日常生活和工作中也比较讨厌一句简单的话概括总体,关注细节,再从细节到整体,有助于对整个系统的把握。

但是,对于这种学习和认知方式,于笔者而已,其实有点像成长的必经之路,这是反思再学习过程中一个必须经过的,流程?批判的过头也显得我自作聪明。这种思维方式也许主要体现在接触计算机的时间比较早、但是仅限于应用类(比如装装系统、跟着教程搭个网站,但是自己不会修改)、到了高中或者大学才接触计算机教育的朋友身上。

同时,注重实践而完全忽视理论也是在这种计算机科班教育不多、但兴趣引导的人身上比较常见的。实际上,做完一个东西去翻翻官方文档或者源码,亦或是去看看别人的做法会更有收获。兴趣对笔者来说是引路人,但如果兴趣只能带我学到这么点东西,岂不是更像三分钟热度?笔者不敢说已经完全脱离了这种认知,但时常拿出来警醒自己是很有必要的。在学东西的时候,有事没事问问自己几个问题:

  • 这个东西为什么是这样?

  • 这个东西为什么会这样?

  • 这个东西和其它类似的东西相比,不同之处是什么?

还有更多,这里就不列举了(反正笔者在精力还算充足的时候会拿着几个问题拷打下自己,如果不会很累就靠着好奇心继续去查东西了)。

保持谦虚倒也是一个很重要的心态,身边总会有类似经历或者类似水平的人,即便自己水平略高一筹,也不要好为人师;反之同理。不过这有个趣事,在笔者第一次去学校实训室“面试”(就是计算机相关的技能比赛,笔者突发奇想去试试)的时候,学长问我会什么,或者有什么项目,我愣了一下,我随即就像报菜名一样说了几个前端框架和后端框架的名字,比如 Vue、React、Uniapp、HTML + CSS + JS 三件套基本掌握之类的……

现在回头看,显得十分滑稽,报菜名越多越是显得不自信,我越想证明自己懂得多、会的多,但能否更好的把这些知识和概念组合起来?做项目,这才是核心。我从心底下就不服:自己从小接触计算机,二年级玩虚拟机三年级玩刷机五年级混 DIY 圈,让我背 CPU 参数做梦都能背出来,凭什么我不行?

当然,这种情绪不是我在表面上直接表现出来的,但潜意识就是这种感觉,这其中还带着一点不自信,当天晚上复盘的时候我才反应过来:报的菜名越多,显得你越菜。现在会想起那天的场景还是觉得尴尬。当时学长的表情也是略显无语。实际上,代入面试官的视角,你问他会炒菜吗?他说没炒过,但是我买过白菜、苦瓜、香菜…… 那他到底会什么呢?

知道的技术栈再多,又不花时间去用,有什么用?我说我会 C、C++、Python、Java,实际上会的只是个基本语法,if-elseswitch 之类的基本语法结构哪个编程语言没有?不熟悉具体的逻辑,只能和别人比单词的拼写速度,这是毫无意义的。

后面的日子自己就主要把精力花在造轮子上~ 造过的轮子我也再造,能加深自己的理解便是好的。多做、多想,最大的愿望就是希望自己不犯困,永远充满精力和好奇心。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/896261.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS2022开发跨平台程序(ubuntu x64/aarch64)

1、目标平台安装编译环境sudo apt install openssh-server g++ gcc gdb gdbserver -y目标平台安装ninjiasudo apt install ninja-build目标平台安装较新版本的cmake ,否则VS提示目标平台版本太旧,不支持远程编译。 2、VS创建CMake项目,会有个默认打印Hello CMake的程序。 指…

软件工程作业2

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023这个作业要求在哪里 https://www.cnblogs.com/huanghi4833/p/18760121这个作业的目标 掌握 GitHub 、Git 的基本使用方法, 积累个人编程项目的经验一、PSP表格PSP2.1 Personal Softw…

How Far Can We Go with Practical Function-Level Program Repair? 论文笔记

介绍 (1) 背景现有的很多基于 LLM 的 APR 方法针对的是 single-line 或者代 hunk-level 的程序修复,但它们通常依靠语句级别的故障定位技术。然而,人们普遍认为,准确识别陈述级的断层基本上可能是代价高昂的,即要求细粒度的输入或强有力的假设,从而有可能限制它们的适用性…

Ubuntu安装最新版本的cmake

1、下载地址 Index of /files/LatestRelease ,目前最新的是3.31.6 或者命令行方式下载wget https://cmake.org/files/LatestRelease/cmake-3.31.6-linux-x86_64.tar.gz2、解压tar -zxvf cmake-3.31.6-linux-x86_64.tar.gz3、替换已有的cmake,mv命令必须目标路径为空,所以使用…

[AI/GPT] Anything-LLM : (MIT)

概述: Anything LLM 简述一体式桌面和Docker AI应用程序,内置RAG、AI代理、无代码代理构建器等。urlhttps://anythingllm.com https://github.com/Mintplex-Labs/anything-llm20250220 : 3.7k fork / 38.1K star创建公司:Mintplex Labs Inc.创立时间:2023年12月(首次公开)…

再次认识java反射

一、概述 在认识java反射之前我们先来认识一下什么是动态语言与静态语言。 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以 被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。 主要…

【问题】HashMap的computeIfAbsent方法丢失数据问题分析

问题背景 前段时间碰到客户问题发现是 ConcurrentHashMap的computeIfAbsent导致死循环(ConcurrentHashMap死循环问题分析)就很好奇HashMap的computeIfAbsent会不会也有问题,一试之下发现确实存在问题,相同的代码在HashMap中会丢失插入的数据。 发生原因 【循环添加】时,如…

CFA学习

定量分析 利率 利率的定义:被认为是 ① 平衡借贷双方的平衡点(equilibrium interest rates)② 贴现率(货币的时间价值)③ 机会成本 利率的组成:通货膨胀➕各种风险 计算【现值/终值】用时间轴确实一目了然! # 经济学 # 财务报表分析 # 公司理财 # 投资组合管理 # 权益投…

INFINI Labs 产品更新 | Easysearch 增加异步搜索等新特性

INFINI Labs 产品更新发布!此次更新,Easysearch 增加了新的功能和数据类型,包括 wildcard 数据类型、Point in time 搜索 API、异步搜索 API、数值和日期字段的 doc-values 搜索支持,Console 新增了日志查询功能。 INFINI Easysearch v1.11.0 INFINI Easysearch 是一个分布…

语法trick

for (int i = 1; i <= n; ++i) {cout << dist[i] << " \n"[i == n];}

百万架构师第四十七课:并发编程的原理(二)|JavaGuide

原文链接 JavaGuide《并发编程的艺术》 并发编程的实现原理 目标上节课内容回顾 synchronized 原理分析 wait 和 notify Lock 同步锁回顾原子性 可见性 有序性JMM ​ JMM 是 JAVA 里边定义的内存模型。定义了多线程和我们内存交互的规范。屏蔽了硬件和操作系统访问内存的差异。…

[极客大挑战 2019]Havefun 1

进网站显示一只猫,于是看源代码 发现下面有注释<!--$cat=$_GET[cat];echo $cat;if($cat==dog){echo Syc{cat_cat_cat_cat};}-->所以在后面加上/index.php?cat=dog即可(小猫可爱捏)