Решил начаь учить JS с нуля, для себя как челлендж, т.к. это практически не связано с моей карьерой. Из предыдущего опыта - C++ в университете, который я люто ненавидел. После универа, ни разу к нему не возвращался, соответственно забыл всё.
Почему JS и что меня вдохновило? Не могу дать исчерпывающий ответ. Мой знакомый, вючил его сам за год без опыта программирования, на столько увлёкся, что стал девелопером. Мне стало интересно попробовать, посмотреть что изменилось в подходе к изучению программирования за 13 лет с тотальным приходом интернета , доступностью практически всех знаний человечества и моим взрослением.
Те кто в теме, дайте пару советов на что стоит обратить внимание, чего избегать. Что бы вы сделели подругому, если начинали изучать сегодня?
От упомянутого выше знакомого получил совет пользоваться codeacademy и freecodecamp. В идеале хочу пользоваться англоязычными источниками. Если есть советы, буду благодарен.
Как человек, который успешно помогал людям изучать программирование, хочу рассказать, что есть условно два подхода к изучению программирования (на самом деле все выбирают некоторый микс). В силу индивидуальности они подходят людям с разным складом ума, поэтому имеет смысл выбрать тот, который ближе тебе.
Первый подход: от теории к практике, второй от практики к теории. Если совсем условно, то первый ты сначала читаешь всю книгу по основам языка, потом пытаешься что-то состряпать. Второй - ты сначала берешь какие-то титориалы, где показывают как что-то можно сделать конкретное и пробуешь что-то изменять, экспериментировать, при этом не всегда понимая, что происходит.
Короче если тебе нравится теория то лучше начать с литературы. Если второе, то freecodecamp вот это все, например https://www.freecodecamp.org/news/how-to-build-an-html-calculator-app-from-scratch-using-javascript-4454b8714b98/ . Далее гуглишь "xyz tutorial" на интересующие тебя темы.
Это общее. Теперь про JS. Сам JS в вакууме язык довольно простой, сильно проще си++. В основном с JS делают всякие интерактивные веб страницы (про бэкэнд пока оставим), и тут вот как раз начинается сложность, потому что надо сразу за одно учить HTML и CSS, и сейчас много используют фреймворки и библиотеки и прочие вещи, в которых тоже надо разбираться. Если в это резко окунуться то у тебя случиться перегрузка от этого потока. Поэтому мой совет - придумай для себя какую-нибудь простую практическую задачу, которую тебе было бы интересно решить и не пытайся сразу лезть в полноценный веб девелопмент.
Если ты не ставишь целью стать девелопером, то какую цель ты себе ставишь? Довольно бессмысленно учить программирование, чтобы поставить галочку и забыть благополучно. Я не имею в виду профессиональную разработку, а вообще, ты можешь какой-то проект вести в качестве хобби.
Самая хорошая практическая задача - это повторить что-то существующее, потому что понятно что это можно сделать. Ну или можно поискать примеры задач. Можешь например сделать игру 15. https://ru.wikipedia.org/wiki/%D0%98%D0%B3%D1%80%D0%B0_%D0%B2_15
Начни с принципов работы браузера
Начни с этой книги, она простая, но после нее в голове уже что-то будет. Потом уже можно посложнее книги читать
Ищи аналоги Программируй с Козулей
Читай хабр, митапы по жс смари, посещай, хороших фронтов мало, у тебя есть норм база, шарь про архитектуру по крупному, реакт будет или вьюшечка?
Зачем начинать с изучения языка? Это как учить формулу по физики и нихера не понять.
Надо же основы понимать, железяки, ассемблер (хотя бы иметь представление), а потом двигаться вверх по абстракциям.
Я имел ввиду не конкретно язык ассемблера, а набор низкоуровневых понятий: логические вентили; p-, n- транзисторы, регистры, уровни кэша и прочее дерьмо. Потом типы данных, структуры данных и тд. Дает хорошее представление, как это работает в высокоуровневых языках и становишься более эффективным программистом, и ты не просто собираешь код из готовых блоков, как гастарбайтер, а реально знаешь, что и как использовать.
P.s. Очень плохое сравнение.
Тоже так думаю. Нужно вникать в вещи, и понимать как они работают на более низких уровнях, или хотя бы иметь представление. Как сказал David Haney (один из инженеров Stack Overflow): "stringing APIs together and calling it programming doesn’t make it programming." Погуглите left-pad incident, кому интересно.