给大家谈谈我怎么理解编程

  1. 给大家谈谈我怎么理解编程
    1. 前言
    2. 什么是编程
    3. 从问题出发
    4. 在自己的生活中使用编程
    5. 给初学者的入门路线——略知天高地厚
    6. 写在最后

给大家谈谈我怎么理解编程

目录

前言

什么是编程

从问题出发

在自己的生活中使用编程

给初学者的入门路线——略知天高地厚

写在最后


前言

最近公司要招一个人后端程序员,把面试的工作安排给了我。面试招人也很顺利,也招到了一个不错的小伙子,但让我印象深刻的是其中一个有着三年工作经验的“老程序员”。这位“老程序员”非常自信地给我展示了十多个他写的网站后台以及哪些千篇一律 CRUD 的表单,然后跟我谈他写的 SQL。

“你看你写了那么多差不多相似的东西,那你有没有积累一套自己的库或者工具用来快速生成这些 CRUD 的表单?”,我问道。“啊?”。看出了他明显有些疑惑,于是接着问道,“那你除了给公司写这些业务代码以外,有尝试过给自己写过代码吗?也就是说方便自己生活或者工作的工具之类的?”。“……”,他沉默了,不知道该怎么回答我。最终的结果当然不言而喻,否则我也不会写在这篇文章里面。在我看来,这位拥有三年工作经验的老程序猿,虽然他熟悉语言,熟悉框架,熟悉业务,但其实并没有学会编程,甚至不如我们刚招进来的应届生小伙子。

这次事情让我想了很久,也向身边很多人交了一下,才发现原来在编程时候,很多我觉得理所当然的基本能力,居然都是稀缺资源。这当然并不怪谁,因为“意识”或者“思维”这个看不到摸不到的东西,并不是说自己只要努力就行了,还需要向别人借鉴吸取经验,也需要有自己的悟性和思考。那么借着这篇文章,我也结合那么多年来的所想所感来聊聊怎么学编程,怎么学好编程。


什么是编程

我的理解的编程是:面对一个问题,经过思考后,最后将解决这个问题的思路用计算机能理解的方式表达出来。这里面有三个关键词,“问题”、“思考”以及“表达”,我觉得这是三个关键词也是编程最关键的地方。但是非常多的人看待编程这个问题的时候,往往都只能看到最浅层面上的写代码,而“问题”和“思考”这个两个关键词则被大多数人所忽视了。

其实“程序员”这项工作,无论是想做技术还是转管理,无论是做学术还是做工程,只要越往上走,“问题” 所占的重量就会越来越高,相应的写代码所占到的能力比重会越来越低。甚至一些顶层的大型系统架构师,顶层的算法科学家,甚至可能一行代码都不需要写。

从问题出发

举个例子,乔帮主的 iPhone 为什么能重新定义手机,因为一开始大家将手机所解决的问题定死在了打电话收短信这个通信领域,而乔帮主用 iPhone 重新定义了手机所解决的问题,让打电话和收短信支部会是附属的功能之一。乔帮主重新定义了问题,让以通讯起家的摩托罗拉,诺基亚等大厂从此衰败的。

众所周知,前端技术发展迅速,很多前端们大呼学习成本高,但是前端的小伙伴们真的想明白了前端为什么会如此迅速地发展,到底是什么在领着大家快速往前跑?答案还是我们这章节的标题——问题。比如,Vue / React 等框架的出现,并不是解决了 jQuery 所面临的 DOM 操作复杂的问题,而是从新定义了问题。前端的高速发展,就是我们的先辈们一遍一遍重新定义我们面对的问题而产生的。

我在知乎或者其他编程社区经常能看到有人问类似的问题,大致是说已经学会了一门编程语言了,但是却不知道自己能干什么。这种问题最常出现在计算机科班学生的身上,比如大一的时候学了 C / C艹 了,所有的语法都学会了,但是不知道自己能干嘛。

因为在那时我们并不知道自己学了这门编程语言,面对的是什么样的问题。老师从来都没有告诉我们学一门学科要拿来干嘛。这就导致了我们在学习的时候,尤其是学习计算机一些理论基础的时候,完全没有目的,不知道自己学习的这门学科面对的是什么问题,不知道它需要解决什么问题,在现实中是要怎么用。最终非常多学计算机的莘莘学子,像我一样,哪怕在双一流高校学习了四年,甚至靠着高中积累下来的应试经验拿了很高的成绩,却依然是一脸懵逼。

学习编程,尤其是计算机科班朋友一定要注意,在你学习一门课程的时候,请一定一定先了解这门学科的背景,历史以及所面临和需要解决的问题。


在自己的生活中使用编程

我大学时候是软件工程专业,我曾经推荐过一个直系小学妹用“按键精灵”这个工具。她非常疑惑为什么我一个她眼中的“专业”人士会给她这个正在走向专业道路上的人推荐一个“业余”工具。我跟她说,如果她能用好这个工具,那么肯定就能学好编程。

按键精灵2014正式版_按键精灵Mac版_按键精灵下载-按键精灵官方网站-免费下载www.anjian.com

按键精灵,这样一个非常非常业余,很多所谓“专业人士”都看不上的小工具,却蕴含着编程这个领域非常深刻的理解。那就是发现我们生活中的问题,并且用我们手上能利用的工具来改善我们生活,方便我们生活的能力。

还记得我们初中历史上学的内容吗?人与动物根本区别是什么呢?答案是:会不会制造和使用工具。我们要解决一个问题的前提是,我们知道这是一个问题。我们人类会制造和使用工具,前提是我们人类明白 “提高效率” 这是一个问题。

在按键精灵上面写脚本的大部分都不是专业的程序员,他们可能是已经在工作的公务员,小学老师,也可能是闲着蛋疼的大学生,甚至可能是一个喜欢玩游戏的初中生在给自己做游戏挂机脚本。但是在我眼里,他们是一群保留了人类进步那种最原始的动力和火种的人。所以我也相信,这些人如果真的从事了程序员这个行业,毫无疑问都将会是其中的佼佼者,因为他们都懂得编程,只不过还不会一门编程语言而已。

给初学者的入门路线——略知天高地厚

“好的,你说的道理我都懂了,那么我想学编程,我应该怎么办?”

不给勺的鸡汤都是耍流氓,我写这篇文章当然不是为了只耍个流氓就跑的,所以还是希望给想学编程的小伙伴们一些更为实质的意见吧。

学一门“性价比”极高的编程语言——JavaScript

首先对于选择编程语言方面不要犹豫,就学 JavaScript。我从来都喜欢推荐萌新入门学习 JavaScript,甚至我推荐所有相关行业都学一下 JavaScript 备用,这不是因为 JavaScript 有多好,而只是因为 JavaScript “性价比”非常高。

我推荐用 JavaScript 入门的原因非常简单:

  1. 简单好学,并且包含虽有主流编程语言范式。
  2. 可以简单快速的建立漂亮的 UI 界面。
  3. 从前端到后端,从 PC 端到移动端,从应用到游戏,从嵌入式和机器人到深度学习以及人工智能, JavaScript 都能有所涉及。

回到我们本章的标题《略知天高地厚》,略知代表我们并不需要去深入研究所有领域,我们只需要依赖 JavaSciprt 这个环境,以及知道这些领域的成果,我们就可以通过“调包”、“调API”来为我们解决问题就行了,所以才是略知天高地厚。

找到自己的方向

略知天高地厚,是大概清楚编程的能力,大致能干什么。现在你已经有足够的能力去找到一个自己喜欢或者适合的领域自学了。现代环境对程序员的要求已经慢慢变高了,一个正经的程序员基本上都能熟练使用 3 门以上的编程语言。所以不要纠结于编程语言,需要用到就去学便是。

到目前为止,上面学到的所有东西也许可能不见得会成为你吃饭的直接工具,但是绝对是你背后的助力。


写在最后

编程是一项对一个人综合能力的集中体现,并不是说学个语言,会写两行代码就叫做会编程的。最后欢迎来到我们编程世界!也希望大家能够自由地畅游在我们这个多最多彩的世界!

Hello world!


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以加QQ(2602138376)

文章标题:给大家谈谈我怎么理解编程

文章字数:2.5k

本文作者:Zevs

发布时间:2019-08-16, 08:53:58

最后更新:2019-08-16, 11:05:22

原始链接:http://zhsh666.xyz/2019/08/16/给大家谈谈我怎么理解编程/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

相册 图床 主题切换