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

Мое путешествие по самообучению и самореализации началось, даже не сказав мне об этом. Готовы присоединиться ко мне в Кроличьей норе?

22 января :

Я показывал свой календарь активности на Kaggle младшему брату и объяснял ему с энтузиазмом школьника. Объясняя новый вид работы, который есть у многих. Вы уже догадались, Data Job. Я хотел заняться визуализацией данных и наукой о данных в 2022 году.

Насколько важно для меня уйти с работы и начать заниматься наукой о данных и визуализацией. Я хочу уволиться с работы в ближайшие 4 месяца и устроиться на работу, связанную с данными.

Мне потребуется еще 10 месяцев, чтобы бросить работу. Как видно из графика выше, я перестал использовать Kaggle. Понимаете иронию, чтобы чем-то насладиться, нужно это бросить. В процессе поиска работы, связанной с данными, мои знания в этой области должны были увеличиться. Далее вы прочтете ряд откровений, книг, языков программирования, библиотек, которые я выучил, чтобы обрести уверенность, а затем уволиться с работы.

Любой может предложить вам работу. Только ваша работа может вселить в вас уверенность. — Камалрадж Псевдоним Solverbot

Я проснулся в 4:00 и начал свою практику и исследования в нескольких областях, работал на дневной работе. Затем продолжил свои занятия до ночи 23:00. Все это для того, чтобы понять ландшафт проблем программирования, тип работы с данными, решения и вовлеченные компании. Я знал, что получить работу будет легко. Но держать его будет совсем другая игра…

22 февраля:

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

  1. Наука о данных с нуля
  2. Введение в вычисления и программирование

Грус подробно рассказывает о программировании через тестирование в науке о данных. Он открыл мне глаза на то, как на самом деле делается программирование. Я думал, что освоил программирование на Python, используя блокнот Jupyter. Я найду это, я не знал даже основ этого, 22 марта. В блокноте Jupyter «Вывод проверяется человеческими глазами». Грус сказал, что это неправильно, и изо всех сил отговаривал программистов от использования Jupyter Notebooks. Его точка зрения громкая и ясная

Программы, написанные программистом, должны быть проверены другой программой. Не человеческими глазами. Это разработка через тестирование.

Gutag познакомил меня с чем-то физическим в программировании. Он начинает с функционального программирования и переходит к объектно-ориентированному программированию, объясняя, как методы и функции должны соответствовать целям, вытекающим из требований. Это было больше похоже на создание механических деталей с размерами, предоставленными инженерами RnD, наряду с допусками и свойствами материала. Чтение Гутага нарисовало следующую картину.



Что некоторые объекты внутри компьютерной программы (не внутри компьютера) имеют свойства, которые может исправить программист. У этих объектов есть некоторая «запрограммированная работа», которую они могут выполнять над собой (собственным) и некоторыми другими объектами. Эти запрограммированные действия называются методами

Мне потребуется еще 6 месяцев, чтобы взять это понимание и преобразовать его в конкретный пример с использованием библиотеки p5.js. Столы — это объекты массового производства, и у них есть свойства. Таблицы, запрограммированные на P5.js, взаимодействуют, посмотрите по этой ссылке. Как я попал в Javascript, будет объяснено в графике 22 апреля.

22 марта:

Хорошо, мне нужно написать функции, а затем написать еще несколько функций, проверить функции. Я спросил себя, насколько сложным может быть написание функций? Именно тогда я понял, что каждая программа, работающая на разных платформах, является своего рода функциями, и они были «РЕШЕНИЕМ ПРОБЛЕМ»…. Мне пришлось освежить свои навыки решения проблем,

Написать функции и проверить, работают ли написанные функции в соответствии с заданным условием тестирования (целью). Автоматизируйте этот процесс. Это и есть программирование, или я так думал в марте 22 года.

Enter No Starch Нажмите https://nostarch.com/learn-code-solving-problems. Эта книга показала мне, как подготовиться к соревновательному программированию. Это была идеальная книга для освоения программирования и решения проблем. Самое лучшее в книге — это подобранный набор программ в соответствии с уровнем способности решать задачи.

Моя слабость поднялась, как кобра, обнажающая зубы. Я понятия не имел о Python на уровне написания функций, которых ожидала книга «Learn To Code». Нужно знать возможности языка программирования как свои пять пальцев, прежде чем можно будет решать настоящие проблемы.

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

Поиск такой книги был ключом. Я нашел Learn Python the Hard Way и More Learn Python the Hardway. В этой книге есть две вещи, необходимые для освоения языка программирования.

  1. Описывает важные концепции языка программирования простыми словами.
  2. Пример, который углубляет концепцию в ваш разум (не в мозг)

Как это сверлит? Простой. Введите все 55+ программ и запустите их в своей локальной среде. Другое условие — не двигаться вперед, пока текущая программа не будет успешно запущена.

Именно тогда я понял важность контроля версий и хранения моих программ на месте, которое можно легко восстановить. С этого момента Git и GitHub стали неотъемлемой частью моего учебного процесса.

Начало работы с GIT вошло в мою сферу Изучения списков. Git был необходим для написания программ и последующей загрузки готовых программ на Github. Поскольку для написания и отладки 55+ программ потребуется несколько дней, локальное размещение программ казалось рискованным. Если машина выйдет из строя, или если мне придется путешествовать, то размещение программ в Интернете имеет больше смысла. Создан репозиторий https://github.com/Kamalabot/PythonTheHardWay и сохранены все программы

Я решил выполнить все упражнения из книги Learn python the hard-way, а затем начать аналогичный процесс решения проблем из книги Learn to Code through Programming и сохранить их в репозитории Github под названием HowCompetitive.

22 апр.:

Тема набора программ при изучении нового языка программирования, библиотеки или инструмента станет важным поворотным моментом в моей жизни. Я был уверен в этом подходе и начал изучать Javascript, D3.js, p5.js, используя аналогичный подход, и хранил программы на GitHub. Я научился создавать страницы Github из репозитория, чтобы легче было обращаться к полученным знаниям.

  1. M3nD3: репозиторий Визуализация D3.js
  2. P5Learning: репозиторий для изучения библиотеки P5.js, альтернативы Javascript для языка обработки Java.
  3. JStheHardway: репозиторий для изучения языка Javascript с помощью Eloquent Javascript.

Мастерство программирования — это мастерство серии простых движений. Вход, проверка, обработка, проверка процесса, вывод и проверка вывода. Это то, что делает программа.

Вам нужно иметь Ката программ и практиковать шаги каждый день. — Чистый код

Я выбрал Кодовые войны как платформу для практики решения проблем. Потому что он предоставил формат Kata, с которым я познакомился в книге Чистый код. То, как я начал учиться и сохранять свои навыки программирования, изменилось. Мое мужество начало накапливаться, когда я начал выполнять большинство программ, которые писал, без особых проблем. Это будет важным шагом, когда я начал писать программы с использованием Pytube для загрузки видео и плейлистов с Youtube позже.

22 мая:

Войдите в май, и он уже пересек мою цель на 4 месяца. У меня даже близко не было своего резюме. Иметь работу было еще далеко от мечты. Ситуация с COVID медленно менялась, и жизнь возвращалась в нормальное русло. Люди начали путешествовать, и я искал способы попрактиковаться в D3.js. D3.js — это библиотека визуализации, которая работает на базовых уровнях HTML и CSS для построения графиков и диаграмм с использованием данных.

ObservableHQ — это веб-сайт, предоставляющий среду для практики D3.js. Это также рассадник для изучения 3D-программирования в JS, творческого программирования, математики. Он показал мне, как устроен ландшафт программирования с открытым исходным кодом. Создатель D3.js Майк Босток возглавлял проект ObservableHQ, и он создал вспомогательные библиотеки, такие как Plot, Vega и Vega-lite, чтобы сделать процесс визуализации данных еще проще.

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



На observableHQ я работал над дальнейшим улучшением своих знаний JavaScript, D3.js. Имея доступ к множеству практических тетрадей и тетрадей для курсов, написанных профессионалами, я понял, как работает D3.js и программирование в визуализации данных.

Я хотел решить некоторые реальные жизненные проблемы. Где можно применить концепции, которые я изучил в Python. Чтобы соответствовать моим ожиданиям, я нашел книгу 57 задач программирования.

Книга начинается с четкой цели сделать вас уверенным программистом. Не просто человек, выполняющий порученную вам работу. Формулировки проблем в этой книге написаны на простом английском языке, например, каковы будут требования клиента. После этого каждая проблема имеет дополнительные задачи для завершения.

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

Выполнение 57 задач было проще простого на питоне. А вот 57 задач в Javascript оказалось сложнее. Это привело меня к изучению интерфейсных JS-фреймворков (Svelte, NodeJs), программированию API (Express, SvelteKit), дальнейшему изучению нескольких библиотек Python (Pyspark, Psycopg2 и Kafka), освоению Boto3 в сервисах AWS. Мне пришлось вернуться к Python для перемещения огромного количества данных после анализа в базу данных.

Чтобы сделать программы Javascript полезными, требуется ввод данных пользователем. Входные данные нуждаются в интерфейсе. Вы когда-нибудь пробовали писать веб-страницы с помощью тегов HTML? Сначала попробуйте, прежде чем изучать какой-либо интерфейсный фреймворк. Почему? Вы столкнетесь с различными проблемами, уникальными для приложения, которое вы создаете. Основываясь на этих проблемах, вы начнете поиск интерфейсных фреймворков. как Vanilla JS или Svelte. Когда пользователь завершает ввод и отправляет… начинается асинхронное выполнение.

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

22 июня:

Изучение Javascript с помощью книг становилось узким местом. Я мог понять HTML, CSS и Jquery с помощью Книги по HTML и CSS и последующей Книги по Javascript и Jquery. Реализация их в реальном мире требовала изучения фреймворков Javascript, как объяснялось выше. Слова типа Tutorial Hell и Callback hell стали преобладать в моем ежедневном чтении. Бесконечное чтение, ввод программ, проверка ошибок и запуск программ становились длиннее день ото дня. Я знал, что мой способ обучения должен измениться. YouTube и PyTube — мои спасители и портал для 15 отличных учителей.

Я использовал YouTube в первую очередь для получения обновлений трейлеров видеоигр и просмотра прохождений игр, в которые играл theRadBrad. Оказалось, что на YouTube гораздо больше полезного контента, чем я мог себе представить.

Откат на месяц. В мае 22 года, когда я работал над ObservableHQ, я познакомился с творческим программированием на Javascript с использованием HTML5 и простого браузера. Именно тогда я познакомился со следующими создателями YouTube.

  1. Coding Train: все, что связано с Javascript
  2. Лаборатория Франка: креативное кодирование и программирование игр
  3. Free Code Camp: Все, что связано с программированием, ML, DV и DS
  4. Itversity: Связано с кластерными вычислениями, Spark, Kafka, AWS и потоковой передачей данных.
  5. Huntabyte: платформа SvelteKit и Svelte, используемая со многими базами данных, инструментами генерации схем и инструментами внешнего интерфейса.
  6. SimonDev: 3D-программирование на Javascript с использованием ресурсов из 3D-библиотек
  7. Ноу-хау AWS: Программист обучает других программистов лучшим возможностям AWS.

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

У меня есть бесплатные знания, которыми делятся бесчисленные умные ребята. Как я могу эффективно использовать его, освоить решение проблем и реализовать решение в JS.

  1. Я узнал, что реклама — худшая вещь. Они отвлекают вас от изучения чего-либо. Ответ: Не совсем YouTube Premium. Помните, я уже выучил Python. «Pytube — это ответ.
  2. Ютуберы намеренно говорят медленно, чтобы помочь своей аудитории понять их учение. Ответ: Ускорьте видео как минимум в 2 раза.

22 июля:

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

Мне нужно быть достаточно уверенным в себе, чтобы оставить мою текущую работу. Устроиться на новую работу не проблема.

Ответ пришел в виде программирования баз данных. Понимание SQL-запросов и написание SQL-скриптов для анализа данных вернуло уверенность в моих способностях к программированию. Я все время работал с данными, но никогда не думал о их хранении. Файлы CSV и XL были лучшим, что я мог придумать. Я использовал блокноты ObservableHQ и Kaggle. Там также файлы CSV используются для хранения и извлечения данных.

Shiffman @ The Coding train познакомил меня с новым взглядом на Javascript, рассказал, как работать с асинхронными функциями и возвратами. Он также научил, как использовать «Nedb в качестве бэкенда». Это небольшая аккуратная база данных, которая помещается прямо в ваш репозиторий. И это тип NoSql.

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

Причина, по которой я хотел использовать базу данных, заключается в том, что загрузка всех CSV-файлов из стороннего хранилища была медленной, хакерской и сложной для кодирования. Я усвоил это на собственном горьком опыте, когда хотел загрузить 12 000 с лишним записей об авариях Нью-Йорка в портативную базу данных. Это заняло несколько часов, и я отменил его. (После изучения PostgreSQL я загрузлю тот же файл в считанные секунды, используя команду COPY из приглашения psql.) База данных была написана профессионалами и поддерживала библиотеки. которые взаимодействовали с программами Python/JavaScript. Я должен быть быстрым правильно? Нет, если он используется неправильно и запрограммирован кем-то, кто не понимает, как работают части базы данных.

Объектно-ориентированное программирование стало очень важным, поскольку библиотеки, взаимодействующие с базой данных, создавали объекты подключения, которые имеют некоторые свойства и могут выполнять некоторые действия с базой данных.

22 августа

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

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

Текст,эти строки символов с пробелами между ними, которые основаны на углероде форм жизни, называемых Человекочтение. Да, это то, в чем Цукерберг был хорош, кроме того, он умел продвигать свой инструмент в различных школах США. Я понял, как должен был продвигаться FB, прежде чем многие студенты начали его использовать. FB одновременно боролся как с техническими, так и с бизнес-проблемами. Все было связано с тем, что «Текст» размещался перед пользователями в социальной сети.

Параллельно Shiffman @ Coding train объяснял Программирование с данными как полный список воспроизведения. Именно это я и искал. Python работает с загруженным в него текстом. Python может использовать веб-скраперы, такие как Beautifulsoup и Selenium, для получения данных из Интернета. В то время как фреймворки Javascript и JSразмещают сам текст на веб-страницах. Насколько проще должно быть работать с текстом с помощью JS. Нет, это было одинаково сложно. Пока я не разобрался с объектами JSON и как их создавать.

22 сентября: я ушел в отставку

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

Я загрузил свое резюме на Turning.com, и там меня попросили пройти тесты по концепциям Data Engineering. Вопросы содержали такие слова, как Pyspark, Airflow, Kafka — настоящий зоопарк названий других животных. Я сразу провалился на экзамене. Я проходил собеседование с одной из компаний, и они спросили меня, удобно ли мне получать данные из облачных служб Azure. И что немаловажно, требовались возможности SQL.

Мое знакомство с Data Engineering началось после моей отставки. Сервисы AWS, Boto3, Pyspark, Kafka и Airflow, где представлены некоторые из основных инструментов, которые использовались в основном машинном обучении и анализе данных. Мне посчастливилось иметь много плейлистов YouTube на Kafka, сервисах AWS, Boto3 и Pyspark, так что я мог подробно их изучать и практиковать. Я даже написал серию из 12 частей об AWS Boto3, когда изучал его.

Я познакомился со Svelte и Sveltekit и сразу влюбился в них. Было намного легче учиться и легче программировать. То, как он обрабатывает данные между сервером и внешним интерфейсом, очень интересно. Я сразу же погрузился в это и начал создавать диаграммы D3.js и начал играть с ними. Huntabyte представила новые базы данных, которые были в облаке, а некоторые из них были переносимыми. Я мог бы понять, чем будет заниматься каждый человек в технологической компании. Вот самый большой улов.

  1. WILCO:Площадка для обучения Front and Back-end фреймворку
  2. TryHackMe: площадка для обучения взлому серверов и компьютеров.

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

22 октября

Линукс и докеры. Они являются основой учебных пособий по Data Engineering. Будь то создание сервера Airflow или сеанса Pyspark, был сопровождающий файл Docker, который вытягивал машину Linux, на которой были установлены необходимые инструменты и библиотеки. Нужна база данных Postgres, просто скачайте ее из Docker Hub. Хотите написать сценарий дополнительной настройки после ее извлечения, затем напишите Dockerfile и создайте контейнеры.

Я был знаком с Linux в течение длительного времени. Со времен, когда Kali Linux был Backtrack и был основан на дистрибутиве Knoppix. Сегодня экосистема была обновлена, и обновление Linux стало проще простого с помощью видео и плейлистов на YouTube. Я большой поклонник DistroTube. Рассмотренные инструменты и предоставленные объяснения очень помогают в освоении Linux.

Я начал подробно изучать Linux и начал Binge — смотреть плейлисты на YouTube. Сценарии оболочки являются основой многих сервисов. Изучив сценарии оболочки, я могу написать свой собственный сервис. Такого рода идеи еще больше повысили мою уверенность. Затем появился Git — Flow или Git Actions. Он всегда присутствовал во всех моих репозиториях, но только в октябре я начал изучать его.

22 ноября

Машинное обучение и анализ данных являются конечными результатами серии задач Data Engineering. Начиная со сбора данных и заканчивая приемом данных, моделированием и, наконец, предоставлением вывода пользователю, есть много движущихся частей, в которых участвуют несколько команд. ITversity помог мне охватить все эти аспекты в ОДНОМ большом видеоплейлисте размером более 400 байт. Я смог освоить большую часть SQL-запросов после прохождения курса и связанного с ним репозитория Git. Параллельно я искал свой собственный DEthehardway Git repo, чтобы поддерживать все упражнения.

Я начал использовать несколько веб-сайтов, чтобы практиковать важные аспекты инженерии данных. SQL, Docker, Linux Shell Scripting и программирование ML. Регулярная работа над упражнениями — единственный способ сохранить свои навыки на высоте. Технологии возникают и исчезают, а ваши навыки остаются с вами.

  1. SQL: используя SQLZoo
  2. Linux Shell Scripting: Добрый профессор JNTU h поделился учебными пособиями
  3. Docker-упражнения: Git-репозиторий Vizuri
  4. Машинное обучение и наука о данных Ката: Веб-сайт Codewars.

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

22 декабря — настоящее время

Какой год обучения и исследований. Я полностью наслаждался каждым моментом бодрствования в этом году. На момент написания этой статьи я сам себе босс. Имея вид на пейзаж, оснащенный моим надежным ноутбуком с Linux на 2 ГБ на моей стороне, исследуя горизонт и ища интересные задания, которые можно взять и решить. 2022 год подготовил меня к предстоящим 80 летам жизни. Больше возможностей для исследования и обучения, когда многие вещи можно автоматизировать.

Я научился работать с простыми компьютерами и сетями в 2022 году. По мере того, как мир начнет меняться, большая часть оборудования будет превращена в товар и абстрагирована облачной инфраструктурой. Я уверен, что основы программирования останутся прежними. Функции остаются, как и объекты, на которые эти функции воздействуют. Чему бы ни научили меня вышеупомянутые авторы, ютуберы будут иметь большое значение. Я не изменю ничего из того, что сделал в этом году. Все было целенаправленно, потому что я начал с цели.

2023 г. и далее

Я исследовал Квантовые вычисления и их применение в машинном обучении. Даже при квантовых вычислениях подача данных и извлечение информации потребует программирования, основанного на фундаментальных принципах. Вычислительная мощность, необходимая для использования идей устройств Интернета вещей, которые развертываются, представляет собой нишу, которая быстро расширяется. Устройства IoT являются синонимами технологии Blockchain и 5G, поскольку они поддерживают децентрализацию доверия с использованием Proof of Stake и их альтернатив.

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

Спасибо за прочтение. Продолжай учиться.