听说程序员想当就能当?
想要搞开发?开发可不像你想得那样简单。
有一种对软件开发者的偏见是:他们都是无趣的极客,是学校里的数学天才,每天都要在计算机屏幕前花费多个小时去写代码。
没错,开发者确实会在计算机屏幕前花费多个小时去写代码。但是,每天的工作中还有很多比写代码更重要的事情。就我个人而言,开发者意味着有机会自己做出很酷的东西。
我在大二那年开始自学前端开发。刚开始时我遇到了各种障碍,并一度怀疑自己,但这条路上也到处都是快乐和兴奋。我从没想过我在学习过程中能经历什么事情。但有时候,即使是现在,我依然在考虑我是否选择了正确的路。但我会对自己说,没有什么是比从事自己热爱的事业更快乐的了。
从我写下第一行代码到现在已经过去大约两年了。经过这许多小时的练习,曾一度想过放弃,也曾经历过中断,现在我想跟你们分享一些我的经验。
别把编码当成业余爱好
首先,也是最重要的一点:如果你真的想把写代码当成事业,那这毫无疑问是正确的。我完全同意,人们不会把时间花在自己不喜欢的东西上。
但是,作为业余爱好来写代码——也就是说,只是写代码而没有任何目标或计划——不太可能带你走向你希望的职业编程道路。
此外,在遇到障碍和困难时,你会有足够的耐心来保持编码的兴趣吗?还是说可能会放弃,或者在中途停下脚步?
因此,你必须要专注于自己的热情。我很肯定所有开发者都会编码和对技术有着极大的热忱。
但是,没有实际的执行,热情就毫无用处。制定具体的目标,再加上合适的计划,才能给编程之路设置里程碑。在某个时间范围内设定一个宏伟的目标,设定每个阶段要学习的技术和技能。这样,学习编程才能成为你生活中的重要部分。
确定希望专注的技术
一旦开始认真写代码,下一步就是要对自己诚实。你想成为哪种开发者?
首先从自己最感兴趣的部分开始。你想要做用户界面,控制产品与用户交互的方式?那么你应该着重于前端技术。或者你天生不适合做设计,而更喜欢服务器上的工作?那么应该专注于后台技术。
要根据自己的兴趣确定自己想学什么,这一点非常关键。如果不能确定,可以在Google上搜索,并简单尝试一下。我们都有自己的偏好和技能,那些就是我们最擅长的东西。所以,这个问题其实没你想象的那么难。
从最简单的东西开始
刚开始时,你可能会对每个任务都感到困惑,无论任务有多难或多简单。即使是给项目选一个合适的文本编辑器,并设置好环境,都会给你带来许多意料之外的问题。
因此,如果你完全是个新手,想尝试第一种语言,我强烈推荐从最简单的开始。可以选择那些提供交互式编程环境的平台入手,如Codecademy。
我也是用这种方式开始的。这些平台能帮你专注于熟悉编程语言本身,而不用考虑环境设置等。当然稍后你会学习这些东西,但我一直认为,开始写代码不仅能让人兴奋,还可以避免让你过于疲劳。
有什么学习资源?
成为软件开发者有多种途径。可以先修一个计算机科学的学位,参加编程训练营,甚至可以自学。不论哪种方式,你都需要不断更新学习资料。由于我选择了最后一种途径,我可以分享些我找到的学习资源。
从交互式编程环境开始
作为第一步,可以从最容易理解、最容易学习的平台入手,如Codecademy。这些平台提供的环境可以让你阅读学习资料,然后利用网页上自带的编辑器直接练习所学的知识。结果也会在屏幕上立即显示。只需要免费注册,选择你想要学习的技术,输入学习计划,就可以开始学习了。
另一个对新手十分有用的资源就是freeCodeCamp。它不像Codecademy那样必须为高级课程付费(尽管这些付费课程非常有用),freeCodeCamp提供完全免费的课程和学习计划。他们甚至会在完成每个主要课程后给你发证书。
他们的教程也包括详细的学习指南、内置的文本编辑器和清晰的解释。此外,还有些项目可以让你使用学到的知识解决各种问题。
选择正确的学习资源
这个过程其实很困难,并不是因为可信的、详尽的资源太少。实际上,好的入门资源太多,很可能会让你应接不暇。选择方向很困难,因为你不太可能在每条路上都花一段时间。因此,不好的教程不仅会让你浪费时间,而且会让你丧失继续前进的热情。
关于“我该学什么”这个问题,在询问别人或者询问Google之前,一定要先问自己!为什么?因为网上有各种各样的教程——视频、电子书、教科书,还有在线或面对面的训练营。只有你自己才能判断出哪种资源能更有效地帮你学习。
就我个人而言,我喜欢看视频教程,一边看一边跟着写代码。因此我选择了视频教程作为主要的学习方式。但也许你更喜欢阅读,以便自己控制学习速度。那样你最好选择比较著名的书。
不幸的是,你也许需要结合不同的学习方法。但是,不论哪种方法你都会在Medium上花费很多时间,在这里你会发现许多最适合你的资源。
这样,就像你确定学习哪种技术一样,后退一步,仔细考虑,选择最适合自己的学习资源。一旦找到合适的资源,就可以开始学习了!