Полезные советы по программированию в с

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

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

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

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

Надеюсь, это поможет!

Образ мышления

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

Почему я в этом уверен? Я большой поклонник подхода «занимайся тем, что тебя увлекает». Да, выглядит как стандартное клише, но для меня это всегда срабатывало. И если вы начнете программировать, вам потребуется внутренняя мотивация. Страстное увлечение и любопытство помогают стать последовательным и дисциплинированным.

Помните: это не спринт. Это длинный марафон. Не ждите, что узнаете все в сразу. Так не бывает.

Освой C++ за 21 день

Совет номер два: постоянно учитесь

Одной из мои задач как инженера-программиста, всегда является отслеживает новых вещей, которые появляются в нашем мире: новые библиотеки, такие как ReactJS в 2013 году, веб-приложения, такие как SPA, PWA, технические тенденции, такие как Машинное Обучение, Искусственный интеллект, криптовалюты (Блокчейн Блокчейн Блокчейн!), и так далее.

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

Говоря о самопревозмогании, хочу дать совет №3: постарайтесь не перетруждаться. Вам не нужно начинать со сложных концепций или с самой сложной книги по алгоритмам.

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

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

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

Не сравнивайте себя с «опытными инженерами» или «кодером-гением» ‑ это совет №4. Во-первых, это неприемлемо. Во-вторых, вы еще только начинаете. Сосредоточьтесь на своем обучении.

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

Практика — это ключ. Найти способы изучить основные понятия и практиковаться в их использовании. Это совет № 5. Создание фундамента на основе концепций и теории важно, но оставайтесь практиком. Пытайтесь. Экспериментируйте. Мы рассмотрим это позже, но практика – ключевой момент!

Теория & Концепции

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

В свое время я учился в двух больших онлайн-курсах: Codecademy и CS50 в Гарварде.

Я узнал основы языка Python на Codecademy и языка C в CS50. Но мое мнение таково: вам нужно просто начать. Выберите один язык программирования и начните изучать основные понятия (переменные, if-else, циклы, структуры данных).

Будьте независимы от языка программирования. Язык – это только инструмент. Полезно глубоко знать язык, но также полезно изучать новые вещи. Лучшие разработчики, как правило, не идентифицируют себя как ____-разработчик. — Gayle Laakmann McDowell

Возможно, когда вы выберете курс, вас научат определенному языку программирования. Но не волнуйся! Сосредоточьтесь на основных понятиях (и, возможно, полюбите этот язык программирования, как я полюбил Python и Ruby).

Почему я выбрал эти курсы?

Поскольку я искал что-то, с чего можно начать, я хотел глубоко понять концепции и стать практиком. CS50 казался лучшим ресурсом для создания прочного фундамента.

David J. Malan определенно один из лучших мои профессоров. А Codecademy помогала мне в практике. Тренируйтесь, кодируйте все, что изучаете. Кодирование, кодирование и еще раз кодирование. Помните совет № 5? Найдите способы изучить концепции и практиковаться в их применении.

Другие ресурсы с великолепным контентом:

Введение в информатику (Computer Science) от Udacity. Он охватывает почти все, что вам нужно, чтобы разобраться в программировании. Курсы Udacity всегда отводят время на практику по каждой теории и концепции, которую вы изучаете.

Введение в алгоритмы от MIT научит вас алгоритмическому мышлению. Понимание алгоритмов и того, как они работают, — это самая важная вещь, которую вы должны изучить в начале своей карьеры программиста. Другими крупными ресурсами по этой теме являются такие книги как Введение в алгоритмы от CLRS и Алгоритмы Роберта Седвика (Robert Sedwick).

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

Тренировка, практика, кодирование, проектирование

Практика Практика Практика. Я не могу выразить, насколько важна практика, когда вы приступаете к обучению программированию.

Кодируйте. Много… Лучший способ стать отличным программистом – только практиковать –много. — Gayle Laakmann McDowell

Практика не только делает вас лучшим программистом, вы создаете уверенность в себе. Синдром самозванца – это вполне реальная вещь!

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

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

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

Все треки на Hacker Rank

Читайте также:  Полезные свойства овощей и фруктов видео

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

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

Я давний пользователь Quora, и однажды мне довелось прочитать замечательный ответ Veni Johanna о том, «Действительно ли спортивное программирование помогает улучшить знания и навыки разработчика?»

Я перечислю некоторые навыки, которые можно приобрести благодаря участию в соревнованиях по спортивному программированию:

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

Мне очень нравились ее комментарии, и я часто соглашался с каждым из них на все 100%. Взгляните на ее полный ответ. Очень советую. Это здорово!

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

  • Codeforces: это действительно хороший сайт для тренировки и обучения. Здесь есть куча задач. Редакторские заметки на сайте – это серьезный плюс (*Редакторские заметки: автор задачи пишет, как вы должны подходить к ее решению – какой алгоритм или структуру данных использовать).
  • Topcoder: этот сайт очень похож на Codeforces с точки зрения качества и редакторского подхода к задачам. Он также хорошо известен своими учебными материалами. Каждый материал (тьюториал) обучает некоторой технике, алгоритму или структуре данных.
  • Hacker Rank: как я уже говорил выше, на Hacker Rank имеется множество различных областей – алгоритмы, структуры данных, математика, языки программирования и т. д. Пользовательский интерфейс и средства предоставления информации для пользователей этого вэб-сайта являются преимуществом Hacker Rank, в результате он красиво оформлен и им легко пользоваться. Я использовал много Python Domain, чтобы выработать у себя хорошую основу навыков программирования на Python.
  • Hacker Earth и Code Chef – еще два очень хороших сайта.

Теперь вы можете выбрать веб-сайт и начать практиковать ????

Разработка проектов

Изучив основы, программируя и много практикуясь, я почувствовал, что застыл. Я начал искать возможности, чтобы подняться на новый уровень. Для меня это было разработкой проектов. Поэтому я изучил основы веб: HTML, CSS, Javascript и веб-фреймворки. Так я освоил Ruby on Rails (Ruby Web Framework) и Django (Python Web Framework).

Моим первым проектом стал мой собственный сайт. Затем я создал веб-сайт для ресторана моей мамы. Затем две игры: tic-tac-toe и snake. Все это были статические веб-сайты.

Я чувствовал, что готов разрабатывата комплексные веб-сайты. Поэтому я создал онлайновый книжный магазин с администраторской частью (администратор мог добавлять новые продукты, редактировать их, удалять их … все вещи CRUD), а клиентская часть позволяла регистрироваться, искать книги и покупать их. Я был очень счастлив, что смог закончить этот проект. К тому времени я уже успел многому научиться.

Примечание: CRUD – аббревиатура от слов create, read, update, delete, то есть создание, чтение, обновление, удаление.

Первым мои реальным продуктом, который я самостоятельно разработал, был веб-сайт, отвечающий требованиям Lavadeira. А сегодня я создаю веб-продукты Worldpackers и API для мобильных приложений для более чем 900 000 туристов и отелей, принимающих туристов во всем мире.

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

«Я просто не знал, с чего начать, потому что мне нужно было многому еще научиться, и я не чувствовал себя готовым к созданию приложения. Было так много разных вещей, которые следовало изучить, и различных способов сделать одно и тоже, что я просто застрял, пытаясь понять, что было более правильным или наилучшим. На этом этапе были важны две вещи: 1. Задать простую цель и попытайтесь изучить основы для достижения этой цели. 2. Избегать перфекционизма и делать все просто». – Дуг

Слушая рассказ Дуга, я почувствовал, что все, кто начинают, часто заостряют на какой-то стадии процесса. И это вполне нормально расстраиваться или просто не понимать, с чего начать.

«Мне помог мой друг, который уже создал простое приложение. Я спросил его, знает ли он наилучший способ сделать что-то конкретное, но правда оказалось в том, что он не знал, и я почувствовал себя более уверенно, зная, что мы оба не знаем правильных ответов». – Дуг

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

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

«Я разработал первую версию приложения и опубликовал ее в Play Store. Затем я узнал гораздо больше о Java / Kotlin / Android и смог реализовать больше функций в приложении. Но это был трудоемкий процесс. Мне потребовалась большая настойчивость» – Дуг

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

Сейчас Дуг работает как разработчик Android. У него есть два персональных проекта (мобильные приложения), которые публикуются в Play Маркете и входят в Worldpackers для Android.

«Я научился программировать, работая над множеством различных проектов веб-сайтов, начав в довольно молодом возрасте. Лучший способ приобрести новый навык – это практика, практика, практика. Неважно, что вы разрабатываете, поскольку вы что-то выбираете и приступаете к делу».Feross Aboukhadijeh

Читайте также:  Полезные сладости для детей интернет магазин

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

•       Работайте над параллельными проектами.

•       Купите и прочтите книги по программированию.

•       Работайте над параллельными проектами.

•       Пройдите курсы по Computer Science.

•       Работайте над параллельными проектами.

•       Читайте блоги по программированию.

•       Работайте над параллельными проектами.

Прочтите его полную историю здесь!

Вот список проектов, которые вы можете выполнить

А теперь пришло время помочь вам с реальными проектами!

•       Если вы геймер, вероятно, вы можете начать с Tic-Tac-Toe, Su-doku или Flappy Bird.

•       Если вы любите данные, вы можете заняяться вэб-скрэпингом или работать с биржевыми API для построения и анализа биржевых диаграмм.

•       Если вы хотите лучше понять пользовательский интерфейс, создайте собственный веб-сайт / портфолио.

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

У этого списка нет конца. Вот еще один список, который поможет вам выбрать проект. Но я согласен с Feross, неважно, что именно вы разрабатываете, просто что-то выбирайте и приступайте. Начинайте разрабатывать! У вас возникнут проблемы, вы возможно застрянете. Но вы МНОГОМУ научитесь!

Я знаю, что очень сложно поддерживать свой проект.

Чтобы контролировать себя самого, я нашел интересный проект, которым вы можете заниматься ежедневно. Он называется «100 дней кода». Вот его шаблон. Вы просто пишете ежедневный журнал о своем прогрессе и мыслях о проекте, который вы разрабатываете.

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

В поисках 100-дневных историй я нашел историю Эмили (Emily) – «Как я программировала каждый день в течение 365 дней». Это очень вдохновляющая история о самодисциплине и готовности научиться программировать.

Очень клево то, как она пишет о своих проектах и о том, как она училась в течение года. Проекты выполнялись для приложений iOS с использованием языка программирования Swift, для веб-разработки, используя весь стек (HTML, CSS, JS, Flask — Python и вэб-фреймворки).Прочитайте полную статью.

Поддерживайте мотивацию, продолжайте разрабатывать, продолжайте программировать! ????

Несколько полезных ресурсов

Полезные вэб-сайты, статьи и видео:

Вэб-сайты

  • freeCodeCamp – отличный сайт о вэб-разработке и программированию на JavaScript. Полностью бесплатный(YEY!).
  • Udemy, CodeSchool и Khan Academy предлагают очень похожие, но на Udemy есть платные курсы, Khan Academy бесплатна, а на CodeSchool есть как платные так и бесплатные курсы.
  • Не забудьте про MOOC’s: Udacity, Coursera, и edX. Все эти сайты содержат замечательные курсы. Попробуйте их изучать! ????

Читайте Twitter

  • Если вас интересует машинное обучение, читайте Andrew Ng!
  • По прикладному программированию мне нравится читать твиты от DHH (создателя Ruby on Rails), Dan Abramov (соавтор Redux), Tracy Chou (бывший сотрудник Quora, Pinterest), Quincy Larson (создатель freeCodeCamp), Preethi Kasireddy(инженер Blockchain), Dan Bader (runs Real Python) и так далее.

Людей, которые описывают свой опыт в медиа

  • Как успешно учиться и как программировать от Lydia Hallie
  • Как я за 1 год из бывшей модели превратилась в программного инженера от Madison Kanna
  • Основы CS от Vaidehi Joshi
  • Вот почему изучать программирование так сложно от Kevin Kononenko
  • Я хочу изучить программирование, но не знаю с чего начать от Robyn Silber

Vlogs & каналы YouTube

Мне очень нравится смотреть vlogs и смотреть образ жизни людей на YouTube.

  • Fun Fun Function — этот канал поддерживается Mattias Petter Johansson, бывшим инженером Spotify. Он начал с JavaScript, но в последнее время много говорит о развитии в целом. Мне очень нравится, как он формулирует свои идеи и представляет каждую тему.
  • Mayuko — инженер-программист iOS, работающий в Patreon. Она также рассказывает об инженерии и образе жизни в целом.
  • CS Dojo сосредоточен на советах и интервью программировании, алгоритмах и структурах данных. Этот канал от YK Sugishita, бывшего инженера Google в Канаде.
  • Joma Tech — самый забавный и интересный канал YouTube среди всех. Jonathan Ma – научный сотрудник из Facebook. Он рассказывает о своей инженерной жизни, а также дает советы по программированию на основе своего опыта интервью сотрудников из группы технологических компаний.

Вот и все!

Надеюсь, эта статья поможет вам начать.

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

Получайте удовольствие! Продолжайте обучение и программируйте.

Надеюсь моя статья поможет вам начать.

Читайте нас в телеграмме, vk

Перевод статьи TK: Actionable advice to start learning to cod

Источник

Предисловие

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

Так вот, чтобы минимизировать эти затраты, давайте «создадим» хорошего, а возможно и идеального начинающего программиста, с высоким потенциалом и светлыми горизонтами.

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

1. Будьте самостоятельными

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

2. Умейте спрашивать

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

Читайте также:  Полезен ли гранатовый сок при низком давлении

3. Постоянно развивайтесь

Все мы являемся свидетелями сногсшибательных темпов развития технологий. Особенно это касается нашей сферы деятельности. Помните, что многое, что преподавали вам в ВУЗе, к сожалению может очень быстро устареть, стать не актуальным. К счастью, это пока не касается фундаментальных технических наук. Будьте готовы к тому, что вам постоянно придется постигать что-то новое, разбираться в свежих инновационных технологиях и исследовать новые тенденции всё время, которое вы будете выступать в роли разработчика программного обеспечения. К тому же подрастающее поколение не дремлет и создает конкуренцию. Важно понимать и то, что для эффективного и быстро освоения технологии, нужно постоянно тренировать сам навык обучения и не давать ему атрофироваться.

4. Не бойтесь учиться оценивать

Вспоминая себя, вначале у меня была своеобразная боязнь оценки поставленной задачи. И я с переменным успехом то промахивался, то попадал. Могу вас сразу успокоить, эта задача является настолько не простой, что для её решения существует множество комплексных методик, разрабатываемых не одним поколением специалистов, и это не только в айти. Мне кажется, что я вас изрядно напугал. Ну да ничего, поймаете пару ударов граблями, угостите пивом более опытных коллег, чтобы разузнать их ноу-хау, и у вас будет базовый навык эстимации задач. Со временем, приобретая опыт по решению различных задач, картина будет весьма ясной, например, вы без труда поймете, что на реализацию фичи «свистелка-пыхтелка на jQuery» понадобится 6 часов плюс 2 часа на риски. Так что это дело наживное.

5. Не забывайте о всей картине системы

Разрабатывая очередной класс, реализуя паттерн или же исправляя хитрый баг, не забывайте о всей картине создаваемого ПО. Иногда случается так, что в результате чрезмерно-увлечённой работы над каким-то участком кода сужается видимость проекта, что приводит к потенциальным конфликтам в коде, нелепым ошибкам и провоцирует появление узких мест в системе.
Старайтесь тренировать общее видение картины через распечатанные на бумаге диаграммы классов (либо ключевые её части), схемы алгоритмов, комплексные структуры данных и прочие важные компоненты. Это поможет в случае замешательства быстро освежить общее представление и вернутся в здравый ритм.

6. В меру используйте готовые решения

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

7. Цените свой труд

Не подходите к задаче, как одолжению, иначе от вас будет только вред. Цените то, что вы творите, ведь вы именно творите и создаете. Не пожалейте пары минут на оформление кода, согласно общепринятым стандартам в компании или команде. Вычистите свой результат, будьте педантичны, воспитайте в себе эту привычку, если её еще нет. К примеру, если у вас «съехал» элемент интерфейса на несколько пикселей вправо, то не пожалейте времени поправить его, вернув на место. Обязательно проверяйте и запускайте результат своей деятельности, не перекладывайте всё на плечи без того загруженных инженеров по контролю качества. В итоге вас обязательно заметят и оценят по достоинству, и все, потому что вы цените то, что создаете.

8. Не будьте ленивыми

Комменты на хабре, просмотр роликов на ютубе и прочие скайпы во время простоев на работе — это не плохо, но гораздо лучше заниматься чем-то полезным как для себя, так и для коллег. Прочитали об интересной технологии, которую потенциально можно применить на проекте? Попробуйте её в деле — нагрузите тестами в песочнице, сравните полученные результаты с уже используемыми сходными технологиями, или же напишите «hello world» в виде движка для блога либо другой тривиальной (но не слишком) задачи. Также хорошо в свободное время можно создать что-то своё: будь то простенький greasemonkey-скрипт для любимого веб-ресурса, или же давно не дающая покоя оригинальная мысль для стартапа. В любом случае огромным плюсом после всего этого будет поддержание рабочего тонуса и, как следствие, хорошие результаты в решении новых задач.

9. Умейте правильно излагать свои мысли

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

10. Не ограничивайтесь своей ролью

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

Послесловие

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

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

Источник