Прежде чем начать, я начал рассылку новостей! Я читаю Medium пару часов в неделю, и мне очень понравился мой опыт использования платформы. Итак, я хотел поделиться своими любимыми статьями о Medium. Каждую неделю я планирую рассылать мои любимые статьи о технологиях в Medium, обновления моих личных проектов, интересные мероприятия по программированию, которые я посетил, и свои публикации в Medium. Обязательно подпишитесь на Tech Talk With Us! Ваша поддержка очень ценится! Обязательно поделитесь с друзьями!

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

Моя история началась почти два года назад, в октябре 2015 года. Мне было пятнадцать, когда я проходил собеседование на должность программиста в команде программистов в моей школьной команде робототехники (действительно хорошо известной во всем мире - мы добились успеха). мировые соревнования по FRC каждый год). Им нужен был Java-программист, и я подумал, что мне подойдет.

Тем не менее, я все еще был зеленым в области программирования более высокого уровня. Я ходил в курс AP по информатике, но большая часть того, что делала команда программистов, было выше моего понимания. Я нервничал, и я позволил себе это достать.

Излишне говорить, что все пошло не так.

Я был застенчив, так нервничал, что меня трясло. Я не мог ясно мыслить и с трудом мог прямо говорить. Оглядываясь назад, я могу сказать, что я никогда раньше не был на официальном собеседовании.

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

У меня не было опыта в области веб-разработки.

Мой первый опыт

До первой официальной встречи команды оставалось меньше месяца. Это означало, что у меня было меньше месяца на изучение HTML и CSS. Я пообещал себе, что узнаю все, что мне нужно знать об этих двух областях, за две недели, которые у меня были.

Это была ошибка.

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

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

Шесть месяцев спустя я ничуть не лучше разбирался в веб-разработке. Мне все еще казалось, что я болтаюсь, надеясь немного поправиться в том, что делаю.

Веб-команда против команды программирования

В конце учебного года (через семь месяцев после того, как я присоединился к нам), у меня был выбор: остаться с веб-командой или подать заявку в команду программистов. Это была дилемма. Я был гораздо увереннее как в своем Java, так и в своих навыках прохождения собеседований (у нас был блок по собеседованиям в классе английского языка), и я был уверен, что мои шансы будут выше, чем в предыдущий раз. Это казалось очевидным выбором, правда?

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

Делая шаг назад

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

Первым делом я составил расписание. Сайт для команды робототехники использовал только три языка: HTML, CSS и JavaScript. Я решил, что выучу HTML и CSS в первый месяц, так как я уже был в некоторой степени знаком с кодом, и я буду изучать JavaScript во второй и последний месяц летних каникул.

Короче говоря, я не добивался поставленных целей.

Я превзошел их.

Обычно, когда я составляю такой график, я обычно терплю неудачу, поэтому я ставил себе то, что считал реалистичными. Я закончил JavaScript, HTML и CSS за первые три недели (у меня был опыт работы на этих языках раньше, поэтому я смог закончить их быстрее). Удобство пустого лета позволило мне час за часом посвящать изучению и практике моих навыков веб-разработки. У меня также были некоторые предварительные знания в области Java, поэтому JavaScript пришел мне довольно легко. Бесчисленные часы, которые я тратил на обучение каждый день, позволили усвоенным знаниям впитаться.

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

Что я выучил

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

1. Найдите время, чтобы научиться

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

2. Учитесь с целью

Конечная цель - жизненно важный компонент на пути к изучению веб-разработки. Допустим, у вас есть цель создать веб-приложение. Достижение этой цели - первый шаг в начале вашего пути. Затем вы можете указать себе путь: сначала изучите HTML, CSS, а затем изучите стек LAMP: ОС Linux, Apache, MySQL и PHP. Эта методология намного лучше, чем, скажем, изучение случайных языков и отсутствие средств для их объединения. Это займет меньше времени, и к концу вы увидите, как все сочетается друг с другом.

3. Будьте приспосабливаемыми

По моему опыту, способность адаптироваться только помогает в мире веб-разработки. Если у вас есть опыт работы в мире JavaScript, то вы, возможно, слышали о дебатах по поводу того, какой фреймворк / библиотека лучше для разработки веб-приложений: React или Angular, разработанные Facebook и Google соответственно. Хотя вы, например, можете предпочесть React, компанию, которая может сотрудничать с вами, вы можете попросить вас поработать над сборкой веб-приложения с использованием Angular. Следующая компания может попросить вас поработать над приложением, созданным на Vue. Эта концепция не является эксклюзивной для мира JavaScript или даже мира веб-разработки: возможность переключаться между технологиями и быстро изучать их является ключевой частью работы в индустрии разработки программного обеспечения.

Что сейчас делаю?

На момент написания этой статьи у меня 1,5 года опыта в веб-разработке. В настоящее время я работаю над несколькими проектами, личными или для других людей или организаций.

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

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

  • Студия разработки игр, которую я основал
  • Личный сайт
  • Приложение друга

Изучение разработки веб-сайтов также побудило меня заняться разработкой приложений. Мне не нравился способ создания приложений в Android, и у меня не было Mac для создания приложений для iOS. Мой предыдущий опыт разработки приложений тоже был не таким удачным. Разработка Android была медленной, утомительной и беспорядочной (в то время у меня был компьютер с 4 ГБ оперативной памяти, и попытки поддерживать среду Android Studio с таким низким объемом оперативной памяти были болезненными). Хотя мне понравилась документация Ionic, производительность приложений, созданных с использованием Ionic, просто не была такой же, как у нативных приложений. Однако после изучения React я нашел React Native и влюбился в него. Без моего опыта работы с React я, возможно, никогда бы не подумал о создании собственного приложения.

Ресурсы

За исключением курса Удеми, все в этом списке бесплатно.

Основы

  • Code Academy - Code Academy - один из лучших ресурсов в сети для обучения программированию в целом. Курсы на их веб-сайтах не являются исключением. Их онлайн-редактор кода делает курс интерактивным и увлекательным. Их курсы проходят через все: Ruby (с Rails), PHP, SQL, HTML, CSS, JavaScript и т. Д. Я не могу поддерживать этот сайт в достаточной степени для новичков. Хотя он учит вас только самым основам каждой темы, это отличное место для начала.
  • Полный курс веб-разработки - это был единственный курс, за который я когда-либо платил (все остальное было бесплатным). Я купил его за 15 долларов, и это были лучшие 15 долларов, которые я когда-либо тратил. Учитель знакомится с HTML, CSS, Bootstrap, jQuery, SQL, PHP, JavaScript и WordPress. У него более 15 проектов, на которых можно учиться, и более 80 часов контента. Даже сегодня добавляется больше контента. Именно так я переучил себя веб-разработке, и я рекомендую всем, кто хочет научиться веб-разработке, пройти этот курс.

Реагировать

  • React Training - этот курс преподается опытным разработчиком Google и парнями, стоящими за React Router (используется для маршрутизации в приложениях React - если вы уже программировали React, вы понимаете, о чем я). Чтобы попасть в React Development, я бы выбрал курс Основы React. У учителя отличный стиль преподавания, и он знает тему как свои пять пальцев. Однако он использует синтаксис ES5, поэтому я использовал это руководство для преобразования всего кода, который я использовал, в ES6.
  • Full Stack Redux Tutorial - я лично не использовал это руководство, но я много о нем слышал. Этот курс охватывает расширенное использование Redux и React и проведет вас через создание всего приложения.
  • Learn Redux - отличный курс как по Redux, так и по React. Создатель проведет вас через создание полной копии Instagram. Я очень рекомендую этот курс всем, кто изучает React.

Конечные мысли

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