С чего начать учиться программировать сайты?

с чего начать учиться программировать с нуля

Как научиться делать сайты? Перечислю по мере очередности:

  1. Установить несколько CMS и просто посмотреть, что у них есть из коробки. Выбрать одну из них, которая больше всего по душе. На этом этапе, когда ты еще нормальный человек, сделать выбор на основании пользовательского опыта, ведь этим будут пользоваться люди. Честно говоря, многие из них непонятны на первый взгляд. Так что стоит посмотреть какие-то видеообзоры на ютюбе и потратить на знакомтсво более 30 минут времени. Хотя бы 1 день.
  2. Пройти курс по использованию данной системы (администрирование, установка шаблона и расширений). Этого будет достаточно, чтобы уже создавать простенькие сайты-визитки. А дальше прислушаемся к Карлу Марксу и посчитаем:
    (Затраты на покупку шаблона + на покупку расширений) + (количество наших трудодней * умножим на среднюю оплату одного рабочего дня в нашем городе).
    И, вуаля, называем клиенту коммерческую финальную цену наших работ с сайтом. Хостинг и домен, обычно, покупает сам заказчик, поэтому их цена тут не фигурирует.
    К сожалению, на этом этапе ваш основной доход будет приносить заполнение начального контента для сайтов-визиток небольших фирм, что не имеет особенного отношения к самому программированию, но знакомит вас с той программой, которую вы будете предлагать людям в качестве решениях всех их проблем. Вы на себе ощущите все ее грабли, которые сможете решить чуть позже, когда научитесь программированию.

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

  1. Базовый HTML + CSS ( иногда людям достаточно статичных лендингов, а иногда есть заказы чисто на верстку... ). Вот эти курсы прекрасно подойдут: http://www.zvirec.com/html_sod.php и http://www.zvirec.com/css_sod.php
  2. Верстка по сетке + адаптивная верстка (медиа запросы)
  3. 30 CSS селекторов, которые вы должны запомнить, - https://code.tutsplus.com/ru/tutorials/the-30-css-selectors-you-must-memorize--net-16048
  4. https://medium.com/@lucyhackwrench/несколько-неочевидных-фишек-css-о-которых-вы-могли-не-знать-780e7e4876a3
  5. Руководство по оформлению HTML/CSS кода от Google - https://habr.com/ru/post/143452/
  6. Базовый JS + jQuery ( область видимости переменных, манипуляции со строками, манипуляции с DOM, AJAX )
  7. CSS-фреймворк ( Bootstrap )
  8. Методологии верстки ( SMACSS чисто для философии - https://medium.com/@companjero/методология-smacss-e601222cd4eb, БЭМ для использования на практике и то не всегда - https://ru.bem.info/methodology/quick-start/ )
  9. Ознакомиться с CSS-фреймворком своей "любимой" CMS
  10. CSS-препроцессоры ( SCSS, SASS, LESS можно и пропустить )
  11. Пройти курс по разработке сайтов на данной системе
  12. Пройти курсы по PHP уровень 1 и 2 центра "Специалист"
  13. Научиться искать ошибки - http://phpfaq.ru/debug

Отдельные js-плагины, на которые стоит обратить внимание:

  1. CKeditor (TinyMCE) - ничего лучше просто нету
  2. Owl Carousel ( или Swiper )
  3. Magnific Popup ( или Fancy Box )
  4. Color Picker

 

Организационные моменты в самостоятельном обучении программированию с нуля

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

Как говорит Уорен Баффет “Успешное инвестирование требует времени, дисциплины и терпения. Невзирая на то, насколько вы талантливы и сколько усилий вы вкладываете, иногда требуется просто время, чтобы что-то начало работать: у вас не получится "создать" ребёнка за один месяц, "обрюхатив" 9 женщин одновременно”.

Нельзя сравнивать свои навыки с теми, кто работает 5 лет. Надо сравнивать себя сегодня с собой 2 месяца назад.

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

Постоянство - признак мастерства.

Многие люди так хотят стать веб программистом, что бросаются изучать все, что попадается на глаза. Но нет смысла метаться от технологии к технологии. Даже не пытайтесь выучить то, что вам сейчас не нужно в работе (с сайтами на CMS), пока вы не наладите свой доход.

А когда наладите, все равно никогда не учите то, что рекомендуют в каких-то статьях с названиями вроде "5 трендов в веб-разбработке" и тд.

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

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

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

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

Да, логика твердит: "Что стать веб разработчиком и получить работу, необходимо быть не хуже других и знать достаточно технологий". Но, если вы поинтересуетесь особенностями работы мозга, то поймете, что наши мысли и мотивы не имеют ничего общего со словами и логикой. Все решения мы принимаем на более глубинном уровне мыслеобразов и эмоций. Какую эмоцию вызывает у вас необходимость учить то, что другие советуют, но это требует от вас много усилий, и при этом не имеет реальной отдачи прямо сейчас?

Не верите мне, поверьте лучшему русскоязычному спикеру в этой области, который потратил всю свою жизнь на изучение мозга - https://www.youtube.com/watch?v=HE8xCKZsoDY

 

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

- "Основы программирования для чайников", Уоллес Вонг - Чиать не до конца, а только пока интересно. Читать ради того, чтобы в принципе понимать, как строить порядок действий, ведь в книгах по PHP такого не часто описывают. Пропускать практику на Basic. Не впадать в желание изучить компилируемые языки и бросить php :), а то это будет противоречить принципу постоянства.
- "Идеальный программист", Роберт Мартин
- "Дизайн привычных вещей", Дональд Норман
- "Запретный маркетинг", Джон Вон Эйкен - важно не загонять себя исключительно в технарские знания. Чередовать более технарские книги с другими, но все же связанными с работой, даже если и косвенно, философски, но не впадать в художественную литературу.
- "Программирование без дураков", Пассиг Катрин, Яндер Йоханнес
- ".ру/Ководство", Артемий Лебедев (читать онлайн)
- "Стив Джобс", Уолтер Айзексон
- "Код. Тайный язык информатики", Чарльз Петцольд
- "Не заставляйте меня думать", Стив Круг
- "Бизнес со скоростью мысли", Билл Гейтс
- "Теоретический минимум по Computer Science", Владстон Феррейра Фило
- "Найди работу своей мечты", Брайан Трейси

Какие курсы посмотреть тем, кто хочет стать веб разработчиком?

О программировании

- Хекслет
https://ru.hexlet.io/courses/prog-life?ref=67977
https://ru.hexlet.io/courses/intro_to_git?ref=67977
- Центр "Специалист" - Уровни 1-2 - обязательно. ( эти курсы платные, но существует NoNaMe Club)

Об OpenCart

- http://forum.opencart-russia.ru/threads/soderzhanie.5/
- http://forum.opencart-russia.ru/threads/rukovodstvo-razrabotchika.14/
- https://webdesign-master.ru/_lp/opencart/ - лично я его не досмотрел.

Часто на ютюбе можно посмотреть отдельные ролики про какую-то технологию. Или как сделать вот это. Используйте это.

Что для командной работы

- Git
- Постановщик задач (Neaktor или др)

 

Чтобы научиться делать сайты качественно, избегайте ошибок с плачевными последствиями!

Тут я отмечу не технические ошибки, а ошибки в организации своей работы и общения с клиентом. Это те ошибки, которые Дональд Норман называет не просто оплошностями (которые заметны окружающим и их легко исправить), а системными заблуждениями (которые ведут целые компании к гибели).

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

  1. Если ты лезешь в дизайн, то и себе работу тормозишь и клиенту выполнение заказа! Бери готовые дизайны макетов и верстай по ним. Ну да, цвета можно заменять 🙂 Идеальный вариант - вообще работать по шаблонным дизайнам или в смете проекта предусмотреть услуги реального дизайнера
  2. Лезть в SEO-продвижение - себе дороже. Да, поставить счетчики на сайте - это твое дело. Но отвечать за результаты продвижения - нет
  3. Лезть в любые смежные услуги (ведение страниц в соцсетях и их продвижение) или контент-менеджмент сайта. Это должны делать другие люди, которые получат за это отдельную оплату.
  4. Занижать цену
  5. Писать свою CMS с нуля! Этот код никто не захочет поддерживать. И чем больше клиентов у тебя будет, тем больше тебе будут выносить мозг очередные обнаруженные баги или хотелки клиента, которые нельзя закрыть, просто установив модуль или плагин...
  6. Постоянно читать статьи про модные технические штуки, но не кодить с их использованием - это бессмысленная трата времени
  7. Читать комментарии к статьям, это вообще мысленная жвачка, которую пережевали другие люди, выплюнули, а вы ее подобрали и пробуете жевать, пытаясь понять, почему человек говорит, что она вкусная, если вы никакого вкуса не ощущаете.

 

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

Чтобы иметь возможность образовываться, надо иметь время. Чтобы иметь время, надо иметь стабильный прогнозируемый доход. Стало быть первое и самое важное для обучение - обеспечить регулярные поступления денег. И для этого Вам не нужно быть техническим гуру. Достаточно просто приобрести навык выполнения однотипных заказов и создать некий конвейер типичных решений.

Нельзя объять необъятное, так что перво-наперво остановитесь на 1 CMS и на одном виде сайтов.

Выполнил 5-10 заказов, можно перейти к следующему этапу:

  1. Начните писать собственный модуль для этой CMS - какой-то небольшой для начала.
  2. Напишите собственный шаблон - без навороченных настроек - потому что с большим кол-во настроек цветов - затянется на месяцы. Посмотреть, какие есть бесплатные и повторить.
  3. Прочитать биографию известного программиста, чтобы понимать, что он таким не родился. Биография Стива Джобса сгодится

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

После этого создайте типовые пакеты на выполнение задач по 3 типовым сценариям:

1. Старт - чисто создание на основе покупных шаблона и модулей. Никакой SEO - оптимизации. Никаких забот об адативной версий кроме тех, что заложены в самом шаблоне, никаких значительных изменений в дизайне

2. Оптимальный - комбинировать покупные решения со своими доработками. Но в дизайн лучше и здесь все еще не залезать. Больше упора на SEO-ready и наличие маркетинговых инструментов. Опять же, SEO-ready - это о наличии функционала для продвижение, а не выполнение работы по продвижению вместо контент-менеджера или разработка стратегии вместо SEO-специалиста! Для подбора ключей или регистрации в каталогах - пусть нанимают отдельного SEO-специалиста. Есть многие веб-студии, которые продают в пакетах прямо кол-во частов кастомизации, а не суть задачи. До такого наверное доходить не стоит, но не следует все таки брать на себя больше, чем сможешь увезти. Тут также можно постараться обеспечить человеку все в одном: клиента заказал у тебя сайт + может заказать логотип. Конечно, рисовать логотип разработчику - дело непротительное. Но можно подружиться с дизайнером, который будет рисовать. Соответственно, дизайнер берет сумму x, а ты берешь за посредничество x+30%. Если же отмазываешься от этого просто формулировкой "дам контакты дизайнера, и Вы с ним все решите", тогда можно и не просить отката. Но, если каждое движение будет проходить через тебя, то ты должен вознаградить себя как менеджера этого проекта, который передает послания по испорченному телефону...

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

 

Отвекающие факторы в обучении

Все твердят, что надо использовать php 7 и его нововведения

Если вам так неймется его изучить, то не надо читать статьи на хабре и слушать какие-то рассуждения о плюсах, минусах, религии и философии. Поймите, что просто читать без реального щупания кода - это т*ах мозга и ничего кроме.

Просто повозитесь с фреймворком Slim (https://slimframework.ru/), читайте документацию (даже если на русском); пощупайте его, создав какое-то небольшое приложение. Не беспокойтесь о том, почему вам надо делать так, если все можно сделать намного проще. Просто делайте. Так сейчас принято. И вам так нужно только лишь для того, чтобы быть принятым на работу.

"Казаться глупым мудрому не страшно" - Эсхил.

Даже не пытайтесь судить о своем уровне профессионализма и не считайте себя глупым, лишь потому, что вы реально не понимаете, зачем писать пути к файлам через use, если то же самое можно сделать через include. И почему они называют это "автозагрузкой", если пути к файлам все равно надо писать? Просто они джависты, у них нет include.

Они воврались в php и написали десятки фреймворков. И если вы не хотите писать что-то с нуля, теряя месяцы своего времени, просто смиритесь с тем, что надо писать так. Это ничем не лучше. Вы не станете просветленным от того, что начнете так делать. Просто авторы фреймворков так привыкли, и еще они написали кучу кода, который работает.

Ваша задача - просто использовать работаюее решение, чтобы сэкономить свое время. Если вы хотите устроиться на работу в компанию, используйте "современный код". То есть, такой код, который знаком всем сотрудникам этой компании. Делайте это лишь для того, чтобы не быть белой вороной.

Мода в программировании

- Предрекали смерть языка C, но 30 лет спустя, он все еще занимает значительную долю
- Критика в адрес php - VS критика div'вита (дивной верстки). Критиковать начинают только тогда, когда придумывают что-то новое. Потом, в этом новом находят кучу багов и критикуют уже и его. А 100% true-инструментов вообще не существует в природе.
- PSR, фреймворки, composer, типизация в php7 - а какой от этого толк на сайте, где работаете вы один, который если и будут поддерживать, то низкооплачиваемые фрилансеры, которые не умеют работать со всеми этими инструментами? Или вы хотите до конца жизни заниматься этим сайтом?
- Все ругают WP, но он до сих пор лидирует. И решает конкретные проблемы
- "Если Вы все такие умные, почему богатый я?" - это просто цитата к размышлению.
- Вопрос: Почему не получается изучить модную штуку (Laravel, Angular или что-то еще)? Может быть потому, что нет реальной нужды и мозг защищает тебя от лишней информации?? 🙂
- В программировании нет единственного верного способа сделать что-либо. Мода приходит и уходит. А за поддержку "устаревших" технологий иногда еще и платят больше 🙂

Насчет демпинга (занижение цены на свою работу)

Хотя ты и новичок, ты все же умеешь делать что-то конкретное. И это не должно стоить дешевле, чем у продвинутого.

Если ты что-то еще не делал, ты можешь так и сказать заказчику. И если он готов к задержке по срокам, то ты можешь поучиться на его проекте. Но это не значит, что должен работать за хлеб или опыт. Нельзя ставить ценник ниже, чем 70% от базовой цены на рынке!

Соответственно, ты должен знать, какие зарплаты получают твои конкуренты на рынке. На всякий случай, акцентирую внимание, что твоими конкурентами являются лишь те, кто работают с такими же набором инструментов, а не все программисты. Если ты работаешь с OpenCart, то не надо смотреть на зарплаты в корпорациях, где работают с Symfony! Сравнивай свой доход с теми вакансиями, которые выдаются по ключевому слову "OpenCart".

Насчет умников

- К любой статье на хабре есть куча комментариев с критикой. Не дай бог читать комментарии. Лучше пробуйте описанную технологию, чем убивать время на священные войны
- Программирование - это искусство. Если бы оно было точной наукой - был бы 1-2 языка, 1 CMS-ка, которая решала бы все проблемы. А так есть разница в философских взглядах, и техника может их обеспечить. Да, бывает импрессионизм и кубизм, но это еще не означает, что каждый должен восхищаться этой мазней.

 

P.S.

Если вы планируете устроиться на работу в крутую компанию, знайте, что там нужно делать совершенно другую работу, чем сайты (речь не о веб-студиях). И тогда вам придется полностью переучиваться. А переучиваться всегда сложнее, чем изначально учиться так, как это нужно для компании. Поэтому, если у вас есть запас денег на поесть на полгода вперед, то вы можете найти компанию, которая ищет, обучает и стажирует программистов. То есть, идти по пути беззаботного студента, которому не надо думать в первую очередь о деньгах.

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

Если вы все-таки выберите путь фрилансера, имейте ввиду, что когда вы нащупаеете способ заработка, есть риск, что застрянете в этом. Вряд ли вы дойдете до уровня программиста, которого нанимают крутые компании, работая с какой-то CMS-кой. А доход фрилансера, естественно, ниже, чем в компаниях. Вы должны об этом знать и учитывать при построении плана своего обучения.

Знайте также, что имея опыт работы на один манер, всегда сложно принять другую веру. Это происходит со всеми и не только в IT. Даже при изучении английского языка, некоторые их правила вызывают психологическое неприятие, если думать, "почему так". И тут, как говорят преподаватели, работать с детьми всегда проще, потому что они не думают, а просто верят. Так вот, когда вы наладите свой заработок и захотите учиться тому, что нужно для работы в компании, вам не нужно думать, почему так, а просто поверить, что так нужно. Так нужно в компании. И без этого вы не устроитесь. А правильно это или не правильно - это не ваша зона ответствености. Пусть это решает их архитектор. Вы, как человек с совершенно другим образованием и с небольшим опытом работы в IT ведь не претендуете на роль архитектора?!

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

Об авторе Serge Tkach

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *