百度地图

当程序员没了互联网,该如何继续学习写代码?_惊天战神 豆瓣

发布时间:2019-09-11 09:45 编辑:百腾创新

编者按:现在很多时候,我们都是面向搜索(或 Google 或百度)、GitHub 编程,那么,在早期没有互联网的情况下,该如何学习编程,成为一名真正的开发者?亦或是作为一名小白,如何进入互联网编程时代?本文作者分享自己从 0 到 1 的编程成长经历,希望帮助更多的开发者踏出职业生涯的第一步。

我从 11 岁开始就梦想成为一名黑客,一名真正的黑客,但那时我并没有非常高端的电脑,也没有电影里面出现的那种非常炫酷的双显示屏,甚至没有网络。我的电脑配置仅仅是一个普通的 Core 2 Duo 处理器以及 2 GB 内存,但这并不阻碍我想要成为一名黑客。当时家里有几本关于编程和计算机的书籍,但我几乎翻都没翻。因为我想成为一名黑客,而不是只会敲代码的程序员。

我的黑客之旅启蒙于一本非常糟糕的书。如今你想学习黑客技术,大家通常会推荐《黑客之道-漏洞利用的艺术》( https://en.wikipedia.org/wiki/Hacking:_The_Art_of_Exploitation ) 这类的黑客书籍。而我那个时候完全是孤身一人,没有黑客朋友也没有互联网。然而,我通读了整本书,做完了书中的每一个练习,于是我自认为自己对基本的黑客技术了如指掌,但遗憾的是我并没有攻克五角大楼。我甚至错误地认为黑客是无所不能的,应该能够独立开发出不仅功能强大而且外观漂亮的软件,目前看来,我真的太傻了。

那么读了这样一本糟糕的书,我有什么收获呢?在没有互联网和线上资源的情况下,它给我让我对计算机有了一个宏观的理解,基于这样粗略的理解实际上我无法做任何事情。只是让我觉得编程不再那么神秘,这些计算机书籍也不再那么令人生畏。

后来再一次,依然没有任何老师和指导的情况下,我拿起一本书继续学习。这一次并不像我想的那么糟糕,学习效果不错。之后我读了更多的书,整夜整夜地学习 C++,一年之后我可以用 C++ 编写出相对不错的程序。接着我又学习了 C#,因为我想开发桌面应用程序。自此我喜欢上了编程,喜欢做一名程序员。

不过需要注意的是,编程需要耗费大量的时间,当你开始创建真正的应用程序时更是如此。那么在没有互联网和老师的指导、只有一台性能很差的电脑的情况下,如何学习编程呢?

每个编程语言都有它自己的优点。选择一个并坚持下去,不断学习直到你真正掌握这门编程语言的精髓。新手常见的错误是,他们总是试图学习尽可能多的编程语言。实际上数量一多久容易导致混乱,缺乏关注度会让自己分心,最后无奈放弃。以下是经常使用的编程语言的简短列表分类:

在过去 20 年的任何一个操作系统上,只要你安装一个浏览器,就可以使用 JavaScript 做做客户端的开发了。如果你在线购买了 Ubuntu 操作系统光盘,或者加入了本地 Linux 用户组,那么它们已经为你安装好了 Python,你可以轻松开始 Python 的开发。

你可以安装一个 C/C++ 开发环境进行 C/C++ 的编程,比如 Dev-C++( http://www.bloodshed.net/devcpp.html )(虽然它已经相当古老了),你可以用库的形式管理。在没有互联网连接的情况下获得其他开发环境可能会困难得多。

你可以将 Python 文档( https://docs.python.org/3.5/download.html )下载到本地离线查看。为 C# 安装 monodoc( http://www.mono-project.com/docs/tools+libraries/tools/monodoc/ ),但这需要你获取一些未默认安装的软件包。至于 Linux 上的 C 语言编程,可以参考manpages( http://www.mono-project.com/docs/tools+libraries/tools/monodoc/ ),虽然手册的导航功能做的一般。

提升编程技能最好的方法是探索,实践和创新。当我转到 C# 时,我就没有借助书籍和教程。学成编程最美好的体验就是动手写代码。如果你选择创造而不是模仿,那么你可以学到很多东西。但是大多数开发人员都是从教程开始,然后阅读几本书,以两年的时间都不会自己动手去写任何应用程序或软件,最终他们都放弃了。你需要给自己动力,动力的最好来源就是动手写代码。

当我在开发 Macalifa(现在被称为Bread Player)( https://www.microsoft.com/en-us/store/p/bread-player/9nblggh42srx )时,我的朋友和家人经常问我最近有没有开发一些新的、独一无二的东西。事实上我并没有开发那种独一无二的应用程序。客观来说,几乎所有你能想到的应用程序市面上都已经有了,你需要做的是创造更好的应用程序,而不是独一无二的应用程序。如果你追逐唯一性,那么你可能永远都无法完成一个应用程序。相反,我们应当创建一个对用户有益的应用程序,或者比当前市面上体验更好的应用程序。

幸运的是,这解决了没有网络连接的问题。没有网络连接,你无法下载程序。这意味着你的程序与别人的程序是重复的也影响不大 —— 因为你不能得到你正在复制的其他程序,你创建了一些能够解决你的部分问题的东西。

当我开始开发真正的应用程序时,起初没有想过开源将会如此重要,但是在我将 Bread Player 开源之后不久,我逐渐意识到了开源的威力。你不需要开源一个 Linux 级别的项目,任何一个项目,不管多小都是可以的。

一开始,每个人都想快速简单地赚钱,但恕我直言,早期没有人知道你,也没有人会关心你在做什么。积极投身 GitHub( https://github.com/theweavrs/ )、Bitbucket( https://bitbucket.org/ ) 或任何其他 Git 源码网站,以便人们知道你的存在。这比建立一个网站好,因为它完全免费并且不需要很多时间来维护。

开源是一个社区,所以你可以结识优秀的人,也许可以吸引一些贡献者来参与你的项目,如果你够幸运,甚至有人会聘用你。事实上,开源是最大的开发者社区,如果你愿意,你可以学到很多东西。

我曾经在一个项目上持续了 3 年多,这非常不容易。当你一直投身一个项目且开发工作很饱和时,有时候你会对这个项目感到厌倦。相反,如果同时开发多个项目这有助于保持开发热情,如果你厌倦了其中一个项目,可以转到其他项目。这样,你将永远在前进,能够持续开发应用程序。

然而,同时进行多个项目最大的好处是你的成长速度很快。你有多种观点,多种思路、多种方式来解决问题,最主要的是能够获得很多动力。目前我在同时开发超过 5 个应用程序,为了让用户收益,近期我可能就会发布一个。

优秀的开发人员用编程来思考和表达。如果你告诉我一个想法,我不会认为这是一个想法,而是将它开发成一个应用程序。一旦你做到用代码思考,用代码说话,那么你就是一名真正的开发者了。

学习编程并不依赖于互联网、指导或者书籍。不要找借口,不要犹豫不决,行动起来!我并不是现代程序员的典范,所以我的建议你可以借鉴,但是自己也需要进行尝试,从错误中学习。记住:这个世界并不需要你,但你可以让它需要你。今天开始行动,明天才会成功。

原文:How to Learn Programming Without an Internet? 链接:https://thecodrr.com/2017/12/08/learning-programming-no-internet 作者:thecodrr 译者:安翔 责编:苏宓

TAG: