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

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

那么,这位来自美国伊利诺伊州的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

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

--End--


微信改版了,

想快速看到CSDN的热乎文章,

赶快把CSDN公众号设为星标吧,

打开公众号,点击“设为星标”就可以啦!

征稿啦

CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。

如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。

推荐阅读:

  • 盛会再临,2018 中国大数据技术大会(BDTC)首曝日程及议题

  • 刘强东事后首发声;拼多多入局 AI ;三星手机 CEO 承认危机 | 极客头条

  • 算法工程师独得恩宠 四面楚歌的Android工程师该何去何从?

  • 算力寻租或将终结中本聪的POW机制?深度解析BCH“司机补贴战”

  • Python告诉你:这类程序员最赚钱!

  • 公开课报名 | 详解CNN-pFSMN模型以及在语音识别中的应用

  • Java 程序员必备的 15 个框架,前 3 个地位无可动摇!

90 后篮球运动员成功转型 iOS 开发,过程超刺激相关推荐

  1. android微信支付后返回第三方页面,微信支付后怎么返回指定界面 ios开发

    满意答案 timerise 2015.09.07 采纳率:40%    等级:10 已帮助:671人 在以下两个方法中实现(AppDelegate) //弃用的返回 - (BOOL)applicati ...

  2. iOS开发笔记--超全!iOS 面试题汇总

    作者:Job_Yang 之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) Object-c的类可以多重继承么?可以实现 ...

  3. 网上商城代码实现_中国中铁网上商城转型敏捷开发模式,实现快速反应、快速迭代...

    △北研中心的同事给业务部门演示迭代成果中国中铁网上商城成功转型敏捷开发模式,实现快速反应.快速迭代.切实解决公司内部以及合作方的业务需求,更好服务多样化的客户群体.经历了两次每2周为一迭代的短期快速开 ...

  4. iOS开发之极光推送JPush

    JPush介绍 JPush可以轻松地通过极光推送完成运营推送工作同时支持自定义消息.富媒体消息.应用内提醒消息.短视频消息和围栏消息等9种类型,满足开发者在各类应用场景下运营所需9种消息类型. 配置i ...

  5. 90后程序员:我面试了一些80后程序员,有些人的技术深度都不够

    点击上面↑「爱开发」关注我们 每晚10点,分享软件开发资源.社交电商资源 文|洪生鹏 80后随着时间的流逝渐渐淡出了人们的视线,人们更热衷谈论90后,有人说90后是跨掉的一代,对于新一代,似乎都有人来 ...

  6. 重磅!2019「FAT」90位90后杰出从业者榜单揭晓

    区块链开启「90后」的高光时刻(文末附"90位90后杰出从业者"榜单) 出品 | Odaily星球日报(ID:o-daily) Odaily星球日报已经启动「2019Odaily ...

  7. 虚拟机vmware部署ios开发环境

    参照以下链接成功部署ios开发环境. 教你在VMWare下安装MAC OS X Snow Leopard 10.6 使用VMWARE安装Mac OSX 雪豹操作系统并配置iphone开发环境 VMWa ...

  8. 威猛的 90 后,不等领导下班就先走,《2021 年轻人下班报告》公布

    上面这个公号「涩郎」,是我的一个备用号,为了防止万一哪天大号失联,平时一周我也会发三篇左右的我的思考,读书笔记,认知感悟等文章,带领大家一起探索精神与财务自由之路. 大家好,我是校长. 昨天,36 氪 ...

  9. 90后iOS开发者的出路,如何规划30岁前的自己(程序员必修课)

    最近发生了一些和我们没有直接关系但是有间接关系的事情.比如华为"清洗"高龄基层员工,比如游戏公司2号员工拿不到股份而离职.先不说事实到底如何,起码很多码农是心有戚戚焉. 最近一年多 ...

最新文章

  1. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a jdk
  2. 2019年——欢度中秋,喜迎国庆
  3. linux stop函数,perfmonctl()函数 Unix/Linux
  4. Queue+Stack(C++,标准库中的队列和栈)
  5. Apache RocketMQ:简单消息示例
  6. SpringCloud Alibaba-Nacos 的使用
  7. 前端开发基础知识整理--web综合篇
  8. 微信开发--开发模式简单配置
  9. MQ_ActiveMQ环境部署+C#推送和接收消息
  10. java.lang.UnsatifiedLinkError错误一例:不同虚拟机之间的库不能共用
  11. 较全的正则字符、规则汇总
  12. docker 启动rabbitmq 启动成功 但是访问被拒绝
  13. R语言利用openxlsx包输出EXCEL报告
  14. 中国大学mooc乐学python答案_中国大学mooc慕课_乐学Python_章节期末网课答案
  15. 台式计算机怎样能搜无线连接,台式机怎样能够连入wifi呢
  16. 支付宝即时到账之给二维码设置超时失效时间
  17. 解决:dependencies.dependency.version' for com.google.guava:guava:jar is missing.
  18. 编译gstreamer nvenc插件
  19. Java面向对象期末备考
  20. x3+y3+z3=3

热门文章

  1. 剑指Offer之寻找链表中环的入口问题
  2. mysql replace 不区分大小写_mysql 不区分大小写的解决
  3. 将你一张表的值覆盖_粉一张移动小蓝卡,智慧出行潮选择
  4. Tensorflow卷积神经网络识别MINST手写数字
  5. 水上运动鞋行业调研报告 - 市场现状分析与发展前景预测
  6. 2021年中国云无线接入网(C-RAN)市场趋势报告、技术动态创新及2027年市场预测
  7. 电影屏幕行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. 2021-2025年中国电影行业市场供需与战略研究报告
  9. php举例--array,php中session的应用举例-php中array_key_exists与isset的区别...-php取整数的几种方式(实例)_169IT.COM...
  10. vue开发看这篇文章就够了 vue知识大全