我相信每个程序员都具备自学的能力,因为如果没有自身的努力,我们不会成为一名优秀的程序员。
故事背景:
2016年,我被计算机科学专业录取。计算机科学家需要研究如何使用计算机解决广泛问题及其应用数学,但我不太擅长数学,此外也不太了解计算机科学专业究竟是什么,一直以为这大概是关于如何操作计算机的方法——我甚至没有想过去 google 一下。
但是作为一个初学者,我发现学习编程的过程并不简单轻松。我不知道如何去开始,在好不容易掌握基础之后又不知道如何去进阶。老实说,一开始我并不知道何谓编程,直到我用 Visual Studio 上的 VB.net 编写并运行了我的第一个程序 “Hello World”。在学习计算机科学的第二年,我用 C++ 编写并运行了另一个项目。第三年,我用 HTML 和 CSS 编写搭建了一个简单的个人博客。
我什么都不懂,只知道自己想开发可以在手机或网页上使用查看的 APP。我最初的几个月耗费在了毫无头绪的杂乱学习上。从网络编程到 A + 到 Java 再到 Scratch、Python 甚至图形编程、HTML、CSS 和数字营销,各种不同方向的信息向我涌来。几个月下来,我依旧毫无头绪,梦想之路似乎也毫无进展,对此,我感到十分沮丧。我听取他人建议,明白了心急吃不了热豆腐,决定一步一个脚印,慢慢来。
真正的问题是,我没有找到我愿意花时间和精力在上面,而不是将其标记为“工作”的东西。最后,我在 Java 上找到了我的成功之路。我决定将精力集中在研究我打算用一生去做的事情:编程。
我告诉自己要专心并开始编写代码,我需要:
- 一、从第一个步开始,直到我学到足够的知识后,才迈下一步
- 二、想明白我想要怎样去学习编码。例如,我最终想获得什么样的技能?我为什么想学习编码?我可以为此花多少时间和金钱?
- 三、选择正确的、适合我的语言。选取合适的资源以帮助我学习(例如线上的编程课程、教材、各种平台上的视频文档等)
- 四、下载对应语言的编程软件
五、练习编写程序
六、加入一个线上的学习社区或社群。
七、不要停止学习
当我明确这些需求之后,我明白了我要去往何处,以及接下来我该怎么做。
这是你可以从我的故事中学到的第一点:
始终关注你的实际梦想或目标,以及你真正想要的是什么——而不是你认为可能使你成为自己的目标的东西。你可能不知道如何实现自己的目标,但你可以使用互联网,并对你的目标进行思考,就可以做到。
我为什么选择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 背景。因此,他们轻松编写出了答案,而另一半人(包括我在内)却大脑一片空白。我对班上发生的事情一无所知。
我收集了许多资料,许多关于 尚学堂免费的Java 编程视频,同时报名尚学堂的架构师课程,并花了好些天的时间额外学习基础知识。好不夸张的说,这并不容易。以前的我从未了解过这些,这是我那个阶段必须做的。我的同学比我有优势,我还有很长的路要走,事实上,同学的优势也成为了我加倍努力学习的动力。
整个学习过程中,我不断遇到使我沮丧和烦恼的错误,我只能尽可能地保持镇定、专注、努力,始终如一。我建议每个人都尽早选择自己的道路和目标,并专注于它,因为你一定会以某种方式到达那里——即使不是马上。
“你必须从别人的错误中学习。你的有生之年不可能有足够长的时间使自己成为所有人。”——山姆·莱文森
我的痛苦来源于我犯的错误:怀疑自己、缺乏自信、拖延、易放弃、胆小。这些错误,可以让人反思和自省——无论是我们自己还是他人,这也是为什么我决定分享故事的原因。
编程如何改变了我的生活
编程使我相信我可以解决问题、处理错误,它给了我人生目标。有时,遗漏了一个简单的语法错误会让我感到沮丧,同时,每一次的进步都会让我欣喜。
所有语句都变为布尔值…… True or False。我的计数从零开始,而不是一。
现在的我才知道,训练计算机以执行特定任务比训练人类要难。
我花了几个月的时间找到自己的道路,作为一名开发人员,我慢慢接受自己的错误和恐惧,开始享受这种自在,并开发了一个小型桌面 APP。
展望未来,我渴望学习更多,成为一名优秀程序员,并在不久后以程序员的身份拥有我的第一份有薪工作。