Всегда мечтал учить других тому, что люблю делать сам. Наверное, подобные мысли посещали голову многих из нас, но что нас останавливает в этом деле? Мой опыт программирования примерно 24 года, при этом опыт руководства командами программистов/дизайнеров/аниматоров и других специалистов в сфере разработки ПО около 9 лет.
Первая моя попытка научить кого-то программированию была на 3-м курсе университета, когда я, решив, что уже созрел для того, чтобы передать хоть что-то из того, что знаю сам детям отправился в общеобразовательную школу устраиваться на должность преподавателя информатики.
Так уж сложилось, что в это время я зарабатывал примерно в 10 раз больше средней зарплаты учителя в нашем городе, поэтому шёл в школу не ради денег, а ради идеи. Директор школы, честно скажу, офигела от моего предложения устроиться к ним учителем не важно на какую зарплату и взяла время «подумать». К сожалению, думала она около 3-х месяцев и к тому времени, когда мне позвонили из этой школы с предложением зайти к ним ещё раз чтобы обсудить моё трудоустройство я уже нашёл себе занятие, бросать которое не доделав не хотел.
Но оставим в стороне действия руководства школы и перейдём к сути. Что для вас программирование? Обучая студентов в университете, в котором сам учился, я много раз задавал себе этот вопрос. Для меня это способ, средство, инструменты для того, чтобы создать такой мир вокруг себя, который я сам желаю. Иными словами - это игра в «бога». Это моё личное мнение, но не принимая эту составляющую творчества вы не раскороетесь в полной мере ни в каком его (творчества) виде и проявлении. В данном посте я хотел рассказать про своё видение программирования и тех принципах, которым сам в нём следую.
«Как научиться программированию» - такой вопрос я часто вижу и слышу от многих людей. Ответ - так же, как научиться ходить. Ходите - и научитесь! Есть правило 10 тыс. часов, которое сделает из вас профессионала (прочитайте о нём в интернете). Это правило зависит от вашего таланта к данной области деятельности, мотивации, интеллекта и много ещё чего, но математически это всё можно представить в виде коэффициента «опыта», которого надо достичь в эквиваленте 10 тыс. часов. Суть при этом остаётся та же - чем больше вы этим занимаетесь тем лучше становитесь.
«Что надо читать» - не важно что, а важно как. Тут главное интерес, который влияет на усвоение материала. В свои 9 лет я читал не самую лучшую книгу по программированию, но делал это с таким интересом, что прочитал её раз 100. Поэтому, если вы не нашли интересную для себя книгу по программированию за месяц - бросьте это и занимайтесь чем-нибудь другим.
«Что отличает хорошего программиста от плохого» - педантичность, сомнение в своих действиях, желание стать лучше. Вообщем, посмотрите любое популярное аниме про героев :). Ум, интеллект, способности - все они «разбиваются» об ошибки, которые совершают все люди в этом мире. Дальше идёт уже набор действий, которые хорошие программисты делают, а плохие не делают. Но учиться этим действиям бесполезно - если вы не ХОТИТЕ это делать - вы будете всегда проигрывать тем, кто ХОЧЕТ. Как это проверить? Пример - вам нужно проверять все ваши изменения в проекте перед тем, как «отправить» их в общий доступ - сделать коммит. Но ваш работодатель запретил вам это делать под угрозой штрафа и сказал что это будут делать другие люди за меньшую зарплату и специализирующиеся в этом деле (тестировщики). Таким образом вы повысите эффективность вашей работы и результатов компании. Звучит разумно? Если да, то вы всегда будете отставать. Вы это не любите так как это любят фанаты программирования, поэтому найдите то, от чего «фаеатнете».
...
Если пост «зайдёт», то продолжу.