本文转载自公众号“读芯术”(ID:AI_Discovery)。
实际的代码教学永远也不会停止。我讲授Java已七年有余,一路上自己踩过见学生掉过的坑积累起来可挖穿地心,我敢说我了解编码学习的一百种错误方法,当然啦,正确方法也知道不少。
开启开发人员的职业生涯有多种方式,但有的时候人们会产生一种幻觉——即“条条大路通编码,条条大路皆为佳”。就我个人经验而言,并非所有方式都是佳策。本文将分享有关学习编程的无效方法,并介绍更好的替代方法。
1. 急于求成
当你急切想取得成就时,就会意图一个猛子完成所有事情。比如,打开几个网页,开始学习一些Java,然后学习一些PHP,然后简要了解JS框架。一天下来,自认为对编程了解了很多,但事实并非如此。
第二天早上是醒来再看看,是不是突然意识到昨天学习的内容几乎忘得一干二净了,几个小时的学习似乎毫无成果。
学习新知识的诀窍在于:专注于某件事物。如果学习Java,就只学习Java,至少在最初的几个月要保持这种策略。之后,在学习其他技术并在实际项目中综合运用这些技术时,其中的益处就显现出来了。
2. 跳过基础知识
在可以马上开始写第一本小说时,谁会在乎简单的字母怎么写?如果“下一件大事”就在前面等着,为什么还要花时间学习有关类或继承的任何知识?所以就放心大胆地跳过乏味的基础知识吧。
冷静一下!基础不牢,地动山摇,学习基础知识是未来职业的基石。如果不认真地夯实基础,未来必将深受其害实际。工作中可没有时间让你巩固基本知识,现在就是一点一点学习基础知识的最佳时刻。
图源:unsplash
3. 偶尔学习
定期学习就是记忆的运作方式:必须重复多次才能真正掌握一种技能。如果没有进一步的运用,努力培养的技能将再次从记忆中消失。这就是为什么三天打鱼两天晒网注定了你会直接走向失败,每天学习30分钟的编程比每隔星期一练习三个小时要好。
4. 独自学习编码
“我觉得编码就是键入正确的行。我为什么还需要其他人?”笔者常常在建议学生在学习中与别人交流时听到这样的反问。想象一下自己躲在显示器后面,在孤独和沉默中编写出天才代码……嗨,还是别幻想了吧!不管软件开发人员多么内敛,这项工作也是需要团队合作的,你也不例外。
在学习的道路上,他人的帮助也十分重要。谁知道会不会在这条路上会遇到未来的同事或上司呢?
那么,可以到哪寻求帮助呢?可以加入程序员论坛、专业社区等等,比如可以加入CodeGym、Stack Overflow、Reddit等论坛(例如r\learnprogramming、r\java和r\learnjava等subreddit)。和他人谈论学习和工作,寻求帮助,也帮助别人,并从中获得一些灵感。这不仅会提高专业技能,也可以提升你的软技能。
5. 只看书和视频,且重复如此
读的编程书籍越多,就越能成为一个好的程序员?并非如此。即使理论是一个生动的卡通片的形式呈现,也要明白“纸上得来终觉浅,绝知此事要躬行”。可以尝试一些编码挑战平台,玩玩游戏,边做边学。以下是一些在线编码平台:
- Gitconnected:Gitconnected社区里面有很多学习编程的教程资源。所有的资料都是由软件工程师和开发人员筛选过的,所以可以说是满满干货。在这个社区,成员们相互学习相互交流,以找到最佳的解决方案来完成任务。
- CodeGym:CodeGym是一个结构化的Java课程,结合了讲座和实操任务。在这个平台上,你可以从初学者开始做任务,一步步提升自己。整个课程建立在一个游戏和故事叙述的探索中,这让整个学习过程变得更有趣了。
- Coderbyte:这个资源平台是一个竞赛向和通关向的平台。其中有入门课程,也有一个难度等级明确的大型竞赛库,还有求职面试的准备工具。
- Codechef:Codechef是一个友好竞争的地方,其中有初级课程和月度挑战。想不想看看自己的名字成为顶级赛手之一!
6. 没有学着去解决问题
来看看一下Java学习者常犯的错误。首先,他们真的只学习简单的编码,但不会持续地学习“跟着我重复”的教程。创建软件不仅仅是写一行又一行的代码,而是为了能为人们带来些许便利,帮人们解决问题。
你必须开始使用编码解决问题,而不仅仅是胡乱使用编码。在工作中不可能碰到像“写50行Java代码”这样的任务,而通常会是这样:“我们需要这个东西这样工作,你能做到吗?”
7. 不确定代码是否有效
在一个虚幻的世界里,开发人员能凭空写出完美的代码,而代码也奇迹般地奏效了。但在现实世界中,事情要更为复杂。你为一些应用程序的功能写了一遍又一遍的代码,然后一次次出bug了,这个应用程序就是无法运行。
你真的不知道出什么问题了吗,是一次一个错误还是一次好几个错误?现在必须从头检查一切。其实另有上策——在进入下一环节之前对项目的每个部分进行两到三次检查,代码不出错的几率就更高了。
8. 永不承认自己写的代码糟糕
图源:unsplash
小白们很难意识到自己犯了错误,当每天或每一行代码中都有大量错误时,这就更难意识到了。
但自欺欺人会让情况更糟。所以面对现实吧:写出糟糕代码是不可避免的阶段,你需要时不时地重写,这也是提升过程的一部分。好好检查代码,如果说有什么是需要改变的,那就去改代码吧。
9. 不让经验人士检查代码
在学习演奏乐器时,人们几乎拒绝让别人看到自己笨拙的手指动作。写代码也是如此——在代码无可挑剔之前,我们不想展示给任何人。开发小白不会去寻求帮助,还会拒绝寻求建议,可以想象其学习之路也因此变得更加漫长和艰难。
你应该向前辈征求对自己代码的意见。可以去专业社区和论坛(如Stack Overflow、CodeProject或CodeGym论坛),如果是学生更方便,可以去找导师,或者和同伴讨论。这样,对于解决同一个问题,你会得到不同的看法,还会学得更好更快,因为能从经验丰富的开发人员那里获得知识。
这很大程度上也能促进一个良好的后效应:继续把自己的知识分享给其他开发小白,这是相当有益的。
图源:unsplash
学习编程确实需要耗费时间和精力。但是不必重蹈他人的覆辙而让学习过程复杂化。如果只停留在理论阶段,拒绝他人帮助,没有找到合适的解决问题方法,那么成为专业人士将需要很长一段时间。
记住,最糟糕的事情是从不开始学习,或是在第一次失败后就轻言放弃,错误和失败只是学习过程的一部分。最重要的是要定期学习,持续努力,你一定会有所收获。