Как выбрать разработчика программного обеспечения для веб-приложений? [закрыто]

10

Как выбрать инженера-разработчика веб-приложений?

(Постоянная) позиция заключается в том, чтобы переписать клиент существующего настольного клиент-серверного приложения. Страницы не будут генерироваться динамически на сервере, но сервер предоставит полный API-интерфейс любым необходимым способом, например вызовами JSON RPC, и может сделать статические файлы доступными. Он заменит клиента, который люди должны загружать и устанавливать, так что требуется хороший браузер с разумными настройками (например, с включенным JavaScript). Почти все варианты использования относятся к настольному ПК. Он не будет доступен для поисковых систем (это корпоративное приложение).

Мы можем пойти так далеко, чтобы написать все это на одной странице, но не обязаны. Все это будет написано разработчиком программного обеспечения для веб-приложений. Точные библиотеки с открытым исходным кодом для использования также зависит от инженера.

Я специально ищу совет о том, какую квалификацию искать / проверять в интервью, так как выбор инженера-программиста веб-приложений в целом - это слишком широкая тема.

Редактировать - позиция должна быть исключительно в браузерном программировании JavaScript (и отвечать за HTML и CSS) - другие разработчики будут разрабатывать сервер, но эта позиция может запрашивать фасады поверх API. Здесь нет Ruby, ASP, JSP и т. Д., Потому что уровень веб-сервера очень тонкий и просто переводит вызовы в API бизнес-уровня и возвращает их как JSON (или как угодно, но JSON кажется самым простым).

PSR
источник
К вашему сведению - это не дубликат programmers.stackexchange.com/questions/105114/… , который был довольно специфичен для сайтов электронной коммерции и более конкретно спрашивал, должен ли быть ключевой вопрос: «У вас есть один или с одним или два партнера, когда-либо выводившие продукт на рынок? Мне все равно, удастся ли это или не получится, но расскажите мне об этом ».
PSR
Я исправил заголовок в вопросе, который вы связали, поскольку задаваемый вопрос довольно специфичен. К сожалению, это не так. Из часто задаваемых вопросов
Роберт Харви,
Если я ограничусь этим случаем, тогда это вообще не полезно?
PSR
Какое ваше самое серьезное беспокойство? Я могу дать вам обобщения, например, не слишком беспокоиться о том, что TLA человек имеет в своем резюме. Исходя из позиции, которую вы описали, они должны решать проблемы и быть мастером на все руки, который понимает не только создание приложений CRUD. Если они обладают этими качествами, они могут решать специфические для вас проблемы. Это также зависит от того, является ли это постоянной, постоянной занятостью или временным контрактом.
Роберт Харви
Действительно, как нанять разработчика программного обеспечения для веб-приложений. В частности, я предполагаю, какую квалификацию искать / тестировать на собеседовании
PSR

Ответы:

2

Как веб-разработчик, который в основном работает над корпоративными приложениями, работающими с устаревшими системами, я могу предложить несколько предложений относительно того, что делает меня успешным, и, надеюсь, это поможет.

Я не уверен, ищете ли вы временную / консультационную ситуацию, чтобы предоставить вам одно приложение, или FTE для разработки и поддержки этого долгосрочного плана, но я думаю, что они должны применяться в любом случае.

  • Я в основном использую Ruby. Это делает быстрое создание прототипа очень быстрым и легким, а Rails упрощает загрузку нового проекта. Теперь я не знаю, какова ваша среда, есть ли у вас институциональные полномочия в отношении языков, платформ, инструментов, но если вы можете нанять разработчика, который владеет современным гибким языком / структурой, которая заставляет писать DSL для работы с зарубежный API относительно быстрый и простой, это плюс. В принципе, любой из языков с Lisp-природой будет лучше в этом отношении. Кроме того, необходимо нанять человека, владеющего языком с хорошей экосистемой библиотек с открытым исходным кодом, для работы с общими абстракциями.
  • Если вы можете найти кого-то, привыкшего иметь дело с унаследованными системами и абстрагировать их особенности, это редко, и вам следует изучить это. Большинство разработчиков используются для создания проектов с нуля (или для поддержки существующих проектов), а создание чего-то нового для взаимодействия со чем-то старым требует определенного ... не набора навыков, как таковых, а подхода.
  • Когда вы говорите: «Сервер будет предоставлять API любым необходимым способом», это довольно расплывчато, но я предполагаю, что вы имеете в виду, что существуют разработчики, которые могут реализовать API на сервере? Я хотел бы прояснить, что позиция будет включать в себя работу с этими разработчиками для определения API. Если вы можете привести пример требуемого типа взаимодействия и спросить кандидата о его первоначальных мыслях о том, как его реализовать, это может быть очень полезно. Я думаю, тот факт, что ваша первоначальная мысль была JSON RPC, показывает, что вы движетесь в правильном направлении, так что следите за всеми, кто видит сложные взаимодействия XML и XSLT.
  • Если вы можете ожидать приличную поддержку JavaScript в браузере, ищите кого-то, имеющего опыт работы с JS-фреймворками, такими как Backbone.js, JavaScriptMVC и т. Д. В этом случае вы можете сделать все приложение (в основном) в браузере и, возможно, использовать его с Node.js или чем-то еще. ... так что смотрите на хороших разработчиков JS. Если они говорят, что предпочитают писать свой JS на CoffeeScript, они, вероятно, еще лучше разработчики JS.

Просто некоторые мысли из моего опыта работы в окопах, но если бы мой отдел нанимал нового разработчика, это то, что я бы посоветовал им искать.

Я хотел бы, чтобы у моего отдела был бюджет для другого разработчика ...

Джейсон Льюис
источник
Сервер существует, и другие разработчики (кроме нового разработчика) будут реализовывать API. Не будет касаться унаследованной системы и не будет нести ответственность за идиосинкразии - другие сделают это, хотя этот разработчик может попросить конкретный фасад. Нет рубина, потому что нет динамически генерируемых страниц - и этот разработчик будет просто в JavaScript-кодировании в браузере (также отвечает за HTML и CSS). Если мы в конечном итоге не наймем другого разработчика, я на самом деле сделаю это сам в Backbone.js, используя JSON RPC, так что спасибо за небольшую проверку.
PSR
1

Примечание: это просто мое мнение, поэтому не бросайте мне кухонную раковину;)

Я думаю, что вы прячете названия двух совершенно разных позиций (что может немного смущать).

Инженер-программист : инженер. Тот, кто силен в решении абстрактных задач, которые не обязательно привязаны к какой-либо конкретной платформе. Глубокое знание шаблонов проектирования, алгоритмов (как известных алгоритмов, так и алгоритмов проектирования и анализа), некоторая сила в линейной алгебре и, возможно, некоторое исчисление. Когда я нанимал инженера-программиста в прошлом, я не столько беспокоился об их знании конкретной области, сколько об их способности решать сложные проблемы.

Разработчик веб-приложений : тот, кто знает все тонкости построения веб-приложений. Понимает архитектуру сервера против клиента и как эффективно взаимодействовать между ними. Знание стандартов W3C, как завершенных, так и WIP-состояний. Понимает, как работают базы данных и как оптимизировать их при необходимости (оптимизация запросов, кэширование базы данных, индексация и т. Д.). Также разбираются разные механизмы кеширования и другие способы оптимизации своих приложений. Также понимает смысловые соглашения.

Там, вероятно, есть несколько вещей, которые мне не хватает, которые я мог бы заполнить, когда я думаю о них.

Из описания того, что вы ищете, мне кажется, что вы вовсе не ищете инженера-программиста; Вы ищете разработчика веб-приложений.

Итак, первое, что я хотел бы сделать, это сузить, кого вы ищете и какой опыт вы ожидаете от кандидата. Может помочь вам немного.

Демиан Брехт
источник
См. Programmers.stackexchange.com/questions/45681/… - описание требований к работе для разработчика веб-приложений. Вот откуда это имя. Я хочу, чтобы разработчик веб-приложений работал исключительно над браузером (как я уже говорил). Так что никакие вещи БД не имеют отношения Навыки разработки программного обеспечения будут.
PSR
В самом деле? Вы хотели бы, чтобы кто-то работал над веб-системой, которая не понимает базы данных и серверные вещи ?? Eesh.
Демиан Брехт
Не говоря уже о том, что разработчику клиентских веб-приложений не так уж часто нужно знать, например, как сначала пройти по ширине дерева или как определить, какое время выполнения наихудшего случая для данного алгоритма или реализации криптосистема. Просто говорю. Сказав это, если вы нанимаете Google или Amazon, я могу отказаться от этого замечания.
Демиан Брехт