Только подумайте: какие-то придурки могут играть на гитаре.
Чем вы хуже? Подумайте об этом - я серьезно.
Сегодня вечером вы придете домой, включите телевизор и услышите:
"Как у вас родилась эта мелодия?" А какой-нибудь тип ответит: "Не знаю. Родилась и все".
Как быстро можно научиться программировать - составлять программы для компьютера? За месяц (на самом деле - за неделю или даже за день :) с нуля можно изучить базовые возможности практически любого языка программирования, благо они на 90% одинаковы и различаются только формой записи, да и то не сильно. Другое дело, что на основе таких знаний создать более-менее сложную и полезную программу вряд ли выйдет. Почему?
Потому что программирование - это не столько знание конкретного языка программирования и умение применять имеющиеся в нем стандартные наборы функций (коих могут насчитываться сотни и тысячи), сколько две следующие вещи:
а) Творческие способности (важно на 51%);
б) Хорошо развитое логическое мышление (важно на 49%).
51 и 49 - величины конечно условные. Просто творчество важно всегда - в любом деле оно на первом месте :) А вот умение, даже можно сказать, мастерство логического мышления к программированию имеет отношение непосредственное.
Хотя конечно и в других видах деятельности оно будет где-то так же примерно, на втором месте :).
Как мы видим, никакого отличия от других видов деятельности у программирования нет. Думаете, легко получить 200 килограммов меда с улья, думаете, там творчества не надо? Еще как надо! Конечно, если все равно, сколько медка пчелки принесут, тогда да. А по хорошему, в саду и на огороде неограниченный простор для творчества и применения логических способностей.
Или, думаете, легко продать компьютер, когда рядом куча конкурентов? Кто действует пассивно, без искорки, не думая, тот и продает в среднем как все соседи. А тот, кто все рассчитывает да еще интуиции доверяет, глядишь, за полгодика с рынка переехал в двухэтажный офис.
А может вы думаете, что у вас уже есть прекрасные творческие способности и великолепное аналитическое мышление? Ну тогда покажите деньги :)
Вот начнем делать упражнения, тогда и можно будет на практике понять, что из себя наши мозги представляют.
Практика - критерий истины, сказал кто-то из великих :)
Но все же есть у программирования и одно довольно важное отличие. В этом виде человеческой деятельности обычно отсутствует общение. То есть с коллегами программисту конечно часто приходится общаться, согласовывать кучу нюансов, выяснять с заказчиком требования к системе и т. д. Но тем не менее конечный продукт, результат, по которому работа оценивается - это работающая программа. И сколько с сослуживцами и заказчиками не говори, сама собой программа не создастся и не заработает :)
Поэтому хитрые капиталисты (в основном :) придумали кучу разных технологий, разделяющих труд и формализующих процесс кодирования. Кодирование - это они такое пренебрежительное название дали процессу программирования :) Типа, начальные этапы - проектирование структуры программы, анализ требований заказчика, формализация логики работы приложения - это вроде самое главное, а программисту (нет, уже кодировщику :) остается только перевести формальное описание на конкретный язык, то есть закодировать. При этом никакой инициативы на данном этапе от разработчика не требуется и даже наоборот! Пунктуальное выполнение технического задания, шаг вправо-влево - расстрел :) Ну как в армии или на конвейере.
Такой подход безусловно по своему эффективен. Примерно так, как был эффективен труд рабов в Древнем Риме. Пока не пришли варвары :)
Но кому он выгоден в такой форме, подумаем. Программисту? Ничуть. Он вообще низведен до положения кодировщика. Никакого творческого элемента в работе нету, все расписано и разложено по полочкам. Голая технология и больше ничего. Скучно!
Защищать программисту такие технологические подходы - дескать, быстрее делаем важные заказы, и ошибок меньше (про ошибки в программах мы особо будем говорить :) тоже неправильно. Строго говоря, постепенно функцию кодировщика можно будет заменить хорошо продуманной программой, которая этот код станет генерировать автоматически на основе формальных описаний. Выгонят кодировщика на улицу не сегодня-завтра, и все :)
Выгоден технологичный подход только владельцу конвейера, за которым кодировщики работают. Чем интенсивнее конвейер крутится, тем больше у него прибыль. А что кодировщикам скучно, так это не его проблема :) И поддержка технологичности при разработке программ - это всегда поддержка кармана владельца фирмы в ущерб собственному развитию.
И что же делать? Ответ прост. Зарабатывать программированием там, где технологического подхода нет и приветствуется творчество. Такие компании и организации есть, об этом мы будем в соответствующем месте говорить. Но лучше всего конечно, научиться получать доход от программирования напрямую от заказчиков и ни от кого более не зависеть. Сначала это заказные работы обычно, а потом переход к выпуску своих массовых продуктов. Как Билл Гейтс примерно - сделал Windows и миллиардер :) Или вон Линус Торвальдс даже не писал Linux с нуля, а просто взял за основу Minix Энди Тененбаума - а думаете, он бедный человек? :)
А игры? Там тираж несколько сотен тысяч копий (по 50 долларей штучка :) считается провалом :) Вот миллиончик-другой - это нормально.
Раскрутка, продвижение, поиск продажных ниш - эти вещи конечно важны. Но вполне решаемы и по силам каждому! Заявляю это со всей ответственностью. А как решаемы, конкретно рассказывается в курсе "Как зарабатывать программированием". Там прям в первую неделю и открываются основные секреты :)
Поэтому в дальнейшем будем различать понятия программиста и кодировщика и говорить будем только о программистах. Потому что Программист всегда сможет и кодировщиком поработать, если уж очень приспичит, а вот кодировщик программистом - никогда.
Самое интересное, что много уроков для обучения программированию не надо. Изучить любой язык программирования можно, как я уже говорил, очень быстро. Да и языков этих не так много. Пальцев одной руки хватит. Си, Си ++, Паскаль/Delphi, Basic (Васик :), Java - да и все в принципе. Мы эти языки будем изучать одновременно (как Юлий Цезарь :), и вы быстро убедитесь, что это совсем просто.
Но основной акцент в наших занятиях будет построен на развитии творческих и логических способностей. Процесс программирования похож во многом на процесс решения головоломок, поиск решения инженерной задачи, поэтому мы будем, в частности, решать занимательные логические задачки, наиболее подходящие программисту, и выполнять упражнения на развитие творческих способностей. Ну и про программирование постараемся не забыть :)
Потому что программист со слабыми мозгами и слабым воображением - это и не программист вовсе, а так... Кодировщик :) Вот мы и будем становиться Программистами.
Обратите внимание, что я говорю "мы будем", а не "вы будете пытаться, а я буду вас учить". Потому что процесс развития логики и творчества - неограничен. И я буду учиться и развиваться вместе с вами, и мы будем помогать друг другу обратной связью.
Средний программист отличается от начинающего только тем, что может написать программу раз в сто быстрее. А профессионал - в тысячу. В этом и есть его ключевое преимущество перед кодировщиком.
За счет чего достигается такое преимущество? За счет опыта и все. Никакие технологии здесь не помогут, они могут только сделать тупее и разучить думать. Программировать надо больше и одновременно искать оптимальные пути решения каждой задачи. Подумать - попрограммировать. Небольшими шажками.
Владелец программистского конвейера посадил пятьдесят кодировщиков на задачу, и они ему сделали систему за месяц. А денежки владелец положил себе в карман.
А программист сделал такую систему за месяц (или полмесяца) сам. И не за зарплату, а например по договору. И взял всю сумму себе :)
А еще лучше - написал что-то типа Windows и продал миллиард копий :) Думаете, невозможно? Возможно, и примеры этому есть и рынки ждут. Об этом тоже в рассылке о заработке программированием говорится.