如何培养对技术的热爱
这篇博文主要针对计算机专业相关的同学,对于理工科专业的同学有一定的借鉴意义,对于其他专业的同学,还请自行取舍。
背景
初学计算机,可能并不是每个人都能对其产生兴趣,更不要说从其中获得快乐。对于如何培养兴趣,有可遵循的过程,这里不展开讨论,笔者也没有这方面的经验。如果需要获取系统地培养兴趣的知识,请移步心理学相关文章。这里主要是以一个技术爱好者的身份,简单谈论下个人对培养技术的热爱的一些关键品质,希望能对期望培养对技术热爱的同学有一些帮助。
方法论
这里介绍下笔者认为对培养技术热爱有一些帮助的方法论,仅供参考,不做理论上的证明。
保持好奇心
笔者认为好奇心是驱动一个人进步的源动力。在接触事物的时候,多问一下为什么,多探究下原理,对我们更好的解决问题是有帮助作用的,可能这些帮助并不是立即的。比如,需要基于数据库的增删改查实现一个业务功能,如果只是一个工具人,可能只会考虑功能实现。但是,如果带着好奇心去实现这个功能的话,首先可能考虑的并不是该怎么写代码,而是需求来源的背景。虽然了解需求背景对完成这个功能没有直接的作用,但是可以回答自己为什么要实现这个功能。这就如上战场大战,首先要做的是思想工作,只要思想统一了,才能凝聚人心,为获得战争的胜利起到促进作用。其次,了解需求背景,还为我们对功能实现提供可能的改进设计。并不是说领导设计的方案就是完成正确的方案。在软件领域,没有银弹,只要基于一定场景的取舍。如果对需求有了更深的了解,可能会给出更优的改进方案。
不断学习的意识和能力
作为技术人,要有终身学习的意识和能力。不止是软件技术,任何一门技术,只要有应用的场景,都会不断的演进。作为技术人,要对新技术持开放态度,能快速接受和掌握新技术。这里有个误区,是不是说来了新技术就要学习。其实不是这样的。技术发展百花争鸣,我们也不可能把所有的技术都要学会。按照鸿沟理论,我们应重点学习早期大众和后期大众,进入到这个阶段的技术,已经足够成熟,且有稳定的技术支持(说的直接点,就是别人已经帮你踩过坑了)。但是,我们也应关注创新者和早期采用者,因为这些技术很有可能会成为主流技术,掌握了主流技术,就相当于掌握了技术竞争力,这对产品的价值是由促进作用的。
比如,对AI技术来说,大模型已经进入早期采用者阶段,对于期望基于大模型构建产品竞争力的公司来说,投资大模型是一件有利的事情。
关注业内技术发展动向
持续关注业内技术发展动向,是明确自身技术竞争力的有效手段。如果知道自身技术所处的位置,就能更好的明确后续的技术发展方向。这一点对应鸿沟理论的创新者和早期采用者。
培养开源兴趣
对软件开发来说,推动软件发展的一个关键因素就是开源。开源对软件的价值这里不在赘述,这里重点说明下开源对培养技术兴趣的价值。开源可以看成是技术人的聚集地,在这里开发者可以寻求帮助、提供帮助、发布开源产品等,简单来说,开源可以让开发者获取志同道合的朋友、培养良好的沟通表达能力和团队协作能力。
善于归纳总结
学习技术,一个让人很头疼的事实是技术资料浩如烟海,让人有种力不从心的感觉。遇到这种情况,说明你对知识的掌握不够系统化,要学会善于归纳总结。对技术知识进行归档、总结、知识结构化、系统化、规范化。
最开始的时候,我们仅限于问题的了解,但是随着问题的深入,逐渐形成知识体系,知识结构化、知识规范化。
比如,编码阶段需要遵从编码规范,数据库设计阶段需要遵从数据库设计规范、接口设计需要遵从接口开发规范等等。此外,还有一些国际标准规范,如各种网络协议标准,软硬件规范等等。
注重实践
技术不会停留在纸上,还要落实到具体的行动。对于软件开发来说,学习了新技术后,接下来就是将该技术应用到具体的场景。实践是检验真理的唯一标准。只有那些经历过现网环境考验的技术才能算得上稳定的技术。
如果一种技术,其使用流程极其繁琐,那么对于这个技术的推广是不利的。比如CORBA技术,就因为过度复杂的使用步骤,使得其没有获得很好的推广,尽管该技术功能很强大。
注重交流与学习
对于技术学习来说,不应闭门造车。在软件开发领域,有个不成文的规定,尽量避免重复造轮子。如果已经有人实现了某个组件,如果该组件提供的能力,已经可以满足需求,且有广泛的使用基础,是没有必要重新写一个新的组件的。如果这个组件的能力不能满足自己的需求,且短时间内并没有新增相关功能的计划,那么这个时候才应考虑实现一个新的组件。
要充分考虑从零到一开发一个组件的难度,也要充分考虑基于现有实现实现一个类似功能的简易程度。
不断培养工程能力
如果说上面的几条建议都是为了让我们具备最佳实践的能力,那么对工程能力的培养,就是将上面的所有最佳实践变成可复制的流程。工程化能力让技术的复用程度达到最大化。
找到技术价值
这里之所以说到价值,还是因为需要一些崇高的东西来进一步凝聚人心。如果从理性的角度出发,人类的一切活动都没有价值。但是作为文明社会,人类的一切活动都有价值。就如一个公司会提出愿景,技术也有自身的价值。明确所参与的项目或研发的产品的技术价值,是让自己更好工作的基础。比如参与购物网站的开发,可以让人们获取更好的购物体验。参与制造汽车,可以帮忙人们更好的出行,等等。
总结
对技术热爱的培养,并非朝夕之事,需要不断的对技术进行投入,并相信技术可以更好的改变自己的生活、他人的生活。这里,笔者梳理出以下方法论帮忙期望培养技术热爱的同学,它们是:(1) 保持好奇心;(2) 不断学习的意识和能力;(3) 关注业内技术发展动向;(4) 培养开源兴趣;(5) 善于归纳总结;(6) 注重实践;(7) 注重交流与学习;(8) 不断培养工程能力;(9) 找到技术价值。最后通过一个脑图来收尾当前文章:
参考
https://zhuanlan.zhihu.com/p/604419303 如何提高对计算机专业的兴趣?
《人类简史》 尤瓦尔·赫拉利 著, 林俊宏 译
相关文章:

如何培养对技术的热爱
这篇博文主要针对计算机专业相关的同学,对于理工科专业的同学有一定的借鉴意义,对于其他专业的同学,还请自行取舍。 背景 初学计算机,可能并不是每个人都能对其产生兴趣,更不要说从其中获得快乐。对于如何培养兴趣&a…...
Vue响应式数据的原理
在 vue2 的响应式中,存在着添加属性、删除属性、以及通过下标修改数组,但页面不会自动更新的问题。而这些问题在 vue3 中都得以解决。 vue3 采用了 proxy 代理,用于拦截对象中任意属性的变化,包括:属性的读写、属性的…...

pytest fixture 用于teardown工作
fixture通过scope参数控制setup级别,setup作为用例之前前的操作,用例执行完之后那肯定也有teardown操作。这里用到fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作。 举个例子: 输出: 说明&…...

39 printf 的输出到设备层的调试
前言 在前面 printf 的调试 我们只是调试到了 glibc 调用系统调用, 封装了参数 stdout, 带输出的字符缓冲, 以及待输出字符长度 然后内核这边 只是到了 write 的系统调用, 并未向下细看 我们这里 稍微向下 细追一下, 看看 到达设备层面 这里是怎么具体的 impl 的 测试用例…...
数字普惠金融、数字创新与经济增长—基于省级面板数据的实证考察(2011-2021年)
参照陈啸(2023)的做法,本对来自经济问题《数字普惠金融、数字创新与经济增长——基于省级面板数据的实证考察》一文中的基准回归部分进行复刻。数字普惠金融、数字创新已经成为驱动经济高质量发展的关键。利用省级面板数据,构建固…...
控制renderQueue解决NGUI与Unity3D物体渲染顺序问题
NGUI与Unity3D物体渲染顺序问题,做过UI的各位应该都遇到过。主要指的是UI与Unity制作的特效、3D人物等一同显示时的层次问题。 由于UI与特效等都是以transparent方式渲染,而Unity与NGUI在管理同是透明物体的render queue时实际上互相没有感知࿰…...

概率论与数理统计:第二、三章:一维~n维随机变量及其分布
文章目录 Ch2. 一维随机变量及其分布1.一维随机变量1.随机变量2.分布函数 F ( x ) F(x) F(x)(1)定义(2)分布函数的性质 (充要条件)(3)分布函数的应用——求概率3.最大最小值函数 2.一维离散型随机变量及其概率分布(分布律)3.一维连续型随机变量及其概率分布(概率密度)4.一般类型…...
BOLT- 识别和优化热门的基本块
在BOLT中,识别和优化热门的基本块之所以关键,是因为BOLT的主要目标是优化程序以更好地利用硬件特性,特别是指令缓存(ICache)。以下是BOLT如何识别和优化热门基本块的流程: 收集性能数据: BOLT开始的时候并不…...
Golang 中的 time 包详解(四):函数详解
在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文讲解一下 time 包中的函数。 func Now() Time 返回当前的系统时间。 package mai…...

【前端 | CSS】5种经典布局
页面布局是样式开发的第一步,也是 CSS 最重要的功能之一。 常用的页面布局,其实就那么几个。下面我会介绍5个经典布局,只要掌握了它们,就能应对绝大多数常规页面。 这几个布局都是自适应的,自动适配桌面设备和移动设备…...
腾讯云宣布VPC网络架构重磅升级,可毫秒级感知网络故障并实现自愈
8月11日,腾讯云宣布VPC(Virtual Private Cloud,云私有网络)架构重磅升级。新架构采用多项腾讯核心自研技术,能够支撑用户构建业界最大 300万节点超大规模单VPC网络,并将转发性能最大提升至业界领先的200Gbp…...

vue 路由页面跳转
从index.vue跳转到data.vue index.vue <el-table-column label"客户数" align"center" :show-overflow-tooltip"true"><template slot-scope"scope"><router-link :to"/system/enterprise-data/index/ scope.ro…...
Vue toRefs:在Vue中不失去响应式的情况下解构属性
Vue toRefs:在Vue中不失去响应式的情况下解构属性 文章目录 Vue toRefs:在Vue中不失去响应式的情况下解构属性什么是响应式?解构Props的挑战使用toRefs保持响应式结论 在Vue开发中,我们经常会在组件之间传递数据。这时候ÿ…...

自定义element-plus的弹框样式
项目中弹框使用频繁,需要统一样式风格,此组件可以自定义弹框的头部样式和内容 一、文件结构如下: 二、自定义myDialog组件 需求: 1.自定义弹框头部背景样式和文字 2.自定义弹框内容 3.基本业务流程框架 components/myDialog/index.vue完整代码: &…...

Linux:iptables防火墙
目录 绪论 1、防火墙 1.1 保护范围 1.2 网络协议划分 1.3 协议:tcp 1.4 四表 1.5 五链 1.6 iptables的规则 1.7 匹配顺序 流入本机:prerouting ------->iuput---------->用户进程(httpd服务)------请求--------响应--------->数据要返…...
MongoDB文档-进阶使用-spring-boot整合使用MongoDB---MongoTemplate完成增删改查
传送门: MongoDB文档--基本概念_一单成的博客-CSDN博客 MongoDB文档--基本安装-linux安装(mongodb环境搭建)-docker安装(挂载数据卷)-以及详细版本对比_一单成的博客-CSDN博客 MongoDB文档--基本安装-linux安装&…...
设计模式十四:责任链模式(Chain of Responsibility Pattern)
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许你将请求沿着处理者链进行传递,直到有一个处理者能够处理该请求。 在责任链模式中,多个处理者对象被连接成一个链。当接收到一个请求时…...
将商城项目放到docker-centos7中
1、docker pull centos:7 2、docker run -d -it --privileged 仓库名称/shopcentos:1.1 /usr/sbin/init 注意: /usr/sbin/init 必须加,否则没法使用systemctl启动mysql 3、安装mysql教程 安装msyql教程:https://blog.csdn.net/davice_li…...
C# Winform 自动获取 软件版本号
C# Winform如何自动获取版本号 方案一 缺点是不适配,clickones发布的版本 public static string GetVersion() {try {return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();}catch{return System.Ref…...

基于C++实现了最小反馈弧集问题的三种近似算法(GreedyFAS、SortFAS、PageRankFAS)
该项目是一个基于链式前向星存图、boost(boost::hash、asio线程池)以及emhash7/8的非官方实现,实现了最小反馈弧集问题的三种近似算法。该问题是在有向图中找到最小的反馈弧集,其中反馈弧集是指一组弧,使得从这些反馈弧…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...