Как стать программистом пр

Как стать программистом? Часть 1

Проанализировав статистику поисковых запросов Google и Яндекс, я решил немного отойти от тех тем и типов сюжетов, которые записываю обычно. Я обнаружил, что ключевой запрос и слова “Как стать программистом” в месяц набираются в 100-200 раз чаще чем запросы по шаблонам проектирования. Было решено провести небольшой эксперимент: посмотреть на то, как эта тема повлияет на статистику просмотров данного ролика по сравнению с другими. Так же, возможно, как это хорошо отразится на скорости роста подписной базы моего канала.

“Как стать программистом?” — довольно философский вопрос. Поэтому на него трудно сформулировать однозначный ответ. Я вспомнил как изучал программирование и попытаюсь сформулировать свои мысли на тему того, как бы следовало это делать. Планируется, что это будет серия роликов и возможно, ближе к концу, я опишу как я учусь сейчас. Также постараюсь поговорить о более практических вещах. Где найти время, как ускорить прогресс обучения и т.д.? Постараюсь мотивировать вас посвятить этому делу побольше времени.

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

Первое о чем я хочу поговорить — это Цель.

На мой взгляд это самое главное, кто бы вам и что не говорил. Цель должна определять последовательность ваших действий в ее достижении. Возьмите лист бумаги и отметьте на нем точку А. Точка символизирует то, что Вы имеете в данный момент. Вы учитесь в университете или вы еще школьник, может быть Вы взрослый человек который решил переквалифицироваться чтобы зарабатывать приличные деньги? Просто хотите заниматься тем, что для Вас более интересно, но не знаете с чего начать? Это все ваша отправная точка.

Точка Б — это то чего Вы хотите достичь, это Ваша цель. Если цель — “Стать программистом”, то я спешу Вас огорчить: Вы неправильно обозначаете цели. Постараюсь объяснить, что в моем понимании хорошая цель.

Мои родители живут в небольшом городе в Республике Беларусь. Периодически я езжу к ним в гости и иногда речь заходит о моих ровесниках. Я слышу от родителей про некого Вовку, который якобы мой ровесник. Вовка работает на местном маслозаводе программистом и получает 200-250$. Они еще удивляются, как хорошо что я остался работать в Минске. Полбеды, когда они называют программистами еще админов или продавцов в компьютерных магазинах. Мне от таких рассказов хочется смеяться. Если Ваша цель “быть программистом”, то я Вас обрадую — на маслозавод пробиться не сложно. Но я думаю, это не то чего Вы хотите.

Пока пишу данный текст, вспоминаю старый фильм “Ослепленный желаниями”.

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

Ладно, вернемся к основной линии рассуждений. На мой взгляд, цель должна быть конкретной. “Я хочу зарабатывать энную сумму денег”, ” Хочу работая программистом на языке Java, путешествовать по миру каждый месяц.” Кстати, я знаю такого человека. Или такая: “Я хочу жить в США и работать в Google” — это тоже хорошая цель, если Вы не собираетесь быть там уборщиком. Нужно больше конкретики.

Теперь нарисуйте точку Б и напишите рядом свою конкретную цель.

Шаг номер 1: Поставьте правильную цель.

Поговорим о том как попасть из дочки А в точку Б. Нам нужен путь и понятно, что путь это некая последовательность действий. О том, какие это действия, я расскажу дальше. Сейчас поговорим о том, как сделать Ваш путь максимально коротким.

Нарисуйте точку В на одной прямой с точками А и Б. Это Ваша другая цель и она не связана с программированием. Скажем, это цель накачаться и догнать вес своего тела до 100 кг. Вы начали свой путь из точки А, идете в точку В и в конце концов достигнете точки Б. Но путь от А до Б увеличился т. к. Вы тратите часть времени на посещение спорт зала. Чем больше у Вас дополнительных целей между точками А и Б – тем дольше у Вас путь. Подумайте, может есть менее важные точки в Вашей жизни и Вы перенесете их за приделы отрезка АБ? Это не значит что Вы их достигать не будете — Вы их просто отложили.

Не бойтесь что-то переносить на потом. Если Вы чего-то действительно хотите, то снова вернетесь к этому. Что это дает? Вы не распыляетесь и это сокращает путь от А до Б. Может кому-то это покажется очевидным, но я Вас уверяю, для многих это очень сложно сделать. Я сам, до сих пор, не отучился от дурацкой привычки усидеть сразу на двух стульях. Например, многие из Вас пытались читать сразу 2 книги, а по итогу было хорошо, если дочитывали хотя бы одну из них. Или ночью пытаешься отладить программу для лабораторной работы по программированию и параллельно поджарил гречку на плите, да  так, что оплавились пластмассовые ручки кастрюли.

Делайте свои дела последовательно, Вы не мультипроцессорная машина, поэтому Вы только имитируете параллельность.

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

Шаг номер 2: Отложите менее важные задачи на потом.

Теперь поговорим о той скорости с которой Вы будете двигаться.

Скорость нашего движения зависит от нашей эффективности. Пусть Вася стал изучать язык на 1-м курсе университета, а работать он стал курсе на 3-м. В то время как Коля, также стал изучать язык на 1-м курсе, но работать стал на 2-м. Получается, что Вася на изучения необходимого минимума потратил 2 года, а Коля 1 год. Откуда делаем вывод, что Коля более эффективно учится т.к. он потратил меньше ресурса времени чем Вася, на достижение одного результата. Еще известно, что Вася и Коля небыли задротами, они находили время на учебу и на тусовки. Но как Коле удалось достичь результата за год? Просто он эффективно управлял своим временем.

Я Вас обрадую, для этого совсем не нужно читать кипу книг по тайм-менеджменту. Просто разбиваешь свою неделю на части: один день на встречу с друзьями, один на подругу, а все остальное время пашешь. Чтобы дополнительно себя мотивировать, делаешь определенный план задач. Если план выполнен, скажем — до конца недели оставшееся время можно провести как хочешь.

Конечно, Вы пропустите некоторые тусовки. Подумайте, а во что Вы потом сможете конвертировать время потраченное на них? Да не во что. А время потраченное с пользой — в более высоко оплачиваемую работу и в последствии, заработанные деньги в крутую тачку или на путешествие. Те чудо-программисты, с маслозавода, которые зарабатывают сейчас 200-250$, в то время когда могли учится — занимались ерундой, бессмысленно тратя время в клубе и бухая по вечерам.

 

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

Составьте какое-то подобие режима. Это будет способствовать тому, что Вы регулярно движетесь к результату.

Шаг номер 3: Составьте план ваших занятий и придерживайтесь его.

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

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

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

Вот вопросы, которые определяют ключевые критерии при выборе языка:

— для чего используют этот язык и хочу ли я этим заниматься?

— сколько можно заработать работая с этим языком?

— количество предложений работодателя?

— простота в изучении данного языка?

Почему важно понимать предназначение конкретного языка программирования? Попробуйте есть суп вилкой, китайскими палочками или “на крайняк”, пальцем? Думаю, ответ сразу приходит на ум. Как и любой инструмент, язык программирования используется для чего-то. Для чего-то он подходит лучше, а для чего-то хуже. Есть языки для разработки под мобильные устройства, есть для разработки веб-приложений, а есть для разработки игр. Также, часто бывает, что их используют для нескольких целей. Обращайте на это Ваше внимание, может вам данный род деятельности не понравится.

Сколько можно на нем заработать? Не буду лукавить — я, помимо того что больной ублюдок, еще и жадный ублюдок(но я с этим честно борюсь! =)) Для себя этот критерий я рассматривал наравне с первым. Но тут есть небольшой нюанс. Высокие зарплаты в этой сфере говорят о том, что есть спрос на программистов. За какие-то знания платят больше, а за какие-то меньше. По большему счету, ЗП не очень сильно разнится для программистов владеющих разными языками. Больше зависит от уровня конкретного специалиста, чем от языка на котором он пишет. Думаю, исключением может быть специалист, который владеет какой-то новой технологией и на рынке таких парней очень мало. Но со временем, ЗП скорее всего, опустится до уровня остальных технологий.

Также, если Вы изучаете программирование “с нуля”, то простота языка для Вас играет важную роль. Сложная технология отнимет больше времени и сил на изучение какого-то минимума, с которым можно написать что-то простое. А изучать тупо читая книгу без практики — скучно и такой подход может отбить все желание. Кроме того, если язык сложный, то скорее всего, спрос на таких специалистов небольшой. Просто существует тенденция к тому, чтобы писать код как можно быстрее и удобнее.

На основании таких критериев, я бы выделил Java, C#, ObjectiveC и PHP. Так сложилось, что на втором курсе университета мне пришлось познакомиться с Java. Это был годовой курс прикладного программирования.

Java значительно проще в изучении чем С++, например. Давно есть огромный спрос на Java и думаю, что он еще продлится долго. По поводу зарплат, тут как я уже говорил, все зависит от уровня специалиста и от его жадности.

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

Беглый поиск выдал, что на нем написаны многие приложения для Amazon, поиск Bing от Microsoft( я тут вижу небольшую иронию) и серверная часть для Google+.

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

Заключение

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

Как я уже говорил, вопрос “Как стать программистом?” довольно философский. Это подразумевает, что у кого-то может быть другое мнение относительно данного вопроса. Что абсолютно нормально и потому я не претендую на истину в последней инстанции.
Пока!

Добавить комментарий

Ваш e-mail не будет опубликован.

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">