Alex Craft
Alex Craft личный блог
22 сентября 2021, 16:50

Как просто изучить программирование

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

Как просто изучить программирование

2) Дальше, выполнить 1-4 интересных визуальных задачи. Визуальных ключевой момент поскольку у людей визуальная система ведущая и если ее задействовать то все будет получаться легче, проще и лучше. 

Например скачать текст Войны Миров, сделать гистограмму частоты слов, и нарисовать ее в красивом виде как на картинке ниже (в зависимости от уровня может уйти от неск дней до неск недель). В процессе выполнения вы обнаружите пробелы в своих знаниях и заполните их. После того как вы это сделаете вы будете знать 70% того что требуется знать в типовых задачах программирования.

Как просто изучить программирование

После этого можно перейти к реальным задачам, или если будет желание выполнить еще несколько интересных визуальных задачек. Например 1) сгенерировать и отрисовать картинку с лабиринтами. Или 2) постройте пару гистограм/графиков на SVG. Главное чтобы был визуальный контроль того что вы делаете и визуальное понимание конечной цели. 

Можете также освоить минимум HTML & CSS даже если они вам напрямую не нужны, они очень простые и это хороший способ представить результаты визуально.

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

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

jgthms.com/javascript-in-14-minutes/

jgthms.com/web-design-in-4-minutes/

Языки:

— Java / C# — старые, но по прежнему занимают позиции N1 по распространению, числу вакансий и по баблу, банки, бизнес софт и т.п. Если цель устроится на работу, то они то что надо.
— Python / JavaScript — одни из самых легких в изучении, вакансий тоже море, по деньгам наверно поменьше чем на Java / C#
- С / C++ — специальные инструменты, изучать их можно только если точно знаешь зачем они тебе нужны.
— Ruby / Swift / Kotlin / Go  и т.п. специальные инструменты, изучать можно только если знаешь зачем они тебе.
27 Комментариев
  • Ив Ив
    22 сентября 2021, 17:04
    Звучит примерно как «для того, чтобы устроиться шофером автобуса, прочитайте ПДД и выучите, что педаль газа правее, а тормоза левее»
    Вот только для устройства на реальную работу кроме операторов if/for/while нужно знать системные объекты и библиотеки, ООП, шаблоны проектирования, кучу фреймворков, SQL, базовые протоколы вроде HTTP, про О-нотацию спросят. А там вылезет блокирующая и неблокирующая многопоточности, лямбды, необходимость уметь в Git и собирать проект с помощью какого-нибудь инструмента…
    • Lilu
      22 сентября 2021, 17:09
      Ив Ив, А вы опытный программист) сами то как учились?
      • Ив Ив
        22 сентября 2021, 17:47
        Lilu, я учился просто — кружок информатики во Дворце Пионеров с новейшим чудом советской техники БК-0010, затем красный диплом инженера-программиста военного вуза, немножко послужил научным сотрудником в НИИ Минобороны, но кормили там плохо, поэтому ушел в «свободное плавание» на гражданку )
      • Ив Ив
        22 сентября 2021, 17:43
        Alex Craft, я вообще-то как раз работаю в крупной IT-компании, в том числе периодически беру стажеров в свой отдел программной разработки (Java, Kotlin). Так вот без знания основ ООП, модификаторов видимости, Collections, особенностей работы со строками и массивами, понимания equals/hashCode, обработки исключений и прочая, ни мне, ни коллегам из смежных департаментов, джуниоры не нужны.
          • Ив Ив
            22 сентября 2021, 17:55
            Alex Craft,… чтобы вылететь на испытательном сроке? ) Ну, тоже вариант.
          • Nothing Personal
            22 сентября 2021, 18:07
            Alex Craft, + он просто судит по своим требованиям и не задумывается, что в большинстве других компаний по-другому.
    • Skifan
      22 сентября 2021, 17:31
      Ив Ив, на синьора да ) 
  • Коля Маргин
    22 сентября 2021, 17:13
    какбэ то, что подошло Вам может не подойти остальным 99% желающим изучить программирование… Или это не Ваша метода?
  • cdb\2.0
    22 сентября 2021, 17:33


      • cdb\2.0
        22 сентября 2021, 19:05
        Alex Craft, я пропустил весь путь. Есть много закоулков, которые проходят в вузах и не проходят самоучки. Например производительность алгоритмов или паттерны программирования. Непонимание специализации определенных инструментов и конструкций приводит к витиеватым реализациям и просто плохому коду. И по этому болоту можно долго и упорно ходить… и думать что ты вот уже стал программист. Ну да, программисты и хреновыми бывают, дело такое. Смартлаб жеж мы как-то пилим 
  • Михаил
    22 сентября 2021, 17:38
    Очень странные рекомендации. 
  • Union_Jack
    22 сентября 2021, 18:52
    Хороший программист — это в первую очередь хороший инженер. Что включает в себя абстрактное мышление, умение понимать и составлять алгоритмы да и вообще просто хороший кругозор в смежных областях.

    А зазубрить базовые конструкции языка и научиься решать тестовые задачки из учебника — это еще совсем не программирование...
    • Ив Ив
      22 сентября 2021, 19:41
      Union_Jack, в точку! Любое техническое/физматобразование для IT бесконечно полезнее всех инфоцыганских курсов «Учим программировать за месяц, трудоустройство гарантировано» вместе взятых.
      • Union_Jack
        22 сентября 2021, 20:40
        Ив Ив, именно. Еще чем полезно высшее техническое — там в начале идет математика. Она не столько нужна в программировании (хотя без сомнения некоторые ее разделы необходимы), но еще и усиливает логику и мышление.

        А курсы — это так, развод на бабки. Если у человека есть склонность к программированию, то он и без всяких курсов его освоит. Купил книжку по изучаемому языку, скачал софт — и вперед, к вершинам 


      • Union_Jack
        23 сентября 2021, 10:17
        Alex Craft, это называется говнокодер. 
        И дальше простого рядового исполнителя он не вырастет 
  • DyxVetra
    22 сентября 2021, 19:45
    1. Как показали несколько лет преподавания, если у человека есть интерес к программированию, ему не нужно рассказывать, что в каком порядке и по каким книгам изучать. Сам разберется и все освоит. Потыкается по книгам, статьям, курсам и разберется. А если человеку не интересно, то ничто не поможет. Программирование — это ведь не про заучивание алгоритмов и функций, а про умение их использовать.
    2. Для обзорной статьи для новичков вы бы лучше больше внимания уделили выбору подходящего языка. Абзац в конце и предложения попутно выучить HTML с CSS — это, простите, не серьезно. Человек же будет впервые учиться программированию, без опыта. Может ему хочется сайт сделать или игру для своего iPhone. Или, раз уж мы на смартлабе, бота для торгового терминала.
      • DyxVetra
        23 сентября 2021, 01:01
        Alex Craft, конечно, полностью согласен про сложность. Проблема в том, что человек может начать учить один язык, а потом в какой-то момент понять, что он не подходит для интересных ему проектов. Это как учить в школе Паскаль или Бейсик в 2021-м году, а потом узнать реальное положение дел :) Согласитесь, подобные новости не прибавляют мотивации в изучении нового языка с нуля.
  • Дмитрий
    22 сентября 2021, 21:09
    Вот опять этот автор всех в ИТ завлекает. Я нужду не пойму. Это делается писанина ради писанины, чтобы набрать себе постов и рейтинга, или зачем?  
  • Игорь Шумилов
    22 сентября 2021, 22:43
    Это описание «как научиться писать код», а не «как изучить программирование». А это две большие разницы.
  • Среднеброд
    22 сентября 2021, 22:51
    Как просто изучить программирование

    Просто — никак. За несколько недель это будет полный отстой. Несколько лет очень плотных занятий включающих чтение огромной кучи книг и документации, а также практики, желательно в реальных проектах. Если хочется в архитектуре разбираться то еще лет 10-15. Ну и не надо забывать, что у каждого направления (Web, облачные технологии, «кровавый энтерпрайз», высоконагруженные системы, обработка данных, графика,  игры, мобильные системы, нейросети, встроенные и киберфизические системы и еще куча всего) есть своя специфика, на освоение которой тоже нужны годы.
  • Brent Goldman
    22 сентября 2021, 23:00
    Напомнило руководство как изучить c++ за 21 день

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн