Я выучил испанский и французский языки разными способами:

-Управляемые и неуправляемые — «управляемая» практика — это обучение в классе или у Rosetta Stone. «Неуправляемая» практика относится к попыткам договориться об аренде, понять материал моего Учителя и даже завести друзей.

-Пассив и актив — «пассивная» практика — это следование учебнику или изучение карточек. «Активная» практика — это слушать кого-то или пытаться составить собственное предложение.

После 6 месяцев изучения Python я вижу, что это все необходимые подходы для изучения (любого) языка во взрослом возрасте. Я надеюсь, что этот пост будет полезен для тех, кто имеет гуманитарное образование, для того, чтобы приблизиться к вашему первому компьютерному языку. ПРИМЕЧАНИЕ. Для всех языков — я узнал, что погружение — самый быстрый способ изучения.

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

print(“hola mundo!”)
output: hola mundo!
some_list: [“1”, “2”, “3”]
for item in some_list:
    print item
output:
1
2
3

Легко, верно?

Управляемое пассивное обучение:

Я начал свой путь с DataQuest и Codecademy, которые чем-то напоминают Розеттские камни кода. Вам показывают какой-то код, вы его копируете. Затем сами управляемые упражнения постепенно усложняются. Это отличный способ для взрослых понять, как выглядит язык и как он работает. Всегда есть доступный код решения, как и в Rosetta Stone, он всегда повторит слово для вас, если вам нужно. Вы идете в своем собственном темпе.

Если бы я не начал свой класс, я бы никогда не стал кодером. Период. Как и когда я использовал Rosetta Stone для изучения французского языка, DataQuest — это просто введение — мне нужно было больше, чтобы свободно говорить.

Управляемое активное обучение:

В первые несколько недель Data Science Immersive на General Assembly нам дали несколько типов лекций (кодирование, слайд-стиль, доска, интерактив и т. д.) и упражнения, называемые «лабораториями». Некоторые из них были сосредоточены на том, как преобразовать математические и статистические формулы в Python, в то время как другие заставляли нас «думать как компьютер» — понимая, что машина воспринимает все буквально, а порядок важен.

Это та часть, где разочарование из-за отсутствия ответов заставляет ваш мозг работать — активное обучение. Каждая лаборатория давала четкие инструкции о том, что делать — т. е. желаемый результат очень ясен — но именно тогда я познакомился с *документами*, также известными как документация.

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

Неуправляемое, пассивное обучение:

Это то, что многие из нас в классе называют «кроличьей норой». Неуправляемое пассивное обучение в Python

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

np.corrcoef(X_list_sqft, Y_list_price)
#trying to find the r value(correlation between a list of square feet and a list of prices of homes)
#Why is this giving me a whole matrix, instead of just the r value? Go to docs:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html

- Тогда вы не понимаете, о чем говорится в документации, поэтому смотрите на исходный код (как разработчик написал код для выполнения указанной функции).

def corrcoef(x, y=None, rowvar=1, bias=np._NoValue, ddof=np._NoValue):
“””Return Pearson product-moment correlation coefficients.
Please refer to the documentation for `cov` for more detail. The
relationship between the correlation coefficient matrix, `R`, and the
covariance matrix, `C`, is
.. math:: R_{ij} = \\frac{ C_{ij} } { \\sqrt{ C_{ii} * C_{jj} } }
The values of `R` are between -1 and 1, inclusive.

-А! Вы забыли математику? Вернитесь назад и посмотрите на формулу… Затем вы ошеломлены тем, как работает исходный код, и надеетесь, что Google спасет вас.

Google, как мне получить одно значение r для моих коэффициентов?

Ответ: Stack Overflow (платформа для обмена вопросами и ответами о коде) показывает, как вернуть только значение r вместо матрицы:

np.corrcoef(X_list_sqft, Y_list_price)[0,1] 
#since the type of the matrix is an “array”, you can slice it by the index
#Solved!

-(через два часа...) Итак, где мы были? Эта «кроличья нора» может быть одним из самых разочаровывающих способов обучения. Однако важно помнить, что этот тип обучения имеет ценность!! Приходя к пониманию самостоятельно, вы готовитесь к неуправляемому, активному обучению.

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

Неуправляемое активное обучение:

Для меня это напоминает мне о том, как мне пришлось договариваться об аренде с моей квартирной хозяйкой в ​​Лионе, Франция. У меня была цель (бюджет) и потребность (крыша над головой). Когда я познакомился с этой женщиной, у меня не было ни смартфона, ни даже словаря. Мне приходилось использовать только тот французский язык, который я знал, чтобы получить то, что мне было нужно. Затем мне пришлось подписать договор аренды (и, надеюсь, я понял условия!)

Я считаю, что рабочий мир будет таким в большинстве дней, но наши инструкторы пытаются смоделировать это в проектах и ​​некоторых лабораторных работах, которые мы начинаем делать сейчас (неделя 4 из 12). У нас есть цель, и нам дана разная степень побуждения. Например, иногда данные предоставляются, скоро нам придется самим собирать их из Интернета!

Затем мы отвечаем на чрезвычайно общие вопросы, такие как:

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

Больше сравнений Python и испанского:

Компьютеры буквально. Люди образны/интуитивны.

  • Если вы напишете что-то неправильно по-испански, человек попытается это понять. Python выдаст сообщение об ошибке.
  • «Типы» в Python подобны частям речи в разговорном языке, поэтому синтаксис важен для беглой речи. Но — люди будут пытаться «вставить» местоимения и другие маленькие слова, которые обычно сбивают вас с толку, потому что общение — это цель, а не точное направление. То есть общение идет двумя путями, код практически однонаправлен (за исключением сообщений об ошибках).
  • С другой стороны, люди часто неправильно понимают друг друга, потому что мы пытаемся понять друг друга. Python всегда будет выдавать ошибку, если вы сделаете синтаксическую ошибку.

Осторожно, однако!! Если вы просите Python что-то сделать, и ваш синтаксис правильный, вы вызвали правильные функции для типов, которые допускают эту функцию, и т. д. — вы ВСЕ ЕЩЕ можете получить неправильный ответ. Но компьютер не будет смотреть на вас смешно, когда вы говорите ему что-то безумное.