• Нужно ли перед C++ учить С?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Нет, Си учить перед плюсами не обязательно.
    А вот с учебниками вы лукавите, язык не менялся, компиляторы те же, что сложного поставить отдельно компилятор или любую другую ide (Code Blocks, Visual Studio и т.д.) для Сей?

    Другое дело, надо ли оно вам, раз вы с компилятором даже справиться не смогли.
    Ответ написан
    3 комментария
  • Как правильно хостить на github конфиги?

    sim3x
    @sim3x
    Переменные окружения, файлы с секретными данными в директории проекта и тд
    Ответ написан
    Комментировать
  • Как сделать генератор случайных ,четных ,натуральных чисел?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    1. генерируете любое случайное число в диапазоне от 0 и до заданного с помощью модуля random
    2. умножаете на 2

    Пример генератора:
    import random
    random.seed()
    MAXINT = 100
    
    def get_even_rand():
          x = random.randint(0, MAXINT//2)
          yield x*2


    Результат работы генератора
    >>> print get_even_rand().next()
    56
    >>> print get_even_rand().next()
    62
    >>> print get_even_rand().next()
    94
    >>> print get_even_rand().next()
    90
    >>> print get_even_rand().next()
    16
    Ответ написан
    Комментировать
  • Разработка через pull-requestы?

    tema_sun
    @tema_sun
    Не нужен. Будет бардак.
    Ответ написан
    Комментировать
  • Где найти опытного программера, который бы мог сделать code review?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Где же оно обоюдовыгодное?

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

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

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

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

    Как вам такой взгляд на ваше предложение?
    Ответ написан
    4 комментария
  • Где найти опытного программера, который бы мог сделать code review?

    gadfi
    @gadfi
    https://gamega.org
    Работа без обязательств с моей стороны - в том смысле, что если возьмусь за что-то - сделаю, ожидать от меня большее не рекомендую, могу выйти из участия в проекте в любое время

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

    15432
    @15432
    Системный программист ^_^
    нет, эквивалентность многопоточности и асинхронного сокета отсутствует.

    попробую объяснить суть асинхронного сокета на простом примере.

    подходите вы к лотку купить минералки, а её нет, но продавщица сообщает, что скоро привезут.

    возможные варианты вашего ответа:
    1) "я подожду" - синхронный сокет, программа ожидает, пока не придёт сообщение.
    1.5) "долго не везут что-то, надоело ждать, ухожу" - синхронный сокет с таймаутом
    2) "ну ладно, я попозже загляну" - асинхронный сокет, программа не ждёт сообщения и занимается своими делами дальше
    2.5) "я вернулся, ну как, привезли? да? ну вот и отлично, забираю" - асинхронный сокет, очередная попытка приёма данных, на этот раз успешная
    3) "алё, Вован, я стою минералку жду, вернусь попозже, работай, не отвлекайся" - синхронный сокет + многопоточность. один поток ожидает приёма данных, другой поток работает
    3.5) "Вован, тут минералки ещё нет, ща вернусь" - многопоточность + асинхронные сокеты. несколько потоков работают одновременно, на приеме данных не блокируются
    Ответ написан
    2 комментария
  • Есть апп, задающий ребёнку развивающие задачки, а в случае успешного решения задачки ставящий мультик с ютуба?

    Adamos
    @Adamos
    Ваш "компромисс" не решает проблему, а обостряет ее. Решая задачки ради мультиков, ребенок их возненавидит (задачи, а не мультики). Вы ее просто превращаете в крысу, которой нужно давить на рычажок, чтобы стимулировать центр удовольствия в мозгу.

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

    Моей сейчас семь, мультики любит, но без фанатизма. Мы успешно прошли все подшивки "Школы семи гномов", рекомендую. Из развивающих игрушек использовали разве что GComprix, и то очень умеренно. Зато настольных игр у нее полный шкаф. Для вашего возраста уже кое-что можно брать - "Доббль", например.

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

    Нельзя приставить к ребенку автомат и рассчитывать, что он будет развиваться. Ничего так не выйдет. Воспитание такого ребенка, каким хочешь его видеть - это труд, ежедневный и упорный. Если же вам всего лишь хочется, чтобы ребенок не мешал - ну, это-то устроить несложно. Сложности будут потом.
    Ответ написан
    6 комментариев
  • Для чего нужны подобные js-библиотеки?

    ptrvch
    @ptrvch
    вебдев-энтузиаст. Django, AngularJS
    У вас очень много информации в голове смешалось в сплошную кашу.

    Прежде всего разберитесь с терминологией, и тогда многое станет на свои места.
    Фронтенд - это общее название всего комплекса работ по разработке сайта: html/css/js.
    Vue.js, React.js и им подобные - это не библиотеки (в отличие от jQuery), а веб-фреймворки.
    (upd: в комментах меня поправили, что Реакт - все-таки библиотека)
    Библиотека - это в общем случае набор инструментов, упрощающих некоторый тип задач, эти инструменты можно использовать и комбинировать как заблагорассудится.
    Фреймворк - это куда более сложная структура. главное отличие от библиотеки в том, что вам задается некоторый фундамент, в рамках которого вам необходимо реализовывать задачи.

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

    Использование веб-фреймворка избавляет вас от необходимости самостоятельно создавать фундамент и структуру веб-приложения (если вы внимательно ознакомились с документацией, конечно - костылей можно налепить с любым инструментом).

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

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Потому, что конкретно у putty свои ключи, у всего остального мира:
    ssh-keygen -t rsa
    Ответ написан
    Комментировать
  • Что значит ошибка KeyError в turtle.py?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Что третий параметр функции write() модуля turtle не может быть восклицательным знаком. Исправьте на
    write('Hello ' + name + '!')
    Ответ написан
    Комментировать
  • Как может заработать чистый математик?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Как консультант для разработчиков, кому нужен мат. аппарат.
    На первый взгляд такие как: всякие аналитики, умные маркетологи (глупым это не нужно), статистики и т.п.
    Чем вы можете помочь: составления всяких моделей на основе входных данных, для более глубого понимания зависимостей выхода от входа (аля Data Science, Machine Learning и т.п)

    Каждый дурак может быть программистом, не каждый программист может быть математиком.
    Так что у вас уже 50% задатков есть, осталось быть не теоретиком, а практиком.

    Рекомендую Data Science, Machine Learning области.
    Ответ написан
    5 комментариев
  • React+Redux VS Backbone (Marionette) в 2017?

    AppFA
    @AppFA
    Frontend developer at Yandex
    React это не фреймворк, а лишь либа для view
    1. Никто не запрещает использовать lodash\underscore для работы с данными. Для фильтрации\поиска используйте селекторы.
    2. Используйте webpack для сборки проекта, в настоящее время это единственное рабочее решение, так же в webpack есть асинхронная загрузка модулей - require.ensure, так что вы спокойно можете разбивать свое приложение на чанки и подгружать их в нужный момент.
    3. По-моему сейчас очень, очень много плагинов адаптированных под реакт, за не большую практику работы с этим стеком у меня ни разу не возникло необходимости писать что-то самому с 0, всегда можно найти какое-то решение, форкнуть и допилить под себя.

    По поводу backbone, честно не знаю - на мой взгляд React более лаконичен и на нем можно быстрее начать писать уже готовое приложение + при правильной архитектуре проекта поддержка в будущем будет без боли.
    Ответ написан
    Комментировать
  • Серверная часть под Bootstrap?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Обьясню популярно.
    Вашу ситуациию можно стравнить с рабочим строителем - он никогда не поймет архитектора.

    1-10 левел. HTML5 + CSS5 вообще не програмирование, это пасивные сущности. BOOTSTRAP это даже не сущность, это набор патернов - не более. Если вы выучили набор патернов, но не понимаете как работает HTML и CSS, вы помощник дизайнера/верстальщика. Фактически Вы чернорабочий - научились держать лопату, рыть канавы и перекидать мешки с места на место, без вреда для здоровья.

    10-30 левел. Изучив HTML и CSS на таком уровне, что понимаете как изменяя CSS придать правильный вид любой разметке. Учится здесь довольно быстро 1 годик, и 1 год опыта.
    Теперь: Вы фактически научились забивать гвозди, и выставлять доски по уровню.

    30-70 левел. JS, PHP, Node.js - уже програмирование. Там совсем другая парадигма. И начинать нужно с парадигмы програмирования. Понять что такое переменные, циклы, условия. Изучить алгоритмы, Обьектную модель, наследование, чэйнинг..., изучить серверные фреймворки Yii, Simphony, WP и т.д. Здесь быстрых результатов не ждать!!!, учится лет 5 и года 3 опыта в програмировании.
    Теперь ваш уровень соответствует специалисту по прокладке инженерных сетей - сантехнику, электрику.

    70-80 левел. Изучив сетевые протоколы, структуру серверов, архитектуру програмного обеспечения, серверные языки програмированя, взаимодействие инфраструктур и много чего ещё, вы только тогда станете Фулстак разработчиком (и в итоге архитектором програмного обеспечения 80 уровня). Но учится на рахитектора минимум 10 лет и еще 5 лет опыта в проектировании ПО.

    P.S. На вашем уровне, Вам подойдет например делать контен на готовых конструкторах WIX или CMS Wordpress. Сдесь много знаний не надо, надо научится регить домен, покупать хостинг, устанавливать в панели хостинга нужную CMS. И самое малое изучить саму CMS.
    Ответ написан
    5 комментариев
  • Почему после обновления MacOS Sierra начала требовать пароль для ssh-ключа?

    @Arik Автор вопроса
    Помогло
    ssh-add -K

    Вопрос закрыт
    Ответ написан
    Комментировать
  • Как узнать номер строки при чтении файла?

    @GeneD88
    QA
    with open('myfile.csv', 'r') as file:
            for num, url in enumerate(file):
                    my_function(url)
    Ответ написан
    1 комментарий
  • Как лучше расхлебать заваренную кашу?

    @YuryBorodkin
    Android dev
    мамкиных анонимусов параноидальный апворк не любит - готовьтесь к худшему.
    а вообще можно сходить https://odeskconf.slack.com - конфа русских апворкеров, там есть их сотрудники, можно спросить.
    Ответ написан
    1 комментарий
  • Как лучше всего реализовать CRUD - DOM на ReactJS?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    по поводу вопроса 2: вам будет необходимо взять еще что-то. Например, можно использовать веб сокеты, чтобы рассылать всем подписчикам события: элемент_создан / удален и т.д. Без такой "рассылки" по подписчикам (подключенным клиентам) не получится сделать, разве что будет какой-то костыль с таймером (не надо так).

    по поводу вопроса 1, за неимением хорошего простого примера под рукой, предлагаю сделать по шагам, если получится - уверяю, с "расширением" пойдет гораздо лучше:

    Например есть страница с номерами телефонов и именем.

    На этой странице у вас компонент PhonesAndNames в момент componentDidMount делаете xhr вызов и получает список всех телефонов и номеров. Например, это GET запрос на ваш сервер: GET /api/phones

    Полученные данные вы кладете в state и в рендере компонента у вас строится таблица по данным из state компонента. Следовательно, как только у вас xhr запрос завершится, данные окажутся в state, случится ре-рендер и все будет хорошо. Для полного счастья, можно добавить переменную isLoading, например, и ставить ей true в начале выполнения запроса, и false в момент получения ответа. В рендере компонента, в зависимости от значения isLoading - рисовать прелоадер. Конечно, isLoading тоже будет жить в state.

    Далее, при наведении на строку - у вас, к примеру рисуется "крестик". По клику на крестик - производится запрос на сервер, например: DELETE /api/phones/айди. Внутри компонента PhonesAndNames это будет просто onClick на элементе крестик и функция, которая опять же отправляет xhr запрос. Когда будет получен ответ, вы должны поиском найти id удаленного элемента из вашего списка в state и вернуть список элементов. Изменился state - случился ререндер - все в порядке.

    Так же с добавлением. Вам достаточно поставить пару input'ов + кнопку "добавить". Опять обработчик на onClick (или на onSubmit, если сделаете это как форму) - опять xhr запрос (POST /api/phones), опять на успешный ответ операция со списком телефонов и имен в state, а именно: банально добавление в конец или в начало нового элемента.

    Остался только update. С ним тоже самое. В простейшем примере, чтобы не заморачиваться, все ваши телефоны и имена могут быть в таблице внутри тэга input и в конце строки, там же где крестик - иконка "обновить".
    ---
    Получается, если вы будете использовать web-сокеты, то вам нужно будет настроить свой сервер так, чтобы в момент успешного ответа на все вышеизложенные методы бродкастилось (от broadcast, т.е. рассылать) какое-то событие, на которое ваши клиенты умеют реагировать.
    ---

    Чтобы все это в процессе "расширения" и "усложнения" не превратилось в трудноподдерживаемую кашу, рекомендую использовать любую из библиотек для "управления состоянияем приложения", так сказать. Мне очень нравится redux.
    Ответ написан
    7 комментариев
  • Почему так странно поступает Git?

    @aol-nnov
    autocrlf. инфа 99.98%

    ты еще диффом посмотри на изменения и удивись :)
    Ответ написан
    Комментировать