如何培养对技术的热爱
这篇博文主要针对计算机专业相关的同学,对于理工科专业的同学有一定的借鉴意义,对于其他专业的同学,还请自行取舍。
背景
初学计算机,可能并不是每个人都能对其产生兴趣,更不要说从其中获得快乐。对于如何培养兴趣,有可遵循的过程,这里不展开讨论,笔者也没有这方面的经验。如果需要获取系统地培养兴趣的知识,请移步心理学相关文章。这里主要是以一个技术爱好者的身份,简单谈论下个人对培养技术的热爱的一些关键品质,希望能对期望培养对技术热爱的同学有一些帮助。
方法论
这里介绍下笔者认为对培养技术热爱有一些帮助的方法论,仅供参考,不做理论上的证明。
保持好奇心
笔者认为好奇心是驱动一个人进步的源动力。在接触事物的时候,多问一下为什么,多探究下原理,对我们更好的解决问题是有帮助作用的,可能这些帮助并不是立即的。比如,需要基于数据库的增删改查实现一个业务功能,如果只是一个工具人,可能只会考虑功能实现。但是,如果带着好奇心去实现这个功能的话,首先可能考虑的并不是该怎么写代码,而是需求来源的背景。虽然了解需求背景对完成这个功能没有直接的作用,但是可以回答自己为什么要实现这个功能。这就如上战场大战,首先要做的是思想工作,只要思想统一了,才能凝聚人心,为获得战争的胜利起到促进作用。其次,了解需求背景,还为我们对功能实现提供可能的改进设计。并不是说领导设计的方案就是完成正确的方案。在软件领域,没有银弹,只要基于一定场景的取舍。如果对需求有了更深的了解,可能会给出更优的改进方案。
不断学习的意识和能力
作为技术人,要有终身学习的意识和能力。不止是软件技术,任何一门技术,只要有应用的场景,都会不断的演进。作为技术人,要对新技术持开放态度,能快速接受和掌握新技术。这里有个误区,是不是说来了新技术就要学习。其实不是这样的。技术发展百花争鸣,我们也不可能把所有的技术都要学会。按照鸿沟理论,我们应重点学习早期大众和后期大众,进入到这个阶段的技术,已经足够成熟,且有稳定的技术支持(说的直接点,就是别人已经帮你踩过坑了)。但是,我们也应关注创新者和早期采用者,因为这些技术很有可能会成为主流技术,掌握了主流技术,就相当于掌握了技术竞争力,这对产品的价值是由促进作用的。
比如,对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的非官方实现,实现了最小反馈弧集问题的三种近似算法。该问题是在有向图中找到最小的反馈弧集,其中反馈弧集是指一组弧,使得从这些反馈弧…...
Semi.Avalonia完整指南:5个步骤打造现代化跨平台UI界面
Semi.Avalonia完整指南:5个步骤打造现代化跨平台UI界面 【免费下载链接】Semi.Avalonia Avalonia theme inspired by Semi Design 项目地址: https://gitcode.com/gh_mirrors/se/Semi.Avalonia 你是否正在为Avalonia项目寻找一个既美观又实用的主题库&#x…...
Balsamiq Wireframes 从零到一:新手快速上手指南
1. 认识Balsamiq Wireframes:手绘风格的线框神器 第一次打开Balsamiq Wireframes时,你会被它独特的手绘风格吸引。这款工具就像是把设计师的草图本搬到了电脑里,所有UI元素都带着铅笔素描的质感。我刚开始接触产品设计时,最头疼的…...
手把手教你解决Sophus安装中的std::optional错误(Ubuntu20.04环境)
手把手教你解决Sophus安装中的std::optional错误(Ubuntu20.04环境) 如果你正在Ubuntu 20.04上搭建SLAM开发环境,安装Sophus库时遇到std::optional未声明的编译错误,这篇文章将为你提供一套完整的解决方案。这个错误通常与C标准版本…...
终极指南:Data-Science-Roadmap模型部署与MLOps从开发到生产环境的完整流程
终极指南:Data-Science-Roadmap模型部署与MLOps从开发到生产环境的完整流程 【免费下载链接】Data-Science-Roadmap Data Science Roadmap from A to Z 项目地址: https://gitcode.com/gh_mirrors/da/Data-Science-Roadmap Data Science Roadmap项目提供了从…...
告别复制粘贴!手把手教你理解STM32F103C6T6点灯代码里的‘*(unsigned int *)0x4001100C’到底在干什么
从机器码到电子流动:解码STM32寄存器操作背后的硬件语言 当你第一次看到*(unsigned int *)0x4001100C & ~(1<<13);这样的代码时,是否感觉像在阅读外星文字?这串看似随机的数字和符号组合,实际上是连接软件世界与硬件物理…...
代码随想录算法训练营 Day40 | 动态规划 part13
647. 回文子串 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 class Solution { public:int countSubstrings(string s) {int n s.size();vecto…...
HDMI矩阵主要解决什么问题
随着VGA/DVI接口的矩阵慢慢退出市场,现在信号源和显示设备慢慢都统一到HDMI接口了。HDMI矩阵从早期的监控室用于切换硬盘录像机的信号到会议室用来切换会议摄像机,它的核心作用就是解决多路 HDMI 信号的输入、然后切换或分配到多路HDMI输出的问题&#x…...
手把手教你用Python搞定CTF中的文件逆序与LSB隐写(附emoji解密)
手把手教你用Python破解CTF中的文件逆序与LSB隐写术 第一次接触CTF比赛中的MISC题目时,很多人会被那些看似普通的文件难住。一个没有后缀名的"zip"文件,一张看似平常的PNG图片,背后可能隐藏着需要层层解密的flag。本文将带你从零开…...
Desktop Postflop专业实战:深度解析高性能GTO求解器的技术架构与应用
Desktop Postflop专业实战:深度解析高性能GTO求解器的技术架构与应用 【免费下载链接】desktop-postflop [Development suspended] Advanced open-source Texas Holdem GTO solver with optimized performance 项目地址: https://gitcode.com/gh_mirrors/de/deskt…...
从自动售货机到芯片验证:手把手拆解BDD如何把指数级问题‘压扁’
从自动售货机到芯片验证:BDD如何将指数级问题"压扁"的魔法 当你站在一台老式自动售货机前,投入硬币组合时,是否想过这简单的机械动作背后隐藏着芯片验证领域的革命性算法?35美分的自动售货机验证问题,恰如芯…...
