Хотите стать разработчиком C#?

Полезности | создано: 23.07.2024 | опубликовано: 03.08.2024 | обновлено: 03.08.2024 | просмотров: 202

Эти советы от разработчика с опытом написания кода более 35 лет. Советы для тех, кто хочет стать разработчиком C#. Хотя, наверное, большую часть из них можно адресовать к разработчикам, которые пишут программы на других языках.

Обо мне

Я занимаюсь разработкой программного обеспечения более 35 лет (сейчас мне 50 лет). Начинал с 1989-го, а на платформе .NET с 2001 года, то есть, с момента ее выхода. Начинал писать программы еще на программируемых микрокалькуляторах (БЗ-34, МК-61, МК-52). Потом писал код на Fortran, DBase IV, Clipper 5.0, PHP, Perl и других языках программирования. После того, как в свет вышел C#, сделал выбор в пользу него и с тех пор кодирую на нем.

С начала 80-х прошлого века я жил на БАМе, поселке городского типа Новый Ургал. А в начале 90-х, кажется это был 1991 год, во время летних каникул, пошел работать монтером пути первого разряда на железную дорогу (Байкало-Амурская ж/д), чтобы заработать себе на свой первый компьютер. Моим первым компьютером стал ZX-Spectrum на базе процессора Zilog Z80. Именно на этом 8-битном компьютере я и стал писать мои первые программы, на языке Sinclair BASIC.

Уже немного позже я начал программировать в бесплатном QBasic, который поставлялся с MS-DOS.

Затем программирование перешло на платформу Windows, где уже с помощью Borland Delphi я писал программы совершенно другого уровня.

В итоге, начиная с января 2001 года, когда свет увидела новая платформа от Microsoft - пишу на этой самой платформе .NET на языке C#. С этого времени, как можно заметить, я в значительной степени привержен стеку Microsoft, и в частности, платформе .NET.

Мне нравится то, чем я занимаюсь. Мне повезло, что моё хобби переросно в профессию. В силу того, что я жил на Дальнем Востоке на БАМе, мне было предначертано стать железнодорожником и праздновать свой профессиональный праздник каждое первое воскресенье августа. И я даже отучился по специальности "Строительство железных дорог" в ХабИИЖТ почти два года... Но, как я уже сказал, мне повезло.

Благодаря советам добрых людей, я понял, чего я хочу от этой жизни. Теперь, в свою очередь, хочу дать несколько советов для тех, кто хочет стать разработчиком. Другими словами, хочу стать "добрым" человеком, который возможно поможет вам сделать правильный выбор и/или поможет эффективно "идти по карьерной лестнице".

Советы от опытного разработчика

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

  • Портфолио. Диплом не важен (у меня его нет). Если у вас нет диплома, то вам следует составить портфолио личных проектов, особенно, если вы претендуете на свою первую работу. Заведите, как я когда-то создал себе блог, потому что это самый лучший способ хранить портфолио. Пишите статьи, это очень помогает "собрать мысли в кучу". Учавствуйте в OpenSource проектах и/или создайте свой Open-Source проект. Докажите, что у вас есть способности к работе. Ваш код не обязательно должен быть идеальным, но он показывает, как вы думаете и как решаете проблемы.

  • Процессы в компании. Программирование, обычно, занимает от 50 до 60 процентов вашего времени. Остальное – встречи, митинги, консультации и прочие коммуникации. Вы должны узнать, как осуществляется управление проектами. Посмотрите и узнайте о методологиях Agile/Scrum. Пройдите курс, если можете. Вы никогда не получите работу, которая связана с чистым кодированием, так просто не бывает. Ожидается, что вы будете частью команды и будете понимать проект в целом.

  • Отношение. Покажите, что вам не все равно. Как это сделать? Написав хороший код, который удобочитаем и удобен в обслуживании. Это само по себе навык. Я говорю джуниорам: не пишите код для бизнеса, пишите его для других разработчиков. Как бы вы себя чувствовали, если бы взялись за проект, который был бы беспорядочным и сложным для понимания? Книг на эту тему предостаточно. Мне нравится Clean Code, но я знаю, что некоторым людям он не нравится. Не обязательно быть догматичным, просто подумайте о своей целевой аудитории. Дело не в бизнесе, а в разработчиках, которые рядом с вами.

  • Unit-тестирование. Пишите unit-тесты! Ради бога, пожалуйста, пишите тесты! Да, интеграционные тесты помогают, но ничто так не дисциплинирует код разработчика, как модульные тесты (unit-тестирование). Это поможет убедиться в том, что ваш код работает. Это научит вас писать такой код, который можно будет покрыть unit-тестами. Знайте, что нельзя покрыть тестами тот код, которые не подготовлен для этого!

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

  • Прагматичность. Будьте прагматичны. Вам нужно идеально спроектированное решение, мы это понимаем. Но бизнесу нужно то, что работает. Решение находится где-то посередине. Поделитесь своими опасениями с менеджером проекта. Получите поддержку, чтобы внести желаемые изменения, представив доказательства и объяснив, почему что-то должно быть написано именно так, как вы предлагаете.

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

  • Честность. На собеседовании всегда честно говорите о своих способностях. Подайте заявку на должность, которую, по вашему мнению, вы можете выполнить. Изучите компанию и ее предметную область. Задавайте вопросы об их продуктах и процессах разработки. Спросите про стек и инструменты, которые используются в повседневной работе.

  • Технический тест. Вам может быть предложено пройти технический тест. Не паникуйте. Обычно это делается для того, чтобы понять, как вы решаете проблемы, а не для того, чтобы "засыпать" вас на собеседовании. Документируйте свое решение и расскажите о своих мыслительных процессах, пишите summary и другие полезные комментарии. Ключевое слово "полезные". Всмомните про unit-тесты. Если вы не добавляете тесты - это своего рода "звоночек" для тех, что принимает решение.

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

  • ООП. Поскольку C# — это ООП, узнайте, что такое SOLID и как его применяют, а также для чего это всё было придумано. Это может показаться странным, но при правильном применении SOLID - это поможет создать хороший поддерживаемый слабо связанный код. Вас наверняка спросят об этом на собеседовании.

  • Облачные сервисы. Изучите облачные технологии. Например, AWS, Azure, Google GCP. Вам нужно понять, как они работают, какими механизмами управляются, какую пользу могут принести.

  • Самообучение. Курсы и треннинги от разных поставщиков этой услуги имеют разное качество, имейте в виду, что не всё и не всегда в них может отражать реальные проблемы бизнеса. Используйте курсы и треннинги, но не ждите, что на том основании, что вы их прошли, вам сразу же дадут любую работу и/или предложат желаемую должность.

  • Контроль версий кода. Изучите Git и стратегии ветвления (flow). Поймите разницу между merge и rebase. А знание чем отличается GitFlow от GitHubFlow поможет понять не только принципы и правила управления процессами в компании, но и четко "попадать" в эти процессы интуитивно.

Заключение

Философия статьи в том, что "моя дорога", мой опыт - это подтверждение того, что мы не знаем и как может произойти и произойдет ли вообще. Но порой мы получаем советы, которые могут изменить всю нашу жизнь. Главное не пропустить их. Помните, что всё завист только от вас. Одного желания - это очень мало, чтобы стать разработчиком. Но это первый шаг по своей дороге опыта. Также помните, что "программирование" - это большой труд, который требует огромный багаж знаний.

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