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