• Учебник по математике, при почти нулевых знаниях?

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

    Дискретная математика

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

    По дискретной математике есть русский онлайн-курс на Stepic-е.

    Если идти чуть глубже, есть неплохая книжка Кнута и др. "Конкретная математика".

    Алгоритмы и структуры данных

    Кормен "Алгоритмы: построение и анализ" в переводе А. Шеня. Осилить первые две главы, потом можно идти почти в случайном порядке. Написано достаточно просто и понятно.

    Дасгупта, Пападимитриу, Вазирани "Алгоритмы".

    Онлайн-курс по алгоритмам.

    О математике

    МЦНМО свободно распространяет много интересных книг: www.mccme.ru/free-books
    Посмотрите там в первую очередь Шеня и Арнольда. Например, В. И. Арнольд. Задачи для детей от 5 до 15 лет.

    И разумеется не упустите замечательного писателя Мартина Гарднера "Математические головоломки и развлечения".

    Задачники

    Попрактиковаться в решении с проверкой можно здесь.

    www.braingames.ru -- по математике
    https://projecteuler.net/ -- среднее, ближе к программированию
    acm.timus.ru -- по программированию

    Очные программы

    Умение самоорганизоваться -- это хорошо, но иногда нужен ментор и готовая программа.
    Если вы живете в Москве или Петербурге, попытайте счастье в этих двух организациях:
    https://yandexdataschool.ru/
    https://compscicenter.ru/
    Если нет, но есть возможность на два года уйти в учебу, попробуйте поступить в магистратуру СПбАУ на SE-направление:
    mit.spbau.ru

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

    Удачи!
    Ответ написан
    3 комментария
  • А в чем минусы node.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В том же в чем его и плюсы.

    Асинхронность... ее там нет. Там есть event loop что позволяет писать крайне эффективные программы в плане работы с I/O (что для web очень неплохо) и не париться о таких вещях как потокобезопасность, блокировки и т.д. А если еще и несколько инстансов приложения запусть - по одному на ядро скажем, то утилизация вычислительных мощностей выйдет неплохой. Но распаралелить что-то в рамках одного процесса воркера мы уже не можем. Мы не можем посчитать что-то, проанализировать, заняться обработкой жирной картинки прямо при обработке запроса потому что наш процесс воркер так же обрабатываете еще пару десятков запросов, и пока мы будем удовлетворять нужды одного простаивать будут все. Нода хороша когда у нас все состоит из элементарных операций которые не занимают много времени, все жирное надо выносить из основного процесса и разруливать очередями и т.д. Эта проблема имеет массу решений на самом деле, но все уже усложняется и нода теряет свою красоту. Лучше взять Java/c#/Python для этого (и не надо тут вспоминать про шутки с многопоточностью в CPython).

    callback-hell. Собственно наличие event loop диктует так же правила о том, как должна писаться программа. Кучи колбэков, невозможность дебажить нормально и получить четкий стэктрейс из ошибки. Да, есть промисы которые решают первую проблему, да есть либы вроде zone.js которые решают вторую и частично первую проблему... но все это не тривиальное дело.

    Собственно... разработка больших и сложных проектов на ноде возможна... но требует от разработчика хорошие знания и понимание того, как работает его платформа. А это увеличивает стоимость разработки в то время как можно взять более эффективные в этом плане инструменты.
    Ответ написан
    10 комментариев
  • Зачем в yii2 классы и объекты для генерации html?

    MrLoki
    @MrLoki
    I will.
    Ну вы даёте, одну из толковых частей фреймворка обзываете.
    В большом и сложном проекте, как правило, есть большая и сложная логика, а большая и сложная логика — предполагает большие и сложные условия. Городить условия во view — дело неблагодарное, потому что view — только представление и ничего больше, и чем оно проще тем лучше.

    Далее по списку.
    Вы в своем примере в HTML совершили ошибку, которая будет стоить вам гибкости.
    href="/index.php?r=/client/create"
    Тут должен быть использован генератор url, но тогда код становится уже сложнее и козырнуть «простотой и понятностью» не выйдет, не так ли? Это позволяет, например на начальном этапе не париться о «красивых» URL, ссылаясь на action/controller, а ближе к концу за 1 раз настроить роутинг по всему проекту, ничего не меняя во вью.

    Попробуйте нарисовать checkbox в html. Не простой, а выбранность которого будет зависеть, от параметра модели. Я подскажу:
    <input type="checkbox" value="1" name="name" <?php if($model->selected) ?>checked <?php endif ?>>

    Уже не так красиво?
    Ещё можете нарисовать select чтоб уж совсем убедиться в необходимости Html-хелпера.

    Сейчас вы можете сказать, про вынесение генерации HTML в файлы, но я вас заверю. Во-первых это породит либо множество файлов и кучу условий (одна форма с кастомным select другая со стоковым, но с label, у третьей ещё что-то), и подключение этой кучи файлов будет выполняться дольше, а без компиляции шаблонов — постоянно дольше. Во-вторых, вы снова теряете в гибкости.

    В Yii есть проблемы, но хелпер Html — не одна из них.
    Ответ написан
    Комментировать