Однажды я выучил новый язык программирования за одну ночь.

Вернее, совсем не получилось.

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

Мы разделили нашу команду на две части, так что одна команда работала над кофеваркой, а другая работала над приложением для Android. Мы с другом работали над Android.

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

Итак, мы решили научиться программировать на Java за несколько часов, а затем начать работать над приложением. Мы обратились к курсу Java от Codecademy и начали пролистывать уроки.

Хотя до хакатона у нас обоих не было опыта разработки приложений для Java или Android, у нас обоих был приличный опыт программирования на Python и, в меньшей степени, на C++. Мой друг занимался машиностроением, а я — астрофизикой.

Удивительно, но мы смогли пройти уроки очень быстро. Мы оба прошли все уроки менее чем за 2 часа и начали работать над приложением для Android. Что нам нужно было сделать, так это заставить телефон общаться с кофеваркой по Bluetooth через микроконтроллер Arduino.

Мы просмотрели все необходимые API и начали просматривать учебные пособия, собирая код, чтобы заставить приложение работать. Несмотря на то, что мы только что изучили Java, это было не так уж плохо, потому что общие черты языков программирования очень похожи. Я обнаружил, что Java представляет собой смесь Python и C++.

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

Ничто не дается легко или бесплатно.

Так мы с другом выучили новый язык программирования всего за 2 часа? Несмотря на то, что приложение для Android было запущено и работает, я бы сказал, что мы на самом деле не научились программировать на Java. Мы только что изучили Java в достаточной степени, чтобы распознавать определенные шаблоны, которые мы могли бы объединить, чтобы создать простое приложение для Android.

Через несколько дней после хакатона я решил вернуться и посмотреть на код, который мы написали (точнее, собранный из дюжины разных туториалов), и обнаружил, что не могу распознать или вспомнить ни единого кусочка Java. Я совершенно забыл все, что я выучил!

Итак, мораль этой истории такова:

Ничто не дается легко или бесплатно.

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

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