Как стать автором
Обновить

Комментарии 15

А, может быть, этому «программисту С++» стоит все-таки освоить общие вопросы анализа и проектирования ПО?
А потом уже вопрос «на каком языке писать» станет не столь актуальным…

Тем более, что есть большой шанс, что, как в анекдоте про байкеров, «чего с вами знакомиться — вы каждый год разные»
Первая стадия дзена.
Fullstack необходим, когда ты в начале изучения, с нуля делаешь себе и другу сайт, «чтобы самому поиграться и понять, что-ж там сложного?» особенно для C++ программера. Делаешь как можешь и, если работает — это хорошо. Хи-хи, что такое PHP относительно C++? Ощущения: похож на C++, но как Basic.

Вторая стадия дзена.
Ты хорошо разобрался в PHP, и худо-криво работающий backend сделал. Теперь пришло время заниматься фронтом. На тебя сейчас по-минимуму надо разобраться CSS3 / HTML5 / Bootstrap / Javascript / jQuery. На каждый из них тратишь для своего проекта по неделе. Заработало. О том, что это говнкод — сейчас не говорим. Главное чтобы работало на своём «сайте для души и друга».

Третья стадия дзена.
Ты хочешь на этом зарабатывать. Ищешь неприхотливых заказчиков и не дорого. Берёшь свой сайт как шаблон для ихнего, и начинаешь пилить. Обнаруживаешь, что там надо сделать авторизацию. Что они хотят верификацию форм и parallax.
Денег особо или вообще не получаешь, но радуешься. Потом переносишь с localhost на сервер, а оно там падает. Приходится постепенно обрастать бородой и свитером с оленями.

Четвёртая стадия дзена.
Уже сбрил бороду, надел удобную футболку и пиджак (примерно через 3...5 лет, не с теорией, а с практикой). Ты — fullstack.
Сервер можешь настроить, логи посмотреть, PHP 5 уже достаточно знаешь, и не лезешь в PHP 7 без необходимости. Между делом поизучал Python, поигрался — понравилось. По фронту между делом досконально разбираешься в jQuery, и полез изучать Vue.js.

Всё делаешь сам, и только сам всё под контролем, пока не наступает момент Х — тебя приглашают работать в команде. Но это не тема для комментария.
То что я выше написал — то, через что я прошёл, и как делать не надо.

Да, я знаю ASM/C/C++ PHP / MySQL / JS, но в новой команде я взял на себя роль исключительно frontend. Выбрав изначально стратегию личного развития, проще определится в коллективе, не быть «как все», не распыляться между беком, фронтом и сисадминством. Работать в своей сфере и быть лучшим специалистом в из коллективе именно в своей сфере.

Мне такая стратегия очень помогает.
За 10+ лет работы на де-факто фуллстеке (хотя с формальной стороны я был нанят как фронтэндщик) и наблюдения за коллегами, я пришел к выводу, что вообще стремиться к освоению фуллстек-технологий — это вообще очень полезная штука. Я, например, не настраиваю СУБД и не лезу в её кишки, для этого есть отдельные люди, но вместо этого приходилось, например, работать переводчиком между разработчиками бекэнда и рисователями формочек, у которых терминология баз данных вызывала когнитивный диссонанс. Или в случаях, когда нужно взять и поправить вебсервер — ты просто берешь и его правишь, не растягивая это на несколько недель и совещаний. Или в тех случаях, когда что-то идёт не так — имея хорошие представления о том, как работает бекэнд, после легкого дебага ты можешь с большей уверенностью преполагать, где и что в бекэнде сломалось, а не просто «у вас оно не работает».

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


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

Но работать при этом надо на одну сторону, с этим я согласен.
Небольшое уточнение про фронтенд — язык тут как бы один, Javascript. Но при этом их много — ES5, ES6+, TypeScript, JS+Flow, Dart, Coffescript, ClojureScript, Elm.
А еще традиционного ООП, такого как в C++/Java — в JS ни в ES5-, ни 6+ — нет и не будет.
Вы, как и автор статьи, заблуждаетесь.
Из того, с чем лично пришлось работать: GWT (tldr: фреймворк + компилятор Java в клиентский JS) — штука достаточно мощная, используем в крупном проекте на тысячи пользователей. Весь код на Java, и бекенд, и фронтенд. Учитывая наличие отладчика интегрированного с хромом, даже в дебаге фронтенда из Java в JS переключаться не приходится.
Весь код на Java

Вопросов больше не имею. Подавляющее большинство JS программистов такой роскоши себе позволить не может. А как только вы сталкиваетесь с JS-зависимостями, весь ваш ООП из Java потенциально идет в топку. См. например печально известный манки-патчинг (про smoosh-гейт слышали из последнего?)

PS Не скажу за GWT, но скажем Vaadin то еще дерьмо.
Неплохая заметка. Такие заметки тоже нужны. Только я бы добавил, что после пары проектов для себя и для друга, после выбора, например, бэкэнда, ты сознательно идёшь работать за еду в реальную команду. И это, вероятно, обязательный шаг.
А мне представляется, что лучше вообще сходу начать с работы в реальной команде. Если хороший программист, то возьмут и помогут все выучить. Языки и фреймворки учить – это понятно как и очень предсказуемо. А научить программировать – долго, и может не получиться.
Говорить, что на фронтэнде «только javascript» — как минимум лукавство. Во-первых, тут уже сказали, что яваскрипт он как бы один, но вместе с тем их много.
Во-вторых, если вы придете к людям и скажете им «знаю яваскрипт, дайте мне писать фронтэнд» — ну, люди посмеются конечно, но толку в этом особого не будет. Как минимум вам нужен базовый стек технологий браузерного представления — а это, вдобавок к яваскрипту, HTML (и DOM) и CSS. Декларативные языки — это тоже языки, а отношение программистов в духе «это ж просто, чё там разбираться» часто потом порождает монстров. Ну а как максимум, тут тоже всё «как бы одно, но на самом деле нет». Шаблоны ангуляра — это вроде как HTML, но не совсем, а фичи, скажем, LESS — это вроде как CSS но не вполне.

Во всех надстройках фронтэнда гуру быть не надо (и даже скорее вредно, сегодня одни надстройки популярны, завтра другие), но иметь хорошее представление — скорее всего придётся, если заниматься возней с фронтэндами профессионально. А вот в базовых технологиях — очень даже стоит разобраться серьезно.
Языков программирования тут множество, вот самые распространенные из них:

• Php
• Asp net
• Java
• Python
• Ruby
• Node js


Asp и nodejs — это не языки
У меня одного чувство какое-то незавершенности после прочтения? Как будто автор всю статью готовился чихнуть, но так и не чихнул. Обидно.
В самом деле, кто знает как стать настоящим веб-программистом, если ты программист, но не веб? Допустим, с языками понятно. JS программистом с опытом изучается легко. Можно немного задержаться на уровне промисов, замыканий, но все равно это пара книжек и пара недель практики.
Допустим, для сервера можно использовать уже знакомый c#/Java или снова JS (или обязательно нужен какой-то еще веб-язык?).
БД, вроде, они и в Африке БД, и сейчас везде ORM и Mongo (или нет и прям нужно детальное понимание работы одного-нескольких решений БД?).
Для сервера есть фреймворки и они все выглядят очень специфически, видимо потому, что каждый предполагает определенный шаблон разработки. Появляются довольно не четкие (для не веб-программиста) понятия контроллер, API, REST и так далее. Понятия явно очень простые по своей сути, но есть ли там что-то, чему надо научиться, чтобы говорить на одном языке с другими веб-программистами?
Что еще? Нужно ли знать множество секретов использования html и css? Обычная ситуация для не-веб программиста, когда вроде все просто, но когда начинаешь гуглить как поставить элемент по центру (условно говоря), понимаешь, что вариантов очень много и все плохие и явно все делают как-то по-другому.
Чтобы считаться веб-программистом это нужно преодолеть? Как?
Наконец, видимо требуется разобраться с React и чем-то из семейства Angular-подобных, судя по довольно впечатляющим идеям, заложенным в эти фреймворки.
После всего этого можно считаться веб-программистом? Или есть еще нечто существенное, какое-то знание, какой-то опыт?
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории