Перевод статьи «10 Things I Wish I Knew When I Started Programming».

1. Мы гораздо больше времени проводим за чтением кода, чем за его написанием
Если вы нашли самый быстрый и просто потрясающий способ что-то выразить, это еще не гарантирует, что это самый лучший ваш код.
Оптимизируйте свой код для читателя, и это принесет вам успех в долгосрочной перспективе. Мне случалось работать с кодом более чем 20-летней давности, и могу сказать, что если код легко читать и понимать, то это счастье.
2. Не бойтесь писать плохой код
Вам не обязательно писать превосходный код с первой попытки. Вместо этого сначала стоит сфокусироваться на решении проблемы. Когда у вас уже есть рабочее решение, переходите на следующий уровень и улучшайте свой код.
Сделайте его более читаемым, более поддерживаемым и более выразительным. Это поможет не только вашим коллегам, но и вам самому в будущем.
3. Работа разработчика программ заключается не только в наборе кода в текстовом редакторе
Есть еще и митинги, и необходимость обдумывать различные способы решения проблем, и сотрудничество с другими людьми. Также нужно время от времени делать перерывы в работе. Сидеть за компьютером и писать код это лишь одна из многих задач и уж точно не единственная.
4. Нужно знать больше одного языка программирования
Когда вы еще только начинаете, вам кажется, что ваша цель – стать лучшим JavaScript- или C#-разработчиком. Это не так.
Любой язык программирования это лишь один из инструментов в вашем арсенале. В зависимости от обстоятельств вы можете выбрать как молоток, так и отвертку.
В течение вашей карьеры вы познакомитесь со многими инструментами. Некоторые из них навсегда останутся в вашем наборе, другие могут быть заменены.
5. Гуглить или искать ответы на StackOverflow это не стыдно
Разработчики стремятся не только находить лучшие решения для определенных проблем, но и создавать собственные, уникальные.
Это благородное стремление, но мы также должны быть эффективными работниками. Нам нужно, чтобы цена разработки оставалась низкой. Поэтому не только нормально, но даже и похвально стараться найти готовые решения в интернете.
Разбивка массива, объединение файлов, открытие потоков, сортировка данных – вещи такого рода не нужно изобретать заново. И хотя в университетах хотят внушить каждому студенту, что он должен разрабатывать алгоритмы самостоятельно, – это неправильный подход. Важно уметь выбрать лучший алгоритм для решения имеющейся задачи.

6. Работа в команде не замедляет вас
Самостоятельное написание кода очень продуктивно. Вам не приходится объяснять свой код кому-либо, вам нет нужды спорить о том, какое решение будет самым подходящим.
Но это продуктивно только в краткосрочной перспективе. На самом деле очень важно обсуждать свой код с коллегами и немного изменять его тут и там, чтобы сделать более поддерживаемым, расширяемым и понятным в будущем.
Нет ничего более дорогостоящего, чем неподдерживаемый код, в котором никто ничего понять не может. Мне такой код попадался, и работа с ним была сомнительным удовольствием.
7. Код джуниоров не обязательно хуже, чем код сеньоров
Джуниор может написать код решения какой-то проблемы даже лучше, чем сеньор, потому что целый день решает однотипные задачи.
Сеньоров чаще привлекают к решению сложных задач в различных частях продукта. Джуниоры, в свою очередь, чаще наслаждаются роскошью длительной работы над одной программой или частью программы. Это позволяет им лучше разобраться в определенной сфере.
Будучи джуниором – верьте в себя. Если вы и ошибетесь пару раз в неделю, ваши коллеги будут рады вам помочь.
8. Переключение между задачами убивает концентрацию
Хотя вы учитесь справляться с прерываниями, они все равно вредят вашей продуктивности. Чтобы сократить их количество, можно хотя бы планировать встречи на начало или конец рабочего дня.
Если вы, не поднимая головы, работаете над каким-то алгоритмом, вам не стоит останавливаться, пока не решите свою задачу. И если это происходит в open space, то лучше использовать наушники.
Наушники подают окружающим сигнал о том, что вы работаете над сложной задачей и что прерывать вас нужно только в случае пожара. В последнем случае не забывайте: git commit, git push, бежать!

9. Смена языка программирования это не конец света
Вы можете быть ниндзя, рок-звездой и супер-гуру в каком-то одном языке и при этом совершенным новичком в другом.
Если для пользы проекта требуется сменить язык, вы не начинаете изучать его с нуля. Если вы понимаете механизм, стоящий за языком программирования, вы сможете изучить новый язык достаточно быстро.
Это особенно касается языков, в основе которых лежат одни и те же принципы и парадигмы, пример – объектно-ориентированные языки программирования.
Как говорится, если вы знаете одного члена семьи, вы знаете и всю семью.
10. Работать нужно не тяжело, а с умом
Порой самое очевидное решение вовсе не требует сотен строк кода. А в других случаях, чтобы найти самое лучшее и простое решение, нужно сделать шаг назад и посмотреть на программу во второй или даже третий раз.
Зачастую вторая или третья идея будет лучше первой. Начинайте с малого, а затем дорабатывайте. Не всегда стоит останавливаться на первой попытке.
Бонус: вы знаете больше, чем вам кажется
Порой я не могу сказать, чему научился за прошлую неделю или даже месяц, но поверьте: мы учимся чему-то каждый день.
Путь к тому, чтобы стать более опытным разработчиком, состоит из миллиона маленьких шажков. Никогда не прекращайте учиться и будьте открыты для новых решений. Даже если вы решали какую-то задачу неоднократно, при каждом новом решении может появиться возможность слегка улучшить свой код.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
Хорошая статья, как раз сделал перерывчик в работе)