С толкова много хора, които се впускат в науката за данни, как можете да различите страхотен R кодер от останалите?

В новата ера на науката за данните всички се качват на бандата. Служителите за подбор на персонал получават автобиографии и автобиографии с целия жаргон в тях: R, Python, Javascript, каквото и да е. В много случаи хората поставят умение в автобиографията си въз основа на едноседмична сесия в колежа или няколко курса в Datacamp.

Най-добрият начин да определите нечии умения в конкретен език за програмиране е да му поставите задача и да видите как се справя. Не можете просто да се доверите на думи от уста на уста за тези неща и наистина не искате да имате някой във вашия екип или организация, който не е в състояние да се справи с критичните умения, от които се нуждаете.

Задаването на практически упражнения за програмиране предлага две предимства. Първо, можете да проверите дали индивидът знае как да подходи и да реши проблема и може да действа донякъде независимо в работата си. Второ, можете да идентифицирате поведение при кодиране, което е показателно за висококвалифицирани програмисти.

Ето пет такива поведения за R кодери по-специално, много от които вярвам, че се прилагат в различните други езици за програмиране:

Коментиране

Без значение какъв е езикът, страхотните програмисти коментират добре и често. Това показва загриженост за възпроизводимостта и вероятно показва, че те знаят от опит колко е важно да се коментира.

Къде и колко често да коментирате е въпрос на преценка и зависи от сложността на задачата, но страхотните програмисти коментират на разумно подробно ниво. Например:

# load libraries
library(dplyr)
#' Function to search starwars names by first letter of name
#'
#' @param x Character value to search as first letter
#'
#' @return a vector of names
first_letter_char_search <- function(x) {
  starwars %>%
    dplyr::mutate(first_letter = substr(name, 1, 1)) %>%
    dplyr::filter(first_letter == x) %>%
    dplyr::select(name)
}

Форматиране

Форматирането на кода е толкова важно за лесното четене и разбиране на работата. Правилно форматираният код показва, че програмистът е отделил време и усилия, за да гарантира, че неговият или нейният код е възможно най-четлив, което отново се отразява на възпроизводимостта и бъдещото сътрудничество.

Доброто форматиране също показва, че програмистът е наясно с конвенциите за форматиране на техния език, което обикновено е знак, че има приличен опит в него. Ще видите някои типични конвенции за форматиране на R в кодовия блок по-горе (въпреки че в зависимост от устройството, на което разглеждате тази статия, това може да не се изобрази, както се надявам). Интервалът и отстъпът са сред най-фундаменталните аспекти на силното форматиране.

Пространство от имена

Това зависи от използвания език, но в езици като R пространството от имена показва загриженост за средата, в която работи кодиращият. За да бъде ясно, пространството от имена означава извикване на както функцията, така и нейния пакет във вашия код , а не само функцията. Например извикване на lubridate::ymd() вместо само ymd(). Отново в кодовия блок по-горе ще видите подходящо пространство между имената на функциите.

Пространството от имена има две предимства. Първо, предотвратява проблеми, при които две функции от различни пакети имат едно и също име. Ако заредите два пакета и и двата имат общо име на функция, R винаги ще използва функцията от последно заредения пакет, освен ако не поставите пространството за имена на вашата функция. Второ, помага на друг потребител да разбере кои пакети трябва да инсталира, ако разглежда фрагмент от вашия код.

Ефективност на кода

Големите програмисти ще имат загриженост за ефективността на кода и процесите си. Това може да приеме няколко форми:

  • Кодът, който се повтаря, може да бъде абстрахиран, така че една единствена функция да може да изпълнява повтарящата се работа. Вижте моята статия тук за повече информация.
  • Кодът, който има високо ниво на изчислителна интензивност, може да бъде реконструиран, за да се намали нежеланото дублиране или неефективните манипулации.
  • Кодът, който работи върху обекти на база данни, може да манипулира данните на сървъра колкото е възможно повече, за да избегне пренасянето на големи количества данни на локални машини - вижте другата ми статия тук.

Това може да бъде огромна разлика при идентифицирането на страхотни програмисти. Изпратиха ми код, който е абсурдно и безсмислено неефективен - където са необходими стотици редове, за да се направи възможното в шепа редове. По същия начин съм виждал код, който е толкова елегантен в своята абстракция и ефективност, че просто трябва да седнете и да се възхищавате на майстор на техния занаят в действие.

Почисти

Страхотните програмисти подреждат след себе си. Те не оставят неща да висят в тяхната среда, които биха могли да са в конфликт със следващата им задача или да доведат до уязвимости в сигурността. Най-честият проблем, който съм виждал, е когато хората пренебрегват прекъсването на връзката с базите данни, след като са извлекли това, от което се нуждаят. Обичам да виждам хубави подредени кодови блокове, където кодиращият е казал здравей и сбогом. Чудесно е да си учтив, дори и с бази данни.

Ако търсите или наемате програмисти, помислете как можете да зададете практически упражнения, за да тествате уменията им и вижте дали можете да идентифицирате някои от тези положителни поведения. Наистина го препоръчвам.

Първоначално бях чист математик, след това станах психометрик и специалист по данни. Страстен съм в прилагането на строгостта на всички тези дисциплини към сложни въпроси на хората. Аз също съм маниак на кодирането и огромен фен на японските ролеви игри. Намерете ме в LinkedIn или в Twitter.