Как стать автором
Обновить

Комментарии 16

А почему на заглавной картинке PHP и JS?
Имхо, всё это есть на HyperSkill.org и бесплатно (до января 2021го): выбираете проект, система отправляет Вас там же учить нужные темы для выполнения проекта (как теория, так и практика, а последней там ого-го сколько), учите темы, делаете проект, выбираете следующий.
Это предпочтительный язык для IoT(интернет вещей)

Неожиданно
Вообще говоря, IoT это не про то, что внутри «вещи». Ну или не только про то. А для сервисов, которые обрабатывают данные от вещей — вполне себе. И давно. Словом «предпочтительный» я бы это не назвал, а подходящий — вполне.

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

А можно просто начать на https://hyperskill.org/ Не реклама, сам там сейчас прохожу, по балансу информация\задания очень близко к идеалу.
Я вот смотрю на тег «начало пути» и думаю, что лучше новичкам начинать освоение с какого-нибудь скриптового языка. Они намного проще. И это позволит новичкам больше внимания уделять логике приложения, меньше отвлекаясь на сам язык.
В джава есть масса сложных для восприятия вещей: например, конкурентность (и связанные с ней проблемы доступа к общей памяти) и коллекции. Имхо, изучить джава полезно, но не на первых шагах.
ООП для первых шагов тоже избыточен, с процедурного стиля программирования гораздо проще начинать освоение.
А зачем вам изучать конкурентность, если вы новичок? Вас разве заставляют ей пользоваться? Обычно нет.

>Я вот смотрю на тег «начало пути» и думаю, что лучше новичкам начинать освоение с какого-нибудь скриптового языка.
Но вообще да. Взять котлин, или груви… и будет все тоже самое — только удобнее и проще. Для JVM таких языков полно, если на то пошло.
В моем случае, она шла в составе курса — а поначалу сложно понять, что пригодится, а что нет.
А. Ну если вы не выбираете — то да. Но я бы сказал, что из моего опыта работы (а его таки дофига) мне чуть ли не бОльшую часть времени не приходилось думать о параллелизме вообще — за меня это делал например JavaEE контейнер. То есть вы можете вполне лет 10 писать более чем серьезные проекты — и не знать вообще ничего про какие-то там примитивы синхронизации или пулы потоков…

Поэтому я бы сказал, что такой курс для новичков — он странный. Не надо такому сразу учить. Стоит рассказать один день, что там вообще есть, чисто обзорно, и все. Потому что нормальная книга типа JCIP — она же здоровая, по ней вполне можно читать курс на месяц.
От статьи небольшой диссонанс поймал. Автор, судя по заголовку и введению, хочет привести доводы в пользу выбора Java, как языка, который стоит выбрать для начала карьеры, попутно сконцентрировавшись на некоторых ошибках, которые могут допустить начинающие. В итоге доводы неубедительные, так как представленными плюсами обладают и другие языки, как и описанные проекты могут быть разработаны не только лишь на Java. Часть про ошибки, то есть почти вся статья, подходит под любой язык и, на самом деле, хороша и дает правильные советы. Мне кажется, что стоило бы сконцентрироваться не на конкретном инструменте, а на собственных желаниях человека, который хочет начать программировать и зарабатывать этим. Потому что заниматься вещами тебе неинтересными — путь к быстрому выгоранию.
НЛО прилетело и опубликовало эту надпись здесь

Спасибо
Шикарная статья

А вообще да, типичные ошибки обучения представлены, но вот не объясняется сами концепты которые нужно усвоить, а они не зависимы от языка :


  1. Концепция последовательности вычислений — операторы и операнды, приоритеты операций — те школьная алгебра
  2. Концепция потока исполнения — циклы и условия, они частично есть в школе, но чаще нет
  3. Концепция переменной величины и её тип, а так же архитектуры компьютеров + 2чая система счисления + плоская модель памяти + адресации + понимание что программа и данные — это набор байтов с разными адресами — это блин в голову впихнуть трудно с разбегу, и без правильной подготовки и хороших метафор вряд ли получится
  4. Концепты рекурсии и стековой машины тоже не обойтись, иначе гарантированы химеры в голове


    Это вот основа, хоть это и основа, но вот реально попадаются программисты у которых и в этом пробелы, потом за них приходиться доделывать код


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


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

Мне вот действительно интересно, как не имея этих знаний можно что-то создавать.

Иногда кажется идея генетического программирования живет в реальности — т.е. случайного нажимания кнопок работает в реальности, те кнопки или та комбинация строк исходного кода которая скомпилировалась — закрепляется в памяти программиста, при этом думать не обязательно.

Хотя это и ирония
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории