• Стоит ли решать задачи на codewars?

    Bandicoot
    @Bandicoot
    Вась-программист
    Сам люблю позаниматься этой ерундой, но сейчас больше сижу на https://codefights.com/
    Там более навороченная геймификация и есть упор на алгоритмы, что меня и привлекает.
    Пользу это приносит, но не стоит забывать и о проектной работе. Решение этих задачек ни о чем не скажет работодателю. Они могут повысить эффективность реальной работы, но не намного
    Ответ написан
    Комментировать
  • Как вы пишете статьи?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Меня неожиданно и приятно удивил Dropbox Paper. Там есть Markdown, подсветка кода, to do lists с галочками.
    Для черновиков очень подходит: автосохранение, доступ даже с мобильного, не нужно задумываться о коммитах, минималистичный интерфейс как у meduim, возможность поделиться документом и обсудить.

    https://paper.dropbox.com/

    Ну а потом для финальной публикации, вычитки и поддержки — gitbook или что-то своё.
    Ответ написан
    1 комментарий
  • С чего начать ребёнку программировать?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    В связи с чем хочу спросить у имеющих отношение к разработке игр, какой путь к достижению этой цели (не обязательно Майнкрафт, а геймдев в целом) выбрать?
    Советую начать с Unity, т.к. очень много уроков уже по нему и визуальная/наглядная разработка даёт бОльший стимул для любого, чем чистый код.
    Уже создавая что-то примитивное, волей-неволей он будет автоматом учить C# (пока в базе, также C# используется в львиной доле "движков" game-dev) и а читая API - также, волей-неволей, изучать технический английский язык.
    Т.е., в плане покрытия направлений и результата, Unity обладает лучшим балансом для начинающих game-dev-программистов.

    Итого: [полная визуальная разработка и возможность сразу видеть результат]+[перспективный ЯП: C#]+[техн.английский]+[логика]+[обширное community] = Unity.
    Оф. уроки на русском: https://unity3d.com/ru/learn

    Игровые движки (табличная сводка с википедии).
    Ответ написан
    4 комментария
  • С чего начать ребёнку программировать?

    @flaction
    Всему свое время. Лучше не сыну литературу по программированию, а себе по возрастной психологии купите. Тут на лицо игровая зависимость у ребенка, он живет в мире майнкрафт и хочет как-то себя реализовать там. Значит много времени играет в эту игру, а детям вообще противопоказаны виртуальные игры.
    Ответ написан
    4 комментария
  • С чего начать ребёнку программировать?

    A1ejandro
    @A1ejandro
    youtube блогер, ИТ-специалист
    Самые азы изучить можно в простой игровой форме. Начать рекомендую с LightBot.
    Ну и еще почитайте: https://habrahabr.ru/post/251583/
    Если осилит азы - дальше простор для фантазии.
    Ответ написан
    Комментировать
  • С чего начать ребёнку программировать?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Сами изучите эту тему, сделайте простенький сервер, затем разделите свою разработку на этапы и подталкивайте (не делайте все "за него", а только направляйте) в нужном направлении. Если застревает, объясняйте, а затем пусть тоже самое сделает сам.
    Ни в коем случае не нужно давать ребенку кирпичи под полтора тысячи страниц.
    У вас должна быт цель больше практическая, нежели теоретическая, чтобы ребенок сделал все сам, а иначе он погрязнет в пучинах теории, так и не создаст сервер, да еще и разочаруется в программировании как таковом.
    По минимуму, т.е. не нужно рассказывать что такое инкапсуляция, если от вас требуется создать один просто класс.
    Ответ написан
    2 комментария
  • С чего начать ребёнку программировать?

    abyrkov
    @abyrkov
    JavaScripter
    Нужно его научить трем вещам:
    1. Алгоритмам
    2. Не задавать неконкретных вопросов и вопросов в которых он не компетентен
    3. Гуглить

    После чего еще раз задать вопрос, я не понял, что вы имеете в виду под "закодить сервер Minecraft"...
    Ответ написан
    3 комментария
  • С чего начать ребёнку программировать?

    Neznayka1979
    @Neznayka1979
    Интересы - IT, психология...
    Есть такое мнение, что практическое применение какого-либо яп в конечном итоге влияет на мышление человека...
    Для начинающих лучшим решением пожалуй будет освоить первым - функциональный яп.
    Почему функциональный ? Потому что функциональный яп не содержит "ничего лишнего" и тем самым поможет освоить суть алгоритмов и выработать соответствующее мышление, т.е. научит мыслить Логически.
    Подводя итог вышесказанному начинающим программистам лучше начать с изучения одного из функциональных яп - Haskell или Scala, Lisp...
    А уже после можно переходить на яп С (Си), который поможет понять многие другие очень важные детали...
    И уже освоив на достаточном уровне яп С можно переходить на другие яп (С++, Java, С#...)
    Да, и ещё желательно (обязательно) освоить англ.яз и параллельно осваивать - Дискретную математику.
    Но учитывая возраст вашего ребёнка (7 лет) можете купить данную книгу:
    www.ozon.ru/context/detail/id/32092949
    А если интересует геймдев (разработка игр), то посмотрите тут:
    https://thequestion.ru/questions/205745/chto-uchit...
    https://habrahabr.ru/company/miip/blog/313326/
    https://habrahabr.ru/post/319582/
    https://dou.ua/lenta/articles/gamedev-for-programm...
    Ну и видео:
    https://www.youtube.com/playlist?list=PLR4wcBxrUGP...
    Ответ написан
    Комментировать
  • Как работает Angular2 и Java?

    @Vorh
    Вот пример как на Angular2 общаться через REST
    GET запрос на бекэнд:
    getList(): Promise<Data[]> {
        return this.http.get(Ваш url + '/getData')
          .toPromise()
          .then(response => 
          response.json().data as Data[]);
      }

    Более подробно можно прочитать тут : Angular2 HTTP
    Java Spring Controller который обрабатывает запрос и возвращает запрашиваемые данные:
    @RequestMapping(name = "/getData")
        public List<Data> getListData(){
            List<Data> list = new ArrayList<>();
            list.add( new Data());
            list.add( new Data());
            list.add( new Data());
            list.add( new Data());
            return list;
        }

    Если собираетесь разбираться со Spring - то тут я выкладывал список полезных ресурсов для обучения
    Ответ написан
    Комментировать
  • Как работает Angular2 и Java?

    @frozen_coder
    Java-developer
    Да по идее пофиг Java-неJava, Angular-неAngular, клиент с сервером общается через REST. Сервер предоставляет API, принимает запросы от клиента и отправляет ему ответы. Клиент это API юзает, отправляет запросы и получает ответы. Вам нужен не обязательно связка Angular2 и Java, начните с тура героев лучше из доки Angular2. Потом на стороне Java API по-разному можно делать, там может быть Java EE, Spring, Play может еще чего. Но суть одна - REST.
    Ответ написан
    Комментировать
  • Полностью бесплатный аналог learn.javascript.ru на английском языке?

    mudrenokanton
    @mudrenokanton
    frontend dev
    Тю, так mdn же. По структуре похоже, только более подробно и качественно.
    https://developer.mozilla.org/en-US/docs/Web/JavaScript
    Ответ написан
    Комментировать
  • Минимальные настройки безопасности Linux на VPS?

    Tyranron
    @Tyranron
    Ряд моментов Вы уже сделали, но я все равно их опишу для полноты списка.

    1. Создать отдельного пользователя и хороший пароль на sudo. Не использовать больше root напрямую. Совсем.

    2. SSH. Отключаем метод аутентификации по паролю. Если Вам не нужны другие методы, то их тоже можно отключить, оставив только publickey. Отключаем возможность аутентификации root'ом. Включаем использование только 2й версии SSH протокола.

    3. Устанавливаем Fail2Ban и настраиваем чтобы после нескольких неуспешных попыток подключения по SSH банило по IP на длительное время. Кол-во попыток и время бана можно тюнить в меру своей паранойи. У меня, например, банит на час после 2х неуспешных попыток.

    4. Iptables. Действуем по принципу "запрещено все, что не разрешено". Запрещаем по умолчанию весь INPUT и FORWARD трафик снаружи. Открываем на INPUT'е 22 порт. В дальнейшем открываем порты/forwarding по мере необходимости. Если у нас предполагаются сервисы на соседних серверах нужные только для внутренней коммуникации (Memcached, Redis, и т.д.), то открываем для них порты только для определенных IP. Просто так торчать наружу для всех они не должны.

    5. Настраиваем автоматические обновления apt-пакетов. Уровень security. То есть так, чтобы обновления безопасности накатывались автоматически, но при этом не выполнялись обновления со сменой мажорной версии (дабы обезопасить себя от "само сломалось").

    6. Устанавливаем ntpd. Серверное время должно быть точным. Также временную зону сервера лучше всего установить в UTC.

    7. TLS (не SSL) используем везде где можем. Через Let's Encrypt получаем бесплатные валидные сертификаты. В конфигах веб-серверов, mail-серверов, и других приложений торчащих наружу (в том числе и OpenVPN), запрещаем/убираем использование слабых шифров. Все ключи/параметры генерируем не менее 2048 бит. Самоподписные сертификаты подписываем с помощью SHA-256 (не SHA-1). Diffie-Hellman параметры (dh.pem) под каждый сервис лучше сгенерить отдельно. Проверяем TLS сервисов через Nmap. Минимальный grade должен быть A, не должно быть warning'ов.

    8. Правильный менеджмент пользователей/групп. Приложения/сервисы не должны запускаться под root'ом (разве что они действительно этого требуют и иначе никак). Для каждого сервиса создается свой пользователь.

    9. Если предполагается upload файлов через PHP (либо другие скриптовые языки), в директории, куда эти файлы загружаются (и которая доступна снаружи), должно быть жестко отключено любое выполнение скриптов/бинарников, что на уровне ОС (x права), что на уровне веб-сервера.

    Это была база.
    Дальше, в меру своей паранойи можно за'harden'ить сервер ещё следующими моментами:
    - SELinux, chroot
    - доступ к SSH только с определенных IP (нужно иметь 3-4 VPN-сервера под рукой)

    UPD И да, все это помнить/настраивать руками каждый раз может быть запарно. Используйте Ansible и автоматизируйте процесс (там родные и YAML, Jinja2 и Python).
    Ответ написан
    10 комментариев
  • С чего начать рефакторинг?

    @AlxMrz
    Советую прочесть книгу "Рефакторинг существующего кода" Мартина Фаулера. Там достаточно неплохо освещен этот процесс.
    Lander дал тебе неплохую ссылку. У меня самого она в закладках.
    Также прочти про антипаттерны проектирования,т.е. о том, как делать не надо. https://sourcemaking.com/antipatterns - это ресурс по антипаттернам. На русском в поиске тоже можно найти информацию об этом.
    Ну и напоследок отформатируй свой код в соответствии со стандартами твоего языка программирования. Для PHP это PSR-1 и PSR-2 (и другие PSR тоже желательно)
    Ответ написан
    4 комментария
  • Как вы пишете статьи?

    nikolayshabalin
    @nikolayshabalin
    Автор профессиональных курсов в HTML Academy
    Сам пишу в gitbook. Удобно, что markdown. Можно дополнять плагинчиками.
    Вот здесь допустим, можно сохранять в PDF, ePub, Mobi.

    Еще были примеры с пошаговым чтением и с сохранением прочитаного, как здесь
    Ответ написан
    2 комментария
  • Есть хорошие книги по java EE и Spring??

    @Vorh
    1) Spring in Action 4 - на русском увы нету ,но это не такая большая проблема и отличная возможность подтянуть технический английский
    2) Spring in Action 3 - думаю по цифре понятно ,что она не совсем актуальна ,но за то есть на русском языке
    3) websystique.com - один из лучших сайтов в сети по туториалам Spring , содержит огромное количество статей где по этапно показано как конфигурировать Spring и написать простое приложение - часто сам на него заглядывал
    4) www.mkyong.com - то же самое, что и выше - огромное количество статей
    Ответ написан
    Комментировать