Tiobe发布了最新一期(3月)编程语言欢迎度榜单,其榜单根据互联网上开发人员、课程和第三方厂商的数量,并根据使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。毫无疑问,老大哥Java 稳居第一。同样都是编程语言,为何Java那么优秀?
本文梳理了学习Java需要注意的十大雷区和常用工具,祝各位大神看好学好,长生不老。
在编程方面缺乏实践是十分致命的。从第一天开始学习,就要每天练习编程。就如同学习拳击或跳舞,如果只通过视频学习,永远也学不会这些。除非你把练习编程变成一种日常习惯,否则永远不会对编程有信心。
有些学生,尽管年龄大,却只是单纯喜欢学习。他们追求的是过程,而不是结果。即使这样可以开阔你的眼界,但是也不得不承认,浪费上百小时(如果不是上千小时)在新潮的爱好上,是没有任何意义的。
仅仅为了赚钱的程序开发员,是不会在谷歌或者其他著名软件公司旗下任职的,因为编程这行业并不属于他们。同样的,如果你热爱编程,但却不愿每天付出时间练习,那也许编程并不适合你。
软件开发这领域是个深藏众多数据和编码工具的深海。如果你期望学习热门并且看起来有意思的东西,你可能会在刚开始就完全陷入困惑之中。这就是为什么你需要根据自己的情况制定特定的计划,计划中包括融入Java的核心编码项目和编程工具。具体的计划和目标也可以帮助你避免成为无止尽的学习者,让你的学习设定在明确的时间框架内。
还记得“每天练习编码”这句学习Java的座右铭吗?很好,每当你想要偷懒翘掉几天编码学习时,就想想这个。初学者在刚开始时就三天打鱼、两天晒网的话,造成的后果会比想象中严重。一旦开始学习新的知识板块,其中涉及到之前的知识时,你会发现自己完全不记得之前学习的内容。这种惊人的“健忘症”会不断阻碍你的前进,所以竭尽全力、从不间断地学习前进吧。
一个优秀的开发人员必须掌握语言这个必要的工具。有些人可能认为编程必须是对数学很在行的——不,其实未必。同样的,知道如何写代码也不代表你会成为程序员。编程还要求你掌握许多其他的技能:强大的逻辑思维能力、解决问题的能力,以及将程序的结构和序列可视化的能力。有经验的程序员会在考虑好解决方案的逻辑之后再开始编写代码。
在通常情况下,花在任务或研究上的时间与事情的成功与否没有直接的关系。学习Java时,持之以恒的态度是解决问题和学习新知识的关键。但有时候,你需要先跳过难以解决的问题,稍后再找到出现问题的核心。友情建议:不要试图死记硬背代码,也不要对编码中的“工作原理”纠结得太深。Java的许多进程都是自动运行的,因此你可以更多地注重编程的直观感觉,并不断让自己更加熟练。
学习编程时,首要任务就是让代码运作起来。这也是为什么初学者不注重带有清晰注解的可读代码,而这些代码后来可能会被“解密”。
但是大多数有经验的程序员会做这样的事情。他们遇到某些不熟悉的代码时,会试着理解这些代码的意思以及这些代码要完成的功能。只有足够努力,你才能适时地学习如何编写可读性代码。
非常遗憾,但是确有这样的事实——你编写的代码并不总是如期运作。这就需要定期测试,别让后续的错误越积越多。如此以来,每个阶段就只需要处理少数的问题,而不需要反复费力的调试以找出漏洞所在和漏洞出现的时间。
鉴于网上有许多助你成功学习的工具和资源,往往大家会选择自学编程。可是大家会忽视真正的学习交流。事实上,尽可能多地参与学习小组会更有效率。比如, Coderanch和Stack Overflow论坛(这两个都是与程序相关的IT技术问答网站)就有许多供Java程序员讨论的平台. 此外,还有一个Oracle Java社区,它鼓励新手和经验丰富的开发人员加入该Java论坛并关注Oracle Java博客的更新。值得一提的是,Reddit上的Java社区已超过10.7万人。
作为编程菜鸟,多听听有经验的同事的建议,始终不懈的学习。编程领域日新月异,要求学习者始终秉持着学习的态度掌握与时俱进的新知识新技术,这样才能成为受人追捧的专家。
总而言之,如今有最广泛的资源:Java博客、指南、指导课、专题报告、课程、编码“战场”。所以,现在就按照正确的比例将这些“教育鸡尾酒”混合,小酌一口吧!
• CodeAcademy ——通过编码学习编码
CodeAcademy从第一堂课开始就是一些实际的编程任务。由简单到复杂。遇到问题可以尝试自己找到解决方案,如果觉得难,可以点击任务栏上提示寻求帮助,或者去常见问题(FAQ)处寻求解答。CodeAcademy是个很好的学习Java的补充工具,可以利用它提高编程技能,但是同时也需要其他的一些资源来学习关键概念。
• Codewars ——参加编码竞赛
掌握了基础后,可以尝试Codewars让自己在编码更有信心。这是一个在线平台,在此可以与其他程序员竞争,并提高你使用多种编程语言编写代码的技能。你可以在浏览器中编写解决方案,并逐步检查它们;可以单独编写代码,或者组队处理任务。解决的任务越多,获得的就越多。
趣味学习:CodeGym是一个在线学习平台,它使用游戏化的方式让你的学习体验变得有趣。课程分为四个任务,设定在未来世界的故事情节和独特的人物设定。每个任务包含十级。每一级多达10-13课,外加几十个实践任务。与CodeAcademy一样,从第一课开始,学员可以通过网络集成开发环境(web IDE)编写代码。一切都很简单:读取任务、编写代码,然后单击“check”按钮立即得到结果。与其他编码练习不同的是,它提供了Java理论的清晰解释,因此对于所有的初学者来说非常方便。