Я разработчик. Это означает, что у меня очень хорошая зарплата, гибкий график, работа из дома и в целом очень комфортная и простая жизнь. Поэтому родители моего кузена попросили меня обучить его программированию. Я стал прикидывать — а с чего люди вообще сейчас делают первые шаги в индустрии? Почитал об этом, поговорил с коллегами, и везде был один ответ — язык Javascript.
У меня хороший опыт работы с js, и вот что я из него вынес — с этого языка нельзя начинать изучать программирование. Во-первых, он максимально не похож на большинство других языков, он по-другому работает. Во-вторых, простота в изучении — опасная иллюзия. 10 лет назад это действительно был простейший язык. Сегодня, это гигантское нагромождение сложных конструкций, которое не в силах хорошо запомнить и понять даже самые опытные разрабы. Хуже того, большинство из этих конструкций — результаты ошибок в проектировании языка. Грубо говоря, это не те знания, которые помогут тебе стать хорошим программистом. Джаваскрипт нужно изучать, когда ты уже знаешь несколько нормальных языков, чтобы ты точно мог понять, какие подходы из него можно почерпнуть, а какие следует использовать, только когда нет другого выхода.
Самое худшее — Javascript язык с динамической типизацией. В противовес ей существует статическая система типов, задача которой — проверять программиста на ошибки, и подсказывать ему, как писать код. Без такой страховки динамическая типизация способна буквально похоронить код неопытного разработчика.
Я в индустрии больше семи лет, и до сих пор боюсь полагаться только на себя, использую статическую типизацию везде, где возможно, и при этом, как и все мои коллеги, допускаю сотни ошибок. Взваливать такую ответственность на новичка — идиотизм. Он не только напишет страшный говнокод, но ещё и не сможет понять, в чем проблема.
Можно использовать Typescript — статически типизированную версию js, но я бы не рекомендовал. Типизация — не единственная проблема.
Я бы рекомендовал начать изучать программирования с языков вроде Сишарпа, Kotlin или Java. Все они довольно сложны, но устроены так, что простые вещи на них можно писать, зная всего 10% возможностей. Кроме того, у них очень мощные инструменты для разработки, которые делают кучу работы за тебя, и большое сообщество, которое ответит на вопросы новичков.
Весомый плюс этих взрослых языков — они не так быстро меняются, как js. Не придется спешно доучивать что-то перед собесом, потому что пока ты на него шёл, для языка написали пять новых фреймворков.
А самое главное — почти все новички ломятся в динамическое говно вроде джаваскрипта или питона. Это создаёт дефицит джуниоров в других языках, и тебе придётся столкнуться с гораздо меньшей конкуренцией.
Я стал обучать своего брата сишарпу — языку, который давно и прочно занял свое место в индустрии, и уверен, что могу не беспокоиться за его будущее.
Смотрите мой подкаст про разработку
Не начинайте изучать программирование с Javascript
25 мая 202025 мая 2020
569
2 мин
8