Connect with us

Обучение

8 способов стать лучшим программистом

Настало время серьезно улучшить ваши навыки программирования. Давайте сделаем это!

Анна Гуляева

Опубликовано

/

     
     

Эстер Шиндлер пишет о технологиях с 1992 года, переводя язык технарей на привычный английский. За годы работы в IT она вынесла несколько советов, которые могут стать руководством к обучению программированию. Приводим для вас перевод её статьи.

Настало время серьезно улучшить ваши навыки программирования. Давайте сделаем это!

Это простая карьерная цель, но нельзя просто сказать себе “я хочу стать офигенным программистом”. Говоря “я хочу стать лучше”, вы должны знать, что включает в себя понятие “лучше”. Более того, слишком много людей стремятся к совершенствованию без понятия о том, как это сделать.

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

1. Напоминайте себе, как много вам нужно выучить

Первый шаг в обучении программированию – понять, что вы ничего не знаете. Это звучит очевидно, но опытные программисты знают, как долго можно преодолевать это заблуждение. Слишком многие студенты выпускаются с высокомерной установкой “Я лучше знаю” уверенные в том, что знают всё и должны доказать это каждому новому коллеге. Другими словами, позиция “Я знаю, что делаю!”, может встать на пути изучения чего-то нового.

2. Перестаньте пытаться доказать свою правоту

Чтобы стать не просто хорошим, а отличным, вам нужно учиться на опыте. Но будьте осторожны, опыт может научить нас повторять жалкое поведение и создавать плохие привычки. Мы все встречали программистов с восемью годами опыта… точнее, всего с годом опыта, но о котором они говорят в восемь раз чаще. Чтобы избежать этого синдрома, посмотрите на всё, что вы делаете и спросите себя: “Как я могу сделать это лучше?”.

Неопытные разработчики (как и слишком много опытных) смотрят на свой код, чтобы восхититься его великолепием. Они пишут тесты, чтобы доказать, что их код работает, вместо того, чтобы попытаться найти уязвимости. Действительно отличные программисты активно ищут свою неправоту, потому что знают, что обычно пользователи находят дефекты, которые упускают кодеры.

3. “Код работает” – это не конец, а начало

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

Но останавливаться на этом – это сделать моментальный снимок и ожидать, что он будет предметом искусства. Отличные программисты знают, что первая версия – это первая версия. Она работает (поздравляю!), но это ещё не все. Теперь улучшайте её.

Часть этого процесса – понять, что значит “улучшить”. Нужно сделать её быстрее? Проще документируемой? Используемой повторно? Более надежной? Ответ меняется с каждым приложением, но сам процесс не меняется.

4. Напишите его три раза

Хорошие программисты создают работающие программы. Отличные – программы, которые работают безукоризненно. Это редко случается с первого раза. Лучшее программное обеспечение обычно написано три раза:

  1. В первый раз вы пишете программу, чтобы доказать себе (или клиенту), что решение возможно. Кто-то может не понимать, что это просто опытный образец, но не вы.
  2. Во второй раз вы заставляете программу работать.
  3. В третий раз вы заставляете её работать правильно.

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

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

5. Читайте код. Читайте много кода.

Вы, вероятно, ожидали от меня этот совет, и это наиболее общая и наиболее ценная рекомендация для совершенствования навыков программирования. Менее очевидны причины, по которым чтение чужого кода так важно.

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

  • Как бы я написал этот блок? Что бы вы сделали по-другому, видите ли вы другое решение?
  • Чему я научился? Как я могу применить этот метод к коду, который я писал ранее?
  • Как я могу улучшить этот код? И если это open source источник и вы уверены, что ваше решение лучше, сделайте это.

Напишите код в стиле автора. Такая практика поможет вам попасть в голову человека, который писал программу. Это может улучшить вашу эмпатию.

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

Предупреждение: легко просто читать много кода, не становясь отличным программистом, как человек, который хочет стать писателем, читает отличную литературу, не совершенствуя собственную прозу. Многие разработчики смотрят на открытые исходники или другие источники, пытаясь “найти ответ”, или просто копируя и вставляя код, решающий такую же проблему. Это сделает вас даже хуже, как программиста, потому что вы просто принимаете чужую мудрость без её анализа. (Более того, этот код может быть полон багов, но так как вы его не разобрали, вы только что импортировали целую кучу багов).

6. Пишите код, а не выполняйте задания

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

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

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

7. Работайте один на один с другими разработчиками всегда, когда есть возможность

Слушать других людей – полезно. Это может быть совместное программирование, хакатон или группа программистов. Когда вы вносите вклад в проект с открытым исходным кодом, обращайте внимание на обратную связь от пользователей и других разработчиков. Что общего вы видите в их критике?

Возможно, вам повезет и вы найдете ментора, которому сможете доверить всё: от методов кодинга до карьерных решений. Не упустите такую возможность.

8. Изучайте методы, а не инструменты

Язык программирования, инструменты и методологии приходят и уходят. Вот почему вам лучше получить как можно больше опыта с разными языками и фреймворками. Сконцентрируйтесь на основах программирования, потому что они никогда не меняются, уделяйте больше внимания архитектуре. Если вы уверены, что есть лишь один верный путь что-то сделать, возможно, пора посмотреть правде в глаза. Догматы препятствуют вашему обучению и могут замедлить вашу способность адаптироваться к переменам.

Я могла бы продолжать, но ключевой принцип самосовершенствования – знать, когда остановиться.

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Новости

Google запустил курс по разработке AR-приложений

Многие эксперты называют дополненную реальность будущим мобайла. Не удивительно, что Google, и Apple активно развивают свои платформы дополненной реальности.

AppTractor

Опубликовано

/

Автор:

Однако саму разработку AR-приложений до сих пор мало кто понимает. Чтобы помочь новичкам, Google и Coursera запустили обучающий курс, который должен погрузить всех желающих в новую среду и помочь в освоении ARCore.

Курс рассчитан на тех, кто совсем не знаком с разработкой AR-программ. Продлится он 4 недели, материалы уже доступны, а первый тест можно будет пройти до 22 июля.

Если вам не нужен сертификат, то пройти обучение можно бесплатно.

Курс: https://www.coursera.org/learn/ar.

Комментарии
Продолжить чтение

Обучение

Как не застрять в обучении

Это один из самых популярных постов на Medium, получивший уже более 22 тысячи аплодисментов с начала месяца. Тони Мастрорио, со-основатель Whiteboardfree.com, рассказывает о том, как перейти от туториалов к разработке.

AppTractor

Опубликовано

/

Автор:

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

У каждого проекта, который я мог придумать, было несколько функций, которые я просто не знал, как реализовать. Я всегда спрашивал себя – как я могу приступить к работе над каким-либо проектом, если я даже не знаю половины того, что нужно для его завершения. Я всегда думал, что мне надо научиться большему, прежде чем я смогу сделать что-то сам.

Добро пожаловать в учебное чистилище

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

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

Например, когда я только начинал, я купил и посмотрел курс The Web Developer Bootcamp на Udemy – 43 часа видео по таким темам, как HTML, CSS, Bootstrap, JavaScript и jQuery. Я думал, что курс вышел отличный, но когда я закончил, я все еще не был готов делать собственные проекты.

Вместо этого я вернулся на сайт и купил еще The Complete Web Developer Course 2.0. И посмотрел еще 30 часов видео, охватывающих большинство тех же тем, что и первый курс!

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

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

Нет инструкций – нет проблем

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

Я решил сделать сайт вроде Stack Overflow, где пользователи могли бы регистрироваться, публиковать вопросы, отвечать, добавлять комментарии и даже вставлять видео непосредственно в свои сообщения.

Это казалось амбициозным проектом, но мне было все равно. Я хотел сделать что-то, что было вызовом для меня. И так как я недавно начал изучать Ruby on Rails и действительно наслаждался этим, я решил использовать Rails в качестве фреймворка для моего побочного проекта.

Было много всего, что я не знал, когда начал делать этот первый проект (так же, как и сейчас с каждым новым проектом, который я начинаю). Я не знал, как создать систему авторизации, реализовать разбиение на страницы или использовать AJAX в приложении Rails. Я не знал, как использовать рекурсию для реализации системы комментариев. На самом деле, я даже не знал, что такое рекурсия!

Начните с того, что вы знаете

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

Google стал моим лучшим другом. Это привело меня к Devise и oAuth Rails, которые я бы мог объединить для создания системы авторизации. Devise позволил бы моим пользователям создавать новые учетные записи и входить с ними в систему, а oAuth предоставил бы им возможность входить с использованием существующих учетных записей Google или Facebook.

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

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

Нормально просить о помощи

В редком случае, когда таким образом я не мог найти ответы, которые мне были нужны, я попросил о помощи на Stack Overflow. На некоторые из моих вопросов даже ответили (например, на этот, где я попросил о помощи с вложенными комментариями).

Хотя ни один из ответов не решил мою проблему сам по себе, они подсказали мне, где искать, и помогли продолжить работу и найти решение. Я понял, что Stack Overflow не так страшен, как его малюют, и каждый нуждается в помощи время от времени.

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

Из своего первого проекта узнал больше, чем из всего предыдущего года, потраченного на обучение. Самое главное – я получил навыки, которые действительно нужны успешному разработчику. Я научился решать проблемы и влезать в код, я впервые получил  восхитительное удовольствие от создания чего-то, что действительно работает. Не имеет никакого значения, что у проекта сейчас нет ни одного пользователя, или что дизайн не так уж прекрасен. Сам акт создания чего-то собственного преобразил меня.

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

Комментарии
Продолжить чтение

Новости

Магистратура ivi и МАИ «Управление процессом разработки программного обеспечения»

С сентября 2018 года стартует магистерская программа, созданная ivi совместно с МАИ – “Управление процессом разработки ПО”.

AppTractor

Опубликовано

/

Автор:

«Работа с вузами – глобальная тенденция всех отраслей, а в сфере IT – качественный метод взаимодействия с будущими специалистами и решения проблемы нехватки кадров. Участвуя в образовательном процессе, мы помогаем формировать учебные планы максимально эффективно как для ВУЗа, так и для студентов, корректируя набор дисциплин и подачу практических знаний таким образом, что ещё до окончания программы специалист вооружается практическими навыками, которые позволяют ему быстро адаптироваться в IT-среде. За время своего существования, мы нарастили качественную и достаточно эксклюзивную экспертизу, которой готовы делиться с будущими специалистами”, – говорит Евгений Россинский, директор по технологии онлайн-кинотеатра ivi и эксперт программы

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

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

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

Основные обучающие треки: язык программирования (Python, C#, Java и другие) и операционные системы, лицензирование ПО и подходы Open Source; подходы к управлению разработкой; работа с хранилищами данных и BI, реляционная алгебра и SQL; Прикладные решения для управления IT-проектами и техники работы руководителя IT-проекта.

Программа разработана совместно с бизнес-партнерами: ivi, «Диасофт», КРОК, Новые облачные технологии, «1С: Франчайзи Виктория».

Комментарии
Продолжить чтение

Новости

В Udacity появились курсы для разработчиков, ищущих работу

Udacity с Grow With Google создали 12 курсов для тех, кто ищет работу и готовится к прохождению интервью.

AppTractor

Опубликовано

/

Автор:

Udacity в блоге пишет:

С тех пор, как мы еще в 2014 году начали программы Nanodegree, наша команда помогала студентам в достижении рабочих целей – в получении оплачиваемой работы, карьерного роста и более высокой зарплаты.

Хотя Udacity отказалась от гарантии предоставления  работы в течение 6 месяцев выпускникам Nanodegree Plus, компания по-прежнему хочет оказывать своим студентам помощь в развитии карьеры.

Пилотный курс карьерной программы «Нетворкинг для карьерного успеха» был запущен еще в марте 2018, сейчас он дополнен еще 12 курсами, покрывающими множество аспектов – от персонального бренда до прохождения интервью и написания  сопроводительных писем.

Из них 4 ориентированы на начинающих и занимают от одного дня до одной недели, 2 касаются подготовки к интервью на Python и Swift и займут четыре недели, еще есть 6 однонедельных курсов для подготовки специалистов по:

 

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.