Я начал увлекаться программированием понемногу, сначала немного изучив Паскаль, когда мне было 16, а затем, в прошлом году, прошел курс CS106A из Стэнфорда (я большой поклонник профессора Сахами, даже если я никогда с ним не встречался), а теперь продолжение курса CS106B, с которым я еще не закончил. Оба доступны для загрузки в iTunes U, что, конечно, здорово, если у вас есть iPad.

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

новый проект: глобальный скринер акций на основе подписки для нового веб-сайта

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

получение данных: CSV Reuters

Первое, что мне нужно было выяснить, это то, как я буду получать данные об акциях, потому что это будет основным содержанием скринера акций. Я заметил, что многие нынешние специалисты по скринингу в этой области полагаются на Thomson Reuters, и кажется, что Reuters предлагает глобальные, а не только данные по США. Идеально! Но в какой форме они предоставляют данные? И сколько это будет стоить? Я еще не выяснил, и уже связался со службой поддержки, чтобы получить ответ. В их онлайн-документах указано, что данные могут быть доставлены в виде CSV-файлов, при необходимости через FTP-загрузку, так что это хорошая отправная точка.

хранение данных: MongoDB

Я загружу данные CSV на свой сервер (позже, возможно, он будет размещен на серверах Amazon S3), а затем мне нужно будет проанализировать эти данные и поместить их в базу данных, чтобы работать с ними и фильтровать по мере необходимости для моих нужд скрининга. Будучи n00b, я изначально думал об использовании MySQL, но потом узнал, что JavaScript, который, вероятно, будет основным двигателем инструментов фильтрации, напрямую не взаимодействует с MySQL, и поэтому нуждается в промежуточном PHP-мосте. Поскольку я хотел, чтобы моя учебная программа была как можно меньше, я хотел уменьшить количество языков, которые мне нужно будет глубоко изучить, поэтому я искал альтернативу.

Оказывается, JavaScript может напрямую взаимодействовать с другой, более новой базой данных, называемой MongoDB. Беглый поиск показывает, что MongoDB быстрее, проще в адаптации и масштабировании и менее требовательна к ресурсам сервера. У нас есть победитель!

серверный JavaScript с Node.js

Поскольку мне нужно будет изучить JavaScript, чтобы предоставить приложение для фильтрации/проверки без Flash или Java, я мог бы увидеть, нельзя ли другие области проекта также выполнить с помощью JavaScript. Судя по всему, могут. Мне нужно будет выполнить некоторую обработку на стороне сервера, чтобы получить данные о запасах CSV в мою базу данных. Node.js — это JavaScript для сервера, и он идеально подходит для этой цели. Я также читал об AngularJS от Google, который, по-видимому, великолепен и очень эффективен для создания шаблонов веб-сайтов. Позже мне нужно будет посмотреть, соответствует ли это моим потребностям в скринере, но это определенно интересно.

классическая модель веб-приложений

Несмотря на то, что я только что говорил об использовании JavaScript на стороне сервера, классическая модель веб-приложения на самом деле работает следующим образом: код на стороне сервера — это PHP + MySQL, а на стороне клиента — HTML/CSS + JS.

РЕСУРСЫ Я использовал, чтобы получить первоначальное представление о некоторых концепциях: