程序员 软件工程师
Hello, Habr. I've been watching IT market for a long time. But i'd never written anything. That's the first part of my first article, so please don't hate it too much.
哈Ha 我已经看了很长时间的IT市场。 但是我从来没有写过任何东西。 这是我第一篇文章的第一部分,所以请不要太讨厌它。
In this series of articles i'd like to share my experience of finding, teaching and integrating interns and juniors in a product team. (Don't confuse them with freelance teams or something like that).
在本系列文章中,我想分享我在产品团队中寻找,教导和整合实习生和初级员工的经验。 (不要将他们与自由职业者之类的团队混淆)。
I'd like to point out that everything you'll be reading in my articles represents my personal opinion. Yes, it has sound foundation in years of experience. But i won't say my experience is exclusive and therefore, the only right way to do things is to do it as i say.
我想指出的是,您将在我的文章中阅读的所有内容均代表我的个人观点。 是的,它在多年的经验中具有良好的基础。 但是我不会说我的经历是排他性的,因此,做事的唯一正确方法就是按照我所说的去做。
In this part we'll see two sides of one entity. That, in turn, will help you to determine what kind of people you want for your team.
在这一部分中,我们将看到一个实体的两个侧面。 反过来,这将帮助您确定想要为团队提供什么样的人员。
Let's look closer on the two basic scenarios:
让我们仔细看看两种基本情况:
In a way there are few differences between modern programmer (Hey, did you see those «We'll make you programmer in three months» advertisements too?) and account-manager. With that said, let's roll.
在某种程度上,现代程序员(嘿,您是否也看到过“我们将在三个月内让您成为程序员”的广告?)和客户经理之间的差异很小。 话虽如此,让我们滚动。
For the most of them programming is just a job in our times. It's not at all surprising, considering those 3 months courses we'd all heard about. A programmer can write code, but he always can stop doing it.
对于大多数人来说,编程只是我们时代的工作。 考虑到我们都听说过的那三个月的课程,这一点也不奇怪。 程序员可以编写代码,但是他总是可以停止编写代码。
He'll be developing your program features, without asking too many questions, or hell do exact opposite, bombard you with questions (but we'll talk about that kind of programmer's later).
他将在不问太多问题的情况下开发您的程序功能,或者完全相反,用问题轰炸您(但稍后再讨论这种程序员)。
A programmer usually doesn't concern himself with trends or innovations. He writes his code, according guru's or dev-bloger's advices.
程序员通常不关心趋势或创新。 他根据上级或开发者的建议编写自己的代码。
For example, I do not understand why Facebook has such horrible, illogical and overcomplicated frontend organization. And why everyone are taking it as example.
例如,我不明白Facebook为什么拥有如此恐怖,不合逻辑和过于复杂的前端组织。 以及为什么每个人都以它为例。
The bitter truth of our time. On one hand, that's cool. Progress, development and all that implies. On the other hand, and HR specialists will understand what am I talking about, IT market is flooded by low skilled specialists. Yes, it's over-saturated. There is no more vacations for junior specialists with ₽100.000 salary. At least, I didn't see them for a long time. Current lead-programmer salary is about ₽250.000. That's a good indicator.
我们时代的艰辛真相。 一方面,这很酷。 进步,发展及所隐含的一切。 另一方面,人力资源专家将理解我在说什么,IT市场充斥着技术水平低下的专家。 是的,它太饱和了。 0.000100.000工资的初级专员没有更多的假期。 至少我很久没见到他们了。 目前的首席程序员薪水约为0.000250.000。 这是一个很好的指标。
That's true. If you sure you need that kind of programmer. Now days an average programmer can ace a job interview. Youtube channels highlighting job interview's questions, guides for more or less esoteric themes, will be huge advantage in that. However, in the end we'll get a programmer, who'd learned in a month things that various courses teaching for a six month or more. The question of said programmer qualification stays open.
确实如此。 如果您确定需要那种程序员。 如今,普通的程序员每天都可以进行求职面试。 突出显示求职面试问题的YouTube频道,或多或少具有深奥主题的指南,将在其中发挥巨大的优势。 但是,最后,我们将得到一个程序员,他在一个月内学会了各种课程六个月或更长时间教授的东西。 所述程序员资格的问题仍然悬而未决。
In truth, the picture we'll see looking closer won't be pretty. Developer who doen't understand the basic principles of web-development. A specialist, who writes his code exactly how he'd seen it done on youtube video. Or in documentation, for the best case scenario.
实际上,我们将看到更近的图片不会很漂亮。 不了解网络开发基本原理的开发人员。 一位专家,他完全按照自己在YouTube视频上看到的代码来编写代码。 或在文档中,以获得最佳情况。
Despite everything that was said above, those programmers has definite value. For instance:
尽管上面说了一切,这些程序员还是有一定价值的。 例如:
As a rule, their life is devoted to self-improvement and research.
通常,他们的生活致力于自我完善和研究。
An engineers will deconstruct your legacy piece by piece, they'll find a potential problems and will suggest a ways to avoid them. If an engineer has a lot of experience, he can find a team with a little help by the HR agency, or even to do it by himself.
工程师将逐步分解您的遗留物,他们将发现潜在的问题并提出避免这些问题的方法。 如果工程师有丰富的经验,他可以在人力资源机构的帮助下找到一个团队,甚至自己动手。
Similarly, he doesn't need a specification for a task, because he knows that is a useless waste of time. He knows that decomposition and task distribution is better done upon researching a project requirements.
同样,他不需要一项任务规范,因为他知道这是浪费时间。 他知道分解和任务分配在研究项目需求时会更好。
Therefore, requirements analysis comes first, then project planning, and only then a development. Time distribution is looking like that: 40/40/20.
因此,首先是需求分析,然后是项目计划,然后才是开发。 时间分布看起来像是:40/40/20。
Likewise, a difficult practices implementation is one of an engineers key features. If you ask an average developer what he knows about *DD, a likely result will be no answer at all. An engineer is different. Often, he works using TDD, planning his work flow using a set of BDD practices, product planning is done with DDD.
同样,困难实践的实施也是工程师的关键功能之一。 如果您问一个普通的开发人员他对* DD有什么了解,那么可能的结果将是根本没有答案。 工程师是不同的。 通常,他使用TDD进行工作,使用一组BDD实践来计划工作流程,而使用DDD来进行产品计划。
Consequently, the code quality of engineer is higher. Before linters and typechecerse became wildly used, no one cared how to write a code. Now the situation is different, but some things are the same. I am talking about cleanness, readableness, scalability, modularity of hired specialists code. It still leaves much to be desired.
因此,工程师的代码质量更高。 在短绒和typechecerse被广泛使用之前,没有人关心如何编写代码。 现在情况有所不同,但是有些事情是相同的。 我说的是干净,可读性,可伸缩性,聘用专家代码的模块化。 仍然有很多不足之处。
The next part will be about starting depending on your choice (programmer or engineer). How does candidate searching process looks like. How to automate said process. What should you do if you've got too few or too many responses. And, the most important, what test task should you give for your future keyboard comrades.
下一部分将根据您的选择(程序员或工程师)开始。 候选人搜索过程看起来如何。 如何实现上述流程的自动化。 如果响应太少或太多,该怎么办。 而且,最重要的是,您应该为将来的键盘战友提供哪些测试任务。
翻译自: https://habr.com/en/post/506822/
程序员 软件工程师