一直以来程序员是一个很吃香的职业,根据编程语言的流行程度,Java语言排名现在基本是在编程语言排行榜前几位,既然这么多人选择了Java开发,今天就来说下刚接触Java编程的学员要克服的6个坎,在我们学习编程的过程中,肯定会遇到很多的困难,仅仅是靠兴趣是不足以支撑我们走下去的,所以学习一门语言,就要克服6个坎。
不正确的学习动机
不要只是为了编程而学编程,也不要因为听说它很酷,很划得来就来学编程。你得因为要解决问题而学习编程,你得因为想要自动化和改善生活而学习编程,你得因为想要构建应用程序以造福社会来学习编程。
如果你只是喜欢编程,并希望以此作为职业的话,那么在之后的学习过程中,你可能会有一种强烈的冲动想要放弃。这通常发生在事情变得艰难,学习体验变得痛苦的情况下。这时你会告诉自己,你不喜欢编程了,编程操作不适合你,觉得自己天生就成不了程序员。
这就是为什么你应该考虑围绕着完成项目设置目标的原因。如果你的心里有计划,或者你想要解决更高层次的问题,那么你可以对自己说:“这可能不是一次愉快的经历,但是我真的想要解决这个大问题,所以我一定要克服这个障碍。” 不知道从什么技术入手
很多人会问:“我应该先学什么编程语言?”之所以会提出这个问题,是因为他们不知道自己为什么要学习代码。
一旦你下定决心去完成一个特定的项目,那么从什么语言入手这个问题就变成一件很容易的事情:
如果你想构建iOSapp,那么你需要学习ObjectiveC或Swift。 如果你想构建Androidapp,那么你需要学习Java。 如果你想构建Webapp,那么你需要学习Java。
其实现在我们可以使用Java来创建任何类型的项目——无论是简单的web和移动app,还是高级的硬件项目。大多数行业中都有它的身影:音乐、医疗、游戏、时装。这种语言非常值得学习。 不吸取解决任务中获得的经验
最好的情况是,你解决了任务并且结果证明非常有效。此时,很多人往往就直接开展下一个任务。但是如果你这样做的话,那么你浪费了一个绝佳的学习机会。 希望你能够用以下问题来挑战自我,帮助自己成长:
哪些边界情况会导致我的代码失败?即使现在还没有失败,有哪些应用程序状态可能会破坏代码?
我的代码是否足够整洁?对其他开发人员,甚至是自己而言,代码是否易于理解和改变?因为以后可能需要修复隐藏在这段代码中的问题,或者根据其他产品规格改变代码。
我的方法是最好的吗?有没有其他选项是我可以选择使用的?各个方案的利弊?这任务是否值得用不同的方式解决?
此模块与其他模块是如何交互的?是否会对其他模块造成负面影响?是否容易被其他模块影响?
不能学以致用,以及责备自己
很快大多数学习者掌握了理论知识,甚至完全可以自己来解释某个代码片段的工作原理。理论只是概念的有限集合。
习者碰到的最大问题在于,实际应用理论来解决问题并编写新代码的时候。这中间的差距实际上就是技能空白。
认为自己不够聪明,或者觉得自己没有天赋。这其实跟聪明天赋没有关系,你只是需要练习技能的过程:
选择一个复杂的项目。理想情况下,这项目得能够激发你的兴趣。
将这个任务分割成既小又独立的任务。例如,“实现登录页面”是一个很大的任务。解决一个任务不应该超过20行左右的代码。下面这些提示有助于成功做到这一点:
如果你不能解决这个任务,那么进一步将它分割成更小的任务。一个任务一次不应该使用太多的理论概念。
一次专注一项任务,而不是并行解决多任务。不要跳到下一个任务,除非你已经彻底测试过当前任务,并确信没有问题。
如果你不这么做,而此时应用程序又出现了问题,那么你就不知道你正在并行解决的多任务中到底是哪个出了问题,寻找起来就麻烦多了。
确保自己在开始任务之前知道所有必要的理论知识。有时候,你可能不知道需要学习什么理论,这很正常,所以你需要向他人寻求帮助:程序员朋友,导师。 最后,你解决了任务。在解决任务的过程中,你可能会碰到很多问题,你需要做的就是吸取教训,这也是下面要说的要点: 解决方案不管用
这是编程中最常见的情况,哪怕是那些经验丰富的资深程序员也是如此。你的解决方案之所以不起作用最大的可能是你的代码中存在着bug。
如何修复?方法是调试代码。这也是作为一个程序员需要学习的最重要的技能之一。这不是可以随便凑合的事,也不是玩幸运猜猜猜游戏。如何寻找bug是有具体步骤的。而且很多书中都有教这个技能。
不幸的是,这是很多新手程序员失去动力选择放弃的难关。很少有课程会说明调试的重要性。如果你不知道如何正确地调试,那么它就是不可战胜无法攻克的难关。
很多人担心会花太多时间用于调试代码。这是正常的,在你第一年的编程规划中这是不可避免的。
甚至,你还得学着去喜欢调试。不妨将此看成是一个机会,一个修复错误提高编程能力的机会。当你解决了一个bug,可以问问自己这个问题:“我为什么会犯这种错误?以后我该如何预防再犯?”
还有一个好主意是将找到的bug写成编程日记,方便你总结和学习。 不去应用你学到的理论
这篇文章也是理论知识,除非你能够学以致用,否则它是不会发挥一丝一毫作用的——多多应用,直到它变成潜意思的例行程序。
编程其实就是通过形成良好的习惯来帮助你解决各种问题的过程。