一名新晋程序员的自述:个人编程自学之路

Photo by Jantine Doornbos

我相信每一个程序员都具有自学的能力,由于若是没有自身的努力,咱们不会成为一名优秀的程序员。java

大概交代一下故事背景

2016年,我被计算机科学专业录取。计算机科学家须要研究如何使用计算机解决普遍问题及其应用数学,但我不太擅长数学,此外也不太了解计算机科学专业到底是什么,一直觉得这大概是关于如何操做计算机的方法——我甚至没有想过去 google 一下。程序员

小时候,我一直梦想成为一名计算机科学家,作 APP 或者其余我认为很高大上的项目。终于我被梦想的专业录取了,就此开启了我成为计算机科学家、程序员的梦想之旅。可是做为一个初学者,我发现学习编程的过程并不简单轻松。我不知道如何去开始,在好不容易掌握基础以后又不知道如何去进阶。编程

老实说,一开始我并不知道何谓编程,直到我用 Visual Studio 上的 VB.net 编写并运行了个人第一个程序 “Hello World”。在学习计算机科学的第二年,我用 C++ 编写并运行了另外一个项目。第三年,我用 HTML 和 CSS 编写搭建了一个简单的我的博客。后端

我什么都不懂,只知道本身想开发能够在手机或网页上使用查看的 APP。我最初的几个月耗费在了毫无头绪的杂乱学习上。从网络编程到 A + 到 Java 再到 Scratch、Python 甚至图形编程、HTML、CSS 和数字营销,各类不一样方向的信息向我涌来。几个月下来,我依旧毫无头绪,梦想之路彷佛也毫无进展,对此,我感到十分沮丧。我听取他人建议,明白了心急吃不了热豆腐,决定一步一个脚印,慢慢来。浏览器

真正的问题是,我没有找到我愿意花时间和精力在上面,而不是将其标记为“工做”的东西。最后,我在 Java 上找到了个人成功之路。我决定将精力集中在研究我打算用一辈子去作的事情:编程。服务器

我告诉本身要专心并开始编写代码,我须要:网络

  • 从第一个步开始,直到我学到足够的知识后,才迈下一步。
  • 想明白我想要怎样去学习编码。例如,我最终想得到什么样的技能?我为何想学习编码?我能够为此花多少时间和金钱?
  • 选择正确的、适合个人语言。
  • 选取合适的资源以帮助我学习(例如线上的编程课程、教材、各类平台上的视频文档等)。
  • 下载对应语言的编程软件。
  • 练习编写程序。
  • 加入一个线上的学习社区或社群。
  • 不要中止学习。

当我明确这些需求以后,我明白了我要去往何处,以及接下来我该怎么作。学习

这是你能够从个人故事中学到的第一点:大数据

始终关注你的实际梦想或目标,以及你真正想要的是什么——而不是你认为可能使你成为本身的目标的东西。你可能不知道如何实现本身的目标,但你可使用互联网,并对你的目标进行思考,就能够作到。google


我为何选择 Java

我由于知道它能够帮我实现成为移动应用程序开发人员的梦想,而爱上 Java。我发现,当我熟练掌握 Java 以后,学习任何其余语言对我来讲,也很轻松。Java 的课程不只仅是教 Java,也教编程概念。Java 的应用很普遍,后端开发、大数据、Android 开发等。

就像 Code Institute 的这篇文章所说:

“Java 使开发人员可以:

  • 在一个平台上编写出的软件,几乎能够在任意一个其余平台上运行。
  • 建立能够在 Web 浏览器运行并访问可用 Web 服务的程序。
  • 开发用于在线论坛,商店,民意调查,HTML 表单处理等的服务器端应用程序。
  • 用 Java 语言组合应用程序或服务,以建立高度定制的应用程序或服务。
  • 为移动电话,远程处理器,微控制器,无线模块,传感器,网关,消费产品以及几乎任何其余电子设备编写功能强大且高效的应用程序。
    ……
    从笔记本电脑到数据中心,从游戏机到科学超级计算机,从手机到互联网,Java 无处不在。”

是的,Java 无处不在。它能够在台式机、企业台式机、电视设备、手机等多种设备上运行。

我还记得我实习时的第一堂计算机编程课,甚至大学的也还记得,那天老师给咱们布置了几道关于 Java 的简单基础题。

问题1:什么是 println,printf 和 print?
问题2:如何存储变量?
问题3:什么是 Java?

我班有一半的人都有 IT 背景。所以,他们轻松编写出了答案,而另外一半人(包括我在内)却大脑一片空白。我对班上发生的事情一无所知。

在此以前,我从未有过如此尴尬的经历。

或许你也会在编码生涯中遇到相似的状况:当有一天,你忽然发现别人知道你不知道的事情,这可能会让你以为伤自尊,可能会使你失去晋升机会,甚至是你的工做。但你在明白本身与别人的差距以后如何行动,远比你看到差距这件事自己重要得多。

后来我接触到了 Udemy 和 SoloLearn,我瞬间明白了本身要学的东西还有不少,且我有能力掌握它们。我并不明确本身将来的方向,但冥冥之中我有一种感受:世界上最有意思的事情就是可以学习一些东西,充分掌握它,并用它来建立我想象建立的东西。过去我经常在碰到一些挫折和失误时,选择逃避它们,并让个人朋友们来帮忙解决,但如今我能够自信地本身解决这些问题。

我收集了许多资料,许多关于 Java 编程的 YouTube 视频,选修了 Udemy 的课程,并花了好些天的时间额外学习基础知识。好不夸张的说,这并不容易。之前的我从未了解过这些,这是我那个阶段必须作的。个人同窗比我有优点,我还有很长的路要走,事实上,同窗的优点也成为了我加倍努力学习的动力。

整个学习过程当中,我不断遇到使我沮丧和烦恼的错误,我只能尽量地保持镇定、专一、努力,始终如一。我建议每一个人都尽早选择本身的道路和目标,并专一于它,由于你必定会以某种方式到达那里——即便不是立刻。

个人痛苦来源于我犯的错误:怀疑本身、缺少自信、拖延、易放弃、胆小。这些错误,可让人反思和自省——不管是咱们本身仍是他人,这也是为何我决定分享故事的缘由。

“你必须从别人的错误中学习。你的有生之年不可能有足够长的时间使本身成为全部人。”——山姆·莱文森


编程如何改变了个人生活

编程使我相信我能够解决问题、处理错误,它给了我人生目标。有时,遗漏了一个简单的语法错误会让我感到沮丧,同时,每一次的进步都会让我欣喜。

全部语句都变为布尔值…… True or False。个人计数从零开始,而不是一。

如今的我才知道,训练计算机以执行特定任务比训练人类要难。


最后我再叨叨几句

我花了几个月的时间找到本身的道路,做为一名开发人员,我慢慢接受本身的错误和恐惧,开始享受这种自在,并开发了一个小型桌面 APP。

展望将来,我渴望学习更多,成为一名优秀程序员,并在不久后以程序员的身份拥有个人第一份有薪工做。

我想告诉你们,若是觉得仅仅学习了计算机科学课程就能够成为程序员的话,就大错特错了。即使是你已经拥有了计算机科学的学位,你仍然必须作到如下这些:

  • 对编程充满热情;
  • 常练习;
  • 多看书多学习;
  • 尝试不一样的语言;
  • 读写代码;
  • 以能够识别或表示变量和子例程的方式命名它们;
  • 学会盲打(这将改善你的姿式和肌肉记忆,而且你会在打字时更明显注意到速度上的差别);
  • 用可识别或强表明性的方式来命名变量和子程序;
  • 学习并进行实操;
  • 把编写代码做为平常;
  • 编写你感兴趣的软件;
  • 从下往上读取堆栈跟踪;
  • 尽你所能的简化程序;
  • 不会的地方就 google 一下;
  • 保持专一,一次只写一个程序;
  • 大括号始终保持配对;
  • 正确设计代码;
  • ……

每一个故事均可以成为咱们从新考虑优先事项或从新集中精力的灵感。

发现一个错误的尴尬仅持续几秒钟,但从错误中学习倒是永远的。相信我,这是值得的。

我但愿这篇文章能激励你们永不松懈。你能够作到,必定能够,只要对你想作的事始终充满激情并渴望学习,再找到一位出色的导师。

借此,我要向鼓励我分享故事的 Charles Best 致意。十分感谢您的教诲和指导。

请坚信,你的梦想一定会变为现实。


本文系实验楼翻译,如转载请注明,原文连接:My Journey as a Self-Taught Programmer

千里之行,始于足下。任何梦想的实现,都须要脚踏实地的去进行!

7月,实验楼开展了第四期的30天百楼挑战活动,详情点击连接,30天累计在实验楼学满50个小时,即算挑战成功!

给本身一个挑战自个人机会吧!

相关文章
相关标签/搜索