因此,您决定成为一名程序员。 好主意,但是您现在应该做什么?
有一个想法和执行一个想法之间存在巨大的差异。 您将面临犹豫,错误的学习方式,错误,失去动力,懒惰,缺乏时间等等。 我认为您找不到解决所有这些问题的文章。
但是,如果有人告诉您出了什么问题,您绝对可以避免至少其中一些。
如果您想学习Java,我可以成为您的“某人”。
本文介绍了那些想学习Java和Java初学者(或任何其他编程语言的学生)的常见错误。 我既是Java的高级开发人员,还是Java的导师,所以我对该主题了解很多。
Before You Start … Mistake No. 0: Thinking IT College Is a Must
大学或任何其他官方教育机构都可以为您提供计算机科学方面的知识和理解,但是很难使您成为专业的,面向行业的软件开发人员。
在大学里,您将面对编程的学术方法。 您的研究重点是理论和算法。 您可能还会在年底进行一些大型的,接近科学的项目。 它可能是有用的,但对于典型的面向行业的软件开发人员而言却不是。
我的意思是说,大学也许不是最佳的软件开发知识来源,但是如果您梦想着从事科学编程事业,它可能会适合您。 如果您是一名高中生并且想成为一名程序员,那么计算机科学学院也是您的理想选择。
在任何其他情况下,都不需要IT大学,而且通常,这只是您的时间浪费。 请记住,并非所有程序员都具有计算机科学学位。 毫不奇怪,其中大多数都不是。
Mistake No. 1: The Illusion of Learning
我记得戴夫(Dave),他是我的学生之一。 他一次又一次尝试了其他免费的在线Java课程。 我想他买了亚马逊上所有Java书籍的一半。 他在浏览器书签中有一百万个页面,全部有关Java……而且……他不知道该怎么做。
他将开始一门课程,然后再上另一门课程,然后一次又一次地将它们逐一丢弃。 在他遇见我之前三年的学习努力已经过去了。
“那么,戴夫,您目前正在关注什么主题?” 我问。
“扫描仪和阅读器,”他回答。
“哦,好吧……您的面向对象的编程和集合进展如何?”
“我只是尝试了一点,但没有深入。”
“你告诉我你已经学习Java三年了,不是吗?”
“……是的,但是几个月前我就停了下来,然后又从头开始。”
他浪费了三年时间,只是四处游荡,从一个来源跳到另一个来源。 好吧,如果您对Java有所了解,则必须考虑到Dave根本不是用于软件开发的。 幸运的是,这是不正确的。
他的问题是他开始收集课程和书籍,而不是实际学习。 他不是一个糟糕的潜在程序员,而是一个对自己不利的老师。
Dave加入我并在一年之内开始认真对待他的学习后,成为了Java培训生。 我并不是想对所有人说:“嘿,现在就找一位辅导老师; 你不能一个人做。” 如果他们知道该怎么做并有适当的课程提纲,大多数人可以自己完成。 这就是我为戴夫所做的一切。 我制定了他的教学大纲和学习时间表。
不要误会我的意思。 我知道许多人只通过互联网自己学习编程。 他们具有一项非常重要的技能-处理信息以及区分有用和无用的能力。
错误号0可以迅速杀死您的梦想,而错误号1则通过缓慢而痛苦地消磨您的时间和金钱来实现它。
使用0号很容易挣扎。请访问任何求职者平台并搜索Java软件开发人员的职位。 我认为您不会找到需要计算机科学学位但需要技术知识和经验的人。
第一个错误,即“学习错觉”,是一个艰难的错误。 它包含懒惰,缺乏决策能力以及寻找成功学习的神奇药丸的狩猎。 潜在的开发人员会获得太多可靠的信息,并且不知道如何处理。 他们开始认为软件开发太困难了,因此停止尝试…或再试一次并犯同样的错误。
好吧,我的主要建议是正确执行操作:
- 获取正确的教学大纲。 如果您有顾问(导师或程序员朋友),那是最好的情况。 如果您没有课程提纲,或者不想或不想参加离线课程,请搜索一本好的在线课程(最多一到两门),然后继续。 独立的评论/评分将帮助您选择正确的课程,在本文的后面,我将提供一些免费课程的示例。一致性是成功学习的关键。 每天或至少每隔一天编码一次。Of your time, 75 percent or more must be dedicated to practice and 25 percent or less to theory. I will get into the analysis of this typical beginner mistake in more detail below.## Mistake No. 2: Reading Too Much Theory and Not Practicing EnoughImagine а 2-year-old little guy who is trying to talk. However, his mommy and daddy don’t let him do it, because he is too little and knows nothing about the subject. They decide to explain grammar rules to him first and hire a speech therapist (the sooner the better!). Well, after all these measures, they let him try. Well, I guess there would be more speechless people with such an approach!
或假设有一个想打冰球的大个子。 “抱歉,伙计。 除非您阅读或听过一些讲座,否则您不会为之烦恼,例如:
- 冰的物理学曲棍球运动员运动的运动学和动力学冰球和曲棍球杆的假人冰球运动员的团队合作心理初学冰球运动员的伤口和创伤What to do if the other hockey players’ skates are uncomfortably close to your face”“Well,” the guy says, “I’d better continue my life without this game. Hockey must be very boring and scary. And way too complicated.”
看起来很可笑,不是吗? 但是,许多学生和一些老师认为,当我们谈论编程时,事情就是这样。
我的信息很简单:
- 要掌握任何实际活动,您应该练习一下!编程是一项实践活动。The conclusion of 1 and 2 is obvious, right?From the very first steps, find a course or book with a lot of coding tasks, and solve them every day. If you do this, you will omit one of the biggest mistakes when learning programming: focusing too much on theory.
我并不是说您应该忽略理论。 比率仅为25:75,“理论量少,编码更多”。 编写代码是学习Java的最好方法。
Mistake No. 3: Not Checking Your Solutions the Right Way
您的代码会执行应做的事情吗? 新手程序员常常认为,只要得到正确的结果,它就可以做到。 但是,这并不意味着一切正常。
您学会越早地正确测试代码,就越能成为更好的编码器。 学习单元测试是一项非常有用的技能,但对于完整的新手而言却不是。 您知道,适当的单元测试是一种超能力!
掌握自己的代码审查的第一步是思考“如果……怎么办?” 尝试不同的数据集。 考虑所有情况并非易事,但您会在适当的时候通过每一个“假设”收集宝贵的经验。
但是,我必须承认,近年来,出现了一些非常不错的编程课程和平台,并配备了自动代码审查功能。 它们极大地简化了您的第一步编码步骤,使您有机会集中精力完成任务。
在下面,您会找到几个有用的自动代码验证资源链接。
Mistake No. 4: Infrequent Practice
您知道发展实践技能的最破坏性和非理性的方式吗? 我只能用一个词来形容它-“有时”。 学习如何编码有点像爬上冰冷的山。 如果停下来,您将非常快地向后滑动,甚至可能会向下滚动。 您的编码技巧也是如此。 当您停止编码时,您很快就会开始丧失技能。
学习这种方式会浪费很多时间。 停止折磨自己,并定期练习编码。 那样的话,我的意思是每周至少三遍,或者每天更好。
Mistake No. 5: Being Too Proud to Ask for Help
您是否知道专业的软件开发人员在尝试用他们已经知道的可行解决方案来解决任务方面不成功时会做什么? 他们去Stack Overflow在论坛上问其他人。 亲爱的Java初学者,您为什么不这样做呢?
“如果我的问题很愚蠢,其他人嘲笑我怎么办?” 你可能会问。 好吧,真的,如果呢? 您知道我们生活在巨魔时代,所以一个好主意就是忽略它们。
请记住一件事:您有权为了学习而提出世界上最愚蠢的问题。但是在问之前,只用谷歌搜索你的问题。 几乎每个初学者的问题都已经被其他学生提出,并且已经得到回答。
当涉及到编程论坛时,提出问题或只是与其他Java初学者或软件开发人员聊天是真正的动力。 您意识到并非只有这样的问题,有很多人可以帮助您,也可以帮助您。
Mistake No. 6: Giving Up or Trying to Solve Your Task too Quickly
“我曾尝试解决该任务一次,但没有得到正确的答案。 我应该问Google…或我的导师…或我最近遇到的那个软件开发人员。”
停止,停止,停止。 您还没有尝试过!
当然,很难估计合适的时间寻求帮助。 但是,首先要问自己为什么现在想获得帮助。 可能只是您的懒惰,或者您想更快地完成任务。 如果是这种情况,请不要这样做。 这是我们在这里谈论的学习内容,而不是速度竞赛。
Mistake No. 7: Choosing Tasks That Are too Difficult
好吧,这是错误5的另一面。有些学生准备花数百小时来完成一项任务,这对他们来说现在太难了。 我认为,对于初学者来说,解决许多简单的问题比解决一项困难的任务要好,至少在他们学习的前两三个月要好。
我建议您将艰巨的任务留给以后再解决其他问题。 您以后总是可以回到困难的任务。 也许您会发现它并不像看起来那么难?
Mistake No. 8: Losing Your Motivation
“我听不懂这个话题……我不足以编程。 我应该放弃,尝试其他事情。” 听起来很熟悉,是吗?
每个(我的意思是)每个编程初学者都失去了动力。 这件事在我身上发生了很多次。 实际上,这种方法太常见了。 我所有的队友以及所有成功的学生也都经历了这一过程。
当它再次击中您时,请记住这一点。 如果缺乏动力似乎很严重,请尝试更改当前正在学习的主题。 而且不要忘记:几乎任何人都可以编写代码。 这不容易学习,但是绝对有可能。
Links for Successful Java Learning
我为学生收集了一些很好的链接,并简化了自己作为导师的工作。 它们对您也将有用。
CodeGym is for beginners to upper-intermediate students. It is a practical online course where you can find an excellent Core Java syllabus, about 1,000 (I presume) coding tasks with automatic code validation, as well as hints and tips. It seems a little bit like a video game: You have your character (a roboguy) whom you have to level up from a rookie to a Java programmer. The more coding tasks you do, the more points you get, and you spend these skill points to open new lectures and tasks.
CodinGame is for lower-intermediate to advanced students of Java or other languages. It gives you the ability to change the game right in the browser-based integrated development environment, compile it, and look at the changes in real time! Take some tough challenges and become a better developer. It is not an online course but a fun way to code, with enjoyable, challenging exercises for serious beginners and for pro developers.
GeeksforGeeks is a huge computer science portal for geeks. It contains some academic courses for different programming languages with nice syllabuses and a lot of practical tasks, quizzes, and puzzles. You can also find useful problems connected with algorithms and data science.
Øracle Docs is the main source for every Java developer or student from the authors of the language.
Three good Java theory tutorials for everyone from absolute beginners to advanced students: Ťutorialspoint, w3schools, and javaŤpoint.
小号tack Overflow is the biggest developers society where you may ask your questions or search for the existing solutions to your questions (asked by other students).
Coderanch is smaller than Stack Overflow, but it’s very beginner-friendly and good for Java developers.
Reddit is a huge site where you can find the answers to your questions. Beneficial subreddits are learnprogramming, java, and learnjava.
在您的职业生涯中阅读/观看的内容:
- Head First Java by Kathy Sierra and Bert Bates is a nice book for rookies.
- Core Java Volumes I and II—Fundamentals by Cay Horstmann is one of the best Java books and suits every Java student. ## Face Java Challenges With Confidence You are not alone. All beginner Java students face challenges on their way to mastering software development. It’s okay to make mistakes; you’re still learning!
如果您被困在学习中,也许您将面临我上面提到的问题之一。 记住,它们都有一个简单的解决方案。 请记住这一点,并以正确的方式练习。
别担心,开始编码!
This article firstly was posted as a guest article on stunning Simple Programmer blog.