Не нравится программирование что делать

Пять способов выгореть для программиста

Не нравится программирование что делать. Смотреть фото Не нравится программирование что делать. Смотреть картинку Не нравится программирование что делать. Картинка про Не нравится программирование что делать. Фото Не нравится программирование что делатьОт переводчика
Выгорание в жизни программиста может случиться по самым разнообразным причинам; если задаться целью перечислить все пути, которыми оно подкрадывается к нам, то одно лишь это перечисление займет немало времени. Это еще один повод, по которому не стоит недооценивать процесс выгорания — иначе однажды вам придется искать дорогу обратно, и стоить это может очень дорого. Последняя строка вовсе не голословна — мне самому однажды смогла помочь лишь любовь к коду — когда уже, казалось бы, все осточертело и ничего не хотелось, чтение подвернувшегося Макконнелла навеяло воспоминания о том, как же когда-то мне нравилось программировать. И сегодня мне нравится делать это снова.
А теперь — слово автору.

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

1. Думать о проекте и только о нем

Признайтесь себе: бизнес хочет, чтобы вы создавали наилучший продукт «для наших клиентов». Вы откладываете в долгий ящик какой-либо функционал из-за того, что не успеваете к дедлайну. Вы планируете проект и анализируете его со всех сторон для того, чтобы разбить на несколько «перевариваемых» частей, которые затем должны быть воплощены одним из кодеров (в роли обезьянки, или code monkey, кстати говоря, можете быть и вы один). Вы создаете рабочий прототип, затем получаете обратную связь и делаете еще одну итерацию. И все это — без единой мысли о себе любимом.

В таком случае, у меня для вас новость: когда-то вы начали программировать просто потому, что это занятие вам понравилось. Почему бы не продолжать заниматься им из-за того, что вам снова весело? Потратьте совсем немного времени на то, чтобы сделать фичу, которую вам так хотелось увидеть. Или бросьте себе небольшой вызов — сделайте что-то, что прежде казалось вам невозможным. Покажите результат всем своим знакомым, и не просто соберите «обратную связь» — похвалитесь тем, что у вас получилось.

2. Негативно ко всему относиться

— Знакомы с Docker? Отстойная штука! Да кто вообще доверит свой продакшн новой, нестабильной игрушке.
— Go? Я что, похож на того, кто очень хочет каждую библиотеку писать сам. Все, что мне нужно, уже есть в PyPI. И вообще, проект, над которым я работаю, настолько жестко ограничен в выборе технологий, что это все мне не нужно.
— Jenkins, говорите? На дворе что, 2008 год.

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

Но мне не кажется, что мы должны быть настолько негативно настроены относительно своей работы, принятых решений (даже в том случае, когда это не наши решения) и тем, над чем мы работаем. Лучшие из проектов, в которых мне довелось участвовать, стали такими из-за хороших и позитивно настроенных команд. Нам нравилось приходить каждое утро на работу, обсуждать друг с другом свой проект, сдерживать критиков и обращать их усилия во благо.

3. Использовать только знакомые средства, потому что так быстрее

Вы — гуру Java + Spring + Hibernate. Или, допустим, никто не смеет даже ставить под сомнение ваше знание Python. Каждый ваш проект, в том числе личные, должен быть сделан на том, что вы знаете лучше всего — потому что ведь главное это бизнес, верно? Ну, не то что бы.

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

4. Часто менять место работы

Также известно как «погоня за удачей». Стало скучно заниматься тем, над чем вы сейчас работаете? Зудит кое-где? Время сдуть пыль со своего резюме!

Это очень, очень, очень плохая практика.

Как все это связано с выгоранием? Ваша карьера топчется на месте, вы не углубляетесь ни в одну из тем (развиваете только широту охвата знаний), люди на новых рабочих местах не доверяют вам, и вам постоянно приходится что-то кому-то доказывать.

5. Очень много работать, игнорируя свою жизнь

Не нравится программирование что делать. Смотреть фото Не нравится программирование что делать. Смотреть картинку Не нравится программирование что делать. Картинка про Не нравится программирование что делать. Фото Не нравится программирование что делать«Вы не обязаны работать много, но лучшие предпочитают именно этот путь». Вы хотите впечатлить начальство, или черт с ним с начальством — самого себя, и бросаете все силы на то, чтобы успеть к недостижимому дедлайну. Успеваете сдать проект во время и со всеми фичами, которые хотелось сделать. Вы — настоящий герой, и — счастливчик! — даже получите премию.

TL;DR
Выгореть — это просто!
Если вы хотите выгореть, просто воспользуйтесь приведенными выше способами.

Источник

Как программировать если совсем не хочется? План спасения на случай перегорания или дедлайна

Не нравится программирование что делать. Смотреть фото Не нравится программирование что делать. Смотреть картинку Не нравится программирование что делать. Картинка про Не нравится программирование что делать. Фото Не нравится программирование что делать

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

План написан под программиста (меня), да и вообще, в исходном виде подойдет не всем. Советую модифицировать этот план под себя.

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

Предисловие

Мне этот план помог превратиться из перегоревшего грустного бездельника, который несколько месяцев не мог заставить себя программировать, в более-менее продуктивного человека. Сейчас совмещаю 2 проекта и чувствую себя прекрасно. Не густо, но лучше чем ничего.

План действий

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

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

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

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

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

Привожу сам план действий.

#1 Работать над самим проектом
Самое важное, в чем в идеале заключается рабочий процесс — работать над бизнес-проблемой, пытаться реализовать требуемый функционал. Это то, к чему мы стремимся.

#2 Подумай как сконцентрироваться
Макс. время: 1 час.

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

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

Может быть дело в: отравлении, недосыпе, никотине, чувстве вины, недостатке общения, недостатке витаминов.

#3 Незаконченные дела
Подумай, возможно есть какие-то дела по дому или социальные обязанности. Может это уборка дома, оплата коммуналки. Это все может отвлекать тебя от работы, потому стоит решить такие дела как можно скорее или реорганизовать их.

#4 Необязательные дела по дому
Макс. время: 2 часа.

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

#5 Общение
Макс. время: 1 час.

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

#6 Медитация или тренировка
Макс. время: 1 час.

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

Теперь переходим к самому интересному, то, что касается рабочего процесса.

#7 Рефакторинг
Макс. время: 3 часа.

Снова возвращаемся к работе, если сценарии выше не помогли заняться решением бизнес-проблемы, то стоит облегчить задачу. Займись рефакторингом имеющегося кода, но не переусердствуй. Стоит исправлять только откровенные ошибки, а не «делать код лучше».

#8 Упрощение тестирования и отладки
Макс. время: 3 часа.

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

#9 Работа над сторонним функционалом проекта
Макс. время: 2 часа.

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

#10 Ревью кода проекта и документация
Макс. время: 1 час.

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

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

#11 Поработать над своей библиотекой
Макс. время: 2 часа.

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

#12 Кодинг как хобби
Макс. время: 2 часа.

Аналогично предыдущему, но попроще. Делать какой-то простой, но бесполезный проект для души.

#13 Чтение для мотивации
Макс. время: 1 час.

Можно попробовать почитать мотивирующую книгу или статью на хабре и потом приступить к работе. Если не удалось приступить — нет смысла продолжать читать для мотивации дольше часа.

#14 Чтение для образования
Макс. время: 2 часа.

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

Книги читай, только если сможешь ограничить себя во времени, но вообще лучше всего — справочники. В моем случае, по unity, android, xamarin, asp.net, webpack.

В крайнем случае, читай статьи, только следи, чтобы они были не развлекательными, а доносили новую информацию.

#15 Просто поразмышляй как программист
Макс. время: 1 час.

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

#16 Отдых
Увы, но не всегда выходит следовать даже самым простым сценариям. Если это так — пора отдохнуть. Но к отдыху тоже есть свои заметки:

Дополнительные методики и советы

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

Работать по таймеру
Беспрекословно следовать Pomadoro не стоит, но вот работа по таймеру в целом выходит продуктивней. Например, обязательно 2 часа на сценарий #1, потом час на сценарий #7.

Организуй буткемп
Если работать с еще одним человеком — будет проще заставлять себя работать. Главное не терять концентрацию.

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

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

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

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

Энергетики — очень редко можно использовать, если идеальное пищеварение и нет кофеиновых отходняков.

Никотин убивает мотивацию. Бросать во время дедлайна — не имеет смысла. Курить желательно только с момента, когда уже что-то сделал за сегодня.

Режим питания
Стараться не есть вредную пищу, вообще. Однако, для рывка иногда можно съесть что-то вкусное, при идеальном пищеварении.

Если работаешь ночью или уставшим — плотно есть не стоит, уснешь.

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

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

Режим сна
Он почти всегда имеет главный приоритет. Единственное исключение — дедлайн проекта.

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

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

Когда встаешь пораньше — ставь будильник без возможности отложить его. С утра сразу умойся, чисти зубы, не стоит лежать в кровати. Вечером, если не можешь заснуть — переделай все рутинные дела чтоб с утра они не отвлекали (мытье посуды, готовка и т.д.).

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

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

Лучше включать осты из игр, я например слушаю Silent hill, Transistor, Hades, Pyre, Assasins Creed, Witcher, Detroit.

Если много энергии — Minecraft, Firewatch, LOU, Thief.

Чувство вины бесполезно
Если накатывает чувство вины за то, что ничего не делаешь — просто спускайся ниже по списку приоритетов, пока не сможешь выполнять сценарий.

Душ
Иногда душ может помочь почувствовать себя получше. Именно душ, ванна — слишком долго и потянет в сон.

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

Медитация
Медитировать стоит только, если ты выспался, и не больше часа, иначе будет сонливость. Всегда старайся концентрироваться на дыхании и делать это без музыки. Отличный вариант — выпить кофе залпом и медитировать полчаса, как раз при выходе из медитации будет куча энергии и мотивации.

Сон-перезагрузка
Можно уснуть не более чем на полчаса или просто полежать это время. Перед этим можно залпом выпить кофе.

Метод не эффективен при сильном недосыпе и усталости.

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

Постоянное повышение продуктивности ведет к выгоранию
Если на протяжении многих дней ты все время повышал продуктивность — неизбежно наступит момент, когда еще повысить ее уже невозможно (очень сложно). Это может расстраивать, в такой момент лучше устроить 1-2 выходных, чтоб обнулить результат и любой следующий день казался продуктивней.

Примеры применения плана

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

6 часов

СценарийВремя
Медитация/тренировка0:30
Чтение0:30
Ревью кода проекта0:20
Работа/рефакторинг1:00
Перерыв0:15
Работа/рефакторинг1:25
Перерыв0:20
Работа/рефакторинг1:40

4 часа

СценарийВремя
Медитация/тренировка0:15
Чтение0:20
Ревью кода проекта0:20
Работа/рефакторинг1:00
Перерыв0:15
Работа/рефакторинг1:50

2 часа

СценарийВремя
Чтение0:15
Ревью кода проекта0:20
Работа/рефакторинг1:25

Заключение

Естественно, в этом плане в этом плане куча недочетов, и он субъективен, используйте его как шаблон для написания своего личного плана действий.

Буду очень рад почитать ваши методики борьбы с прокрастинацией в комментариях.

Источник

Как не стать программистом или… тебе здесь не место

ПРОЛОГ

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

Статья не рекомендована к прочтению опытными программерами. Ведь как ни крути, но взгляды на программинг могут расходиться.
Посему прошу сильно не минусовать. Если у опытных программистов есть что сказать новичкам — пишите тоже свою статью.

Ну а если ты в процессе самоопределения по данной профессии — you are welcome!

ТЕРМИНОЛОГИЯ

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

Программирование — это сугубо исследовательский творческий, а не технический процесс.

Программирование — это умение абстрагировать, мыслить объектами, функциональными зависимостями, виртуальными образами.

Программирование — это процесс полета креативной мысли, часто выходящий за рамки рабочего дня и даже образа жизни.

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

Когда программист работает над программой, она словно живет в его голове.
Необходимо понять, что программа пишется путем погружения в код. Это когда исходный код текущего модуля словно подгружается в мозг и там отрабатывается (ака отлаживается).
Т.о., уже запуская программу на исполнение, «правильный» программист прекрасно знает, как она выполнится, потому что до этого она словно «проиграла как музыка» в его голове.

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

Самое главное умение в программировании, это научиться воспроизводить (исполнять) код в уме.
Мозг программиста должен уметь запускать участки кода в уме. Вы прокручиваете цикл, вычисляете переменные и представляете, примерно, что будет на выходе.

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

ВЫВОД. Программист должен уметь выполнять код в голове, до того как скормит его компилятору.

ГОРЬКАЯ ПРАВДА

Как правило, на программиста нельзя выучиться в учебном заведении.
Большая часть программистов — самоучки. Образование способно лишь заложить фундамент инженерных знаний. Остальное — это умственные способности и предрасположенности, помноженные на усердие и труд в квадрате, а то и в факториале(!).

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

СТАНОВЛЕНИЕ

Только после этого, ты становишься кем-то похожим на программиста. И только уже потом, немытая голова старый свитер и борода…

Смех смехом, но по длине бороды одного нашего программера, мы узнаем на какой стадии проекта он находится.

ВЫВОД. Программист — это человек, который не только пишет программы, но и у которого они работают.

О ЯЗЫКАХ.

Существует много языков программирования, но особняком в это списке всегда стоял С++.
Почему С++?

С++ — это минималистичный язык, возникший как набор макросов от ассемблеристов. Вернее сначала возник С. Но не в этом суть, я не историк.
Почему рядовой программист должен знать С++?
Это примерно как священник, не знающий Библию. Как маркетолог, не знающий о правиле 4П. Как фотомодель без макияжа. Так и С++ — это тот самый необходимый багаж, который должен просто хотя бы лежать в голове на одной из полок.

Ты можешь не использовать С++ в действии, но ты должен знать его как канон, как основу всех основ. Но тем не менее, С++ весьма опасен при использовании, ведь, например, при манипулировании указателями, если программист до конца не понимает их основ, можно улететь на исполнение кода в участок данных (из-за этого, кстати, в JAVA, указатели отменили). А еще можно «выстрелить себе в ногу»)) так считал автор языка С++, господин Страуструп. Потому что таким инструментом, как С++, нужно очень грамотно владеть, чтобы пользоваться им виртуозно.

Также учтите, что часть современных языков взяла С++ за базу — Java, PHP, Perl, Ruby etc.
Все известные программы написаны исключительно на С++ (или С) — ОС Windows, ОС Linux, MacOS, iOS, Firefox, Kaspersky, Chrome etc. Более того, многие из известных программ, имеют открытые исходники и по ним можно учиться программированию.

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

ПОЧЕМУ DELPHI НЕ ВАРИАНТ?

Здесь я приму отчаянную попытку отговорить начинающих от программирования на Delphi.

Pascal (IDE Delphi) — это программирование в рамках (ИМХО). Pascal — это язык, придуманный ученым Н. Виртом в 1970-ом году, в ходе разработки другого языка Модула-2. Pascal широко использовался для изучения основ программирования, но коммерческое использование он получил только в 80-90-е годы.

За десятилетия правления Борланда и InPrise он превратился в монстра, заимствовав (украв) часть синтаксиса из С++. Сейчас компания Embarcadero продолжает выращивать этого монстра, в чреве которого вы будете компилировать гигантского размера программы. Кстати и для Андроида тоже.

Я в свое время немало людей перетащил с болота Delphi на C++, чему они сами были впоследствии несказанно рады. Будучи С++-программерами, они с ужасом вспоминали про Паскаль и больше не имели желания на нем программировать.
Также, я слышал немало баек от программистов, пытавшихся переучить дельфистов на Java и потерпевших полный фиаско. Теперь многие ставят крест на дельфистах. Якобы, непереобучаемые.

Возможно это вызов и вам, господа дельфисты! Попробуйте написать прогу на С++. Через 2 месяца Delphi (Pascal) покажется вам детским садом и вы перейдете на следующий уровень развития (в среднюю школу). А там уже и Python не за горами.
Развивайтесь! А вам слабо?

Сразу попрошу не разводить холивор по поводу кто круче — Дельфи или С. Если Вы пишете на Дельфи хорошие коммерческие программы и ваши юзеры довольны продуктом, то значит все отлично. Пишите и дальше. Вы нашли свою нишу.

ИСПОЛЬЗОВАНИЕ ЯП

Теперь посмотрим на мировую статистику за 2015 год, так на чем все-таки пишут программы?
C (C++,C#,ObjC) — 28.5% (это нормальные пацаны)
Java — 21.5% (это Android, серверные и мобильные приложения )
Basic (+.NET) — 4.1% (это США с их обожаемым Visual Basic)
Python — 3.8% (это кулхацкеры, линуксоиды и гики)
Delphi (Pascal) — 2.9% (это Россия и Восточная Европа)
PHP — 2.7% (Web-программирование)
Javascript — 2.5% (Web-программирование)
Ruby — 2.0%

ШАГИ ПО СТАНОВЛЕНИЮ ПРОГРАММИСТА

С чего же начнется твое обучение программированию?
1. Ознакомление с алгоритмизацией
Тут для начала все таки хорош Pascal. Он неплохо развивает блочное мышление. Вводит в предметную область программирования. Не отпугивает так, как С++. И нога останется целой.
2. Переменные и типы данных
3. Базовые элементы языка
Структуры, классы
Циклы, ветвления, выбор, переходы, функции
4. Ознакомление с ООП
ООП — это именно тот функционал, который делает из программы человека «хорошую» программу. Это скелет (остов) любой приличной программы.
Это то, от чего едет крыша у начинающих. Это то, от чего бегут недалекие программисты.
Тут начинается абстракция.
Требуется понять только одно — ООП является костяком любой хорошо спроектированной программы.
Без ООПа порой сложно выстроить между собой логическое и интуитивно-понятное взаимодействие модулей программы.
5. Знакомство с технологиями — работа с файлами, потоками, графикой, сокетами, СУБД, Web, XML
6. Углубление — работа над своими проектами 6-9 месяцев. Тут важно не дергать готовые компоненты, а писать чистый С++ код.
Важно просто набить руку.

ФРЕЙМВОРК И КОМПИЛЯТОР(IDE)

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

IDE — это графическая оболочка-редактор, которая облегчает работу над созданием визуальных форм и редактирования кода.
Проблема современного программирования — излишнее многообразие фреймворков, сред и ЯПов.
Нельзя выучить все из них. Многое определяет заказчик или компания-работодатель.
Можно начать изучение с Visual C++ (среда от Microsoft), Builder C++ (Embarcadero) и Qt.

Visual C++ — это классика. Если нужно много удобных визуальных компонентов, если нужен навороченный интерфейс — берите Builder C++. Нужна кроссплатформенность — берите Qt C++.

Я начинал программировать на С++ в DOS. Тогда (в 90-х) больше и не было ничего (unix не в счет)!
Сейчас у нас есть C#.NET, Qt, wxWidgets, C++Builder, C++ VisualStudio под Windows. И не менее жирные вариации под Linux.
А если еще посмотреть в сторону Java, Android… то просто слюнки текут от возможностей.

Готовьте голову к обширному вливанию документации. Как говорят программисты — RTFM.
Учите один язык и одну среду. Учеными доказано, что программист с 3-летним опытом программирования на одном языке работает в 3 раза продуктивнее программиста с таким же опытом, но на другом языке.

ХОРОШИЕ ПРАВИЛА ПРОГРАММИРОВАНИЯ

1. Написал первую версию программы!? Выкинь и начните писать вторую версию.
2. Проектирование программы начинайте на бумаге — блоки, связи, морфология, схемы (UML)
3. Переменные самодокументируемые — bPersonNameValidity
4. 60% кода — обработка ошибок и исключительных ситуаций.
5. Разбивайте код на мелкие модули. Хорошая практика — один класс-один модуль.

КАКИЕ ОНИ БЫВАЮТ?

Разделение на системных(С) и прикладных(П) программистов.
С — знают устройство операционной системы, основы API, как работает ОС (потоки, процессы, прерывания, хуки), стараются весь код писать сами без привлечения сторонних компонент. Часто сторонники VisualStudio. Не любят создавать ПО с большими графическими интерфейсами.
П — пишут программу, использую сторонние модули и компоненты. Не вдаются в устройство ОС. Любят Delphi и Builder.

Embedding — самый профессиональный уровень. Программирование под железки — hardware. Требует знаний электроники и ассемблера. Самый высокооплачиваемый сегмент программирования.

Web-программисты — пишут код для динамических сайтов. Чаще на PHP. Дополнительно нужно знать HTML, CSS, JS и пр.

ЭПИЛОГ

Наивно предполагать, что можно выучиться на программиста, меньше чем за год.
Язык программирования — это как музыкальный инструмент. Основные навыки игры ты, возможно, схватишь быстро, но на оттачивание мастерства уйдут годы.
Программирование должно нравиться, должно увлекать, как любой любимый процесс.
Рекомендую снести все игры на компе. Трать время на полезное.
Развивай аналитическое мышление.

По С++. Читаем Страуструпа. Держите его книгу под рукой.
И еще. Учи английский язык. Программисты должны уметь свободно читать на английском.
99% документации по программированию на английском. Перевода не ждите.
Названия переменных тоже называем английскими словами, заодно это комментирует код.
Если при изучении языка программирования, ты чувствуешь что продираешься через джунгли, что твои мозги вязнут в этой мути, что языковые конструкции ужасны и труднопонимаемы, и ты чувствуешь нарастающее раздражение, то вполне возможно, что это не твое. Бросай!
Программирование — это не профессия, это диагноз.
Главное, что ты — пытался, но возможно что твое призвание в другом.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *