Ответ на пост «Изучение языка программирования»1

Чтобы выбрать первый язык программирования нужно всего лишь…


Я сам не ожидал такого выплеска графоманства, так что в самом низу будет краткое резюме.

Дисклеймер - я еще не практикующий программист, пока учусь не спеша совмещая с основной работой. Надеюсь, мой опыт поможет сократить время барахтанья в лягушатнике.


0. Осознать истинную цель, заглянуть дальше своего носа.

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


1. Обучение, что это?

Процесс обучения в любом деле одинаков, начинаешь с чего-то простого и идешь по восходящей к сложному. И чем проще и дружелюбнее инструменты с которыми ты начинаешь - тем больше шансов что удастся сохранить темп и не бросить дело на полпути. Сделаем отступление про физиологию. Мозг наш так устроен что учиться не любит. Потреблять информацию любит, даже очень, а учиться очень не любит. Поэтому мы любим смотреть сериальчики, залипать в ютубе и прочие визуальные радости. Почему не книжка? Потому что книжка заставляет думать. Если что - есть термин цифровой псевдодебилизм. Мало кто видит, но катастрофа уже наступила. Тут я оставлю первое предупреждение - видеоуроки хороши, но имеют и обратную сторону медали, не пренебрегайте текстовой информацией. Если вдруг кто не знает - программирование (естественно если речь о хорошем программисте) это постоянное обучение, эта область развивается так стремительно что держаться на гребне волны очень сложно. Это можно сказать о многих профессиях, но IT это явление очень гипертрофированно. Вот сколько буков написал а о языке и не заикнулся… Я лишь хочу обосновать свое видение проблемы и почему пришел к этим выводам.


2. Так с чего начать?

Итак, программирование это про учебу. Для самых азов, чтобы понять как вообще эти буковки превращаются в программы может быть подойдет какой-нибудь академический язык типа паскаля. Не знаю, учил его еще в универе и не скажу что от этого был толк. Я бы предложил что-нибудь повеселее, например Python. Причем не просто сферический питон в вакууме а с конкретной книжки - Майкл Доусон “Программируем на python”. Поясню свой выбор, ведь книг для начинающих просто море. Не исключаю что это не самая лучшая, но точно очень хорошая. Когда мы говорим об обучении то редко обращаем внимание на практику, а именно практика является вторым необходимым элементом. Можно сколько угодно долбиться головой о теорию, без практики да хоть на зубок выучи - толку не будет. Чем мне понравилась книга - она сразу бросает новичка в практику и заставляет писать простейшие программы. Без практики теория мертва, это точно. Питон много прощает и писать на нем приятно (что обусловлено его происхождением). На этом этапе я рекомендую изучить простейшие понятия, например типы данных, переменные, простая арифметика и циклы. В общем добивать книги до победного конца необязательно. Почему? Потому что дальше можно взяться за другой язык. На этом начальном этапе поймешь что такое программирование в приблизительном виде и вообще готов ли ты решать постоянные головоломки, что-то доучивать, разбираться в нюансах и постоянно помнить о принципе запятой “казнить нельзя помиловать”. Переходим на следующий уровень.


3. Так что же выбрать в фундамент?

Учиться лучше сразу хорошему. Если научишься делать плохо, потом будет тяжело переучиваться, кривой фундамент это всегда плохо. Поэтому основным первым языком должен стать строго типизированный, например Java. И не надо путать с JavaScript, который создавался на коленке и лишь бы работало, но тут сработало как в поговорке - нет ничего постоянней временного. Он оказался весьма удачным и быстро выгрыз себе нишу. Почему он плохой для начала? Опять причина в его происхождении. Итак, Java очень больно бьет по рукам метровой линейкой приучая думать правильно и вникать в процессы происходящие в программе. Второй книгой рекомендую из серии Head First - “Изучаем Java” авторов Сьерра Кэти, Бэйтс Берт. Многие сразу бросят в меня грязью за эту книгу, но это их проблемы - игнорируем их желание заставить нас страдать так, как страдали они грызя скучные справочники. Если человек задает вопрос “какой ЯП мне выбрать?” то он однозначно не справится со сложными и скучными справочниками, так как просто еще не умеет собирать и анализировать информацию. В общем, эта книга просто шикарна в своих объяснениях на яблоках, снимаю шляпу. Я между тем не новичек в IT,  успешно работал админом долгое время и как бы с головой. Но даже для меня эта книга была очень полезна, она с легкостью объясняет сложные концепции. Это просто сэкономит вам кучу времени и сил. Еще раз - книга потрясающая находка для новичка. В принципе вся серия Head First очень не дурна.


4. Обвязочку не забываем, без неё никуда.

И навыки программирования не ограничиваются лишь одним знанием языка, хочу еще раз заострить на этом внимание. Язык это азбука. Дальше надо впитывать алгоритмы (например “Алгоритмы. Руководство по разработке.” Стивен С. Скиена или\и “Грокаем алгоритмы” Адитья Бхаргава), от баз данных точно никуда не денетесь, например “Изучаем SQL” Бейли Линн, без знания хоть сколько нибудь распространенных фреймворков и инструментов разработчика вы никому не нужны, так что - Spring in Action, Hibernate in Action, Maven in Actinon, Pro GIT… и дальше понеслось по наклонной.

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


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


Если кратко, то:

Этап 0.

Если нет никаких навыком начинаем с питона. Майкл Доусон “Программируем на python” - в книге неплохо объяснены самые азы сразу закрепляемые на практике. Как альтернатива есть ресурсы типа CodeCombat, Code Hunt или Codewars где все это в развлекалочек, но я олд и предпочитаю книжки.


Этап 1.

Head First - “Изучаем Java” авторов Сьерра Кэти, Бэйтс Берт. Очень просто на яблоках о сложном. Даже если будете дальше учить не Java, будет очень полезно ознакомиться с концепциями программирования.


Этап 2.

А вот тут уже зависит от целей, ресурсов, способностей и т.д. Но очень здорово на этом этапе найти ментора или годные курсы (что не просто, развелось как блох на дворняге). Потому что без практики все эти занятия коту под хвост. Если голова светлая и ты упорный то можно обойтись и самому, книг и руководств просто море. Самое полезное это завести свой pet-проект. Начать делать какое-то приложение которое будет (или нет) приносить пользу, будет кому-то (или нет) интересным. Самое главное активно делиться результатами труда, иметь открытый код в гитхабе, регулярно релизить нужную (или нет) утилиту. Показывать её в тематических сообществах (начиная от формумов и заканчивая телеграмом) и искать конструктивную критику. По поводу критики - обратная связь это важнейший инструмент развития, главное уметь вычленять конструктивную критику из потоков говна. Рунет прям очень токсичный, это надо понять, принять и игнорировать, иначе можно вообще потерять любое желание если рефлексировать на высказывания больных людей. Как следствие - знание английского большой плюс и подспорье.


Прикольные дядьки в ютубе у кого можно многое почерпнуть.

Петр Арсентьев

АйТиБорода

SHIFU

S0ER


Это те кого вспомнил навскидку, они не единственные адекватные на этой площадке но для начала сойдет.


PS несколько раз пытался все структурировать… но и так сойдет ^_^ иначе просто сотру все к чертям.

1
Автор поста оценил этот комментарий

Давайте обойдемся без оскорбления пользователей, тем более, чем они на сайте запрещены

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Прекрасно. Давайте начнем с удаления первого комментария этого жалобщика, где первым же словом идёт оскорбление.

0
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Справедливости ради там действительно интересно и прлезно читать коменты, они добавляют статью, хотя иногда переворачивают с ног на голову :)

0
Автор поста оценил этот комментарий

на ты не переходил, но я и правда не мыслитель) хотя что ты можешь знать об этом по паре фраз?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Комментарий удален. Причина: оскорбления, грубое общение и провокации
показать ответы
Автор поста оценил этот комментарий

сказал человек который не программист, сможете назвать хоть одно название ембедед системы?) а в бизнесе и промышленности это где конкретно? ато, так по секрету, начиная с пакета микрософт офис начинается бизнес, а с виндовс калькулятора в инженерном режиме - промышленность

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну ты же программист. Не? Ну напиши хорошую и годную статью. Релевантную для новичка. Только без этих страданий аля "учиться водить нужно на раздроченной класике, так и прогерству учиться только по справочникам". А то прийти и повторять любой может.

показать ответы
Автор поста оценил этот комментарий

@moderator,  оскорбления

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да нет, констатация факта. Никакого оскорбления не было.

0
Автор поста оценил этот комментарий

Ну, вам, как топик-стартеру, холивары в комментах разводить - то, что доктор прописал (=

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да тут без меня даже справятся. Я же не зря говорил про токсичность Рунета.

показать ответы
Автор поста оценил этот комментарий

да из вас и коуч-прогер так себе

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да из тебя мыслитель тоже не очень.

показать ответы
0
Автор поста оценил этот комментарий

Ну, вам, как топик-стартеру, холивары в комментах разводить - то, что доктор прописал (=

раскрыть ветку (1)
Автор поста оценил этот комментарий

Из меня хореновый режиссер для драм :)

показать ответы
1
Автор поста оценил этот комментарий

Это слишком толсто)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Может быть... Но я забайтился же :)

показать ответы
0
Автор поста оценил этот комментарий
В жабе то что может работать - будет работать, а не парить мозг ексепшенами компилятора. Оптимизация это уже потом.. она есть, но на других скилах. Учить проще, входить проще, писать проще... Так что оставьте ваши компилируемые архаизмы для бородатых пацанов в свитерах. У нас для server-side есть node. Вы нам не особо-то и нужны
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
1
Автор поста оценил этот комментарий

Только про того же Шилда замечу, что это справочник

У него есть и справочники, но подавляющее большинство его книг, что я встречал - именно учебники. Особенно те, где приставки "для начинающих" намекают) Материал подается точно так же, как в Head First, тема за темой, с примерами, только без коммиксов с вымышленными персонажами и причудливой вёрстки текста.


как основная книга для обучения не подойдёт.

Это почему еще?) Точно так же тему за темой, фичу за фичей изучаете, примеры смотрите, повторяете, модифицируете и т.п.


Просто хотел Максименко упростить человеку начало.

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Честно про Яву у Шилда читал только справочник. В хедферст есть подобие программы, где они объясняют в первую очередь концепцию порой забегая вперёд. В общем я ещё раз акцентирую, что это самый простой путь. Если он слишком прост то только за справочник взяться никогда не поздно. Надо было дописать что он нужен второй книгой.

показать ответы
Автор поста оценил этот комментарий

и что можешь? небольшую бд с клиентов? сайтик? может что-то посложнее? ато те кто могут прогать редко работают кем другим, слишком хорошо это дело оплачивается

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

2
Автор поста оценил этот комментарий

Угу:

1) Учим HTML+CSS; 2) учим JS; 3) вкатываемся во фронтенд; 4) PROFIT!


А если серьёзно, то советы неплохи, разве что можно было больше про полезность английского упомянуть, не только в краткой выжимке.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да я там много чего забыл. И про html+css тоже забыл. Но прям писать статью откладывая на несколько дней не могу. Да в целом это некий пинок для придания ускорения в нужную сторону. Если сработает хоть для одного - да и круто.

Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий
Жабаскрипт вам плох? Однако он кратчайший путь, понять, почему 1 !== '1'
раскрыть ветку (1)
Автор поста оценил этот комментарий

Жаба плох тем, что многое позволяет, он не бьет по рукам и работает там, где другие просто откажутся компилиться. Это даже не мое мнение, а мнение программистов с которыми общаюсь. А в остальном для своей задачи хороший язык. Я именно не рекомендую его изучать первым. Вторым - да легко.

показать ответы
Автор поста оценил этот комментарий
Комментарий удален. Причина: оскорбления, грубое общение и провокации
раскрыть ветку (1)
Автор поста оценил этот комментарий

@moderator, оскорбления

2
Автор поста оценил этот комментарий

В общем я ещё раз акцентирую, что это самый простой путь.

Еще раз акцентирую: ютуб еще проще)


Если он слишком прост то только за справочник взяться никогда не поздно.

Как насчет учебников-то?)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну не читал его учебников, поэтому и не могу советовать. Я могу делиться лишь тем, что сам испробовал и это имеет хоть какую-то эффективность.

Автор поста оценил этот комментарий
Комментарий удален. Причина: оскорбления, грубое общение и провокации
раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну, идиот тот кто читать не умеет внимательно. Это раз.

Почему-то у меня не возникло никаких проблем после питона вкатиться в Яву. Да, я не работаю прогером по своим причинам. Но это не значит что мой опыт не релевантен. А вот так огульно обзывать идиотами может любой идиот.

показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Предлагаю отвечать за себя и свои знания и не фантазировать что я знаю а что нет.

2
Автор поста оценил этот комментарий

Хуевый рассказчик

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Ага, согласен. Но что вывалил - обратно не затолкаешь. Зачем написал - сам не знаю, прям помутнение сознания какое-то :)

2
Автор поста оценил этот комментарий
Первый язык должен быть полегче и понятней, а не эти ваши си и джавы. Например: Хаскель, Эрланг, Лисп.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Да не сказал бы что Ява слишком сложен по началу. Все умерено.

Автор поста оценил этот комментарий

По книги согласен. Просто хотел Максименко упростить человеку начало. Если он лодырь, то и комиксы не помогут. А если они для него будут простоваты, то легко отыщет и Шилда. Только про того же Шилда замечу, что это справочник и как основная книга для обучения не подойдёт. Вот как справочник она шикарна.


И про "на гребне волны" согласен, не слишком точно сформулировал. Просто знаю товарищей, которые сидели спокойно себе, кодили... а тут оп, закрылась шарашка, а они в современном рынке и не умеют ничего. Другая крайность.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Максименко - максимально. Автокорректор своевольничает, а я снова невнимательно читал.

1
Автор поста оценил этот комментарий

Если человек задает вопрос “какой ЯП мне выбрать?” то он однозначно не справится со сложными и скучными справочниками

Между скучными справочниками и веселыми коммиксами aka Head First есть еще порядочное количество годной литературы с умеренным водным балансом. Тот же Шилдт, к примеру, пишет на удивление легкие книжки по куче технологий.


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

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

По книги согласен. Просто хотел Максименко упростить человеку начало. Если он лодырь, то и комиксы не помогут. А если они для него будут простоваты, то легко отыщет и Шилда. Только про того же Шилда замечу, что это справочник и как основная книга для обучения не подойдёт. Вот как справочник она шикарна.


И про "на гребне волны" согласен, не слишком точно сформулировал. Просто знаю товарищей, которые сидели спокойно себе, кодили... а тут оп, закрылась шарашка, а они в современном рынке и не умеют ничего. Другая крайность.

показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

К неврологу сходите, он вам таблеточные выпишет. А то симптом "в интернете кто-то не прав" очень тревожный.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества