Я бы хотел вам дать миллион полезных советов, но в голову пришло всего 27. Самые важные, на мой взгляд, спрятаны под номерами 14 и 26. Да, я разместил их в таком порядке, чтобы вы прочитали весь материал. Надеюсь, вам понравится.
  1. Вы учитесь, программируя. Единственный способ повысить свой уровень программирования — это программировать. Не позволяйте самоедству и неуверенности не дать вам даже попробовать.


  2. Программирование — это не подготовка к экзамену. И количество информации, которое вы сумели запомнить, не сыграет основную роль в работе.


  3. В процессе написания кода вполне приемлемо мухлевать. Я использую Google (Stackoverflow и прочее) для решения многих задач. И так делают многие программисты.


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


  5. Заниматься самообразованием — действительно непросто. Обсуждайте код с другими начинающими разработчиками. Это — лучший метод обучения для большинства людей.


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


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


  8. Существует большая разница между прописными и строчными буквами. Лично мне потребовалось некоторое время, чтобы научиться видеть различия между похожими символами. И пока вы не привыкнете, это может причинить вам некоторые неудобства при работе.


  9. Не пытайтесь понять всё и сразу. В самом начале я пытался выяснить «почему?» для каждой трудности в каждой задаче, с которой сталкивался. Это необязательно. Компьютеры настолько сложны, что вам всегда будет что изучать, и вы всё равно никогда не будете понимать абсолютно всё. Ничего страшного.


  10. Практикуйте парное программирование (pair programming), и почаще. Это самый быстрый способ, чтобы научиться программировать.


  11. Ищете партнёра для парного программирования? Воспользуйтесь группами! Предлагаем вам оставлять комментарии, для начала — под этим постом.
  12. Переписывание плохого кода — это часть процесса. Раньше я думал, что каждый написанный мною кусок кода должен быть идеальным. Но на самом деле его постепенное улучшение — внесение исправлений в ваш код — это нормально. Вы же не пишете книгу, после публикации которой уже ничего не поправишь.


  13. Существует правильный способ обратиться за помощью. В какой-то момент каждому может потребоваться помощь. Но прежде, чем просить помощи, убедитесь, что вы сделали следующие 4 вещи (на примере неправильно работающего метода):

    • проговорите про себя, что именно вы видите в методе, его нюансы;
    • чётко объясните самому себе, что вы ожидали получить в результате работы метода;
    • чётко объясните самому себе, что конкретно происходит;
    • объясните, почему вы считаете, что метод должен работать иначе.

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


  14. Вам не нужно быть математическим гением. Если вы не математик, это не значит, что вы не можете быть программистом.


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


  16. Митапы (Meet-ups) — это невероятно ценно. В самом начале они меня несколько пугали, но затем я освоился, и мне стало комфортно их посещать. И как только это случилось, я вдруг осознал, что существует множество таких же разработчиков, как и я.


  17. Избегайте конфликтов при слиянии кода (merge conflicts) в проектах, которых вы работаете не один. Это сделает вас счастливее. Мерж-конфликты раздражают. Поэтому когда я осознал, что могу избежать работы с ними, успевая замерджить всё до того, как это сделают мои коллеги по команде, я почувствовал себя счастливым.


  18. Признавать, что вы чего-то не знаете — это абсолютно нормально. Когда вы получите свое первое по-настоящему серьезное задание в качестве программиста, скорее всего, вы будете вести себя, будто бы все отлично, и вы всё понимаете. Не стоит притворяться. Никто не ожидает, что вы уже все знаете.


  19. Вам не нужно тратить 10 000 часов, чтобы достичь приемлемого уровня для того, чтобы устроиться на работу. На самом деле, вам нужно быть достаточно профессиональным, чтобы знать, как исправить свои ошибки, и уметь собраться и сконцентрироваться на решении проблем. Это занимает куда меньше 10 000 часов.


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


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


  22. Алгоритм похож на поиск имени в телефонной книге. Алгоритмы — это пошаговое приближение к цели, когда существует единственно верный следующий шаг. Говоря проще, это стратегия, которую вы выбрали, чтобы найти одно конкретное имя в телефонном справочнике.


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


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


  25. Заставьте компьютер думать, как это делает человек. Слишком многие люди создают впечатление, что вам нужно думать, как компьютер. На самом деле все наоборот


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


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


  28. Обучаться программированию — непросто. И именно поэтому оно того стоит!


Оглядываясь назад, я даже рад, что в начале своего пути был так наивен. Именно то, что я знал так мало, мотивировало меня критически думать обо всем, что я узнал потом. Автор: Кен Мазайка (Ken Mazaika), технический директор, соучредитель и ментор в @ thefirehoseproject.com

Что еще почитать:

Программирование — это сложно. Именно поэтому стоит его изучать

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