作者:David McGraw 翻译:丁丁(jackiehoo)
原文:http://www.xmcgraw.com/what-you-need-to-know-to-start-learning-how-to-code/
译者注:这篇文章是我在一个月前看到的,文章的内容基本表达我转行从事iOS开发时候的思考。觉得这篇文章会对那些想做iOS开发和刚开始做的朋友有一些帮助,因此翻译出来并分享给大家,对我而言则温故知新。不忘初心,方得始终,新的一年再次出发。
每个人的都有独特的经历,因此会有特别的事情会让ta感到快乐,并享受做自己喜欢的事情。写程序也不例外,我在很年轻的时候就明白这点,它成为我开始创业的无形资产。写程序的渴望来自我想完整独立做一件事情的渴望,做移动开发,可以让我不依赖任何人就能学会完成一个完整的App需要的所有能力。
为什么我当初会学习现在使用的Objective-C和Swift编程语言?因为我喜欢和用户直接交互,而移动开发满足了我这点。这股激情让我在学习iOS开发时能保持110%的热情。
我刚才分享了我想从事移动开发的动力,并且认为这是做iOS开发需要思考的问题。你可以给下面两个问题提供自己的答案:
1.你为什么想要编程?
2.你能在大脑里勾画出你写代码的景像吗,描绘一下这个场景?
如果您已经决定从事这条道路,下面我提供一些建议,希望能够帮助你打开通往移动开发的这扇门。
明确你的激情
你已经有了一定的热情,像我当初一样,你还需要更加清楚自己的热爱的具体是什么。好奇心很重要,它会指引你到一个具体的方向,找到一个移动开发中最感兴趣的方向,然后交给命运来安排吧。
你在大脑勾画出的景像是什么?喜欢科学和数学的朋友可能希望为NASA写代码;或者有些朋友擅长社交或者运动竞技,那他可以开发健康类的产品来衡量活动量;你也可能喜欢视频游戏。清楚自己在生活中喜欢什么,并让它成为你的灯塔指引你开发项目。当然这也有可能会改变,我开始是写游戏,但是我现在写了更多的社交,教育和效率类的产品。
你可能开始使用swift语言然后发现它不适合你。例如:你可能希望通过SpriteKit和Swift为iPad写游戏,后来你尝试Unity3D写游戏,并且喜欢上它。如果你还没有确定自己的喜欢的平台和语言,那就保持热诚和开放态度去探索吧。
当然如果你没有这从事移动开发的热情,那您需要停下来,重新评估下自己的道路。坚持一段时间如果在显示器面前还是表现的恐惧,那这可能不是你想要的生活,换一个吧,生命短暂,应该享受生命。
开始行动
网上有很多视频教程可以学习,不过我衷心地建议读几本书,因为书籍更加专注,方便浏览,并且没有很多干扰。只有你,书籍还有代码编辑器。
补充一些关于学习平台的书或者视频教程挺好。但是一页一页的读几本书会帮助你极大的提高,一旦你确定自己想要学习的语言,你可以买两本书:
1.买一本仅仅介绍该编程语言的书。
2.买一本教你在特定编程环境中使用该语言的教程书籍。
记住:在我或者你朋友有效的学习方式不一定适合你。我们的学习方式不同,你需要一些独立意识以便让自己保持在正确的学习轨道上。如果你还没有这种独立判断意识,那读书是一个安全可靠的选择。
假设你决定用swift为iOS设备写程序,那你就买一本swift语言的书籍而不是Objective-C语言的书籍,认真读完,然后再买一本教你如何使用swift语言开发一个App的书籍。
语言+开发平台的书籍可以帮助你保持专注而尽可能少地分心。你可能感觉还是很困难,但通常会好过你通过网上教程来学习。
放下书籍动手写自己的项目
我敢保证你遇到的最大的挑战不会在你学习一本书籍并完成里面的示例的时候,而是当你读完书籍之后开始开发自己的项目的时候。你学习一本书籍并完成里面的示例只是为了让你写程序的挑战相对小一点,因为你掌握了一定的基础,但仅仅是基础。
1.找到简单的点子(idea),要非常小的点子,第一个app只要完成2-3件事情就可以,这样你就不必花去大量的时间来构思app的实现和架构,而只需要动手开始开发就可以。
2.不要完全一个人扛着——找一些方式获取帮助。如果尝试了很多方法失败后,你可以向 Stack Overflow等技术问答网站求救。
3.必要时候可以调整你的点子。如果你开发项目时感觉压力太大,开发太难,你可以换一个更容易的开始。比如开发游戏就相对要难很多,换一个更容易的游戏开发。(比如2D游戏代替3D游戏)
然后你就需要不断重复前面个学习内容,查找书籍,阅读网上教程,看看视频教程等。解决实际问题需要不少的时间和大量的练习。
加入一个团队
培养良好的编程习惯和学习新的方法的最好方式之一就是把自己放到一个团队环境里。团队环境能够把你带到你以前不清楚的方向。你会遇到很多编程老手,这些人对你学习编程非常有价值。不要认为你需要一些很牛的作品才能加入这些团队,很多团队也希望找到有热情的初学者。跟着他们做一些项目吧。
如果你很难加入一个团队,那可以找一个朋友或者老师来向他学习。
击退自我怀疑
你需要的只是热情。如果你渴望开发苹果app,就不要让大脑有什么杂念。我保证随着你学习的深入肯定会有自我怀疑出现在大脑里的时候,如果你喜欢写代码、喜欢呆在电脑前,就不要让这些杂念击败你。
诚实地对待自己。你可能喜欢底层的开发技术,那你在成长路上会经历很多有趣地挑战。如果你喜欢写代码并设计程序,那太棒了,我认识很多开发者擅长前端开发。如果你喜欢写代码以及商务,你未来会成为优秀的领导者,成为一个多面手不是什么坏事。码农的发展方向上有很多选择的,我打赌肯定会有适合你这款得方向。
如果你确实不喜欢写代码。给自己6个月的时间尝试后还是没有兴趣。不要强迫自己,生命短暂。你应该选择更喜欢的道路。不要被周围和自己束缚——这是你的生活。
写代码、写代码、继续开发
当我开始编程的时候,我花了2到3周,每天12小时,完全集中在学习如何使用Mac,如何写写Obective-C代码以及如何使用iOS系统的SDK。
选一些自己喜欢的书籍然后致力于学习。安安静静坐下来读书,当你完成书上的内容后之后就可以写代码,一定要带着大脑去写。如果你喜欢写代码的话,这些对你来说就很容易,如果你给自己设立了目标,比如要在6个月内发布一款app,你也能很容易坚持下来。
你最终希望开始探索自己不熟悉的领域。你不需要给自己太大压力,不要一次给自己喂太多。在自己熟悉的领域加入一点点新技术就好,增加一点新鲜感就够了。总之不要太着急,保持专注。
起航
每个人都是不同的,没有人能给你完美的答案。这篇文章描述我所经历以及所观察后总结的,如果让我从新开始学我会这么做。我当时应该更早地加入一个团队,更早些寻找一位导师。即使现在我也希望能有个导师教我如何处理商务上的事情。
想好了就闷头扎进去学习吧,你肯定可以做到的,只要你心里有股做好移动开发的欲火在燃烧。