Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Думаю перейти з Embedded та Desktop на HTML/CSS/JavaScript: які тулзи та фреймворк вибрати?

Працюю як фрілансер, отстаннім часом щось не густо із проектами для Embedded пристроїв та для стеку Windows, на яких я спеціалізуюсь. Так виглядає, що на Upwork найбільш витребуваним напрямком є HTML/CSS/JavaScript. Думаю спробувати себе з цьому напрямку, які порадите тулзи (типу вебпака, гулпа, тайпскрипта) та фреймворки (Angular/React/Vue/Backbone/Ember)? З врахуванням того, що я не дуже часто використовував Linux/FreeBSD, здебільшого розробляв в середовищі Windows, Visual Studio та MPLAB X IDE. Розуміння як працює Web є (на рівні сокетів та протоколів), потрібно обрати конкретні HTML/CSS/JavaScript інстументи для вивчення та використання в розробці.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Стаття В’ячеслава Колдовського «Веб-розробка: вчора, сьогодні, завтра» дає відповіді на більшість поставлених питань. dou.ua/...​-development-status-2020

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

Хоча і маю статус Top Rated на Upwork, але мій рейт не топ рейтид. :-) Середній по лікарні. До того ж я беру проекти не лише на Апворку. На фронт вебі очікую приблизно на такі ж рейти. Якщо послухати спікерів на івентах, які організовує Апворк в Україні, то вони заробляють в рази більше на вебі, ніж я на десктопщині і ембедщині.

HTML/CSS не вибирають, це основа. Далі звісно JavaScript. Після того як освоєшся, вкачуйся в Typescript + React, все інше то іграшки або вже відходить у минуле (Ангуляр). Ну а по дорозі вже сам розберешся щодо тулзів і екосистеми.

Чому Angular

відходить у минуле

?

А чи дійсно варто переходити у ту web-розробку? Я теж desktop/embedded розробник, і теж пробував розібратись з web — не зайшло. Сотні фреймворків, бібліотек, різні баги в різних браузерах, куча тормозного говнокоду. А embedded позиції у вакансіях на dou теж є. А якщо так хочеться кудись перейти, то може в Data Science? Там як і у embedded, високий рівень входу, але і конкуренція менша, і думати більше треба, а не «формошльопити».

Я не думаю полишати зовсім розробку для десктопа та ембедид, а хочу лише розбавити її веб фронт ендом задля заробляння на життя у фрілансі — веб проекти виглядають більш поширеними на тому ж Апворку. Не стоїть завдання освоїти HTML5 задля пошуку full-time роботи у офісі.

Думаю, що я вже зараз знаю більше 10% відсотків фронт вебу. Не такий вже я дрімучий, використовував в своїх проектах HTML теги розмітки та стандартні контроли, використовував JQuery та Ajax, знаю Form та HTTP Get/Post, використовував навіть Bootstrap. Але це не було моєю спеціалізацією, займався попутно, так би мовити. :-) Мова йде про те, який фреймворк і які тулзи краще вибрати зараз для фронт енду з огляду на їх поширеність/підтримку та перспективу використання в комерційних фріланс проектах.

Щодо девопсу, то в мене навіть зараз є один проект на супроводі, але там ми майже все уже пофіксили (з огляду на комерційну доцільність). Щось не дуже мене вдохновляють такі проекти — постійно моніторити hockeyapp і правити чужі баги та лише інколи додавати фічі. :-)

А хіба ні? На те він і девопс, щоби правити код, підтримуючи роботу продукту в продакшені? Чи то я наплутав і девопсом є лише інжиніринг саппорт, який слідкує виключно за операційним середовищем і не лізе в продукт? Те, що я описав вище — то саппорт існуючого мережаного продукту з правкою кодів і компіляцією версій, на мені лежить підтримка роботи клієнтської частини (відслідковується через hockeyapp та серверні логи). Робота не з веселих і на любителя.

Так, було б цікаво розвіяти цю неясність. :-)

Поясню на своєму прикладі які маю обов’язки як фрілансер — розробник, який супроводжує існуючий продукт масового користування (клієнтська application для десктопа і девайсів): (1) відслідковую логи на наявність багів; (2) аналізую exceptions, узагальнюю можливі причини і пропоную варіанти фіксу; (3) обговорюю все це з представником product owner, намічаємо план робіт на місяць в межах мого ліміту часу на супровід; (4) виконую роботи (програмую), створюю інсталяційний пакет, публікую тестову версію, скачую і проводжу самостійне тестування; (5) віддаю посилання на нову тестову версію application тестерам product owner — зовнішнє тестування на визначення усунення несправності та на загальну працездатність; (6) створюю релізний інсталяційний пакет, підписую і публікую application для публічного скачування/апдейду користувачами; (7) продовжую слідкувати за логами, тепер зі ще однією додатковою версією програми. :-)

При додаванні фіч процес аналогічний, лише опускається п.1, а п. 2 трансформується у складення плану робіт для імплементації фіч.

Що з цього може/має бути віднесено до девопсу, а що ні?

Перейти с хардкора на хипстерщину? Нормально и востребовано, как для африки.

Саме так. Перейти з метою завантажити себе роботою, коли виникає вікно між «справжніми» проектами. В мене по іншому не виходить, потрібно шукати оплачуване навантаження — працюю самостійно. При цьому ніхто не збирається забувати хардкор.))

Думаю перейти з Embedded та Desktop на HTML/CSS/JavaScript

Мне кажется, это путь к деградации

Чому? Чим гірше працювати з DOM засобами JS прямо з HTML сторінки браузера, а не через той же COM з якогось там binary plugin (були в мене такі проекти)? До того ж, я не відмовляюсь від проектів для Desktop та Embedded, але зараз на фрілансі їх стало на порядок менше, ніж для фронт енд веб проектів. Тому, коли нема підходящих Embedded/Desktop/IoT, чому б не взяти якийсь HTML/CSS/JavaScript проект? Невже краще сидіти і чекати?

А тебе принципиально работать именно на фрилансе? А то я знаю недавно GlobalLogic активно нанимал Embedded разработчиков. Возможно у них сейчас по прежнему есть свободные вакансии...
И кстати, скоро будет Embedded Fest, не хочешь сходить, пообщаться там с людьми, может в процессе нетворкинга, окажется что кому-то в комменду нужны люди...

Вони вже присилали мені запрошення, я був на одному з їх івентів по automotive, — було цікаво. У Global Logic занадто високі вимоги до володіння англійською, не нижче Upper-Intermediate (у мене нижче, хоча зі своїми клієнтами я спілкуюсь без проблем, але надаю перевагу writing, а не speaking). На мітапі вони презентували не зовсім embedded, скоріше це було поєднання Data science та Embedded Linux OS (not bare metal systems). Я не можу претендувати на позицію сеньора в цьому напрямку (вони шукають саме таких). До того ж, всім добре відома проблема, коли age > 50 — зазвичай нас не дуже хочуть брати (а я навіть не хочу пробувати, витрачаючи час, поки що я успішний на фрілансі).

У Global Logic занадто високі вимоги до володіння англійською, не нижче Upper-Intermediate

Проблема в том, что в относительных крупняках сейчас и на джунов не редко когда хотят Upper-Intermediate, а так поголовно подавай разговорный Intermediate. Можно быть практически нубом в кодиннге, но разговорный английский подавай) Да что там видел джуновскую вакансию с флуентом...
Так что тут не будет опять же английского, так еще и нет знаний и опыта в вебе...

Реальный разговорный английский (а не бэ-ме моя твоя панимать, все сделать чётка) очень тяжело выучить и довести до автоматизма вне языковой среды, а когда ты ремоутер, то можешь и за года и слова на инглише не сказать- весь твой английский это написание инлайн документации в коде, или сухие отписки с Раджешем Кутрапали ))

Ага, понятно.
Просто ИМХО Embedded, мне думается на Freelance редко «спускают». Т.к. с железом никто, как правило не хочет шутить, ибо может поджарить кого-то и баги на нём фиксятся иногда перевыпуском партии, а не просто изменением пары строчек кода. И такие работы стараются доверять каким-то более менее крупным компаниям. Ну или не обязательно крупным, но уже зарекомендовавшим себя в этой области. Всё таки, на Freelance ИМХО больше идут свбодные художники, чем физики, электротехники и электронщики. Если я не прав, поправьте.
И в свете того, как IoT сейчас входит в нашу жизнь (появление различные «умных» домов, удалённый розеток, всяких гаджетов и т.д.), то востребованность на Embedded должна расти, просто видимо ты не там ищешь. Я бы поискал работу в каких-то компаниях, которые специализируются в данной области. Возможно даже full-time remote, если привык к фрилансу и работу из дома. Или может «замутил», какой-то свой стартап.
Я просто думаю что после Embedded, погружаться в мир Front-End не совсем комфортно. Embedded он более жёсткий, детерминированный. Тут тебе сигналы, жёсткие тайминги, минимум гибкости, и т.д. В Фроне Энде ИМХО совсем другая идеология, там всё связывается как правило динамически, не так сильно, как правило, паряться о потребляемых ресурсах, используется подходы из декларативного программирования, шаблонизации и т.д.
Т.е. придётся немного себе мозг вывернуть ) Хотя с другой стороны, это классно, выйти из зоны комфорта, и погрузиться во что-то отличающееся от того, чем занимаешься сейчас. Но думаю, прдётся запастись терпением )

Просто ИМХО Embedded, мне думается на Freelance редко «спускают».

но почему-то заказов на апворке полно

Ага, понял. Но топик стартер утверждает об обратном. Собственно он то и хочет сменить направление, из-за небольшого количества заказов. Или вы с ним на разных апворках? )
Лично я этой темой не интересновался, поэтому моё мнение можно не учитывать. Но чисто теоретически, мне думается что шансов получить Embedded проект, больше у компании, чем у фрилансера.

На Upwork не так і багато embedded проектів. Вони є, в мене також вони були, але реальних там не густо. Я вже багато років працюю на Upwork/Elace (Top Rated), маю велику кількісь бідів на цю тему, маю можливість порівнювати — справжніх проектів мало (на все комюніті)!

Ось вам один із прикладів, коли на Upwork проекти постяться не лише з метою знайти виконавця (і таких проектів там дуже багато, таке враження, що Апворк сам їх постить для накручування показників). В моїй практиці напевно десь половина таких «пустишок», а по деяким категоріям цей показник доходить до 90 відсотків (з 10-ти лише один «живий»).

«Hi,
A job that you submitted a proposal for, Embedded customisation and development *Expert level only*, has been closed or has expired. Your proposal has been archived.» — на цьому проекті достатньо бідів від серйозних девелоперів і жодного інтерв’ю з ними.

Не знаю, чи у вебі така ж ситуація?

Вони стали занадто жадібними. Колись я сам приводив до них клієнтів, які хотіли працювати через якусь платформу обліку робочого часу. Тепер ні — занадто дорого.

На фрілансі зустрічається також і embedded, в мене були проекти для PIC32 та PIC8, Arduino, Rapberry PI2. Був навіть один, починаючи з розробки схеми в Eagle CAD, створення PCB, написання мікрокоду, відладка процесу отримання інформації від сенсорів (ultrasonic, networking — wired & wireless). Було складно і цікаво.
Щодо веб програмування, то мене найбільше напружує відсутність строгої типизації і неможливість контролю над ресурсами, що використовуються — не звик без alloc/free.:-)
Однак, після багаторічної роботи з XAML в WPF/UWP не думаю, що складно буде освоїти HTML5 (багато речей я вже знаю).
Резон вивчити цей стек технологій — виконання веб проектів під час «простоїв». В мене зараз є проекти, це я думаю на перспективу.:-)
Свій DIY проект я також маю, можливо навіть переведу його в стартап, але ще не наважився. Це поєднання Embedded девайса, IoT, з використанням Services та Desktop, з елементами автоматизації процесів, з використанням сучасної елементної бази «на залізі». :-)

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

Може, розкажете колись, про що проект.

Можливо розкажу. Можливо навіть на ДОУ. :-) Проект починався як волонтерський для підтримки Збройних сил України в 2014/15 роках. Цей девайс хоча і був доволі технологічними, але не був занадто гарячим завдання на той час (були альтернативні закупки із-за кордону), тому був відкладений у довгий ящик, останнім часом я його трохи реанімував і хочу довести до фіналу — готового виробу (поки що це сирий прототип). Але зараз маю занадто мало часу на DIY, цей час потрібно буде ділити з часом для вивчення технологій HTML5, і все це робити в проміжки між поточними фріланс проектами, сном і курсами англійської. :-)

бекендер в основному,але з мого досвіду IMHO
ангуляр: якщо для фріланса з нуля то пиляти ангуляр довго і економічно недоцільно ;)
хоча так виглядає ніби роботи дофіга бо всі кинулись в реакт а переписувати корпоративні портали на новий ангуляр нема кому :)

реакт: для фріланса з нуля саме воно
юзавби тільки за те як він точково апдейтає дом, для формочок і всяких віджетів зручнo
плюс API, треба вчити 100% бо то майбутнє і подібного буде тільки більше

(Angular/React/Vue/Backbone/Ember)

Вряд ли кто сейчас слышал что такое тот Backbone/Ember ) Vue как детский конструктор, если нет отвращения к такому директивному «коду» то самое оно для формошлепства)

потрібно обрати конкретні HTML/CSS/JavaScript інстументи для вивчення та використання в розробці.

так вроде вы уже сами ответили на свой вопрос

які порадите тулзи (типу вебпака, гулпа, тайпскрипта) та фреймворки (Angular/React/Vue/Backbone/Ember)?

Могу разве что добавить отсебятину, что можно еще посмотреть ReasonML (или Elm, или Fable, или ClojureScript — если вдруг интересует функциональщина), WebAssembly или Dart (Flutter по идее может в веб-приложения, ну или в ближайшее время сможет, также еще есть всякие AngularDart, VueDart и т.п.).

Зараз хотілось би не розпилятись на все, а вибрати щось витребуване, найбільш перспективне.

так що заважає зайти на той же апворк і вбити у пошуку назви, і дивитися що саме зараз популярне ?

Там не завжди пишуть на якому стеку має бути розроблений фронт енд. Більше того, там можуть наставити лівих тегів при описі завдання (з різних причин — нерозуміння, ліньки тощо). Тому і питаю тут, у практиків.))

Там не завжди пишуть на якому стеку має бути розроблений фронт енд.

ИМХО, это больше говорит о том, что заказчику скорее всего не принципиально, с помощью каких фреймворков и библиотек будет реализован необходимый функционал.
Т.е. можно выбрать понравившийся фреймворк и изучать, как реализовать ту или иную вещь с помощью него. Ну и естественно изучить сам современный JS (+ желательно TypeSctipt) и наиболее популярные инструменты (тот же вебпак или галп). А потом можно будет при необходимости перейти на другой фреймворк.

які порадите тулзи (типу вебпака, гулпа, тайпскрипта) та фреймворки (Angular/React/Vue/Backbone/Ember)

для джуна краще все вчити (хоча б зрозуміти що там і як) , ну і jquery хай йому грець
я зустрічав лише vue і пару разів react, хоча це confirmation bias

Нема проблеми перейти на Linux/FreeBSD, якщо воно того варте (в плані розробки). Зараз я використовую ASP.NET MVC/Razor і Azure, а чим краще їх замінити в середовищі Unix?

ASP.NET MVC

так може у back-end ? mvc у майкрософта з’явилася останньою, після java/php/python, ну і по структурі воно дуже схоже

На фрілансі не так і багато проектів для ASP.NET MVC. Видається, що фронт енд більш перспективний з точки зору наявності проектів, що аутсортяться. Я володію ASP.NET та використанням REST API на клієнській частині, але проблема в тому, що для фрілансерів таких проектів замало. Тому мова і йде про перехід на більш широко запитувані веб-браузерні технології — HTML/CSS/JavaScript.

На фрілансі не так і багато проектів для ASP.NET MVC

так бакенди писати на іншій мові

Таке життя фрілансера — братись за все, робити все самому. До цього не звикати.))

Бери

Angular

а дальше по ходу все кучей и будет приходить

В одному із проектів я стикався з Angular, читав про нього. Бентежать повідомлення в Інеті, що цей фреймворк вже віджив своє.

Я не проф в front end ( так как пишу только под яблоко ) но переодически есть проекты и знакомые предпочитают ангуляр. У него выше ответственность в коде как то получается ( не мои выводы ). С ним проще работать чем с реактор так как то солянка библиотек и легаси завались просто

може, то про першу версію(тепер її називають angularJS, коли версію 2 та вище — просто angular)?

Помоєму, у веб розробці так пишуть про будь-який фрейворк.

Підписатись на коментарі