Як вибрати інженера програмного забезпечення для веб-додатків? [зачинено]


10

Як мені вибрати інженера програмного забезпечення для веб-додатків?

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

Ми можемо зайти так далеко, щоб написати всю справу на одній сторінці, але цього не потрібно. Це майже все написано інженером програмного забезпечення веб-додатків. Точна бібліотека з відкритим кодом, яку слід використовувати, також залежить від інженера.

Я спеціально шукаю поради щодо того, яку кваліфікацію слід шукати / перевіряти в інтерв'ю, оскільки вибір інженера програмного забезпечення для веб-додатків взагалі є занадто широкою темою.

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


FYI - це не дублікат programmers.stackexchange.com/questions/105114/… , який був досить специфічним для сайтів електронної комерції і конкретніше запитував, чи не повинно бути ключовим питанням: "У вас є сам чи з одним або два партнери, коли-небудь вивозили товар на ринок? Мені все одно, чи вдалося це чи не вдалося, але розкажіть про це ".
пн

Я зафіксував заголовок у зв'язаному вами питанні, оскільки запитання, яке ви задаєте, є досить конкретним. На жаль, цього немає. З FAQ : Ваші питання повинні бути досить область дії. Якщо ви можете уявити собі цілу книгу, яка відповідає на ваше запитання, ви занадто багато запитуєте.
Роберт Харві

Якщо я обмежуся цим випадком, чи це взагалі не корисно?
пн

Що найбільше хвилює Вас? Я можу дати вам узагальнення, як, наприклад, не надто хвилюйтеся щодо того, що ця особа має у своєму резюме. Виходячи з позиції, яку ви описали, вони повинні бути вирішувачем проблем і трохи прихильником усіх торгів, який розуміє більше, ніж просто будувати програми 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, тож дякую за невелику перевірку.
пн

1

Примітка. Це просто моя думка, тому не кидайте на мене кухонну раковину;)

Думаю, ви називаєте назви двох чітко різних позицій (що може бути трохи заплутати).

Програмний інженер : інженер. Той, хто сильний у вирішенні абстрактних проблем, які не обов'язково прив'язуються до якоїсь конкретної платформи. Сильне знання моделей дизайну, алгоритмів (як відомих алгоритмів, так і алгоритму проектування та аналізу), деякої сили в лінійній алгебрі і, можливо, деякого обчислення. Коли я наймав інженера-програміста в минулому, я не хвилювався з приводу їх конкретних доменних знань, як їх здатність вирішувати складні проблеми.

Розробник веб-додатків : той, хто знає основні та складні засоби створення веб-додатків. Розуміє архітектури сервера та клієнта та як ефективно спілкуватися між ними. Знайомий зі стандартами W3C, як завершеними, так і стадіями WIP. Розуміє, як працюють бази даних та як оптимізувати їх за необхідності (оптимізація запитів, кешування даних, індексація тощо). Також зрозумійте різні механізми кешування та інші способи оптимізації їх застосувань. Також розуміє смислові умовності.

Напевно, є кілька речей, які мені не вистачає, що я можу заповнити, коли я думаю про них.

З опису того, що ви шукаєте, мені здається, що ви зовсім не шукаєте програмного інженера; ви шукаєте розробника веб-додатків.

Отже, перше, що я хотів би зробити, - це обмежити, кого ви шукаєте, і якого досвіду ви очікуєте від кандидата. Можливо, вам трохи допоможе.


Дивіться програму.stackexchange.com/ questions/ 45681/… - написання вимоги до роботи для розробника веб-додатків. Ось звідки походить назва. Я хочу, щоб розробник веб-додатків працював виключно над речами браузера (як я вже заявив). Тому жоден матеріал у БД не має значення. Навички програмного забезпечення були б.
пн

Дійсно? Ви хочете, щоб хтось працював у веб-системі, яка не розуміє базу даних та матеріали на сервері ?? Ееш.
Дем'ян Брехт

Не кажучи вже про те, що не так часто розробнику веб-додатків на стороні клієнта потрібно буде знати це, як, наприклад, спочатку перейти до ширини дерева або як визначити, який найгірший час працює для заданого алгоритму чи реалізації криптосистема. Просто кажу. Сказавши, що, якщо ви наймаєте на роботу в Google чи Amazon, я можу відкликати це зауваження.
Дем'ян Брехт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.