Когда стоит сказать НЕТ миру программирования


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

Мы смотрим новости про программистов, которые сначала создали биткоин, затем создали биржу для торговли биткоинами, а затем заработали миллиарды долларов. Каждый день в мире бесстрашные хакеры-криптоанархисты атакуют транснациональные корпорации зла. И уже невозможно разобрать, где заканчивается реальность, а где начинается вымысел сериала «Мистер Робот».     

Да, фильмы, сериалы и даже книги формируют романтический образ программиста, как нового революционера. Собственные деньги, собственная, никому не подконтрольная юрисдикция, собственная культура и массовое высмеивание всего гуманитарного – все эти факторы оказывают воздействие на обычных людей.     

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

Программисты много зарабатывают? Это так.    

Программисты стали хорошо выглядеть, сменили очки на линзы, сняли свитера и пошли в качалку (потому что качалка – лучший вид отдыха для интроверта). Это действительно так.

Но программирование – это не билет на пароход, который отправляется в рай.   

Сегодня многие мечтают создать свой стартап или, как минимум, взять хорошую идею западного стартапа (провести хадрфорк, хе-хе) и воплотить на родине. Вы знаете все эти истории. Вы знаете историю Виталика Бутерина – двадцатитрехлетнего создателя эфира. Вы могли слышать про школьника, который на днях нашел уязвимость во ВКонтакте и ICQ и получил вознаграждение в три тысячи долларов. Все эти примеры успеха вдохновляют общество.    

Но прежде чем эйфория окончательно снесет вам голову — задумайтесь.     

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

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

Научиться программировать не сложно. Гораздо сложнее стать профессионалом, который разбирается в том, что делает.

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

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

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

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

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

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

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

Готовы ли вы к этому?     

Еще один важный факт, который мало кто берет во внимание, это быстрая смена технологий.      

На диаграмме кажется, что ничего не меняется, но на самом деле революции случаются постоянно. Еще вчера вы могли использовать Objective-C, а теперь вынуждены работать на Swift. Прощайте программисты, которые не учились ничему новому. Еще вчера вы могли быть богом Java, а теперь вынуждены осваивать Kotlin – хотя это последнее, что вам хотелось бы делать в этой жизни. 

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

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

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

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

 Вы должны быть не кодером, а инженером. Помните об этом.   


Comments 10


@randall, отличная статья! Все так и есть. В программировании есть как интересные и захватывающие моменты - творчество и созидательство, так и неприятные - поиск ошибок. Иногда на второе требуется 80-90 процентов времени...

02.08.2017 07:29
0

Спасибо! Да, часто хочется, чтобы всё в жизни было легко, но реальность сурова.

02.08.2017 12:50
0

Само понятие "программист" уже заменилось в общественном сознании на "кодер". Современные преподаватели в технических вузах не могут объяснить студентам, зачем изучать Ассемблер и знать теги HTML. Они сами пользуются визуальными редакторами и не видят собственный код.

Думаю, за каждым молодым Цукербергом и Бутериным стоят разные влиятельные люди. Менее публичные и более опытные. В современном обществе для такого успеха мало одного таланта.

02.08.2017 07:54
0

80% нынешних миллионеров не родились миллионерами, так что я бы не недооценивала возможности успеха. Однако таланта и правда мало - работать надо.

02.08.2017 09:22
0

Все абсолютно правильно, четко и понятно сформулировано.

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

Вот этому вообще ни на каких курсах модных не учат, по крайней мере я пока не встречал таких :)

02.08.2017 09:00
0

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

02.08.2017 12:33
0

Спасибо за оценку и коммент. Кстати, вот этот ваш пост /ru--zhiznx/@liseykina/budni-frilansera можно считать хорошим продолжением темы. Что делать, если уже стал программистом, а душа не лежит ;)

02.08.2017 12:49
0

Прекрасная статья и все правда.
"Разработка – это тяжелый труд"..."Программисты должны учиться постоянно"
Начинал свой путь в IT c программирования - FoxPro, Visual FoxPro, а потом перешел в сетевые технологии.
Очень неблагодарное и тяжелое занятие. Кто-то скажет, что сидеть и программировать несложно. Бывало, что нужно было ночами сидеть и оттачивать логику программ. От этого уставал намного больше, чем от физического труда. Уже кажется. что все сделал, а тут вылазит баг, который ты пропустил, не учел и все начинается по-новой.
Спасибо

02.08.2017 13:14
0

В любом высокооплачиваемом труде такой порядок дел, равно как и в чисто механическом.
Шахтер и программист - лишние сущности ИМХО.

03.08.2017 01:22
0

Всё правильно, в дипломе так и написано: "инженер-программист")). В институте нас не привязывали к какому-то конкретному я.п., но учили решать задачи, в том числе и математические. Конечно не все из выпуска стали программистами, но базовые знания заложены были.
А программистов-самоучки действительно должны прикладывать много усилий, чтобы научиться не просто кодить, а создавать что-то новое. Но для тех кому это интересно, программирование - не такая уж сложная штука. Главное чтобы не иссякло желание разбирать ошибки и узнавать новое!

03.08.2017 04:26
0

Немного пессимистично, но так оно и есть.

03.08.2017 07:24
0

Непонятно о чем статья. Честно говоря все написанное кажется бредом. "Не идите дети в Африку гулять"

03.08.2017 14:11
0

Тезисно суть статьи - программирование не панацея

22.08.2017 10:42
0

Ещё раз перечитал и не нашел там про панацею. Там скорее страшилка. "Все так сложно и опасно, подумайте миллион раз, прежде чем решитесь стать программистом". Ерунда. Надо пробовать, а там как масть пойдет.

22.08.2017 11:08
0

Надо пробовать, а там как масть пойдет.

Все верно, просто не нужно строить воздушные замки (и да, этого нет в тексте, это между строк)

22.08.2017 11:22
0

Перевел вам авторское вознаграждение за псевдо-репост этой статьи в моем блоге.

03.08.2017 17:44
0

@randall, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:

  • Выплаты - 4 позицию - 2767,0120 GBG
04.08.2017 06:18
0

отличная статья!

04.08.2017 09:52
0

Спасибо за статью! Очень интересно!
А может быть, вы посоветуете, чему, если не программированию, учить ребёнка (13 лет), который говорит, что хочет создавать компьютерные игры? Я в них совсем не понимаю. Предполагала отправить его на курсы программирования.
Он сам скачивал какой-то конструктор для создания игр, простенькое что-то делал (сам разбирался с программой, хотя она и на английском - хоть английский начал хотеть знать), но для развития этого явно мало.
А если программирование - то что именно? Ведь так много разных вариантов...

12.08.2017 19:09
0

Учите учиться. Ребенок еще может передумать, а самые интересные профессии ещё не появились, и пока ими невозможно овладеть. Но вскоре они появятся. Десять лет назад не существовало профессии оператора беспилотника, а сейчас это интересная и популярная работа в самых разных сферах.

22.08.2017 08:48
0

Если бы в этом понимать...

12.08.2017 20:07
0