Программирование характера

КОЛОНКА КАРЬЕРЫ

Программирование-это упражнение в обучении тому, как учиться. Начинайте с малого, практикуйтесь часто и не бойтесь ошибаться, советует Атма Иванчевич.
  1. Атма Иванчевич
    1. Атма Иванчевич-постдок по биоинформатике в Университете Колорадо в Боулдере. Она изучает древние ретровирусы: генетические паразиты. Которые вторглись к нашим предкам миллионы лет назад и до сих пор играют важную роль в современных болезнях. Вы можете связаться с ней в Twitter, LinkedIn, GitHub или в ее блоге Jumpin’ Genes.

Иллюстрация программиста, кодирующего новый проект, со значками языка программы, висящими вокруг его стола

Многие программисты говорят, что самое сложное-это начать.

— У меня нет времени учиться этому. — Мы все это говорили-некоторые из нас все еще говорят это. Многие мечтают быть более сведущими в данных и поэтому решают изучить R (или Python. Или C. Или любой другой язык программирования

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

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

1. Поставьте перед собой цели, которые сразу же помогут вам в повседневной жизни. Я всегда интересовался программированием.

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

Вместо этого, то, что я узнал, произошло потому. Что мне нужно было что-то сделать, быстро. Когда я начал готовить рисунки к публикации, я узнал , как использовать ggplot2, пакет визуализации данных в R. Когда мне нужно было написать 200-страничную диссертацию. Я узнал о чудесах системы набора латекса. Инструменты командной строки (например, awk и sed) помогли мне быстро манипулировать большими таблицами и текстовыми файлами.

Блокноты Jupyter позволили мне вести подробные заметки и выполнять исследовательский анализ путем тестирования фрагментов Python код. Вычислительные кластеры дали мне возможность параллельно выполнять тысячи вычислительно интенсивных заданий. Вместо того. Чтобы учиться ради этого, вы должны ставить перед собой цели, которые сразу же окажутся полезными.

2. Не пытайтесь узнать все сразу. Точно так же не пугайтесь перспективы изучения целого нового языка. Вам не нужно изучать все Вы обнаружите, что со временем синтаксис языка станет проще. И вы всегда сможете обратиться к справочному материалу.

Самый быстрый способ научиться-это сразу же прыгнуть и начать играть.

3. Разделите задачи на достижимые куски. Программирование-это все о решении проблем. Подумайте о том, чего вы хотите достичь, и запишите ряд шагов, которые приведут вас к вашей цели. Затем все, что вам нужно сделать, это проработать каждый шаг и сшить их вместе. Ваше первое решение не должно быть элегантным или всеобъемлющим; оно просто должно работать достаточно хорошо. Чтобы вы могли перейти к следующему шагу.

4. Не бойтесь ломать вещи. Самый быстрый способ узнать, как что-то работает, — это сломать его, а затем попытаться исправить.

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

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

5. Узнайте о контроле версий. Вы хотите убедиться, что ваши действительно важные файлы и сценарии сохранены. Это не означает сохранение их с различными названиями и датами на безымянных USB-накопителях. Системы контроля версий существуют именно для того. Чтобы вам не приходилось беспокоиться о запоминании каждого изменения исходного кода или документов. Я большой поклонник Git — потому что с пятью основными командами и без экспертных знаний я мог использовать его с удовольствием в течение многих лет.

6. Спросите других разработчиков.

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

7. Никогда не повторяйте больше одного раза. Хорошие программисты трудолюбивы; великие программисты ленивы. Настолько ленивые, что отказываются выполнять черную работу. Нужно ли переставлять столбцы в электронной таблице?

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

8. Запланируйте В моей докторской лаборатории мы провели утренний ритуал во вторник. С 9 до 10 утра мы практиковались в программировании на языке Go, решая задачи на платформе Rosalind, предназначенной для тех. Кто изучает биоинформатику.

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

С тех пор все мы переехали из одной страны в другую. Но такое регулярное время обучения остается неотъемлемой частью моей еженедельной рутины. Каждую неделю я выделяю час, чтобы узнать что-то новое. Иногда речь идет о том, как использовать новый пакет R. Иногда это классный новый программный инструмент, который я видел в Твиттере и собирался попробовать. Иногда я работаю в группе, иногда это только я. Независимо от того, насколько я занят, мое время обучения поддерживает меня в здравом уме и обеспечивает медленный. Но устойчивый прогресс.

Многие университеты и компании проводят вводные семинары по общим языкам программирования и методам их проведения. На них часто стоит пойти. Даже если вы не новичок: вы встретите коллег-программистов и сможете принести свои собственные вопросы. Чтобы задать их демонстрантам. Многие ученые также собираются вместе, чтобы программировать, завтракать и общаться. Так что обязательно загляните в свои местные группы встреч.

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

Codecademy: Хорошо подходит для изучения основ широко используемых языков (например, Python).

Учебникпо R : Введение в распространенные случаи использования R.

LinuxCommand.org: Отличный сайт по основному использованию командной строки.

Учебные ресурсы Coppola Lab Bioinformatics: Невероятно полное руководство по всем вопросам биоинформатики.

Explainshell.com: Полезный веб-сайт для изучения команд оболочки.

xkcd: Безопасное место для того. Когда все перестает работать.

Это статья из сообщества Nature Careers Community. Где читатели Nature могут поделиться своим профессиональным опытом и советами. Приветствуются гостевые посты. Вы можете связаться с редактором по адресу naturecareerseditor@nature.com.

Последние новости:

Инструктаж по природе

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

Статьи по теме

Предметы