【CSDN编者按】许多人抗拒进入移动开发的世界,因为总是害怕失败。而本文作者,则从一名不懂任何代码的高校篮球运动员,成功转型为iOS开发者。

thread_81044663346061_20181116141026_s_32294_w_440_h_292_68588.webp.jpg

  作者认为,“任何人都可以编程,只要他有建造工具和产品,以及帮助社会变得更好的欲望。”

  那么,这位来自美国伊利诺伊州的90后开发者究竟经历了什么?速来下滑了解下吧!

  在我选择编程之前,我曾在NCAA的第三级别篮球联盟中获得过44%的三分命中率。

  我先简单介绍下我自己,2012年高中毕业,当时我的人生中确定的只有两件事:一是我想在大学里打篮球,二是我不知道大学应该学什么。

  不过我很幸运,在进入大学后幸运地加入了学校的联赛,而且还决定学习心理学。我很喜欢去理解别人的思想,寻找别人行为的动机。

  但故事远远没有结束。

  最好的时光

  2017年5月,我即将从伊利诺伊州北部一所很小的学校获得学士学位。当我接过那张过誉的纸时,我突然意识到我作为学生运动员的时光到此为止了。接下来我该干什么呢?

  虽然获得学士学位算是一个小小的成就,但这只是没落的开始。我完全不知道接下来该干什么。

  如果我想在我的专业领域深造,就必须至少再读两年书。我不可能选择这条路。我在大学第二年就已经精疲力尽,唯一支持我继续上学的动力就是篮球。要想继续打篮球,就必须获得足够的成绩。但我从未真正考虑过上完学之后的路该怎么走。

  毕业后开车回到家,我突然发现:我可能会对做移动应用感兴趣。我不记得当时怎样想到了做移动应用。可能是我在iPhone上浏览某些应用程序时突然就有了这个想法:“这个应用好方便!嗯……我能不能也做一个?”

  在研究了几个小时之后我决定我真的可以自己做个应用,而做这个应用不需要任何学位。在经过一番深思熟虑之后,我决定尝试下学习移动开发,看看能否把它变成我的专长。但在写代码之前,我首先需要问自己一个问题:我需要什么工具才能开始创建移动应用?

  末日的开始

  很快我就发现,我需要三样东西:一台电脑、编程的能力、以及我要创建的应用所需的平台。

  我有一台电脑,所以可以从单子上把电脑划掉了。我使用苹果的产品,而且我认识的许多人都使用iPhone,所以我可以给iOS平台(iPhone的操作系统)做一个应用。

  但我完全不懂得如何编程。信不信由你,我在大学第一年选了一门计算机编程课(我记得是Java的课程)然后挂了。是的你没看错,我这个后来成为iOS开发者的人当初竟然(按照学术的标准)挂掉了这门后来深深感兴趣的课。

  我不仅挂了这门课,而且还深刻地记得当时去上课时的绝望,因为我知道完全是在浪费时间。从第一天开始我就跟不上教授的讲义进度:“数组是个什么东西?这人说的什么寻(循)还什么蝠(浮)点究竟是啥?”

  除此之外,让我更加绝望的是我必须要通过这门课才能继续打篮球。由于我不幸挂掉了,我不得不参加暑期的课程才能重新获得打篮球的资格(很幸运我暑期课程选的是历史和艺术,完全是小菜一碟,是我拿过的最容易的“A”)。

  时间跳跃到两年半以后,许多人都觉得我选择一个没有任何背景的行业简直是疯了。但我要向那些否定我的人、怀疑我的人甚至我自己证明,你们都错了。

  所以我下定了决心。接下来的几个月中,我把自己锁在地下室里,花了无数个小时阅读推荐的博客和书本,观看YouTube上的教学视频(要是你刚刚开始入门,我强烈推荐这个人的视频:https://www.youtube.com/channel/UCbTw29mcP12YlTt1EpUaVJw),还有收听各种类型的软件开发播客,以获取更多知识。我把自己沉浸在移动开发的世界中,以背水一战的心理从多个编程的资源中吸取着知识。

  我的动机非常简单:要么完成移动应用开发的学习目标,要么放弃,浪费掉所有花费的时间,然后去找一份朝九晚五的工作。但就像以前我说过的一样,我的字典中没有放弃。

  峰回路转

  突然有一天,事情出现了转机。在阅读了大量移动开发的资源之后,我找到到了适合我的学习方式。

  每个人的学习方式都不一样。有些人喜欢阅读,有些人喜欢实践,有些人喜欢观察,有些人喜欢讲述,有些人喜欢倾听。找出最适合自己的学习方式非常重要,只有这样才能越来越快地理解新的话题。我发现最适合我的学习方法就是把知识讲述出来,然后实际尝试去做。

  例如,阅读关于怎样在iOS应用中使用定时器的书可以花掉我一整天时间,但对我没有任何帮助,只有实际试着编写一个定时器后才有用。所以我发现最适合我的学习方式就是实践和观察。只有当我不再尝试理解每一点信息,并实际动手去写代码,才能开始理解移动开发的方式。

  这个YouTube视频(https://www.youtube.com/watch?v=Y0qCWQDRWDw)给了我很大帮助,帮我建立了学习方法,并保持积极向上的态度。

  这个教程(https://www.youtube.com/watch?v=fZx29HOcHzY)在我学习的早期阶段非常有用,因为它用可视的方式演示了我从书中(https://www.amazon.com/iOS-Development-Dummies-Jesse-Feiler/dp/1118871057)无法理解的概念。

  然后突然有一天,我想到了第一个项目的点子(一个猜谜应用,我非常建议从这种应用入手)。

  终于我在不知不觉间开始理解其他的编程概念(如类型、扩展、数组、委托、自动布局和MVC模型等)和技术。我甚至开始在应用中实现第三方API、BaaS和数据库!

  然后我开始学习的下一件事情就是源代码管理和命令行。这些都不是偶然发生的。我之前完全没有任何编程经验。完全为零。在2017年7月之前我从未写过任何代码。那么我是如何迅速掌握这些的呢?

  所有这些新学的移动开发知识都是发现最适合我的学习方法之后的结果。只有坐在电脑前开始写代码之后,我才开始理解了编程中常量和变量的区别。

  跳到2018年的最后一个季度,我已经在苹果的应用程序商店上架了一个应用,并且第二个应用也进入审核了。怎样做到的?我集中了一切我能收集到的资源,并且积极尝试,直到找出最适合自己的方法。我必须承认,在学习时,快速阅读的能力是必须的,但好的阅读能力并不一定是最重要的。每个人的学习方式都不一样。

  对于想入门移动开发(或任何软件开发技能)的人,我能给出的最好的建议就是,不仅要找出你最快的学习方式,更要找出你最有效的学习方式。

  你是不是那种必须让别人在你面前演示几遍才能学会的人?或者你更擅长倾听,能够将概念逐字逐句拆开理解的人?找到最适合自己的学习方式然后使用它。

  “成功就是不断失败,但不会失去热情。” ——丘吉尔

  失败是成功之母

  最成功的人往往是经历过失败的人。我最喜欢的一句话是,“不经历失败就无法成为人上人。”这句话不难理解。为了学习怎样成功,你必须学习怎样失败。

  许多人抗拒进入移动开发的世界,因为他们害怕失败。我之所以分享我转到移动开发这一过程中的经验,唯一的目的就是告诉也在尝试同样转变的你:你并不孤单。

  每个成功的人都曾感到无力、都曾失败,但绝望和退缩的感觉只是通向宏伟目标路上的一个小插曲。你也能够学习怎样在应用程序商店中开发自己的应用,不管你有没有认为自己能够做到,只要你找到最好的学习方法并持之以恒。

  最终,起决定作用的就是你的决心有多大。想想我这个曾经在计算机编程课上挂科,并且曾以为写代码只属于“黑客”的工作的人吧(别忘了我在大学时代非常执拗)。

  现在我认识到,事实完全不是这样。任何人都可以编程,只要他有建造工具和产品,以及帮助社会变得更好的欲望。

  别以为一切都很美好,因为本来也不应该只有美好。但这并不是问题,天上本来也不会掉馅饼。

  再说一次,我分享我的故事的目的就是想给你启发。我的故事并不罕见。实际上,许多没有技术背景的人都成功地转型进入了软件开发。

  但是,我的故事也很不平常,因为我正式地挂掉了计算机编程,而且曾经对它十分抗拒,但现在我每天都在享受编程的乐趣。缺乏最初的兴趣没关系,一开始时的失败也没关系,因为我就是鲜活的例子!如果你想在人生的任何方面成功,你就必须经历失败,没有任何捷径可走。因为失败是成功之母。

  如果你仍然不觉得要想成功就必须失败,可以先读读这篇文章(http://www.nbcnews.com/id/44278117/ns/business-us_business/t/what-steve-jobs-taught-us-its-ok-fail/#.W9nUeS2ZPOQ),看看读完后是否还有同样的想法。帮助我度过那些艰难时光并使我坚持下去的方法很简单:停下来,深呼吸。后退一步,看看自己已有的进步。视角非常关键。

  大概只有3.4%的高校篮球运动员毕业后继续在NCAA中打球。我经常告诉自己,如果能够克服障碍成为高校篮球运动员,那么我同样能在移动开发领域获得成功。如果通过在体育馆中勤奋练习并持之以恒就能克服那些困难,那么我相信我也能用同样的热情在移动开发领域获得同样的成就。

  你也能做到。你所需的只是认识到并找出最适合自己的学习方法,持之以恒地坚持下去,然后每天提醒自己:“不经历失败就无法成为人上人。”

  原文:https://medium.freecodecamp.org/how-a-lost-kid-went-from-failure-to-ios-developer-against-all-the-odds-bfef635b9125

  作者:Jordan LaGrone

  译者:弯月,责编:胡巍巍