如何使1C程序员成为Java开发人员

几年前,当我寻找从1C程序员到Java开发人员的方法时,我在黑暗中徘徊,试图找到一扇我不确定的门。 我试图找到成功的故事,但除了一些评论外,我没有在Google上搜索任何内容。 Java世界看起来很大,而框架的数量却是无止境的。 这是完全不可理解的:教什么,不学习什么,工作中需要什么以及没人使用什么。 如果您想使用Java,请迷失在无穷无尽的技术和框架中,并希望找出需要研究哪些和忽略哪些-本文适合您!



一些初步假设


  • 在本文中,我们将不讨论“为什么?”问题,我们只会讨论“如何?”。 如果您来到这里,您自己就会知道为什么。
  • 我从未接受过任何与IT相关的教育,所以我的建议是一个人的建议,也应该是给那些在开始学习Java时从来没有写过1Ca以外的东西的人的建议。 如果您拥有软件开发文凭,则其中一些建议可能是多余的。
  • 我将尝试画一幅反映某种平均空缺率的图片。 自然地,如果您想要在某个狭窄的特定方向(例如大数据)嵌入,反之亦然,那么您最好了解有关此方向的更多信息。

坏消息


首先,如果您决定背叛1C转向Java开发-别指望这条路容易而又快速。 通过尽职调查,您很可能会花费不少于半年的准备时间,再加上不少于一年的时间来摆脱六月。

其次,要做好准备,如果您现在是排名前1的Snik,那么当您成为有信心的中产阶级时,您的收入可能会恢复。 通常,这不少于2-3年的实践,但最终,这完全取决于您。

第三,不要期望您的1Set体验对这里的人很有趣。 您可以拥有100,500个成功的项目以及1Snal证书中的整个墙-这不会引起任何人的兴趣。 您将是六月,他们将像六月一样与您交谈,而您将有类似六月的任务。 但是这里有很多蜂蜜:即使您不是顶级的1Snik,在SQL问题上,很有可能您也会接触到高级Java开发人员。

您已经听过三遍了,但很可靠的一些技巧,但请相信我,它们可以100%起作用:

  1. 每天花费1个小时比每周花费7个小时要好得多。 如果您决定走,那就走。 没有借口 每一天 好吧,你可以在周日休息。
  2. 如果笔记中的英语val-请改善它! 这是一项有用的技能:不仅几乎所有您可以阅读的内容都是英语,而且您还需要在上面编写代码! 最有可能的是,您需要的第一件事就是阅读和理解所阅读内容的能力。 通过听和说,您可以稍等片刻。

准备。 语言基础


您应该选择一种语言。 在互联网上,有一堆具有比较特征的文章。 另外,您可以将语言的名称输入到hh的搜索中-了解您对在那里看到的内容的满意程度。 不仅要注意周五的疯狂薪水和啤酒,还要注意空缺的数量,最重要的是要准备参加六月的空缺数量。

我选择了Java。 如果您选择其他语言,将在此情况下提供所有进一步的建议-此处编写的内容可能会失去其含义的大部分,但您可以得出一般的想法。 您可能应该朝着PHP的方向发展,因为从管理障碍(有1C,这里是1C,有什么区别?..)以及在语言中没有任何流和方法引用的角度来看,Bitrix及其向它的过渡可能会变得更加容易(尽管它们很高)。

如果您也选择Java-不用理会Java EE,则只需要Java SE。 什么是Java ME和Java FX通常更好(不知道)

那你从哪里开始呢? 我不建议您急于为专业人士购买两卷霍斯特曼(Horstmann)和数千页的Spring 5,并尝试学习所有这些内容。 即使您全心全意地告诉所有这些内容,但实践无法支持的知识也会很快消失。 从面向程序员的在线培训站点开始。 我解决了JavaRush。 可能达到15级。 用了大约1-2个月的时间(我可以撒谎,那是很久以前的事了)

然后进入HackerRank。 不要为它的名称感到震惊-您可以在其中选择难度级别,最简单的情况是,您将获得级别任务来反转字符串。 确保中级任务(中等,满分30分)顺利解决。 尽管评分系统有时会失败,并且有30点这样的问题,但是将任何艰巨的任务解决60点都比较容易,但是基本上您必须应付。 您还需要1-2个月。

现在是时候阅读霍斯特曼了。 请记住,这是一本好书,但它涵盖了Java的全部内容(仅涵盖语言,而不涉及框架),甚至涵盖了几乎从未使用过的Java部分。 我的建议:在第一卷中,请忽略与UI相关的部分以及整个第二卷。 但是,如果太紧了,请跳过多线程,并在第一卷中跳过泛型的后半部分-即使中间部分也可能不知道这一点,对于6月而言,这并不可怕。 切勿陷入版本陷阱也很重要:一本名为Java 2的书是古代的。 您需要版本1.8或9。或者关注发布日期:2015年及更高版本将可用。

我希望您在阅读Horstmann时不要放弃HackerRank,也许您甚至可以解决80-100分。 通常,不需要提出60多个点,因为开始的应用编程并不像“为艺术而艺术”那么多。 但是,如果您感觉到自己的力量-有时需要付出努力,那将不是多余的。 另外,请记住,大多数复杂的任务都是经典的算法任务,您可以谷歌搜索:hackerran练习的重点不是从头开始发明一个已经发明了很长时间的算法,而是要了解算法的存在并实现它他。

继续准备。 框架,工具和实践。


完成所有这些之后,您几乎准备去接受采访了。 还剩一点:

  • 再次注意集合及其中搜索的复杂性。 每个人都讨厌这个话题。 不要试图找出所有的东西:最好是了解基本集合(ArrayList,LinkedList,HashSet,HashMap,也许是TreeMap),而不是三打,但要“排在最前”。 即 您必须了解集合在内部的工作方式。 YouTube上有一个不错的频道,六月的一切都在咀嚼中。 正是您需要的方式。 您进入搜索“关于Java集合的课程”的搜索-指向它的第一个链接。 还有一个视频,名为“面试前您需要知道的事情”。 您不必直接了解那里列出的所有内容,我认为,如果您掌握其中的2/3,那么您仍然是6月-没关系。
  • 春天是什么(您需要Spring Core和Spring Boot)-在那里做了很多工作,但是95%的使用实践并不比halovorld复杂。 您应该了解一些基本概念,例如IOC是什么,以及为什么拥有1-2种声明和注入bean(而不是xml)的方式通常并很有信心。 也许您还应该尝试在Spring Web上制作几个REST服务:没有什么复杂的,但是肯定会有好处。
  • 如何编写测试(请参阅JUnit和Mockito)-在1中,原则上没有编写测试的实践。 在Java中,没有测试的代码不是代码,因为除非有相反的证据,否则代码被认为是无效的。

当我说“看看[frameworkName]”时,我的意思是:使用适当的工具至少执行一些家庭项目。 最有可能的是,首先要在Hello World级别分别尝试每个框架,然后再将它们收集到一个至少具有一定“用处”的项目中,这是值得的。 看来这是一个好主意(尽管我从未这样做过)-这样项目才能以某种方式与工作联系在一起。 也许只是将您在1上看到的任务完全重写为Java,也许是您自己进行1Snaya活动的助手。 例如,如果您在1上看到与供应商的REST交换-在Java中实现供应商方以测试1So功能:只接受请求并将它们放在某个地方。

您的所有家庭项目都必须由Maven编译并由Git版本化。 这些只是工具,值得您全力以赴-并且已经不再注意到它们了。 根据我的观察,作为开发环境,我建议您采用Idea,几乎每个人现在都在使用它。 免费版本应该足以满足您的需求。

如果您不花钱,可以参加一些Java开发课程。 我认为基本课程是不值得的,因为要解释的所有内容都不值得花时间和金钱。 参加有关Spring Core或JUnit的课程:一方面,您将获得知识,与未来的同事交谈,另一方面,您将在3天的时间里不会被咀嚼。

在两者之间的某个地方,您需要阅读编程理论。 肯定会询问您有关SOLID和模式的信息。 模式(它们也是设计模式)是非常直观的内容,尽管Wikipedia对其进行了描述,以使恶魔折断他的腿;最好阅读不太深奥的文章 。 我认为,这样的集合就足够了:界面,生成器,原型,单例,装饰器,代理。

我们去社保局吧!


用人单位
您应注意几种基本类型的雇主。

首先是购物者。 他们是徒劳的。 最著名的代表:Luxoft和EPAM。 他们雇用人员,然后将其转售给各种Sberbanks。 车身修理工将他们的员工放在客户办公室的正确位置,很难将他们与客户的员工区分开。 通常,那里的要求水平较低,而薪水较高。 但是您不会在什么条件下工作:这些不是最终客户无法从市场上吸引开发人员的最有吸引力的项目,他们将非常了解劳工法规,并且您自己也不会成为全职员工工作(各种各样的好东西和公司聚会会经过你)。 但是您不需要这个吗?

外包商是由最终客户雇用的办公室,但销售对象不是像车身修理工这样的人,而是执行任务的人。 通常,这试图使开发人员远离客户并参与新项目。 这是一个非常值得的工作场所,但是要像您那样拥有丰富的经验去那里并非易事,但并非没有可能。

食品公司是Yandex之类的办公室,原谅我是Kaspersky,他们将其代码作为最终产品作为盒子出售。 有一种观点认为,最好在这里工作:薪水很高,有很多好东西,有趣的任务,专业的团队。 当您在星期五听说免费的英语和啤酒时,很可能是关于他们的。

接下来是银行和保险。 这里的一切都可能非常不同:通常,银行拥有巨大的可怕遗产,没人愿意去,而且空缺被关闭的新型时尚时尚青年项目。 您了解的是第一组。 尽管有时他们的自负可能会越过头,例如“关键任务系统-不是琼斯的地方”。 不要注意它们,这远非全部。

自然,这个列表并不能完全描述整个劳动力市场,这里有各种各样的初创公司,零售公司,还有很多其他许多公司。

首先,不要说谎。 相信我,即使您“偶然地”在技术面试中被误认为是中级人物-在工作中,您仍然是6月。 因此,在简历中,您不应利用自己在上一篇文章的标题中未提及1C的事实,就已经发明了Java开发人员已有15年。 但是可以采取一些步骤来克服人力资源障碍。 不要伸出您的1Snoe过去。 在最近的几份工作中,您只需编写“ Programmer”或“ Developer”,然后在描述中的某个地方挖出字母“ 1C”。 您不会花钱,但人力资源可以买到。

其次,将您的未来雇主弄不清楚您如何进行自我训练是错误的。 将半年的培训写成一个单独的工作场所(应该在最顶层),时间与最后一个工作场所相交。 称之为“ Java开发人员”,工作地点是“自学”或“家庭项目”,并列出了您尝试过的技术。 提供指向黑客个人资料的链接。

第三,提出为什么要使用Java的令人信服的理由。 我不建议说“我已经厌倦了护理会计师”或“我不希望我的薪水随着卢布汇率下跌而崩溃”,甚至更不要说“我想摆脱这个困境……”。 与开发相关的主题最适合:他们说我已经在这里看到了一切-我们需要继续前进。

第四:您是一个六月,像您这样的人,每年从机构获得的释放远远超过六月的空缺。 同时,这些机构的成员没有家人和孩子,可以生活和工作,他们不需要抵押。 好的,经验就在您这边,但这不是相关的经验,也不会被认为具有很大的价值。 由此可见,您无法欺负预期的sn。 如果您不能靠6月份的薪水生活,那么在第一年的四分之一赌注中赚取1Snick是一个不错的选择。

穿过狗,记住问题,找到答案,然后再次穿过狗。 我认为,每周1-2次技术面试是可以接受的水平,以便设法消化所获得的经验,而不会拖延太多搜索时间。

六月工作


这里最重要的是Tim Lead。 您应该在tech.sobes遇到他,“他应该选择了您,您应该选择了他”(c)。 感觉到这种化学反应非常重要。 这是一个人,在接下来的几年中,您必须倾听,记住并实现。 这个人将把您带到Java开发的顶峰,并使您进入这种魔术的最深层次的细微差别。 而从他那里得到的,也许甚至比从你身上得到的更多,还取决于你将变得多酷和多快。

因此,我年轻的1C昵称,如果您以前知道“为什么?”,现在您仍然知道“如何?”。 一千英里的旅程从第一步开始。 来吧!

Source: https://habr.com/ru/post/zh-CN479310/


All Articles