Программирование стало очень модным явлением. Даже родители стали задумываться, что ребенку нужно привить навыки технического мышления, иначе грозит ему вырасти официантом. Пойдет по наклонной вниз и будет призывать к свободной кассе в Макдоналдсе. Филолог, что с него взять.
Мы смотрим новости про программистов, которые сначала создали биткоин, затем создали биржу для торговли биткоинами, а затем заработали миллиарды долларов. Каждый день в мире бесстрашные хакеры-криптоанархисты атакуют транснациональные корпорации зла. И уже невозможно разобрать, где заканчивается реальность, а где начинается вымысел сериала «Мистер Робот».
Да, фильмы, сериалы и даже книги формируют романтический образ программиста, как нового революционера. Собственные деньги, собственная, никому не подконтрольная юрисдикция, собственная культура и массовое высмеивание всего гуманитарного – все эти факторы оказывают воздействие на обычных людей.
Президент Путин подписывает указ о развитии того, что сейчас называют цифровой экономикой. Герман Греф соглашается зарегестрироваться на Голосе. Из каждой подворотни вам предлагают курсы программирования. Вы не хотите кодить? Но подождите, код – это новая грамотность, код необходим всему трудоспособному населению!
Программисты много зарабатывают? Это так.
Программисты стали хорошо выглядеть, сменили очки на линзы, сняли свитера и пошли в качалку (потому что качалка – лучший вид отдыха для интроверта). Это действительно так.
Но программирование – это не билет на пароход, который отправляется в рай.
Сегодня многие мечтают создать свой стартап или, как минимум, взять хорошую идею западного стартапа (провести хадрфорк, хе-хе) и воплотить на родине. Вы знаете все эти истории. Вы знаете историю Виталика Бутерина – двадцатитрехлетнего создателя эфира. Вы могли слышать про школьника, который на днях нашел уязвимость во ВКонтакте и ICQ и получил вознаграждение в три тысячи долларов. Все эти примеры успеха вдохновляют общество.
Но прежде чем эйфория окончательно снесет вам голову — задумайтесь.
Никто не гарантирует вам работу, но все готовы продать вам образовательный курс любой сложности за любые деньги.
Навыки программирования важны и без программистов наш мир откатится в 19-й век, но у этой медали есть обратная сторона, на который выгравированы пирамиды, рабы и хлыст. Разработка – это тяжелый труд, которым могут заниматься далеко не все. Тоже самое можно сказать о профессии шахтера. Трудно сменить образ смузи, макбука и молодого парня, быстро печатающего на клавиатуре, на вид шахтера покрытого грязью и пылью рудника, но между ними нет фундаментальной разницы.
Научиться программировать не сложно. Гораздо сложнее стать профессионалом, который разбирается в том, что делает.
Один лишь код ничего не даст. Нужно понимать алгоритмы и математику, чтобы до набора кода осознать проблему, которую вы хотите решить.
Прежде чем начать работу над программным решением какой-либо проблемы, мы должны решить, что же она собой представляет — и вообще проблема ли это.
Чем-то это похоже на спортивное программирование. Очень мало людей, которые становились чемпионами в спортивном программировании и добивались чего-то стоящего в реальной жизни. Потому что проблема, которую ставят на соревнованиях, чаще всего эфемерна. У нее нет реальной причины.
Программирование – это решение проблем. Если вы находите проблему, которую можно решить только кодом, вы занимаетесь программироваппрограммированпрпрограммированием. Эта простая истина, но ее мало кто понимает.
Как можно увидеть проблему? Хорошее отображение данных помогает выявить знания, относящиеся к пониманию работы механизма, процесса и динамики, причин и следствия.
Когда мы видим немыслимое и думаем, что это невозможно сделать, четкое и точное виденье помогает стать единым с четким и точным мышлением. На практике это высказывание выражают принципом Фейнмана-Тафта: визуальное отображение данных должно быть достаточно простым, чтобы поместиться на одной стене фургона.
Вы хотите решить сложную задачу сразу с помощью программирования? Правильный подход заключается в том, чтобы почти все время, выделенное на решение задачи, потратить на ее обдумывание – задача в первую очередь должна быть решена в голове.
Готовы ли вы к этому?
Еще один важный факт, который мало кто берет во внимание, это быстрая смена технологий.
На диаграмме кажется, что ничего не меняется, но на самом деле революции случаются постоянно. Еще вчера вы могли использовать Objective-C, а теперь вынуждены работать на Swift. Прощайте программисты, которые не учились ничему новому. Еще вчера вы могли быть богом Java, а теперь вынуждены осваивать Kotlin – хотя это последнее, что вам хотелось бы делать в этой жизни.
Программисты должны учиться постоянно чему-то учиться. Если начать отставать, вас ждет увольнение. Думаете, шахтер теряет свои навыки за несколько лет? А учитель, банкир, врач, финансист, инженер, строитель, владелец малого и среднего бизнеса? Нет, во всех этих сферах технологии не устаревают так быстро.
Когда человек сталкивается с трудностями программирования, не обладая фундаментальными математическими знаниями, он приходит в ужас.
Если вы используете программирование не для решения проблем, которые иначе не решить, а для зарабатывания денег, вас ждет глубокое разочарование.
Вас ждет огромное количество задач, бесчисленное количество собеседований, переработки, вы будете искать связи в сообществе и учителей, и испытаете жесткую конкуренцию от тех, кто моложе и умнее вас.
Если вы действительно хотите стать программистом, ничто не собьет вас с пути. Но при этом вы должны знать правду. Вы должны решать проблемы, а не кодить. Вы должны понимать, что в любой момент будете вынуждены изучить новый фреймворк или язык.
Вы должны быть не кодером, а инженером. Помните об этом.
@randall, отличная статья! Все так и есть. В программировании есть как интересные и захватывающие моменты - творчество и созидательство, так и неприятные - поиск ошибок. Иногда на второе требуется 80-90 процентов времени...
Спасибо! Да, часто хочется, чтобы всё в жизни было легко, но реальность сурова.
Все правдно. и про обучение и про решение проблем.
Я бы еще от себя добавила, что в программировании надо чтобы "глаза горели". Это и для любой другой области актуально, но в программировании особенно заметно. Потому что тут что-то делать машинально и так же как делал последние три года не получится.
Спасибо за оценку и коммент. Кстати, вот этот ваш пост https://golos.id/ru--zhiznx/@liseykina/budni-frilansera можно считать хорошим продолжением темы. Что делать, если уже стал программистом, а душа не лежит ;)
@randall Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за общую выплату получил
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Само понятие "программист" уже заменилось в общественном сознании на "кодер". Современные преподаватели в технических вузах не могут объяснить студентам, зачем изучать Ассемблер и знать теги HTML. Они сами пользуются визуальными редакторами и не видят собственный код.
Думаю, за каждым молодым Цукербергом и Бутериным стоят разные влиятельные люди. Менее публичные и более опытные. В современном обществе для такого успеха мало одного таланта.
Если бы в этом понимать...
Спасибо за статью! Очень интересно!
А может быть, вы посоветуете, чему, если не программированию, учить ребёнка (13 лет), который говорит, что хочет создавать компьютерные игры? Я в них совсем не понимаю. Предполагала отправить его на курсы программирования.
Он сам скачивал какой-то конструктор для создания игр, простенькое что-то делал (сам разбирался с программой, хотя она и на английском - хоть английский начал хотеть знать), но для развития этого явно мало.
А если программирование - то что именно? Ведь так много разных вариантов...
Учите учиться. Ребенок еще может передумать, а самые интересные профессии ещё не появились, и пока ими невозможно овладеть. Но вскоре они появятся. Десять лет назад не существовало профессии оператора беспилотника, а сейчас это интересная и популярная работа в самых разных сферах.
@randall Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@randall Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
отличная статья!
@randall, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:
Перевел вам авторское вознаграждение за псевдо-репост этой статьи в моем блоге.
Непонятно о чем статья. Честно говоря все написанное кажется бредом. "Не идите дети в Африку гулять"
Тезисно суть статьи - программирование не панацея
Ещё раз перечитал и не нашел там про панацею. Там скорее страшилка. "Все так сложно и опасно, подумайте миллион раз, прежде чем решитесь стать программистом". Ерунда. Надо пробовать, а там как масть пойдет.
Все верно, просто не нужно строить воздушные замки (и да, этого нет в тексте, это между строк)
Немного пессимистично, но так оно и есть.
Всё правильно, в дипломе так и написано: "инженер-программист")). В институте нас не привязывали к какому-то конкретному я.п., но учили решать задачи, в том числе и математические. Конечно не все из выпуска стали программистами, но базовые знания заложены были.
А программистов-самоучки действительно должны прикладывать много усилий, чтобы научиться не просто кодить, а создавать что-то новое. Но для тех кому это интересно, программирование - не такая уж сложная штука. Главное чтобы не иссякло желание разбирать ошибки и узнавать новое!
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
ukrainian, archibald116, dimarss, vasyl73, shuler, brovaryleaks, vadbars, yurgent71, vasilisapor2, renat242, semasping, lira, tnam0rken, karusel1, asuleymanov, galerina, acidgarry, borisss, anomalywolf, amelina.elena, mixtura, now, sergiusduke, igrinov, mariya-ivanova, tati, liseykina, foxycat
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
Все абсолютно правильно, четко и понятно сформулировано.
Вот этому вообще ни на каких курсах модных не учат, по крайней мере я пока не встречал таких :)