Куда двигаться в веб-разработке?

Не так давно я осознал, что у меня достаточно большие пробелы по многим сферам знаний. Меня всегда интересовал бекенд, поэтому изучал в основном PHP- в т.ч. разные фреймворки. Из-за этого у меня две проблемы:

У меня нет академического Computer Science образования, и чем больше я углубляюсь в дебри, тем больше чувствую нехватку базы- глубокое знание ООП, создание архитектуры, всякие методики, трюки и т.п.

Вторая проблема, с которой я сталкиваюсь заключается в моем незнании Джаваскрипта. Я могу писать простейшие скрипты, конфигурировать jQ-плагины, но не более. А с каждым новым проектом требуется всё больше интерактива. Присутствует страх перед JS: книги, которые мне рекомендовали это 900-страничные труды, так если только описание языка занимает столько времени сколько же еще потребуется на изучение сопутствующих технологий (фреймворки, инструментарий)?

Я прошу направить меня на путь истинный- что же нужно подтягивать в первую очередь, куда двигаться? Какие книги читать? Какие курсы смотреть?

Важное замечание - я не имею никакой возможности устроится работать в офис, работаю на фрилансе, но зато мне 20 лет - есть энергия и мотивация к самообразованию!

Буду благодарен любым советам!
  • Вопрос задан
  • 8036 просмотров
Пригласить эксперта
Ответы на вопрос 12
@rsi
software engineer
Перво наперво определитесь, хотите ли вы стать профессионалом или просто хорошо делать сайты. Я бы предложил выбрать путь профессионала.

Во вторых определитесь, каким именно профессионалом вы хотите стать:
  1. web - мастером
  2. Front end
  3. Back end
  4. Desktop
  5. Другого направления


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

Здесь вам советовали сменить язык, не слушайте этих советов. Да Ruby имеет некоторые преимущества перед php, но имеет и недостатки. Не думайте, что если вы выберите Ruby (python) ваша жизнь измениться, вы не получите ничего, что не может вам дать php и на оборот, эти увеличенные зп и прочее миф, язык не важен. Помните, ЯП это всего лишь инструмент, вы конечно должны иметь инструмент, и должны знать свой инструмент в совершенстве, но умение программировать заключается не в этом. Да, плотник алкоголик, который зарабатывает на жизнь забивая гвозди, может хвалить свой молоток и всем рассказать, что молоток его кормилец, но согласитесь настоящий строитель умеет не только гвозди мотком забивать, не говоря уже об архитекторе, который молоток и в руках мог вообще не держать.

И так предположим, вы выбрали свой путь, вы выбрали направление и выбрали инструмент. Теперь вам нужно работать в этом направлении (как над собой, так и в буквальном смысле работать). Читайте статьи, читайте книги (я всегда рекомендую только одну книгу - "Совершенный код", ее без преувеличивания должен прочитать каждый программист), изучайте новые фреймворки, технологии, отрасль постоянно движется вперед, вам нужно двигаться вперед еще быстрее, что бы хотя бы не стоять на месте. В процессе работы над проектами вы будете чувствовать нехватку знаний (вы упоминали js, ООП), устраняйте эти пробелы книгами (не стоит бояться 900 страниц, книги вы ничем не замените, их необходимо читать), статьями и конечно практикой. Не переживайте по поводу отсутствия высшего образования, оно не дает глубокого знания, никто не расскажет вам ни каких трюков, если у вас не будет толкового преподавателя. Но толковый преподаватель, это не обязательно учитель в универе, это может быть автор книги (например Макконел), автор хорошего инструмента (например Taylor Otwell), большинство очень известных и авторитетных людей генерирует тонну информации, книги, статьи, записи в соц. сетях, код, все это можно читать и это даст вам куда больше чем ВО. И да, мы с вами живем в уникальное время, время интернета, где нет расстояний, и это дает намного больше возможностей, чем нагуглить очередной костыль для jquery от школьника, вы можете общаться лично например со Страуструпом или тем же Тейлором, ни в одном учебном заведении России у вас не будет возможности поговорить с такими людьми.

Подведя итог:
  1. Определите путь (хотя бы примерно)
  2. Определите специализацию (хотя бы примерно)
  3. Выберите инструмент (один основной язык, один основной фреймоврк, одну основную cms и тд)
  4. Изучите свой инструмент в совершенстве
  5. Пробуйте другие инструменты (да я сказал один яп, один фреймворк, но один вы должны знать в совершенстве, остальные должны попробовать)
  6. Расширяйте кругозор
  7. Работайте над собой
  8. Работайте
  9. Выберите наставников и учитесь у них


Следуя этим советам вы увеличите свой скилл, сможете сами отвечать на вопрос заданный в заголовке и станете профессионалом. И помните путь профессионала, это постоянная работа (как буквально работа, так и работа над собой, если просто писать сайты 24/7 вы тоже профессионалом не станете), гораздо больше чем 8 часов в день, 5 дней в неделю.
Ответ написан
Комментировать
cyberyak
@cyberyak
Куда двигаться в веб-разработке? - Подальше от России
Ответ написан
Комментировать
svaa1982
@svaa1982
Web разработчик с трёхмерным уклоном
Не хочу никого обижать, но если есть возможность, замените PHP на язык общего назначения. Потенциалов и возможнстей для работы будет куда больше. Из вариантов Python, Java, серверный JavaScript, Ruby (он тоже иногда используется не для веба). Объектная модель в Java считается классической, остальные языки имеют свои особенности

Современный веб это HTML5 (CSS3, WebGL, Canvas2D, WebRTC) а также мощные клиентские фреймворки: bootstrap, angular итд. Книги по JS это полнейшая ерунда, они успевают устареть ещё до своей публикации. Всегда читайте на английском, сайт w3c в помощь.
Ответ написан
standy
@standy
Никакие книги не дадут столько, сколько практика. Просто пишите код.
Почитайте, например, статью от создателя jquery: Джон Резиг: Пишите код каждый день
Ответ написан
Комментировать
nastya_cyxarik
@nastya_cyxarik
php, python dev
1) по PHP - найти себе хорошую книгу , которая б именно для тебя была хорошая, но мой совет читай документацию, там вся инфа и без лишнего текста(если понимаешь, что совсем нуб можешь глянуть специалита)
2) Жаваскрипт своеобразен потому в любом случае , если ты понимаешь ,что он тебе необходим бери "JavaScript. Библия пользователя" и читай.
3) ну и паттерны проектирования "PHP. Объекты, шаблоны и методики программирования"
Ответ написан
Sivkoff
@Sivkoff
Web Developer
По PHP книга для понимания ООП: www.ozon.ru/context/detail/id/5648968
По JS сначала эту, для закрепления основ: www.ozon.ru/context/detail/id/19677670 очень советую,
потом эту www.ozon.ru/context/detail/id/6287517
Ну и читать официальную документацию и спецификации, они в отличие от книг постоянно обновляются.
Ответ написан
@Upcoming
Отличный и, к тому же, на самом деле современный учебник по JavaScript: javascript.ru. Написано очень доступно, а самое главное - структурировано, начиная с самых основ языка и заканчивая довольно продвинутыми темами. В конце каждого урока автор предлагает решить пару полезных задач для закрепления изученного материала, а также приводит свое решение.
Ответ написан
Комментировать
@RobertGM
ajax прибавить тебя итерактивности. И вообще избавься от "мышление" привязного к одному языку и легче тебя станет дышать.
Ответ написан
Комментировать
@smoklew
Могу предложить практику, есть интересный проект, предлагаю поработать в команде
пишите в скайп: autor4n расскажу подробнее
Ответ написан
Комментировать
zo0m
@zo0m
full stack developer
Вот на эту тему образования коммикс:
imgs.xkcd.com/comics/11th_grade.png

И манифест(немного из другой оперы, но вдохновляюще) :
macode.ru

Что-бы чему-то научится --- "Пиши код, бл#@ь".

Хочешь подучить JS? Выбери задачу с кучей JS кода и пиши пиши пиши, можешь по примерам, статьям в интернете, переделывать чужое решение, это не важно, пиши пока руки в кровь не сотрутся. Это лучший способ.

ООП и прочее, для начала разберись с базовыми понятиями. Прежде чем их применять, пойми как оно устроено. А потом, опять же : выбери задачу и вливай в нее столько ООП сколько сможешь.

ООП я бы сразу вместе с Java(например, первые 10-20 страниц Thinking In Java(на русс. Философия Java), как я помню уже должны будут вправить тебе мозги), даже если Java тебе не попрет, как минимум учить удобнее будет.

Все то время что ты ждешь ответ от кучи незнакомых людей из интернета, которым по сути на тебя плевать, ты мог бы потратить на то, чтобы писать код и стать лучше. :)
Ответ написан
Комментировать
mag2000
@mag2000
Erlang
Как писали выше: js, css и прочий хлам легко учится когда ты делаешь основную задачу и решаешь простенькие смежные задачи гуглением.
На тему "разных фреймворков" и проблемы отсутствия "глубоких знаний" посоветую почитать про Erlang и N2O. Глянь пример чата в 20 строк, графики производительности – и ты поймёшь, что похапэ и ява нинужны.
Ответ написан
Surzhikov
@Surzhikov
Разработчик
Alex, привет!
Скажи, а какие помимо программирования у тебя увлечения и цели?
Вечно работать на фрилансе - это путь в тупик, надеюсь ты понимаешь.

Я советую тебе начать свой проект (веб-сервис, приложение) который ты в дальнейшем мог бы монетизировать.
Если таких идей нет - выбери любую мало-мальски интересную тематику и начни opensource проект.
Знакомься с другими программистами (ко мне например френдься), включайся в командную разрабоку и самое главное - каждый день получай удовольствие от коддинга и новые знания.

PHP менять на что-то другое, мне кажется не нужно.
Стоит научиться очень хорошо и быстро верстать и изучить JS (желательно чистый JS, чтобы уметь работать без фреймворков). Для понимания архитектуры - опять же, тренируйся на своих проектах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы