全文共2389字,预计学习时长6分钟

图源:unsplash

笔者是个机电工程师,上大学时不得不应对三种编程语言:C、C++和java。这些课程给我留下了深深的阴影,我对它们充满畏惧,都是低分飘过。甚至因为太害怕还逃过python课,但也因此失去了一些这方面的机会。

2020年对每个人来说都是惊与喜交加的一年。对笔者的朋友们来说,最大的惊喜莫过于笔者——这个总是逃避编码的男孩竟正在变成一名程序员。

这件事同样也是我自己从未想到过的。如果你也面临着相同的问题,对编程充满畏惧,不如来看看我是怎样克服它的。

面临的障碍

1.对未知的恐惧

大多数人会害怕新事物或未知事物,它可以是任何科技或学习新技能、新学科。如果你尝试过向父母介绍社交媒体,就不难理解这一点。接受新事物总是困难的。

直到大学第一学期笔者才开始接触编程,学起来太吃力了,我本能地开始逃避它。事实上,有很多很难的课程我都能游刃有余,唯独对编程避之不及。最糟糕的事情不是假装自己不害怕,而是对什么都不感兴趣。克服恐惧的第一步就是接受已有的恐惧。这样难度降低一半。

2.“你不应该成为一个程序员”

有些人说,成为一名程序员需要有良好的逻辑意识,还需很多其他的能力。于是你当场给自己判了“死刑”:“我不适合当程序员”。

并非如此,逻辑感当然是需要的(几乎人人都有),但是除非在编码中使用它,否则你永远无法度量自己的感觉。大多数情况下,兴趣要比特殊的逻辑感重要得多。

在很长一段时间里,笔者认为自己没有成为一名程序员的逻辑意识。后来有一天想:“真的知道自己的逻辑水平吗?测量过吗?有人这样做吗?” 我决定试试,答案是没有。

图源:unsplash

3.非计算机专业背景(CS)

这个领域最常见的谎言是:“你不是计算机专业(CS)的,所以不适合编程。”给出这样的建议的人非蠢即坏,很多程序员都不是计算机专业却成就满满。即使是像谷歌、Facebook、微软和苹果这样的大公司,也不会到处寻找有CS学位的人。他们总想要有兴趣和技能的人。

做程序员并不意味着必须靠这个来赚钱。它可以是一项额外的技能或爱好。笔者不是CS出身的,但学会了如何编程,这又不是火箭科学。

4.选错老师

理查德·费曼有句名言:“如果觉得科学枯燥乏味,那一定是你选错了老师。”笔者就是这样,害怕编程,恰恰C编程老师把它作为一门“不适合所有人”的高级课程来介绍。在受到如此程度的打击后,笔者开始对编程敬而远之。

5.编程是黑客的事

这是关于编程的最大误区。在电影和电视剧中,程序员总是被刻画成黑客,刻板印象就此形成。

编程是一个广阔的领域,黑客只是其中的一小部分。从智能手表到蓝牙音箱,程序员无处不在。使用的每一台设备,浏览的每一个网站,都是编程,它是为了让人们的生活变得更轻松舒适。

图源:unsplash

针对每个人的解决方案

1.想成一种语言

用一种流利的外语说话,那感觉酷极了。我们为什么要学习不同语言呢?为了与不同的国家交流。编程语言也是如此。为了与机器建立联系,我们需要了解各种各样的编程语言,所以把它看作学习一种新的语言来和机器交流吧!

图源:unsplash

2.选择语言时要小心

工作类型不同,编程语言也各异。我们必须明白需要学习哪种语言。如果对此一无所知,请看下面内容:

·        制作iPhone应用程序,请考虑使用Swift。

·        创建Android应用程序,请考虑使用Java。

·        建立网站,请考虑使用JavaScript、CSS和HTML5。

·        编写Windows桌面应用程序,请考虑使用C#。

·        制作2D/3D游戏,考虑使用JavaScript、C#或C++。

·        为Arduinos/微控制器/机器人编程,请考虑使用C。

·        科学/数学计算或数据分析,请考虑使用Julia、Python、R或Matlab。

·        实现自动化和脚本编写,请考虑使用多种语言(Python、Ruby、Bash、Powershell、AutoHotKey)。

如果不需要学习编程的特定任务,可以选择Python,容易入门。笔者最开始学的也是Python。Python很热门,学习资源很容易找到,它是编程的未来。

3.找个导师

图源:unsplash

自学很容易,但导师可以给予你很大动力。学习过程中会遇到很多问题和错误。当然可以自己解决问题,导师可以帮你节省很多学习时间。你可以在Reddit这样的平台上寻找导师。

4.寻找一个简单合适的过程

编程很容易自学,互联网上学习编程的内容应有尽有。像Udemy、Coursera和KhanAcademy这样的在线平台上,相关内容应有尽有,哈佛CS50x也是个不错的选择。

如果不喜欢这些,你也可以尝试在YouTube上搜索,那里有很多你需要的频道。如果没有电脑,别担心。可以在手机上学习编程。编程英雄、Mimo和ProgrammingHub都是很好的学习应用程序。如果寻找儿童编程课程,可以试试Tynker或codeadmy。

5.开始编码吧

准备好了就开始航行吧!不要想太多,如果可以的话,开始每天编写代码。如果很忙,试试移动编译器,也可以在回家或工作的路上收听编程的播客节目。

图源:unsplash

恐惧不可怕,直面恐惧并掌握克服恐惧的方法,难题就会迎刃而解。可以开启你的新旅程了!

推荐阅读专题

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:苏韫琦、张月星

相关链接:

https://medium.com/better-programming/how-i-got-over-my-fear-of-programming-371d7bf187c5

如转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

畏惧编程怎么办?总是逃避编码的男孩是如何变成一名程序员的?相关推荐

  1. 常用python编程软件-学习编程语言常用的10个工具、库——每个程序员都应该知道...

    原标题:学习编程语言常用的10个工具.库--每个程序员都应该知道 每个行业都有自己的工具,软件开发也没有什么不同.一个优秀的程序员应该比其他程序员更了解他的工具,而且还可以使用比普通工具更强大和更高级 ...

  2. “火星人”马斯克推论:世界或是被编码而成,上帝可能是个程序员!

    作者 | 何苗       责编 | 张红月 出品 | CSDN(ID:CSDNnews) 沉迷工作的马斯克近期可能被世界首富的头衔搅的有点心烦意乱,甚至开始喊你回去工作了. 这个被高度怀疑来自未来的 ...

  3. 13 岁编程!少年比尔·盖茨如何成为最成功的自学成才程序员?

    [CSDN编者按]自1987年以来,比尔·盖茨首次出现在福布斯全球富豪榜上,就开始了他的辉煌时代.科技上,他建立起了微软这个庞大的科技帝国:慈善上,他捐赠了数十亿美元用于全球健康项目--毋庸置疑,比尔 ...

  4. 如何在家自学编程成为一名程序员?

    转自:如何在家自学编程,成为一名优秀的程序员? - 知乎 跟着黑马程序员学,自学也可以很优秀.先找到方向->前/后端?测试?还是什么?->找到相关的学习路线 -> 坚持不懈的学习 - ...

  5. 维密超模也来学编程?你想象得到吗,这些明星也曾是程序员!

    "人人都应该学习编程". 这更像是一句赞扬编程魅力的话. 在大家的感觉里,编程好像是个很专业的事情.那些编程大牛,可能要么在阿里和腾讯这样的大公司当工程师,要么自己做出了非凡的互联 ...

  6. 这是一本数学书还是一本编程书?学好数学,让你成为更好的程序员

    <计算思维与Python编程>是我们早期的Mathematics for the Digital Age and Programming in Python一书的 "更早讲Pyt ...

  7. 编程零基础想做一名程序员,该怎么学习?首先要学习什么?

    很多人开始学习软件编程去,都会纠结如何选择编程语言.浏览网上各种资源教程,可以说是琳琅满目,如果还没有想好学哪一门编程语言,没有确定目标,很容易无所适从.如果你想要认认真真去学编程,但是还没准备,千锋 ...

  8. 面向犯罪编程,9名程序员锒铛入狱

    程序员新鲜事(ID:CoderNews)整理 内容综合自:平安时报.平湖在线 2年开发50余款APP,从中非法获利500万元,直到警察上门.最终,9名程序员被抓. 近日,平安时报平台发布了这样一起&q ...

  9. 计算机编程软文,做一名程序员我不忘初心

    这是一篇软文.但是绝对不是鸡汤:为啥不是呢?因为我文笔太差....偶尔矫情发发牢骚(勿喷) 一.说说程序猿行业 现在社会上给IT行业贴上了几个标签:高薪.高危.高大上.秃顶(哈哈).这些标签我相比大家 ...

最新文章

  1. 分布式深度学习最佳入门(踩坑)指南
  2. .NET控件名称缩写一览表 zz
  3. ASP.NET 程序中常用的三十三种代码(2)
  4. ASP.NET的MVC中使用Cookie做身份验证(附代码下载)
  5. 程序员利用网吧挖矿,获利上亿元~!
  6. 使用Google App Engine开始新的网站开发学习
  7. android 例子源码_AOSP系列文章(一)-Android系统源码下载和编译
  8. flinkCdc的mysql配置及java测试代码
  9. 使用网络数据采集的好处
  10. Linux排查CPU使用率100%
  11. FPGA 之 SOPC 系列(七)NIOS II 高级技术
  12. 游戏服务器redis mysql_redis服务器环境下mysql实现lnmp架构缓存
  13. 【hud3966】树剖模板05
  14. Android M 差分包的制作流程
  15. 虚拟机克隆之后的IP修改问题
  16. Echarts实战案例代码(9):图表纹理填充的解决方案(柱图为例)
  17. 技术之外——哀悼我的大学舍友
  18. 使用递归顺序和逆序输出单链表
  19. java电子邮件收发系统,基于Java_Mail的电子邮件收发系统毕业设计
  20. 直播软件开发Android直播悬浮窗实现

热门文章

  1. 模仿PPLive带左右翻页的焦点图,实用
  2. 北京大学法学院推免大数据|入营人数超550+,外校占比46%
  3. ElasticSearch Suggest Completion 智能补全技术 整合SpringBoot+Vue实现
  4. 2018-3 碰撞的小球(C++)
  5. 第三届蓝桥杯C/C++组第九题 足球比赛(概率论+随机数)
  6. HDU 6203 ping ping ping
  7. NFRE-解析下载数据包
  8. 联想笔记本如何安装固态硬盘-联想G50-80如何安装固态硬盘(全流程+装系统)(专用)
  9. ARM开发(9)基于STM32的简单四则运算计算器
  10. ASP.NET MVC Areas 区域