LINUX.ORG.RU

Выбор технологии для backend

 


0

2

backend не изучал. Когда учился в универе, то много писал на delphi (и немного на php). Сейчас хочу постичь backend для дальнейшего трудоустройства. Что сейчас удобнее, перспективней использовать и что будет популярно еще долго, а на что не стоит отвлекаться. Очень был удивлен, что backend можно писать на JS (nodeJS). Слышал про Django и RubyonRails. Целостной картины и представления о них нет. Что посоветуете?

Судя по вопросу - дальше изучать основы разработки ПО. Иначе вам прямой путь в макака-кодеры.

sanwashere ★★ ()

Ключевое слово «Слышал»
А надо пробовать. Чтобы стать бэкендером - надо хотя бы на минимальном уровне понимать, как устроен мир фронтэнда. Не «слышать», а иметь какой то опыт работы.
А то неловко будет, когда фронты скинут свой вебпак, а вы его даже собрать не сможете, чтобы что-то протестить. Или ленивые жопы скажут, что так сделать нельзя. А вы им и ответить ничего не сможете.
Да и на собеседовании могут легко спросить, к примеру, в каком направлении читаются селекторы CSS. И ответ «да я же в бэк!» для вас может быть фатальным.

Целостной картины и представления о них нет. Что посоветуете?

Сделать так, чтобы было представление, что это такое. Тут вы сами должны сделать за себя выбор. Что-то конкретное сказать по Ruby и Django также не могу. Мир PHP затянул. Тут бы Symfony рекомендовал, но после изучения основ PHP7 и прочтения хотя бы одной книжки по нему. Если в универе и учили PHP, то PHP7 - всё же имеет ряд особенностей, которые стоило бы знать.
А знаешь symfony - легко разберёшься в другом фреймворке PHP. Знаешь PHP7, MySQL и имеешь практику (сделал хотя бы один толковый проект на symfony, который не стыдно показать) - легко пройдёшь собеседование. Да! Уметь юзать бутсрап - для бэкера тоже плюс. Настроить NGinx - must have! Без этих знаний и docker не поднимешь. А этому не все конторы готовы обучать.
Да даже K&R рекомендуется перечитывать! И на 5 раз там можно найти что-то особенное)
Наверное тоже можно советовать и в отношении любого другого ЯП!
Потыкать, изучить основы ЯП, хотя бы одна книжка, затем уже изучать фреймворк.
PS надеюсь не стоит писать, что ЯП изучается на практике, а не чтении листинга в книге/форуме/документации

Ignatov ★★★ ()
Последнее исправление: Ignatov (всего исправлений: 2)
Ответ на: комментарий от menangen

Лол что? Автор делфи ушел в МС и работал над C#.

ritsufag ★★★★★ ()
Ответ на: комментарий от Ignatov

PS надеюсь не стоит писать, что ЯП изучается на практике, а не чтении листинга в книге/форуме/документации

Это почему у тебя эти понятия взаимоисключающими стали?

rumgot ★★★★★ ()
Последнее исправление: rumgot (всего исправлений: 1)

хочу постичь backend для дальнейшего трудоустройства

Очевидный пых очевиден. Классическая книжка http://www.williamspublishing.com/Books/978-5-907144-54-5.html Всё остальное можешь заботанить, когда вкатишься, получишь представление что к чему и надо ли тебе это.

Что посоветуете?

Посоветую обмазаться книжками по SQL и вообще по СУБД. Также можешь проштудировать вот эту книжку https://www.piter.com/collection/recommend/product/vysokonagruzhennye-prilozh... в качестве учебного пособия.

no-such-file ★★★★★ ()
Ответ на: комментарий от rumgot

Это почему у тебя эти понятия взаимоисключающими стали?

Я хотел написать, что они не взаимоисключающие, а наоборот, друг без друга не работают.
Читаешь, перебиваешь. Ура! Работает (спустя 30 минут). Но магия не до конца понятна...
Потом пытаешься сделать этот код лучше (ещё часа 2).
Поздравляю! Вы разобрались в 10 строках этого кода) И освоили главу книги)

Просто бывает, что слышу от прогеров фразу «читал».
Встречный вопрос: «а пробовал?».
Идеальный ответ: «а ещё разобрался, почему оно так работает и как устроено»)))

Ignatov ★★★ ()
Последнее исправление: Ignatov (всего исправлений: 1)
Ответ на: комментарий от rumgot

Я бы php советовал. Основная причина - море вакансий.

Насчёт море вакансий - поспорю)
Чистый PHP'шник мало кому нужен. А вот за хорошее знание популярного фреймворка - могут с руками оторвать)
Джунов на рынке куча! А вот толковых прогеров днём с огнём не найти.

Ignatov ★★★ ()

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

Это очень перегруженный вопрос, но если заботит карьера в первую очередь, то Java в связке со Spring ещё не очень скоро вымрут, а новые проекты на них, как ни странно, клепаются, и даже не по привычке. Django и особенно RoR, увы, уже уходят в прошлое. NodeJS в связке с фреймворком по типу Sails позволит тебе затратить меньше времени на обучение и клепать всё то же самое, но за образом дружелюбной для менее продвинутых программистов экосистемы кроется довольно жёсткая реальность динамического языка на относительно ранней стадии развития с огромным количеством не самых очевидных моментов.

gnulag ()
Ответ на: комментарий от Ignatov

...надо хотя бы на минимальном уровне понимать, как устроен мир фронтэнда. <...> А то неловко будет, когда фронты скинут свой вебпак, а вы его даже собрать не сможете, чтобы что-то протестить.

Это вовсе не обязательно, особенно в реалиях тех проектов, что вебпаком собирают. В зону ответственности бэкенд-разработчика это банально не входит, и задча фронтендера — дать возможность с минимальным количеством телодвижений заставить заработать то, что он сделал, будь то нормально составленные npm-скрипты, описанные в README репозитория (или каталога в случае с монорепой, но не суть), Dockerfile (учитывая реалии разработки одностраничных приложений как составной части большого приложения с некоторым количеством клиентов под разные платформы, это зачастую предпочтительный вариант), и так далее.

gnulag ()
Ответ на: комментарий от rumgot

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

gnulag ()
Ответ на: комментарий от gnulag

Это вовсе не обязательно, особенно в реалиях тех проектов

начнём с того, что мне ещё ни разу не навредили базовые знания по фронту. Да, я не знаю, как настроить реакт с нуля или что-то провернуть на vue.js. Но даже такие знания помогали не раз.

Ок! Есть документация, есть readmy.md
А если что-то пошло не так? К примеру в readmy команду не прописали, почитав, что это само собой разумеется. День времени коту под хвост! Если вообще запустишь.
Если и не обязательно, но как минимум рекомендуется. Хотя бы, чтобы знать, что делаешь, а не тупо отдавать JSON, который сам не знаешь как использовать. А если фронтер дал пример не рабочий? А ошибка там банальная! Потратить день работы на нерабочий функционал... так себе вариант.
И я уже писал, что в идеале во время обучения должен получиться какой то рабочий проект. Его в идеале тоже верстать нужно) В идеале применить сборщики (gulp/webpack scss, свести js и тд). Плюсом будет не слабым.

Dockerfile

а если что-то пошло не так? Мне нужно запустить модуль, который требует какой то модуль php, который не включен по распечатке phpinfo(). А прям нужно!
Пример: проект с нуля. Скинули кривой, старый конфиг docker. В нём не установлен pdo, и 8080 порт в системе занят. Приплыли? Работа встала? Да я больше скажу. Вы собеседование на такую работу не пройдёте, если не умеете работать с Docker. Не везде научат.

Также не забываем, что часто админки кодят бэкеры. По факту фулстек. Не знаю как у вас, а я это часто вижу.

учитывая реалии разработки одностраничных приложений как составной части большого приложения...

учитывая реалии сложности таких приложений, джуна с нулевым стажем туда не пустят.Да даже на работу не факт, что возьмут в такую компанию. Хорошо, если туда попасть на обучение с последующим трудоустройством. Но там то всё и расскажут, покажут, на правильный путь направят.
А вот тп старых сайтов, вплоть до работ по FTP на продекшене, из серии «поправить вёрстку» - только так!
И у нас в городе такую работу найти джуну с нулевым стажем - чуть ли не единственный. Да! Про чистый бэк тоже можно забыть первые пол года - это точно.
Также легко влететь на проекты на bitrix. Ну как бэ всё в лучших традициях! Битрикс. Обожаемая битриксоидами лапша нечитаемого кода. Компонент в компоненте (какие прогеры, такой и код). Комменты/разбивка на функции - не, не слышали! Проекту года 3-4, php5.4 и всё в том духе)

Ignatov ★★★ ()
Ответ на: комментарий от Ignatov

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

Например, как правило, вызов вебпака — это не очень тривиальная задача, потому что он сопровождается немалым количеством параметров (если головной мозг на месте, то многие из них таки вынесены в конфиг вебпака для проекта), поэтому ситуация в духе упомянутого «команду не прописали, почитав, что это само собой разумеется» крайне маловероятна. Если в README ничего не написано, обычно хватает посмотреть содержимое поля scripts в package.json — там действительно в большинстве проектов всё плюс-минус очевидно, по крайней мере, для бэкенд-разработчика, которому проект просто надо собрать или запустить. Этот момент уточняется буквально за минуту, и я говорю по опыту взаимодействия с разработчиком, который не имел, не имеет и не хочет иметь дела с Javascript и его экосистемой.

Касательно докера — я имел в виду контейнер с пускалкой фронтенда. С клиентским роутингом, серверным пререндером и прочими вещами, которыми сам бэкенд напрягать бессмысленно.

Что до фуллстэк-разработки в вебе — это очень большая ошибка сама по себе. Эдакая комбинация кормления разработчиком своего эго и желания бизнеса сэкономить на зарплатах. На двух стулях не усидеть, потому что фронтенд-разработка на сколь-либо серьёзном уровне, на самом-то деле — вещь крайне замороченная. Ну, как и разработка пользовательских интерфейсов в целом.

И так далее, и тому подобное.

gnulag ()

В идеале Go, но вакансий пока мало, так что питон, но если тебя куда-нибудь возьмут писать на ноде, то тоже не следует отказываться.

WitcherGeralt ★★ ()

Сдуй пыль, возьми perl 5.

anonymous ()
Ответ на: комментарий от WitcherGeralt

Тебе никогда не бывает скучно? Не так скучно, вроде «хз чем заняться вечером», а вида «все надоело, ради чего оно это все?» Если да, то как справляешься?

anonymous ()

Ъ-тру бэкенд можно написать только на ANSI-C (c) Ъ-тру поцан.

anonymous ()

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

Пых будет железно популярен еще лет 20.

Целостной картины и представления о них нет. Что посоветуете?

Сформировать целостную картину.

много писал на delphi

Изучай, что такое рефлексия и как делаются фреймворки на том же пыхе. Это - фундаментальная вещь.

crutch_master ★★★★★ ()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от anonymous

С тех пор, как я 3.5 года назад, сломав стопу и получив серьёзную трещину в локте, решил отказаться от планов связанных со спортом и начал работать программистом фулл-тайм, я в таком состоянии перманентно. Но если первые полтора года мне было очень важно вернуться в свою лучшую форму (хотя я не тренировался всего месяц и в сущности из формы не выходил, но локоть со стопой мне сильно мешали), я делал всё на автомате и не парился, то потом решил однохнуть и понеслась… Главное, не расслабляться.

И не нужно слишком увлекаться работой. Она не должна мешать жить.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

WitcherGeralt ★★ ()
Ответ на: комментарий от WitcherGeralt

О да, а я думал ты адекватный бываешь. Спросил про «все надоело», а он мне опять про свою качалку.

anonymous ()
Ответ на: комментарий от anonymous

Так когда есть любимое дело, «всё» надоесть не может, у меня это качалочка.

WitcherGeralt ★★ ()
Ответ на: комментарий от Ignatov

Чистый PHP'шник мало кому нужен

Разумеется. Сопутствующие технологии тоже нужно знать.

rumgot ★★★★★ ()
Ответ на: комментарий от gnulag

Ну да. Не всегда нам дают возможность программировать интересные вещи, использовать последние технологии, тратить время на рефакторинг кода и т.п. Мне вот иногда приходится писать на C++98 из-за того у нас есть VxWorks старой версии со старым компилятором...

rumgot ★★★★★ ()

Ебошь php, и монетизируй его, а для расширения кругозора тыкай Django, Ruby on Rails.

DAGAZ ()
Ответ на: комментарий от menangen

Тебя пора забанить за не владению мать часть. Автор один у дельфи и си #, голанг сделал роб пук в гугле

anonymous ()
Ответ на: комментарий от rumgot

В детстве много чего пробовал, но ничем помимо пауэрлифтига я не занимался и не занимаюсь.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от gnulag

Я про тёплое, ты — про мягкое

Я понял, о чём вы) В реалиях моего города о таком только мечтать) Есть конечно места... Но без опыта разработки туда не сунуться.
Видимо сказывается и то, с чем работаете вы, а с че я)
Лично я до одностраничников с реактивным фронтом не имел удовольствия поработать. А хотелось бы... Соответственно тянуть вёрстку, настройка ЧПУ и прочее - всё моя работа) И отправить пачку исправлений на вёрстку - и такое бывает)

Например, как правило, вызов вебпака — это не очень тривиальная задача

Именно это я и пытался описать. Получить навык просто собрать проект. Но не тупо по readmy, а с пониманием, что происходит, и в какие файлы залазить, если есть интерес, что туда напихали. Составлять свой package.json бэкэндеру - так себе занятие) Бесполезный скилл! Полностью с вами согласен.

Что до фуллстэк-разработки в вебе — это очень большая ошибка сама по себе.

Полностью согласен! Распыляться в наши дни... Невозможно успеть за всеми технологиями! И без того вечно догоняешь. Особенно это замечаешь, когда пройдёшься по паре собеседований) Даже если не в целях смены работы, а просто оценить свой скилл относительно конкурентов. Но не во всех городах нашей страны можно найти работу без опыта работы чистым бэкендером. Потому такой сценарий и описал, в который попадать не будет желания ни у кого. Но как бы это грустно не звучало - описал реальный проект. И это имеет место быть сплошь и рядом.
Не желаю ТС такой судьбы)))

PS и для себя сделал выводы из ваших сообщений)

Ignatov ★★★ ()
Последнее исправление: Ignatov (всего исправлений: 2)
Ответ на: комментарий от WitcherGeralt

Я умею всё, но если на собеседовании на бэк меня будут спрашивать про CSS, то будут срочно отправлены на три буквы.

1) Вы не можете уметь всё) Как минимум профессионально. Одних только CMS и фреймворков столько, что их даже все запомнить - задача не из простых.
2) Когда вы ищете работу джуном - вы не можете себе позволить посылать на 3 буквы. Это вас все шлют на 3 буквы, потому что это вы ничего не умеете))) Выбирать не приходится. Вас может собеседовать мидл и завалить.

PS Я тогда туда работать и не пошёл)
PPS а может это был тест, а не послать ли меня во фронт?XD

Ignatov ★★★ ()
Ответ на: комментарий от Ignatov

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

WitcherGeralt ★★ ()

и немного на php

Вот его и прокачивай, если уже немного знаешь. Бэкенд на нём пишут и много. Смотри в сторону фреймворков типа YII2 или Symphony

Очень был удивлен, что backend можно писать на JS (nodeJS)

Некоторые его и на баше пишут, и даже на swift, но зачем?

r_asian ★☆☆ ()

Я посоветую тебе перестать голову чепухой и перейти на конструкторы сайтов, у которых уже давно есть интеграции на все случаи жизни. Через пару лет профессия backend-web-разработчика совсем вымрет.

djambeyshik ★★★★★ ()

Что сейчас перспективней

сам смотри, что больше понравится (JavaScript=NodeJS, Java=Spring Boot и т.п., Go или ещё что-нить).

С первым и вторым с работой скорее всего проблем не будет - вакансий много.

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

Законы и математические принципы остались те же самые, что и 50 лет назад (или даже больше :) ). Учи дискретную математику и пиши программы не только «на работе» (в офисе 95% задач - быдлокодинг). Остальное (языки программирования, библиотеки и фреймворки, подходы) изменяется довольно быстро и, иногда, сильно.

Qasta ()
Ответ на: комментарий от Ignatov

Одно небольшое замечание:

Составлять свой package.json бэкэндеру - так себе занятие)

Скорее всего, я скудно выразил конкретно ту мысль, есть просто некоторый момент. Обычно при создании проектов на Javascript, в том числе статических веб-страниц (не только по моему опыту, но и по опыту многих проектов на Github) составление package.json — неотъемлемая его часть. Самостоятельно каждый раз вызывать простыню из параметров для шаблонизаторов HTML-страниц, пре- и пост-процессоров CSS, бандлеров, таск-раннеров, browser-sync (если используется) и прочего не только неудобно, но и довольно вредно, если учесть, что через довольно большое время может возникнуть потребность к этому проекту вернуться. Это относится даже к проектам, использующим Gulp, потому что, как вполне корректно принято считать, всегда лучше в явном виде указать, какой набор тасочек (конкретно в случае с Gulp) относится к запуску live reload сервера, а какой — к выхлопу в продакшен. Побочным эффектом явного указания этого является то, что бэкендер впоследствии может просто заглянуть в package.json, и без лишних заморочек упомянутый, например, выхлоп в продакшен запустить.

gnulag ()
Ответ на: комментарий от djambeyshik

djambeyshik
тексты, дизайн, digital-маркетинг, аналитика, интерпретация данных, подбор инструментов, разработка бизнес-процессов, непрошеные советы
Посоветуйте дешёвый смартфон до 8 000 рублей

anonymous ()

выбирай то, что находит отклик в твоём сердце

по большому счёту разницы нет, вопрос что тебе хочется

oxo ()

Сейчас хочу постичь backend для дальнейшего трудоустройства.

Зависит от того насколько далек твой горизонт планирования. Если полгода-год, то пых тебе в лапы и вперед. Станешь макакой уже через пару месяцев, будешь получать на хлеб с маслом. Перспектив никаких.

Питон и руби — промежуточные варианты. Вкатываться придется подольше, я бы сказал полгода только на обучение.

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

В любом случае полезно знать sql и базы данных, http, REST, и всякую такую лабуду.

morse ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.