编程本源

文章目录

  • 引言
  • 编程的本质
  • 工作与编程
  • 编程的未来

引言

知乎上有一个热门的问题,什么是人生的顶级享受? 看到这个问题我回想到了多年前,那个炎热的午后,我在学校的图书馆里,一边参照书籍,一边用着一部破旧的thinkpad敲着一行行Java代码,写一会执行调试一下,或皱眉,或喜笑颜开,这是在外人的视角;而内心世界里,我仿佛就是一个无所不能的魔法师🧙‍♀️,一挥动魔法棒🪄,高楼大厦拔地而起,再念一段咒语,山川河流、各个形态的动物都随我所想的模样出现,最后大喝一声,“启动~”,这个“世界”就仿佛被赋予了生命力一样活了过来,河流唱着歌从高山流下来,经过嬉闹的丛林,丛林里小鹿在跟蝴蝶🦋嬉闹,此时池边蛰伏已久的鳄鱼🐊正准备扑向小鹿,只听我大喝一声,“停~”,整个世界就像按下了暂停键,所有东西都停止在那一刻,于是乎我敲着键盘重新编码鳄鱼的行为,鳄鱼不需要捕食其他动物也能存活,只需要通过呼吸和喝水也能获得足够能量。有人说,你这不胡扯吗,这怎么可能?但这就是可以的,因为这是属于我的世界,这就是编程的世界。

编程的本质

编程的本质是什么,过去我经验尚浅不敢写这种内容,现如今工作久了脸皮厚了,尝试写一下吧。

编程跟其他所有脑力密集型行业一样,本质工作都是设计。政治家的设计,是解决如何让一个国家变得更加富强;建筑师的设计,是解决如何让大楼可以同时兼顾稳定、优雅美观;飞机建造者的设计,是解决如何低成本建造出性能优越的飞机等等,而编程也是一样,程序员也就是coder解决的是,如何用软件解决真实世界的各个业务场景的问题,同时在性能和成本方面都要有一定的要求。但有别于其他行业,编程可以让设计者快速、低成本的验证自己的想法,设计飞机的人,要是下一秒就能看到自己亲手设计的飞机翱翔在天空中的姿态,设计社会框架例如理想国的人,要是下一秒就能看到自己设计的国度等等,那会是多么幸福的一件事情,而编程恰恰就可以!在大部分场景,只需要在编译器中执行一下,自己的想法立马就能得到验证。

因此,虽然编程发展了几十年,相关的编程语言数不胜数,涉及的领域从最开始的破译军事机密、到原子弹研究逐步到现在的互联网商业,再到元宇宙、GPT等等,但万物不离其宗,本质都是通过设计来解决特定场景的问题。因此,程序员的核心竞争力应该是思维或者是设计能力,而远远不是具体的某一门编程语言,某一项技术,更不应该是某个职称。因此笔者认为,如果热爱编程,应该更看重如何提升自己设计能力以及解决问题能力,切勿因为一些非重要的事情乱了道心。

工作与编程

大概是从12年左右开始,国内互联网行业迎来了大爆发,由于行业红利,大批人转到互联网行业来,相关的培训机构也如雨后春笋增长了起来,大幅降低了程序员的门槛。因此互联网行业鱼龙混杂,有特别特别牛的大佬,同时也有很多不具备所谓编程思维的程序员,而目前互联网行业的公司,大部分的工作内容基本都是CURD,更有甚者基本都不编程,每天开不完的会以及拉通对齐。

在这里并不是要批判什么,而是想跟热爱编程的伙伴说,即便工作很忙以及工作上很少用到编程,但也请别放弃对编程的热爱。过去我认为对于程序员来说,工作等同于编程,工作需要什么就去学什么以及使用什么,而因为种种因素,最终逐渐丧失对编程的热爱。而现在,我跟喜欢将工作与编程分开,就像两个进程一样互相资源隔离,但又偶尔保持联系。一方面在将工作做好的同时也提升自己的沟通表达、拆解抽象问题的能力,这个过程中学到的东西是有助于咱们去学编程;另一方面,在学习编程时,提升对技术的深广度理解,又能更好的作用于日常的工作。

在脱离了工作的限制,咱们可以大幅发挥自己的热爱,内心真心想学什么就大胆去学,不用考虑具体的技术是否能应用到当前的工作,尽可能的深挖,因为技术都是自相似的,任何东西学到一定的深度要考虑的问题以及解决方式都是相似的,但区别就在于需要你静下心来去思考沉淀。千万不要因为社会上的一些焦虑言论止步探索的那颗心,编程跟其他技能爱好一样,需要大量的时间沉淀磨练,相对应的,它也会给你很丰厚的反馈;因此,好好享受编程吧~

编程的未来

现如今,随着GPT、人工智能的爆火,也逐步出现自动写代码的程序,也许未来真的可以取代人类进行编程。针对这个情况,我也分享下我的看法

  • 思维
    如果编程水平一直停留在入门级别,那确实很容易被取代,即便不是人工智能,也同样会有很多其他比你厉害的人取代你,因此我们需要不断提升自己的技术能力以及业务能力,如果你能对业务很了解并且能用对应的技术实现业务并解决业务的痛点,那么恭喜你,基本上不用担心被人工智能取代,而是应该抱着积极的心态,因为人工智能说白了也是工具,需要人去驾驭,而你通过驾驭它可以比别人更好的完成业务,这是一件值得兴奋的事情
  • 自我修行
    退一步来说,即使在未来人工智能已彻底取代人类编程的工作,我们真的就要放弃编程吗?同理放在其他场景,现在人工智能击败了柯洁,那么人类就不用围棋了吗?如果有一天人工智能也能拉出很好听的小提琴曲子,人类就彻底放弃小提琴了吗?
    因此这个问题其实是有点荒谬的,说到底,其实像这些技能本质上是 道-术-器中的器,是要通过器来习得术和道,这个过程只能自己来,没有人能替我们走,人工智能更不行。因此现在能看到,即便机器臂已经能发挥比人类很大的力量,依然有很多人在锻炼自己的身体肌肉,即便人工智能不停的在各个领域打破一些人的记录,但一样有无数的在在这个领域继续自我突破。说白了,这不是人跟人工智能的较量,而是一场人跟自己的较量,因此无论人工智能发展到何种程度,人类依然不会停止修行突破,那么多行业都如此,编程怎会例外

最后,我非常庆幸能成为一名coder,我周围所看到的程序员伙伴都是比较单纯、朴素、和对生活充满热爱的一群人,跟大家伙一样,我们也在用自己的方式给这个世界添砖加瓦,发光发热~
在这里插入图片描述

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

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

相关文章

使用STM32CubeMX对STM32F4的CAN1/2/3配置及接收中断开启

目录 1. CAN配置1.1引脚(STM32F413VGT6-LQFP100)1.2 时钟1.3 RCC配置1.4 CAN1配置1.5 CAN2配置1.6 CAN3配置1.7 输出设置 2. CAN代码2.1 CAN初始化2.2 CAN滤波器设置2.3 CAN使能2.4 激活中断2.5 CAN发送函数2.6 CAN回调函数2.7 main之后的代码 1. CAN配置…

linux下的mysql8.0安装

首先下载mysql8.0压缩包 mysql8.0下载地址: https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.xz # 下载 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-i686.tar.xz# 解压 tar zxvf mysql-8.0.11…

Node.js使用

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它使得JavaScript能够脱离浏览器,直接在服务器端运行。Node.js的异步I/O模型使其在处理高并发请求时表现出色,适用于构建网络应用、实时应用等。以下是对Node.js使用的总结: …

【无监督+自然语言】 GPT,BERT, GPT-2,GPT-3 生成式预训练模型方法概述 (Generative Pre-Traning)

主要参考 【GPT,GPT-2,GPT-3 论文精读【李沐论文精读】-2022.03.04】 https://www.bilibili.com/video/BV1AF411b7xQ/ 大语言模型综述: https://blog.csdn.net/imwaters/article/details/137019747 GPT与chatgpt的关系 图源:L…

java多功能手机

随着科技的发展,手机的使用已经普及到每个家庭甚至个人,手机的属性越来越强大,功能也越来越多,因此人们在生活中越来越依赖于手机。 任务要求,使用所学知识编写一个手机属性及功能分析程序设计,测试各个手机…

使用Uiautomotorviewer无法获取手机页面元素+解决办法

在进行 Android 应用程序开发或测试时,有时会遇到以下错误: Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException这个错误可能会导致开发或测试过程中的一些困扰,但有一个简单的解决方法: 解决方法…

JEECG/SpringBoot集成flowable流程框架

IDEA安装Flowable BPMN visualizer插件 pom.xml中引入flowable相关依赖 <dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</artifactId><version>6.7.2</version></dependency><depe…

PHP 错误 Unparenthesized `a ? b : c ? d : e` is not supported

最近在一个新的服务器上测试一些老代码的时候得到了类似上面的错误&#xff1a; [Thu Apr 25 07:37:34.139768 2024] [php:error] [pid 691410] [client 192.168.1.229:57183] PHP Fatal error: Unparenthesized a ? b : c ? d : e is not supported. Use either (a ? b : …

Docker镜像和容器操作

目录 一.Docker镜像创建与操作 1. 搜索镜像 2. 获取镜像 3. 镜像加速下载 4. 查看镜像信息 5. 查看下载的镜像文件信息 ​编辑6. 查看下载到本地的所有镜像 7. 根据镜像的唯一标识ID号&#xff0c;获取镜像详细信息 8. 为本地的镜像添加新的标签 9. 删除镜像 10. 存入…

【Prometheus】了解你的Prometheus指标

简单Prometheus查询用于指标检查 作者&#xff1a;Michal Kazmierczak 来源&#xff1a;mkaz.me 基数是关键。 它很容易失控&#xff0c;就像任何组合爆炸的实例一样。 这&#xff0c;再加上90%的指标从未被访问过的说法&#xff0c;创造了一个值得探索的领域。 观察性云供应…

复杂Python代码看不懂,分享两个工具!

复杂Python代码看不懂&#xff0c;分享两个工具&#xff0c;事半功倍&#xff01; Ryven Ryven是一个Python代码可视化工具&#xff01; 精进地址&#xff1a;https://github.com/leon-thomm/Ryven 一些案例&#xff0c; Ryven可视化操作矩阵 Ryven可视化冒泡排序算法 Ryv…

React Native 复杂列表开发与性能优化全攻略(现在看为时不晚!)

​ ​微信公众号&#xff1a;小武码码码 大家好,上一篇分享了 Flutter复杂列表开发与性能优化全攻略。那接下来这一篇,我想和大家分享一下在 React Native 中开发复杂列表的经验和心得。作为移动开发中最常见的 UI 组件之一,列表几乎出现在每一个应用中。然而,当列表变得复杂起…

设计模式- 装饰器模式(Decorator Pattern)结构|原理|优缺点|场景|示例

设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型&#xff08;5种&#xff09; 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型&#xff08;7种&#xff09; 适配器…

JavaScript模块化编程:构建高效、可维护的代码结构

引言 JavaScript 模块是现代前端开发中的重要组成部分。它们允许开发者将代码组织成独立、可重用的单元&#xff0c;从而提高了代码的可维护性、可扩展性和可读性。本文将深入探讨 JavaScript 模块的概念、语法和最佳实践&#xff0c;帮助你充分利用模块化开发的优势。 模块的…

Three.js和Cesium.js中坐标

在了解Three.js和Cesium.js前先了解并弄清楚图形学关于空间的基本概念流程&#xff1a; 计算机图形学 图形学中涉及到多个坐标空间&#xff0c;这些空间之间的变换是图形渲染中的核心部分。下面是一些常见的图形学空间及其变换顺序&#xff1a; 对象空间&#xff08;Object Sp…

Python快速入门1数据类型(需要具有编程基础)

数据类型&#xff1a; Python 3.0版本中常见的数据类型有六种&#xff1a; 不可变数据类型可变数据类型Number&#xff08;数字&#xff09;List&#xff08;列表&#xff09;String&#xff08;字符串&#xff09;Dictionary&#xff08;字典&#xff09;Tuple&#xff08;元…

【InternLM】基于弱智吧数据的微调数据构造实验

1. 数据处理流程 在AI领域有句名言&#xff1a;数据和特征决定了机器学习的上限&#xff0c;而模型和算法只是逼近这个上限而已。可见数据对整个AI的决定性影响&#xff0c;在模型开源化的今天&#xff0c;很多厂商的模型结构都大同小异&#xff0c;那影响最终模型的一大决定因…

学习redis知识点

学习 Redis 时&#xff0c;可以按照以下分类来组织知识点&#xff1a; 核心概念 内存数据库&#xff1a;理解 Redis 作为内存数据库的特点和限制。数据结构&#xff1a;熟悉 Redis 支持的数据结构&#xff0c;如字符串、列表、集合、有序集合和散列。 数据类型及操作 字符串…

4.28java项目小结

这几天完成了用户修改资料模块的功能&#xff0c;实现了修改用户头像&#xff0c;昵称等信息&#xff0c;并且对数据库进行了操作&#xff0c;大致画了好友资料的页面的内容&#xff0c;这两天尽量完成表的创建&#xff0c;建立多对多的关系&#xff0c;实现好友的添加功能。

.DevicData-P-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复

引言&#xff1a; 随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;其中勒索病毒以其独特的攻击方式和巨大的破坏性引起了广泛关注。.DevicData-P-XXXXXXXX勒索病毒就是近期出现的一种新型勒索病毒&#xff0c;它利用强大的加密算法和巧妙的传播手段&…