Обучение
25 уроков для начинающего разработчика
Это был странный переход и очень крутая кривая обучения. Это были яркие дни, которые ввели меня в мир профессиональной разработки. И вот 25 уроков, основанных на моем опыте и на том, что я узнала.
На самом деле я начала программировать задолго до того, как получила свою первую работу в качестве разработчика, делая сайты здесь и там для друзей и друзей друзей. Я выросла во времена диалапа, дискет и кассет — классический ребенок девяностых.
Моя первая настоящая работа в качестве разработчика была несколько случайной. Меня наняли новой маркетинговой девочкой, но закончилось все через полгода рефакторингом всего фронтенда мобильного приложения.
Это был странный переход и очень крутая кривая обучения. Это были яркие дни, которые ввели меня в мир профессиональной разработки.
И вот 25 уроков, основанных на моем опыте и на том, что я узнала.
1. Каждый в отрасли, по сути, самоучка. Технологии обычно развиваются слишком быстро, чтобы традиционные образовательные учреждения могли их догнать. Если вы хотите быстро во что-то погрузиться, вам лучше осваивать микро- и нано-степени и получать сертификаты, нежели готовиться и сдавать экзамены в течение трех лет.
2. Традиционное образование все еще полезно в фундаментальных исследованиях. Степень бакалавра — это один из способов попасть в индустрию, но это не единственный способ. Если ваш мозг более склонен к практике, чем к теории, и вы не хотите погашать студенческие ссуды в течение следующих 10 лет, в Интернете сейчас есть множество руководств и курсов.
3. Нужно быть постоянно любопытными. Вы постоянно задаете вопросы о том, как все работает и почему это работает — особенно в моменты озарения, когда все наконец становится на свои места.
4. Долгое время вы будете чувствовать, что не становитесь лучше — пока не посмотрите на свой старый код или не будете вынуждены что-то объяснять кому-то.
5. Для junior-разработчика количество кода имеет значение. Учиться программировать — это все равно как учиться писать. Чем больше вы пишете, тем больше вы начинаете замечать закономерности, неэффективные места и возможности их устранения.
6. Будучи junior-разработчиком, вы рано или поздно достигнете стадии всезнания и будете ощущать, что знаете все. В middle-квалификации вы обнаружите, что ваше эго, которое вы когда-то выставляли напоказ, постепенно сдувается. Будучи senior-ом, вы будете раздавать руководящие указания, чтобы направлять своих менее опытных коллег в правильном направлении, но вы также позволите им и самим работать, потому что это все часть процесса обучения через создание.
7. Ошибки возникают из-за пробелов в знаниях. Код — это акт перевода требований в «компьютерную речь». Что-то идет не так из-за того, что в “переводе” по вине разработчика возникают пробелы.
8. Когда люди говорят вам, что вы работаете по гибкой методологии, но не пускают вас в фазу планирования, которая напрямую вас касается, это не очень гибко.
9. Как разработчик, вы будете постоянно находиться в состоянии знания и незнания одновременно.
10. Форматирование является решающим фактором, когда речь заходит о читабельности.
11. Код является инструментом коммуникации. Пишите его так, чтобы он был читаемым и не состоял из секретных имен, понятных только посвященным. Из-за этого код не может самодокументироваться и быть кратким.
12. Шаблоны функционального программирования играют свою роль в упрощении. Объектно-ориентированные шаблоны также используются как инструмент организации и категоризации. Эти две модели не являются взаимоисключающими и сосуществуют при необходимости.
13. Адаптируйте код к условиям. Чрезмерная абстракция с целью достижений «лучших практик» может привести к увеличению технического долга в долгосрочной перспективе.
14. Любой код стареет. Код, который был идеальным пять месяцев назад, сегодня потенциально может стать неэффективным из-за изменений в требованиях, обновлений зависимостей или неучтенных ошибок и пробелов в логике.
15. Ваша база данных это все. Если она излишне сложна, то есть вероятность, что и ваш бэкэнд также будет перегруженным.
16. При работе в команде, плоский и автоматизированный процесс является решающим фактором производительности. Плоская структура означает, что вы можете быстрее перемещать код по конвейеру, а автоматизация означает меньше времени на ожидание кого-либо.
17. Наследование плохого кода — это обряд. Каждый проходит через это в какой-то момент в своей карьере. Но это также возможность учиться на чужих ошибках и возможность делать хорошие вещи для будущего развития программного обеспечения.
18. Вы будете постоянно убирать за другими и за собой. Это потому, что код похож на еду — если он не используется активно, то становится наследством и может испортиться со временем.
19. Баланс между работой и личной жизнью все еще актуален для разработчиков, потому что все мы люди. Не будьте стереотипом и не пренебрегайте собой, своими друзьями или своей семьей. Береги себя и не позволяй коду захватывать вас.
20. Если вы чувствуете, что находитесь на грани выгорания — остановитесь. Сделайте перерыв, а затем вернитесь — но для того, чтобы писать код, который имеет более высокую иерархию или личное значение для вас. Программное обеспечение — это интерфейс между клиентом и бизнесом. Как разработчики, мы действуем как сила, которая организует его. Вполне нормально спрыгнуть с корабля, если вы чувствуете, что на самом деле не вносите свой вклад — или просто не верите в это. Вы должны гордиться тем, что вы делаете. Независимо от того, где вы окажетесь, вы все равно будете получать приличный доход.
21. Не зацикливайтесь на чужом коде. Работайте с тем, что у вас есть. Сосредоточьтесь на улучшении себя, чтобы стать эталоном.
22. Если никто не зовет вас на собеседование, начните творить. Если у вас нет опыта, чтобы написать резюме, начните создавать. Если у вас есть свободные выходные и есть идея, начните создавать. Как разработчики, мы занимаемся созданием кода. Момент, когда мы останавливаемся, это день, когда мы рискуем стать частью управленческой команды.
23. Учитесь не просто кодить. Чем больше у вас область знаний, тем легче будет программировать ваши проекты. Это потому, что программирование превращает мир, его правила и процессы в цифровое представление реальности. Вы не можете эффективно создавать то, чего не понимаете.
24. Вы никогда не будете знать все, что нужно знать о коде — но идеи конечны. Лучше иметь большой набор идей и использовать их в качестве руководства в вашем процессе создания кода. Так вы получите более здоровое ПО.
25. Книги по программному обеспечению все еще стоят того, чтобы их читать и вкладываться в них. Именно в них глубоко изучаются большие идеи — особенно Робертом Мартином и Мартином Фаулером. Они боги нашей индустрии.
Заключение
Мое путешествие как разработчика было наполнено хорошим и плохим кодом, интересными решениями и не очень хорошими архитектурами.
По мере того, как я начинаю работать в одиночку, заниматься фрилансом и работой по контракту, мой опыт разработчика, безусловно, будет расти и двигаться по другой траектории.
Но пока я здесь и это мои уроки — спасибо, что прочитали. У вас есть свои уроки? Поделитесь ими в социальных сетях!