从var b到面试

你快完成大学了吗? 您受邀参加面试,但您没有准备就去那儿? 您没有受过的教育(更高),但是想从事程序员或IT领域的工作? 这主要是关于找工作,我只代表我的城市(车里雅宾斯克)发言,因为 我在这里找工作。



当我在大学二年级的时候开始寻找工作时,我并不怀疑我们城市有多少家不同的公司。 从编码员到深度学习,从那些。 对游戏开发人员(移动,社交网络,台式机)的bitrix支持。

我当时接受了大约8次采访(不在线统计)。 他们都朝着不同的方向前进。 布局,桌面游戏开发,Web开发人员(C#+ .Net),Web开发人员(bitrix + php),前端(js + react)。 他自己拒绝了一些东西,他们没有带走。 我不太了解

更接近要点,更接近代码


我想告诉他们他们在此类采访中的要求以及为什么这么做(以解释所使用的技术)。

让我们从一个简单的开始。 布局图


在大多数情况下,每个人都需要布局速度。 他们给了我两个任务(两个不同的公司)。 首先是产品卡在网站上的布局。 在一个小时内,我需要按照图片中的顺序进行布局,而之前我曾将其丢弃。 任务没有什么复杂的,但是条件之一是像素完美(像素到像素)。 我有几个错误:布局不匹配(通知窗口的显示不正确以及悬停效果的逻辑)。

图片

第二个任务甚至更容易(不需要像素完美)。 有一个ToR(职权范围)和更正,需要在现场进行。 在元素的显示中进行编辑,以供手机配置,更改缩进,元素的颜色。

为什么这样 如今,很少有公司正在寻找编码器,因此速度很重要。 更少的工作时间,更多的订单,这意味着公司将获得更多利润。 这样的职位通常需要预处理器(sass,pug)和项目构建者(gulp,webpack)。 至于传统知识,您将在任何工作中收到它,并且必须遵循它! TK对于每个人而言都是不同的,在大多数情况下,它是一个带有编辑列表的文本文档。

网络程序员(bitrix)


在不同的公司中进行了3次尝试。 他们只是向我解释了他们将要做什么。 支持公司站点(开发这些站点的需求)+与服务器一起使用(设置和部署站点)。 没有一个问题是我能做什么和我知道什么。

但是在第二次面试中,他们只是问我在最后一个工作地点做了什么,我可以在bitrix上做什么,以及我一般学习了什么。

好吧,最有趣的是,这是最后一次采访。 这里是有关技能的问题,以及对公司任务的描述,以及需要当场执行的任务。 希望您能介绍一下自己,但我准备分享问题。 我会立即警告您,没有条件要求您使用哪种语言编写代码,我选择了JS。 计算二叉树是什么以及遍历它的方式,排序算法,访问数据库(简单查询)以及bitrix中的class.php的阶乘。

无论使用哪种编程语言,阶乘的计算都非常简单。 通过递归实现。 关于二叉树已经更加复杂了。二叉树(binary)=数据结构。 该树用于处理大量数据,当在网上商店申请工作时,他们就这么问也就不足为奇了。 排序也适用于处理数据。 好了,访问数据库后,网络上的大多数站点都使用该数据库。 这是网站新闻,产品,热门文章列表和其他元素的总结。

最有趣的是,尝试获得桌面开发人员


图片

我将立即提到一般主题:OOP和模式。

怎么了 好吧,没有OOP的现代开发……这很奇怪,就像没有模式的开发一样。 是的,您可以在学习时进行课程学习,而不使用模式+ OOP,但是如果对类,继承和多态性没有最低的了解,我不会雇用您。 OOP允许您将程序划分为块,而模式(例如SOLID)可以将代码划分为独立的块,以便将来可以轻松地对其进行补充。

所有其他问题都是特定的,具体取决于公司的工作方式。 例如,如果这些是游戏开发人员,则需要使用他们提供的引擎+文档来编写测试游戏。 我得到了一个儿童2D游戏(C#+ XAML)。 游戏的本质是:有两个杯子,一个是空的,第二个是铅笔,当玩家单击人民币时,一支铅笔移动到一个空的杯子并更新屏幕上的点数计数器。 数铅笔很简单。

我也有采访Unity开发人员的经验,这在这里已经更加困难了,因为 并为游戏提供了3D效果,并对代码进行了监控,以确保其中没有垃圾+模式的存在,我仍然在github上拥有此项目。

回到公司,如果这是后端部分(c#.net)的开发,那么问题就在于.net平台及其陷阱。 如果这是应用程序开发,则您需要了解TDD(通过测试进行开发),SOLID,OOP。

我已经解释了有关OOP和模式的信息。 为什么要问TDD? 老实说,我不知道...我不完全了解这种方法的优势,但是有些公司使用它,但是我只能以这种方式编写代码一次。 SOLID-将这5种模式组合在一起,在面试中被问及这种模式后,我立即着手研究。 老实说,我很难理解它,但是结果是非常持久的代码,可以在不损害已经编写的应用程序的情况下对其进行补充。 如果您对SOLID感兴趣,请尝试使用此模式编写计算器。 首先实现+和-,然后将其他功能添加到计算器。 我记得用c#(控制台程序)编写。

关于我在这座城市的采访,也许这就是我所能告诉的。 是的,既有SPA开发人员(主要是需要reactJS),也有网络游戏开发人员(在大多数情况下都具有相同的反应,有时仅是本机JS),还有python,1C,JAVA开发人员和其他人员。 我对使用的各种技术和语言感到非常惊讶。 也许这就是我的全部。 待会儿见。

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


All Articles