所以您想成为Ruby开发人员?



一次,我被要求为一个独立的Codequest部门创建一个Ruby小组,这意味着我将成为Timlid(地狱,是的!!!),而且-更重要的是,实际上,成为所有试图招募新开发人员的人力资源部门都接触到的人(嗯...)。显然,这些开发人员大多数都是具有一般知识的初学者。在进行每次面试时,我不会忘记不久前我自己是一名初学者,坐在桌子的另一侧,所以即使我们认为他对我们来说,我也要保持耐心,友善并给每位候选人诚实和有用的反馈。不合适。尽管如此,我还是揭示了一些模式-许多开发人员,特别是初学者,都犯了错误,不仅使启动困难,而且如果以前只有人告诉过他们,就可以轻松避免。我自己犯了大部分错误,如果有人警告过我,尽管可能曾经警告过我,但我只是不听,这可能使我免于许多失望,因此,为了让别人的生活更轻松,我我会尝试指出,如果初学者(甚至是中级)想在软件开发这个有声望的方向上以开发人员的身份进行有效开发,则可以做得更好。

GitHub


社区中的每个人都知道,您的GitHub存储库对未来的雇主而言确实至关重要。是不是?如果您编写了一个供人们使用或贡献的开源库,是的,那可能是一张非常有价值的王牌。如果您编写了一个应用程序,即使它是一个解决了日常问题的培训应用程序,它也可以显示您的技能。但是,如果您可以显示的所有存储库是过去9个月内从未碰过的其他公司的半完成任务,或者是超级基础Rails(您的第一个“新的Rails”),您是否真的希望我们看到这一点?也许您现在比9个月前要好得多,该死,也许是,但是我们不确定,当您向我们发送代码公墓的链接时-就像他们所说的那样,您只有一次留下很好的第一印象的机会,对吧?

这不仅适用于初级用户-如果您查看我的GitHub存储库,您到处都会发现完全相同的东西-招募过去几年的作业或我在此过程中研究的一些废弃的核材料实验,等等。我每天都在GitHub上提交-但是这些提交是私有存储库,没什么好看的。我想说的是,如果您的GitHub上没有任何内容,那是正常的,但是不要向我们展示。

红宝石


我们都喜欢Rails!我们也讨厌他们。有时我们同时爱与恨。有时有一天我们爱他,第二天我们恨又骂他。但是,我们都同意,在用Ruby创建Web应用程序时,Rails是事实上的标准-在此业务中需要投入大量的精力和精力,甚至不需要短暂接触它(尽管我遇到了声称已这样做)。因此,很自然,当您决定成为Ruby Web开发人员时,您会学习Rails。如果您不学习Ruby而学习Rails,那就不好了!

您可能会认为这将加快您的进度-最终,建立基本的Rails应用程序非常简单-但是很快您会发现您并不真正了解它的工作原理,只会知道它的工作原理,但是这是第一个简单的错误,您已经在Stack Overflow上,寻找遇到类似问题的人。

这样想吧-您不会尝试仅使用Google翻译和您喜欢的电影的引语来写外语书籍,对吗?编写应用程序时,同样的事情-您实际上应该写出有意义的东西,并且您对语言的了解越多,就可以更好地传达预期的含义,并且在制作句子时变得越有效-它就越有意义。当您仅了解Rails时,您的词汇量是有限的。而且,我可以向您保证,您不想在需要“有限”服务的公司工作,因为很快您将变成仅实现基本CRUD功能的机器人,例如两个月之内令人兴奋,但是很快很无聊,就像刷牙一样,您必须这样做,但必须这样做,但这不是真的,您想要什么,对吗?

我在每次采访时都会提出一个非常简单的基本问题:

-Ruby中的类是什么,模块是什么,它们之间的区别是什么?它们的作用是什么?

您会惊讶地知道有多少人真的不知道这个问题的答案!这些都是想成为软件开发人员的人。他们所有人都可以在几分钟之内创建一个包含帖子和评论的博客,仅此而已。我有一个候选人,担任中级开发人员,他声称曾作为团队负责人在客户端应用程序上工作了一年-所以他仍然不知道Ruby模块是什么。

不要那样学习Ruby。有很多资源可用于此。我所知道的最好的之一是《 Ruby参考》-Ruby在线-涉及官方文档的书,但更方便易读。阅读,学习并感受您的专业水平如何发展。

滑轨


如上所述,我们不要忘记Rails是用于编写Web应用程序的Ruby框架。它很有可能会成为您日常的主流工具-因此,请多加努力以了解其工作原理!Rails指南是一个非常易于访问且相当详尽的文档-请花些时间阅读和研究它。

起初,您所阅读的大部分内容对您而言并没有多大意义,您会很少使用甚至可能永远不会使用的大量材料,但对材料的了解将给您带来更多的收益。 。


这些课程很棒-每个人都在使用它们!但是,仅遵循某人的指示是不够的,请记住,本教程的目的不是创建带有帖子和评论的有效博客,而是教您如何创建自己的应用程序。这就是您应该学会尽快做的事情。记住所有那些时刻,当您想到“如果只有我为此申请的话!”。或询问您的朋友和家人他们最需要什么应用程序。它可以是任何东西-简单的任务组织者,愿望清单或任何其他应用程序。我的第一个应用程序是一种笔记本,用于我妻子在实验室(她是科学家)的实验。我没有完成它,但是没关系-在这种情况下,我们所讨论的是过程,而不是结果。在上课时您正在处理人为制造的问题和交钥匙解决方案。当您创建自己的东西时,您不得不考虑如何构建它。您必须自己解决问题,我坚信,没有什么比开始创建更好的方法来学习如何创建了,因为这是您作为Web开发人员所要做的。克服困难将给您带来极大的满足感,增强您的信心并点燃火花,使我们坐在键盘上盘整几个小时,只看到正确的JSON或有效的注册表格。这将为您提供经验和一些展示。您的代码不必漂亮或浮华-您是初学者,没有人期望您编写操作系统!您不得不考虑如何构建它。您必须自己解决问题,我坚信,没有什么比开始创建更好的方法来学习如何创建了,因为这是您作为Web开发人员所要做的。克服困难将给您带来极大的满足感,增强您的信心并点燃使我们坐在键盘上盘整几个小时的火花,只是看到正确的JSON或有效的注册表格。这将为您提供经验和一些展示。您的代码不必漂亮或浮华-您是一个初学者,没有人期望您编写操作系统!您不得不考虑如何构建它。您必须自己解决问题,我坚信,没有什么比开始创建更好的方法来学习如何创建了,因为这是您作为Web开发人员所要做的。克服困难将给您带来极大的满足感,增强您的信心并点燃火花,使我们坐在键盘上盘整几个小时,只看到正确的JSON或有效的注册表格。这将为您提供经验和一些展示。您的代码不必漂亮或浮华-您是初学者,没有人期望您编写操作系统!作为网络开发人员,您将做什么。克服困难将给您带来极大的满足感,增强您的信心并点燃火花,使我们坐在键盘上盘整几个小时,只看到正确的JSON或有效的注册表格。这将为您提供经验和一些展示。您的代码不必漂亮或浮华-您是初学者,没有人期望您编写操作系统!作为网络开发人员,您将做什么。克服困难将给您带来极大的满足感,增强您的信心并点燃使我们坐在键盘上盘整几个小时的火花,只是看到正确的JSON或有效的注册表格。这将为您提供经验和一些展示。您的代码不必漂亮或浮华-您是一个初学者,没有人期望您编写操作系统!没有人期望您编写一个操作系统!没有人期望您编写一个操作系统!

但是,作为一个招募新移民的人,在十分之十的情况下,我会选择一个拥有自己代码的人,甚至丑陋且and着拐杖,而不是向我展示训练课程中的几种应用程序的人(例如填字游戏)。

好先生


最后一项不适用于特定级别的经验,而是本质上适用于我们行业中的每个人。一切都很简单-不要混蛋。善待他人。有所帮助。微笑询问您是否不知道,解释是否被询问。如果他们一无所知,就不要轻视别人,因为我们每个人都可以在他的位置上工作,计算机科学,编程,这是一个广阔的领域,几乎不可能成为一切专家。认识到您可以向任何人学习,即使他们只是您的一小部分。教别人,因为教别人是测试您真正了解的最好方法之一。并接受以下事实:如果您是会议室中最聪明的人,则必须更换房间,因为这是成长且不会自鸣得意的唯一方法。尽可能经常地测试您的知识和技能。正如健身房中的惯例所言:“如果受伤,就会增长”,离开舒适区,不要留在舒适区。

如果您还参与前端开发,请务必查看由我们的前端Timlid Petr Kabachinsky编写的入门前端开发人员最常见错误的完整列表

All Articles