Тема для меня очень актуальная. Я школьник, учусь в 11 классе, занимаюсь программированием большую часть своего свободного времени. Сначала предыстория, чтобы обозначить мое положение в мире IT, обучения, работы и по списку.
Я начал программировать в 12 лет. Ходил на курсы по 3д моделированию (о да, я хотел делать игры), познакомился с парнем, который учил html, css по видео курсам. Для меня это было откровением, потому что я считал, что это очень сложно, непонятно. Моим опытом было создания сайта на юкозе мышкой и "о ужас, я все испортил", когда случайно зашел в редактор html блока.
Курсы были вполне годные, за пару недель я обогнал его и стремительно учился дальше. В 12 лет не так легко целенаправленно что-то читать, изучать конкретную тему. Гораздо легче для меня было придумывать идею (опять же, я их даже не придумывал — я сидел в школе и вдруг меня осеняло: вау, как классно было бы сделать сайт, в котором...). И до конца уроков я продумывал все, что мог продумать, прибегал домой, максимально быстро делал уроки и садился за комп. Дальше был сложный этап — как узнать как сделать что-то, если ты впринципе не представляешь, что тебе нужно. Максимум, что ты можешь — описать проблему, лаконично, с ключевыми словами, и тогда, может быть, ты найдешь ответ. Может даже на русском языке. Скажу сразу, что с английским у меня в 12 уже было довольно неплохо — ходил на курсы, все тип топ. Но роднее читать на русском — большой массив текста на русском языке пугает меньше, чем на английском.
Сложно было научиться писать сервер — поверьте, в 12 лет очень сложно скачать денвер, установить интерпретатор PHP даже по урокам. Но спустя некоторое время получилось.
Затык был на базах данных. Я долго долбился с запросами, чтобы хотя бы подсоединиться к MySQL. Каким я был крутым, когда наконец смог, это класс. Но тем не менее, это было похоже на большую темную комнату, где тебе нужно найти фонарик, чтобы от этого фонарика ты мог уже идти дальше легче. Классная ассоциация, да?
После сайтов я захотел научиться какому-нибудь серьезному языку. Скачал visual studio express, но написал функцию внутри функции — это, естественно, не скомпилировалось, и поругался на этот C++ и скачал NetBeans. Мне повезло и я написал свой первый метод не внутри public static void main
. Так я начал учить джаву, на которой писал еще очень долго. Опять же, проекты были разные и сами возникали — например, сделать голосового помощника, как у Тони Старка( я балдел и балдею по железному человеку). Когда гуглишь, гуглишь, гуглишь, то рано или поздно начинаешь привыкать к тому, что практически все можно нагуглить, узнать и изучить. И это оказывается не так сложно. Главное научиться учиться — в комменте под одним из постов на эту же тематику( по моему, со стороны студента) был этот комментарий, и я с ним полностью согласен. Уметь учиться — очень важно и, как мне кажется, является ключом ко всему.
В 10 классе учительница по ИКТ скинула мне пост ее друга, которому нужен был помощник в проекте. Язык — Java, который я к тому времени уже знал очень даже хорошо. К тому времени я уже успел от него отказаться в сторону Scala, но все равно не забывал. Сделал тестовое задание, где нужно было написать кусок кода для определения дней программистов, по моему, и написать тесты к нему. Он взял меня довольно скоро, потому что было не так много желающих и, как он сказал, уровень и энтузиазм был ниже. А я очень хотел работать: 10 класс, в школе вообще ничего не делаешь, времени много, свои проекты уже от чистого интереса начинают интересовать меньше. Хочется делать какой-то реальный продукт, полезный.
Я проработал там 3 месяца, после чего ушел. Платили 300 рублей в час — я был вполне доволен, да и работа была довольно интересная, но… Скучно. В основном задача была — дается ТЗ, ты в нем разбираешься ( тематика — индийская астрология), а потом пишешь немного кода. Я больше разбирался, чем писал и меня это не устраивало. Все равно человек, которому я помогал, дал мне очень сильный буст в плане серьезного программирования и отношения к работе. Так же он рассказал мне про Балтийский Научный Инженерный Конкурс.
За пару дней я написал функциональный реактивный аля React, но не React фреймворк на Kotlin Javascript SDK, занял 3 место, но это не важно — на конкурсе ко мне подходили 3 раза предложениями о работе. Я выбрал самое интересное — разработка мобильных приложений на React Native. Может, совпало, что тема проекта была схожая с работой, не знаю, но я начал там работать.
К слову, когда мы договаривались, я не знал о React, React Native ничего, буквально — "синтаксис для компонентов как HTML".
За неделю я обучился азам, react native, которых мне хватило, чтобы начать работать. Первое мое приложение я переписывал. Сначала написал, зная "азы", потом переписал, посмотрев другие проекты, поднаторев в самом RN. Получилось довольно годно, было круто. Оплата по проектам была, а не по времени — и это здорово, больше мотивации делать.
Работал я там до конца лета, сейчас в 11 классе не собираюсь, ибо ЕГЭ и все такое.
Вот такая предыстория. Долгая конечно, выглядит немного как "смотрите я вообще шарю и школьник, да да". Но написал только для того, чтобы сейчас, имея свою историю перед глазами, написать свои тезисы и мнение.
Не знаю, зачем он нужен. Я вроде и так уже много раз сказал, что считаю самым важным умением программиста — адаптироваться, где адаптироваться = уметь учиться.
Есть мнение, что ленивый программист — хороший программист. Я с ним не очень согласен — оно тру, когда ты уже программист и решаешь конкретную проблему, и твоя лень вынуждает тебя искать простые пути реализации. Зачастую можно полениться и сократить код или упростить архитектуру приложения. Но вот если ты вроде начинающий программист, то лень — главный враг. Враг возможностей. Да, наверное так я и закончу.
Если интересно — сейчас работаю над проектом memed(сайт).
Группа бета теста ВК
Чики пау, бинго бонго и джимбо джамбо.
К сожалению, не доступен сервер mySQL