Рубрика:
Карьера/Образование /
Рынок труда
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Вакансия: программист .NET
Платформа .NET позволяет реализовывать настольные приложения для Windows и мобильные для Windows Phone. Языки программирования, ориентированные на использование вместе с платформой .NET, демонстрируют устойчивую популярность (C# – 4-е место) и даже рост (Visual Basic .NET – с 6-го на 7-е место). Об этом свидетельствовал индекс TIOBE на момент написания статьи. Мы попросили представителей компаний рассказать о знаниях, навыках, опыте, актуальных для программиста .NET сегодня.
- Программист на .NET: какими знаниями и навыками он должен обладать?
- Инструментарий программиста на.NET?
- Каковы требования компании к уровню образования потенциальных сотрудников?
- Какие требования предъявляются к опыту работы?
- Есть ли особые требования, которые обусловлены спецификой деятельности компании?
Александр Шилин, старший инженер-программист, Группа компаний РЕЛЭКС
1. Программист .NET должен обладать такими же знаниями и навыками, как и любой другой разработчик: принципы разработки программного обеспечения SOLID, DRY, KISS; умение работать с исходным кодом, написанным другим программистом; знание основных паттернов проектирования; понимание и опыт работы с реляционными базами данных; английский язык на уровне чтения технической документации.
2. В нашей компании большинство проектов, в которых используются технологии .NET, разрабатываются на языке C#, поэтому и инструментарий соответствующий. Стандартный стек для C#: ASP.NET MVC, ADO.NET, WCF, WPF, Silverlight, SQL и так далее.
Приветствуется умение самостоятельно разрабатывать архитектуру отдельных блоков системы и организацию их взаимодействия. Понимание, как можно оптимизировать производительность системы, также пригодится программисту .NET, равно как и навык быстрой локализации ошибок. Полезным будет опыт разработки высоконагруженных масштабируемых систем, а также знакомство с такими продуктами, как Redis, SignalR, ElasticSearch, RabbitMQ.
3. Пока еще не было случаев, чтобы на вакансию разработчика в нашу компанию откликался человек без высшего образования. В свою очередь, мы уже долго проводим ежегодную практику для студентов по тем или иным технологиям, ивсегда после такой практики часть практикантов остаются у нас работать. Обычно это происходит на одном из последних курсов университета. В целом, конечно же, большее значение имеет практический опыт работы.
4. У нас нет жестко зафиксированных требований к опыту работы. В зависимости от проекта и команды требования могут различаться, в основном они варьируются от нуля до трех лет или определяются количеством проектов, в которых участвовал кандидат. После изучения резюме HR-специалистом отобранные кандидаты решают тестовую задачу. Затем их ждет собеседование с руководителем проекта, который оценивает как общий уровень программиста, так и знания конкретных предметных областей и технологий, требуемых на проекте.
5. Специфические требования могут быть обусловлены проектом, на который приглашается специалист. У нас много зарубежных проектов, где часто требуются владение передовыми технологиями и, конечно же, английский язык.
Николай Добровольский, вице-президент Parallels
1. К общим требованиям можно отнести знание английского языка на уровне чтения технической документации. Также важны умение работать в команде, самостоятельность, ответственность и коммуникативные навыки.
Если говорить про узконаправленные навыки, то программистам .NET сегодня требуется владение технологией ASP.NET MVC. Также можно считать must have навыки работы с SQL Server и использования Transact-SQL. Кроме того, потребуется знание WCF, XML, XSLT и LINQ. Нужен навык объектно-ориентированного программирования. В целом можно сказать, что хорошие специалисты, пишущие на Java, .NET или другом языке, всегда востребованы.
2. Если вам хочется писать веб, то лучше попробовать Python или Ruby и еще JavaScript. Если писать системные утилиты, алгоритмы, то лучше попробовать C или C++.
Под мобильные системы можно выбирать между Java, Objective-C, .NET (можно также подумать о JavaScript, но совет спорный). Если хочется писать десктопные приложения, то лучше попробовать C++, .NET. Если в планах сидеть не на«винде» и писать не только под Windows, то лучше не думать о .NET. По поводу IDE: у Java есть Eclipse, Net Beans, но я бы посоветовал idea.
3. У нас в компании есть несколько человек без профильного технического образования. Это скорее исключение, но подтверждающее гипотезу, что увлеченный человек может самостоятельно добиться успеха в программировании. Восновном же к нам приходят выпускники ведущих технических вузов страны: МФТИ, МГТУ им. Баумана и других. Также у Parallels есть собственная базовая кафедра и научные лаборатории по подготовке инженеров на базе Физтеха, «Бауманки», Университета Мальты и других.
4. Все зависит от позиции, на которую приходит разработчик. Если речь идет о старте карьеры, то глубокое знание конкретного языка не потребуется. Конечно, знать и понимать, чем отличается List от Vector и что в каких случаях быстрее работает, нужно. Не помешает также знание того, какая хеш-функция вам кажется хорошей, как работает Map, что такое функция сложности, чем отличается, на ваш взгляд, хороший код от плохого, и тому подобные вещи. Но понимание глубины специфики придет к вам по мере практики.
5. Мы заведомо стараемся набирать людей, которые имеют большой потенциал и готовы развивать свой профессионализм в данной области. Профессионализм – очень важный момент. Но, несмотря на то что мы ИТ-компания, мы ставим воглаву угла личные качества и коммуникабельность и считаем, что это неотъемлемая часть современного командного игрока. Мы всячески стараемся развивать эти навыки в наших сотрудниках.
Кирилл Скрыган, руководитель команды Rider в JetBrains
1. С технической точки зрения нужно хорошо разбираться в самом языке C#, понимать, как работает платформа .NET, уметь обращаться с основными инструментами для нее. Важно понимать принципы многопоточного программирования, знать, как работают структуры данных. Социальная часть тоже очень важна: нужно уметь слушать/убеждать других членов команды. Даже в начале, просто чтобы понять, что и как работает, нужно плотно пообщаться как минимум споловиной команды.
2. Неотъемлемая часть разработки ReSharper/Rider – пользоваться этим же продуктом в повседневной работе. Поэтому, конечно, в инструментарий входят Visual Studio + ReSharper или Rider. Очень желательно умение пользоваться профиляторами (dotTrace, dotMemory), бывает, что нужны в работе декомпиляторы и дазассемблеры (dotPeek, Ildasm). Но, понятное дело, всеми этими инструментами можно научиться пользоваться достаточно быстро, главное – уметь быстро осваивать новое.
3. Здесь нет какого-то четкого закона: с одной стороны, у нас есть талантливые сотрудники из далеко не самых сильных математических вузов, с другой – чисто среднестатистически большая часть людей у нас все же с матмеха СПбГУ. Самое главное, чтобы человек умел быстро обучаться новому.
4. Здесь нет особых требований. Например, у меня в проекте есть несколько студентов, начавших работать непосредственно у нас, и они прекрасно себя проявляют и приносят огромную пользу продукту.
5. Да, есть. Нужно сочетание, с одной стороны, хорошей технической базы, с другой – важны активность, инициативность, находчивость, изобретательность. В наших продуктах мы постоянно придумываем что-то новое, постоянно пытаемся улучшить любимое детище. Конечно, важно, чтобы у всех членов команды горели глаза от того, чем они занимаются, чтобы им было действительно интересно.
Подготовил Игорь Штомпель
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|