JavaRush /Java 博客 /Random-ZH /学习JavaRush。第一个项目,什么在等待着你,什么是最好不要做。第1部分。
dwajot
第 41 级
Киев

学习JavaRush。第一个项目,什么在等待着你,什么是最好不要做。第1部分。

已在 Random-ZH 群组中发布
下午好 我终于到了准备分享我的成功故事的时候了。我想告诉你很多,所以我将其分为两部分 - 可以这么说,“第一个项目和最好不要做的事情”和实际上“寻找工作并通过面试”。我不会告诉你太多关于我自己的事情,我只是说,就像这里的几乎每个人一样,我毕业并在另一个专业工作,但后来决定成为一名程序员:)让我们立即谈论培训。我从2016年初开始学习JavaRush。我花了很长时间选择在哪里学习编程,当然,像我们所有人一样,我不想支付培训费用。我想学习 Java,因为我的梦想是在 Android 上编程。在我的搜索过程中,JavaRush 课程多次引起了我的注意,但我放弃了它,因为它是共享软件。我开始在 YouTube 上学习视频课程。然而,后来,有些力量迫使我尝试在 JavaRush 上解决免费问题,令我惊讶的是,在完成 50 个视频课程(我认为它们很正常)并在讲师的指导下编写代码后,我遇到了很大的困难,而不是第一个尝试解决课程最初的问题。我很欣赏课程的质量以及如果我完全完成它会给我带来什么,然后我在论坛上看到不时有很好的订阅折扣,并决定我要学习完整版本。是的,许多学生对这门课程感到愤怒和愤慨 - 问题是根据尚未涵盖的材料给出的,验证者不理解它们,而且有很多很多的东西可以在论坛上阅读和在评论中。你猜怎么着?我也是这样的:)我仍然有一个大任务挂在34级,我尝试了所有的解决方案,但验证器不接受它。还好支持给了我一些黑料,我才能够完成课程。总的来说,作为 JavaRush 课程的毕业生,我会告诉你我对这门课程的喜欢和不喜欢的主观看法(愿管理员原谅我)。 我喜欢:任务数量、任务即时验证、远程学习、培训不依赖于你的工作日程、课程结构、学生论坛以及价格。 不喜欢:在课程中,你开始适应验证器,然后很难摆脱它,思考并找到一些其他方法(但仍然是这样的想法,并且在这里实现得很好),某些任务中出现错误,复杂性很强在某些任务条件下(最好有一个针对此类情况的论坛),我也尝试了新界面 - 我不太喜欢它,幸运的是有机会切换到旧界面。总而言之,我对这门课程及其给我带来的东西感到满意。我记得一年前,一位朋友试图向我解释什么是 boolean 和 void、什么是方法以及它们如何返回值。我记得我有多久无法理解为什么这些值需要返回:)现在我经常想起电影《黑客帝国》中的一个场景:尼奥:你要教我如何躲避子弹吗?Morpheus:到时候,你就不再需要它了。事实上,到了那个时候,他已经先验地具备了这些技能。在课程第 30 级时,我想获得 JavaRush 提供的实习机会。我看着测试任务,有点惊悚。我真的希望我的朋友能帮助我做到这一点,但是在截止日期前一周他说这里是谷歌,在这里输入所有技术,会有一堆例子。我非常感谢他发生了这件事,因为那时我第一次感受到了作为一名程序员的意义。我用了整整 4 天的时间完成了作业,非常高兴能得到实习机会。 实习。我没有完成实习,因为同时我开始做我的第一个项目,但事实证明它对我来说是一个优先事项并且更有趣+我不想在企业工作。实习本身我能说什么呢?有优点也有缺点,但总体还是不错的。如果你打算继续进入企业,那么我认为这是值得的。 第一个项目。正如我上面提到的,在 30 级左右,我得到了实习机会并开始做我的项目。它过去是,现在仍然是一个电报机器人。即使课程达到 20-30 个级别,我也希望创建一个机器人,但我找不到合适的教程或如何开始的说明。然而,一次偶然的机会,我看到了这样一篇文章,我立即开始尝试。如果有人感兴趣,这里有一篇文章的链接 - How to write a bot in telegram Java 坦白说,这篇文章的作者后来对我帮助很大,这将在下面讨论。该机器人的想法是这样的:作为一名程序员,我需要学习英语。我对语法比较了解,但我想提高词汇量。我认为如果有一个学习单词的机器人就好了。我之前已经在一篇文章中写过有关该机器人的详细信息,因此不再重复 - 这里是链接Telegram bot Words 我来告诉你我在创作过程中遇到了哪些困难。首先,这是第一次使用 telegram api。虽然很多人说这是最简单、文档最好的 api 之一,但对于我这个初学者来说却非常困难。我通过选择完成了所有事情:)有时我不得不花一整天的时间来制作某些功能,例如,按下按钮后将其删除。大约半个月的时间我写出了第一个测试版本,所有代码都在一个java类中,我想尝试将其上传到服务器。我的项目不是商业性的,所以我立即丢弃了付费服务器。我记得 Heroku 服务器,顺便说一句,它是用来托管实习网站的。我尝试了这个服务器整整两天,并且已经完全绝望了,因为根本不起作用 - 所有与网站相关的说明,但我有一个机器人,我需要采取一些不同的行动。因此,我决定写信给有关该机器人的文章的作者,询问他使用什么服务器来托管该机器人。然后幸运之神向我微笑 - 作者原来是一位非常酷的程序员(我仍然与他保持联系),他让我在他的 Linux 服务器上托管该机器人(如果我认识 Linus,他会分配给我)一个帐户)。最初学习 Linux 花了一天的时间,当然,并非没有错误和困难,机器人开始在服务器上运行。此外,在这一切之间,我完成了 JavaRush 课程,并且非常高兴:)我选择 MySql 作为机器人的数据库,回顾了很多关于优化表、选择引擎和其他一切的课程。我会给每个将要进行第一个项目的人提供建议 - 尝试立即思考其整个结构并至少构建一个相对可扩展的架构。因为这样的错误,我大概重写了 3 次。是的,这很困难,因为很多时候您不知道要在项目中添加什么,但您仍然可以在最低水平上做到这一点。不要将所有代码写在一个类中!尝试使用 MVC,记住 OOP 等。有趣的是,当项目几乎准备就绪时,我就开始在项目中使用一些基本的 OOP 原则。在此之前,我什至没有想过它们。当然,用户一般不会关心这个产品是用什么语言写的,使用什么模式和技术,但是当你几个月后打开它,想要在那里添加一些东西时,你会想到很多好词好句。关于你自己:) 另外,不要忘记进行日志记录 - 这允许您跟踪错误并查看用户最常使用哪些功能以及需要进一步开发哪些功能。顺便说一句,在电报中,您可以通过一种非常酷的方式来做到这一点 - 将所有日志实时发送到您的私人频道,可以说,您可以创建某种大数据:) 总结一下第一个项目创建时间约3个月,目前注册用户已超过1.4万,其中不少人已成为常客,每天学习外语单词。 第二个项目。我的目标是成为一名 Android 程序员,所以当我或多或少完成了这个机器人后,我决定将其适应 Android 平台。我开始使用 startandroid 课程进行培训,我最好的朋友 android 开发人员给了我很多很酷的任务,检查它们并说出需要重做和完成的内容。一旦我掌握了基本技能,我就开始制作自己的应用程序。和第一个项目一样,有很多不同的困难,但如果我们把它作为一个整体,那就少一点。大约一个半月后,第一个测试版就准备好了(我不得不重写应用程序的整个设计几次,因为我不知道它会是什么样子)。然后我在Google Play注册为开发者并上传到市场。最近我一直在优化和同步我的两个项目。对于一般数据库,我选择了 Firebase - 非常好的文档,很多课程,对于小型项目,1GB 容量的免费版本绰绰有余。如果我们简单地说一下第二个项目中最大的困难(我认为其中一些困难对于有经验的开发人员来说也会出现),那么这就是Android中多线程的创建,屏幕尺寸和扩展的很多问题,创建我必须与 Photoshop 交朋友,支持旧版本的 Android,并且如果您的列表中有动画,也永远不要使用 Recycler View :) 在 Yandex 在乌克兰被屏蔽后,这就是我获得大部分翻译和语音的地方 -总而言之,我必须在代码中添加额外的检查,并简单地通知用户使用 VPN。甚至在 Google Play 注册时也遇到了困难 - 为了成为开发者,您需要一次性支付 25 美元的费用(与 Apple Store 不同)。当我付款时,我的卡有限额,我的付款被卡住了。我必须与谷歌支持人员交谈,一般来说,他们将我从一个运营商发送到另一个运营商,直到我意识到他们只是礼貌地发送给我:)我必须删除所有内容并重新注册(我会立即想到这一点) )。关于推广您的项目的更多信息有了机器人,事情就简单了一些——机器人的想法本身就比较新(我没有进入主流,但还是可以的)。有一个机器人、VK、FB 组和其他资源的目录。现在我的机器人在教育部分排名第五,对我来说这是一个非常好的结果。要在机器人目录中前进,您需要接受评估。我提出了一个让用户投票的提案,只有当用户玩一定数量的游戏时(就好像他在机器人中度过了一段时间),投票才会发生一次(我自己也不喜欢侵入性)。对于 Android 应用程序,情况会更糟。我要说一件事 - 没有广告,没有人会注意到您在市场上的应用程序,即使是通过关键字,因为那里有数百万个应用程序。在项目之间同步后,我在机器人中宣传了我的应用程序。之后,我获得了前 14 次下载:) 如果有人已经阅读了这一点,如果您有兴趣,这里有一个该应用程序的链接 - Words Android 应用程序。机器人的链接位于有关它的文章中,在文本的较高位置。感谢大家的关注。我会在第二部分告诉你我的面试经历、他们问的问题以及一般的求职过程。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION