CodeGym/Java 博客/随机的/它怎么样?或者我的第一个项目
John Squirrels
第 41 级
San Francisco

它怎么样?或者我的第一个项目

已在 随机的 群组中发布
个会员
这是我们全球 Java 社区成功故事的翻译。Alex 在俄语版本的课程中学习了 Java,而您在 CodeGym 上用英语学习了该课程。愿它成为您进一步学习的灵感,也许有一天您会想与我们分享您自己的故事:)

介绍

简单介绍一下我是如何进入编程领域的。我是一名受过培训的教师和心理学家,五年来我一直在成功地实践我的职业。但由于种种原因,我越来越多地考虑搬到另一个国家。而且由于其他国家的语言和法规不同,如果不经过认真的再培训,我无法成为同类专业人士。所以我开始寻找更简单、有趣的方式来移动并取得成功。 它怎么样? 或者我的第一个项目 - 1我尝试过成为一名纹身艺术家(这基本上不需要任何语言知识),但那是另一天的故事了。然后我的同事朋友向我介绍了 CodeGym。我最初对通过玩游戏并以如此低廉的价格使我成为一名成熟的程序员的承诺表示怀疑。但后来我得到了一些生日钱(不需缴纳“家庭税”),并面临着 WoW 和 CodeGym 之间的选择……好吧,感谢及时的折扣,天平向正确的方向倾斜,我就在这里。众所周知,CodeGym 90% 是纯练习。你学会解决任务。您学会在互联网上找到您缺乏的知识。所有这一切都很好,但对于 15 个关卡,我无法摆脱这样的感觉:我错过了一些可以为我完成画面的东西。我想过加入 GeekBrains,但(可能幸运的是)同一个朋友及时阻止了我,并向我介绍了 Udemy。当我打开这个知识库时,我附和着呼吁:“嘘,朋友,你是新手吗?” 为您提供折扣……仅限 3 天 — 不要错过这个机会!“ 后来我发现折扣总是有的,但这不是重点。我立即购买了包含两门课程的套餐:Java 从 0 到 Pro 以及类似的 Android 课程。这就是我们的故事开始的地方。

成功还是失败?

当我学习 Android 课程时,我收到了作业,要根据我的新知识制作一个项目。我是那种认为以简单或普通的方式做某事就像根本不做一样的人。所以,我立即开始让我的生活复杂化。我求助于我认识的一个想象力最丰富、最生动的人。这是我亲爱的妻子(是的,她也会读这篇文章)。她建议制作一个带有动物图片的应用程序,当点击它们时会发出相应的动物声音。这是一个好主意,但仍然非常简单。以这个建议为基础,我开始推理:
  • 这个应用程序一定不仅仅是绒毛(一些让人一笑而忘的东西)。我希望它有价值。例如,通过教一些东西。
  • 让它成为带有动物的字母表。但不仅仅是任何字母表,而是英文字母表!
  • 而且不仅仅是动物,还有很少有人知道的珍稀动物,以拓展视野!
  • 并且应该有英语和俄语的字母名称和动物名称的动画、音频再现!
这就是我所说的家庭作业(我忘了说,在使用 CodeGym 之前,我对编程基本不熟悉。从我开始积极使用该网站到开始项目,只用了不到 3-4 个月的时间。所以,如果你如果你是这个领域的老手,你会想,“噗……原来的版本有什么改变吗? ”,我向你保证,是的,它改变了)! 奇怪的是,我遇到的第一个困难是启动该项目。事实证明,作家并不是唯一经历“作家障碍”的人……但因为我是一名心理学家,所以我知道解决问题的方法。你只需要开始做某事。至少迈出一小步,然后就不要停下来。所以我从一个抽象的 Letter 类开始。这个类有几个字段,随后必须有各种方法。事实上,我不知道我会用它做什么,但我必须做点什么。然后,我为每个字母创建了类,使它们继承抽象类。花了很多时间,第一天的工作就这样结束了。第二天我删除了该项目并重新开始。我刚刚打开该项目来记住自上述那一刻起发生了什么变化。我想说,当我完成后,一切看起来都更好了,但事实并非如此。每个字母确实还是有类的……这主要是因为我几乎在 Android 课程一开始就被布置了这个作业,而我必须自己弄清楚一个字母之间错综复杂的关系。活动(活动窗口,或类似的东西)与一个类。除了这种将特定类别与特定活动相关联的笨拙方式之外,我没有发现或想到任何其他方法。无论如何,编程的原则之一(避免重复)被违反了 26 次。首先,我完全(在我看来)实现了前两个字母,制作了一个由两个菜单组成的粗略 UI(扩展功能时可能需要的通用菜单,以及一个目录,您可以从中跳转到任何内容)的字母)。我在编程方面并没有遇到太大的困难。当我实现我的独立项目时,很多事情,例如类、方法之间的关系等都变得清晰起来,并且该项目本身成为了巩固我所获得的所有知识的绝佳实践,不仅涉及 Android,还涉及 Java。 第二个困难是听到它的名字的同时,这封信也发生了变化。平滑的过渡(阴影)使声音看起来像是先于图像。但是,当我对声音进行延迟时,整个线程都会冻结 - 转换只是简单地推迟了延迟量,产生了相同的不良效果,只是稍后。然后我做出了一个大胆的决定,让我的程序成为多线程的!我将声音播放移至单独的线程,延迟时间足以加载图片。这就是多线程的情况,但我很自豪地说我正在编写一个多线程应用程序。 最后的困难是选择合适的材料。你是否认为英语中的字母X没有动物(事实证明有)?我必须识别26种动物并找到它们的图像和声音,并记录26个字母和26种动物的名字。如果我在一个团队中工作,我显然会把这部分工作留给其他人。这种单调的时刻扼杀了工作的欲望,而当没有欲望时,就会有借口。无论如何,这个阶段花了大约两周的时间(我在业余时间并且没有任何借口的情况下完成了这个项目)。该项目在开始后大约 3-4 周被宣布完成。

继续学习编程值得吗?

随之而来的是幻灭。首先,我不被允许发表我的课程作业。我做了这项工作,并付出了巨大的努力来炫耀,但我不被允许这样做。其次,我的应用程序在模拟器和手机上运行得非常好。在我计划做的事情中,我没有实现动画,因为我吐槽并决定当我完成课程中的相关课程后我会完成它。但当我开始考虑分发应用程序时,我遇到了一个有趣的问题。在使用另一部手机和平板电脑检查我的应用程序是否针对不同屏幕和不同版本的 Android 进行优化后,我遇到了未知错误。当切换到字母时,程序会直接关闭。我试图找到问题的根源,查看日志,与简洁的 Java 异常相比,这看起来更像是骗局。互联网对我没有帮助。一方面,我制作了一个我的孩子们喜欢玩的可用应用程序。另一方面,它只适用于我的手机。这让我笑了。当然,我很沮丧,但反思一下,我得出的结论是,我得到的比失去的多:
  • 我更擅长处理对我工作的批评。
  • 我意识到软件设计知识和经验的价值。
  • 我增强了编程的自尊心。
  • 我意识到有必要学习设计模式和重构的基础知识。
  • 正如我所说,现在我有了自己的应用程序,其他人没有,也可能永远不会有。=)
“我知道我一无所知”。通过实施这样的教育项目,您有一个很好的机会来分析您所知道的知识缺口,并找出进一步进步的方法。如果你明白你一生中很长一段时间的所有努力已经让你从 0 上升到 +0.001,那么继续学习编程还值得吗?对我来说,答案是肯定的。你呢?
评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论