你真的想学编程吗?

本贴最后更新于 2164 天前,其中的信息可能已经时移世异

计算机行业发展迅速。光从近些年互联网公司/计算机软件公司的用人荒就能看出。还依稀记得前些年报志愿的时候,家人劝我别报计算机的理由是:“计算机这种东西,以后会像开车、烧饭一样,人人都会的”。也不知道现在还会有多少人会用这样的眼光来看整个计算机行业,毕竟真正的计算机和平常人认为的计算机,真的不是一回事吧。

打个很常见的比方。程序员一放假到家,各路亲戚总是坐不住,”小张,家里电脑坏了,你有空来看下!”、“小张,这个手机有问题,你帮我修一修。”这样的声音层出不穷,而当你真正接触了某些修电脑时遇到的问题时,发现自己并不会修,他们也会用一种奇怪的眼光看着你,”你不是学电脑的吗?怎么连这个都修不好。”

扯远了哈。其实我主要想说的是,学计算机,学的是设计思想、组成原理、系统结构、操作系统,以及,编程。并不会像绝大多数人想像中的那样。

从大二开始学会用自己的双手创造自己的程序的时候,就陆陆续续有小伙伴咨询我,说自己想学计算机,想学编程,想要我帮帮忙,指一条路。

其实我是很赞成大家都来学编程的,脑子里一下能浮现出的赞成的理由就有:

  1. 编程是把事物不断细分的过程,能够锻炼人的逻辑能力;
  2. 编程需要一个清晰的思路,能锻炼人的思维能力;
  3. 编程是一个创造的过程,能提高人的创造力;
  4. 编程可以帮助人将重复的手工劳作转化成自动化的过程;
  5. 。。。

对于小朋友来说,第 1、2、3 点非常关键,要不为什么老美那边正在不断让编程“低龄化”,走幼教路线呢。

而对于我们来说,第 4 点相当吸引人。因为目前而言,绝大多数的人从事的工作是要使用计算机的,而这些使用计算机的工作又有绝大部分是重复的手工劳作。我母亲的工作单位是医院,有一次需要将一些汇总好的 word 文件里的数据依此填到医院的系统中,其主要工作就是:

  1. 打开 word;
  2. 找到对应的行列;
  3. 复制到系统对应的输入框中;
  4. 跳转到 2,直到 word 内的所有数据都被填入系统;
  5. 提交;
  6. 打开下一个 word,跳转到 2,直到 word 全部被录入完成。

而由于数量过大,单位安排了许多医生护士,让他们在闲暇时间都来帮忙做这些“复制黏贴”的工作。
(我曾经想帮助医院开发自动录入系统,并且已经制作完成。奈何和医院管理系统的制作方的沟通存在些许问题,一直没有真正帮上忙,非常惭愧。)

这就是重复劳作,这也是许多人真正想来学计算机(其实是编程)的理由。

编程很简单的吗?
是!

编程非常简单。配合上目前已有的高级程序设计语言中的战斗级语言(Python),初学者一天时间做出我上文所述的信息录入程序不是梦!

上文说了大二开始有小伙伴陆陆续续找我说想学编程,想入门。最开始的时候我也很热心,毕竟自己喜欢的东西被他人认可并也想学习是一件非常开心的事。我会很细致的问,啊你学这个主要是想干什么啊?之前有没有相关基础啊?是想从最基础的开始学还是直接上手啊?之后也会认真仔细的帮忙查找一些资料推给小伙伴,告诉他们别踩某些坑,让他们知道各个编程语言之间的好坏、用途、学习曲线,会帮助他们一起制定一些学习计划…然而在我看来,真正学的有所成就,能很自豪的对别人说“我会编程啦!”,只有一人。

剩下的要不就是在第一次聊天过后就了无音讯,要不就是在聊过几次后表示“编程太难,不如回家种红薯”,要不就是学学停停,总有更美丽的事物在不断吸引他,要不就是“忙,最近没时间看,等空了一定看”…

其实我也是有点厌烦了。Java 和 Javascript 的关系解释了一百遍,前端和后台的区别说到自己都想吐,廖雪峰老师的 python 教程一天发 8 次,马士兵老师的 java 资料被我永久共享在百度云首页,知乎里专门开了一个收藏来存学习路线…

现在想想真是瞎忙活。以后或许会出现这样的对话吧:

-- “在吗?编程难吗?我想学”
-- "难,建议别学。"
-- "有什么推荐吗?我想做 XXX,我看网上说 XXX 语言蛮好的"
-- “没有,滚。”

我建议,在问之前,真正静下心来想想,自己是不是真的想学编程?学编程的目的是什么?只是解决眼前这个问题吗?说真的,如果是那样的话,还不如给我些许报酬,请我吃顿火锅,然后让我来帮你完成需求。这样学习成本最低,也不占用你的时间,有更美丽的事物也可以去追,而且对我也友好,既赚到了钱,也吃到了火锅,也练了手。

如果你是真的想学编程,也建议你好好想想,编程能带给你什么?其中最主要的一条就是:

能不能真正帮你解决生活上、工作上的需求?并且在将来是否还能持续发挥余热?

毕竟基于需求、基于项目的学习,学习效率是最高的。

比如你是从事统计方面的工作,每天都要接触许多 excel 表格,经常需要对其进行汇总、合并等操作,那么我觉得,使用合适的编程语言制作一个适合自己团队使用的自动化工具,是一件非常自豪、非常拿得出手、非常值得去做的事。而在学习编程之后会发现,更多的统计工作都可以用编程去完成,别人辛辛苦苦花了一天汇总表格,可能你只要上班之后花 30 分钟写个脚本,花 15 分钟调试,再花 20 秒运行,一天的工作就结束了。

你是否真的有足够的兴趣花时间去学习一些符号化的、抽象的语言?

小王非常喜欢游戏,非常想自己制作一款游戏,那么在兴趣的驱动下,小王先后接触了 Unity3D,C#,OpenGL 等…小王不断的用兴趣鞭策自己,终于做出了自己的游戏。前后耗时 2 个月。小王也用制作游戏的经历,顺利的拿到了大厂的 offer。

你觉得你的行业可能被计算机取代,所以你想来了解一下取代你的到底是何方神圣并且从事这方面的工作?

那你大可放心大胆的往下学,这涉及到饭碗的问题相信你自己会不断鞭策自己。而且我相信,程序员绝对会是最后一个被计算机取代的职业,毕竟,剽悍的职业不惧阿尔法狗,充满创造性的行业不可能被取代。

在真正想过这些问题之后,你大可以来问我,我想学编程,从哪里开始入门比较好?或者如果你觉得我不够专业,也可以去知乎上查找一些学习进阶路线,去谷歌上找更专业的学习路线,去听国外的专业课程来提高自己。

说到底,如果你真的想学编程,那么请立刻马上从现在开始,不要拖延!并且编程是要花时间锻炼的,所以请坚持练手,请坚持积累,也请坚持分享!

以上。

  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    567 引用 • 3532 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • ZephyrJung

    为啥这么说……
    我之所以大学的时候选择计算机就是小王这个理由。。。
    虽然没走上游戏开发的道路 😂

    1 回复
  • 其他回帖
  • ZephyrJung

    因为游戏而知道编程这个东西的人应该不少吧

  • someone

    是啊…很多很多这样的人

  • someone756

    不热爱编程,在编程路上是走不远的!!

  • 查看全部回帖
zjhch123
未来的事无人知晓,所以才有无穷可能。 杭州

推荐标签 标签

  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 585 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 618 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 629 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22346 引用 • 89408 回帖 • 1 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 595 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    15 引用 • 122 回帖
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 4 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 587 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    70 引用 • 375 回帖 • 1 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 155 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖
  • 招聘

    哪里都缺人,哪里都不缺人。

    190 引用 • 1057 回帖
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 16 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 431 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    125 引用 • 169 回帖 • 1 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 530 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 721 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖 • 1 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    341 引用 • 708 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 130 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖