• Как создать игровой мир?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Если у вас вопросы на таком уровне (что делать если в массиве нельзя удалять и как это оптимизировать) - то делать свой мир и свою игру еще ОЧЕНЬ рано.
    Ответ написан
    Комментировать
  • Стоит-ли сейчас начать изучать программирование под fpga?

    x67
    @x67
    Да, стоит. Это не золотой век FPGA, однако они будут востребованы всегда.

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

    Им не нужно попадать в "такт".
    Частота обработки сигнала выше, чем частота передаваемого сигнала, так что приемнику не надо быть синхронизированным с передатчиком, достаточно поймать начало передачи, не обязательно с точностью до наносекунд. (тот же I2C на 400кГц, а МК ваш на 8МГц, он за время передачи одного бита еще что-нибудь успеет сделать)

    +сейчас интерфейсы реализованные на периферии МК могут работать независимо от ядра, порой со своим тактированием и своими буферами для приема и передачи данных, вам останется только проверять или загружать эти буферы, а периферия сама будет отправлять-принимать данные (например USB который от 48МГц фигачит, в то время, как сам МК от 12МГц тактируется, аппаратный UART)
    Ответ написан
    8 комментариев
  • Какие задачи решаются на C++?

    opium
    @opium
    Просто люблю качественно работать
    да любые
    в свое время я дико любил с++ и писал на нем все прикладное для себя, даже немного для веба с кгай
    Ответ написан
    Комментировать
  • Как развернуть GitHub проект (Git репозиторий) на хостинге?

    @protven
    Уважаемый Автор -
    Как автоматически деплоить приложение из гита на VPS, после внесения правок?
    Как делать деплой с github на продакшен сервер?

    Ну и поиск в гугле по "Deploying from GitHub to a Server" и прочим запросам выдает кучу ответов.
    Я бы еще мог понять ваш вопрос в ключе "я делал вот так, по этой инструкции и у меня не вышло".
    Ответ написан
    Комментировать
  • C++ Не компилируется в gcc - как исправить?

    Попробуйте так
    gcc -lstdc++ 3.cpp -o 3
    Ответ написан
    Комментировать
  • Как назвать переменные?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Конкретно в этом случае я бы просто назвал: likes_in_vkpost().

    Поясню:
    1.
    Если функция используется в правой части и присваивает значение в переменную в левой части, то что это если не геттер-функция? Зачем еще раз заострять читателю кода "Нет чувак, я тут 100 пудов достаю лайки из поста". Ему надо просто сказать "Лайки из поста". Не верит, пойдет в функциию и почитает ее код или заглянет в код юнит-тестов.

    Если в коде гет-функии шлется http-запрос, потом получается http-ответ. Потом что-то считается. То это означает нарушение принципа "одно действие одна функция".
    * Послать запрос одна функция
    * Получить ответ другая
    * Проанализировать еще одна
    * А вот достать уже полученное из сети и хранящееся в объекте или каком-либо хранилище в памяти это и есть гет-функция. По этому ее делают read-only , чтобы она не разрушила объект и тогда она получается "свойством объекта" и по этой причине нет смысла использовать 'get' в имени функции

    2. Глагол в функции имеет смысл использовать только тогда, когда вы хотите ЯВНО сказать, что тут нужна крайне внимательно присмотреться.

    2.1. У вас есть сложный вычислительный процесс по подсчету лайков и этот код может "тупить", т.е. долго работать тогда и надо говорить compute_likes(). Читающий код задумается при глаголах: compute, analyze, etc

    2.2. Обновление значений в объекте тоже может нести опасность и по этой причине нужно добавлять 'set' . Если у чувака объект рушится, то он задаст вопрос: "А кто изменяет объект?" и тогда он будет искать глаголы : set, update, push, pop, etc

    3. Используйте грамматику английского языка

    Возьмем предложения "Эта строка пустая?", "Эти данные зашифрованы?". Как бы вы спросили это по-английски?
    'Is string Empty?" , 'Is data encrypted'?. Тогда в коде будем читать как:

    if ( str1.empty() )
    if ( data1.encrypted() )

    Если вы будете использовать схему:

    if ( str1.is_empty() )
    if ( data1.is_encrypted() )

    То вы нарушаете грамматику английского. Глагол 'to be' в вопросительных предложениях ставится ДО подлежащего! Возьмите к примеру документацию к C++ стандартной библиотеке и прочтите описание std::string.

    Оговорка: Это не касается случая, когда вы пишите в процедурном стиле. Пример:

    empty(driver_data_request)

    тут сложно понять что имел ввиду автор и поэтому 'is_empty' вполне имеет смысл!
    Ответ написан
  • Программирование или что-нибудь другое?

    @egormmm
    Борітеся — поборете!
    Оно вам надо это программирование? Если уже сейчас вам кажется, что иногда задачи будут рутиной. Чувствуется скука какая-то. А если есть скука - значит не понимаете зачем оно вам нужно. А если не понимаете этого - лучше вначале выяснить. Поэтому ответ на ваш вопрос лежит в области самопознания, а не совета кого-то на тостере, кто понятия не имеет чем вы живёте.
    Ответ написан
    Комментировать
  • Как лучше поступить с энкодером?

    @evgeniy_lm
    энкодер это не более чем 2 последовательно замыкающихся кнопки, а как известно на кнопках всегда то напряжение которое на них подашь. Таким образом не надо ничего выдумывать, а подать на энкодер 3,3В вместо 5В
    Ответ написан
    3 комментария
  • Как лучше поступить с энкодером?

    15432
    @15432
    Системный программист ^_^
    Я б делитель сделал

    Энкодер ---- 100 Ом --v-- 200 Ом ---- земля

    Посередине вывод на RPi
    Ответ написан
    Комментировать
  • Что за контакт ( I ) в распиновке энкодера?

    Ocelot
    @Ocelot
    Импульс нулевого положения, один на оборот.
    Ответ написан
    Комментировать
  • Написать компилятор на C# или C++ или Python?

    @denismaster
    Видел парня на хабре. В 11 лет не каждый может такого достичь, как он, но все же.

    Итак, вы хотите написать компилятор. Это не так сложно, как кажется(иначе не было бы такого количества языков).
    1. Понадобится выучить, что такое грамматики, формальные и регулярные языки, контекстно-свободные грамматики и так далее. Необходимо достаточно глубоко понимать, что это и для чего. Также нужны знания структур данных, ассемблера, паттернов проектирования.
    2. Для опыта необходимо посмотреть грамматики современных языков, благо, они есть в свободном доступе. Пример раз, пример 2
    3. На основе полученных знаний, а также опыта изучения грамматик существующих языков необходимо написать свою грамматику
    4. К этому моменту вы сильно подрастете, если не физически, то скиллом уж точно, поэтому заведите себе хобби или девушку, чтобы отвлекаться от этой дребедени, иначе сойдете с ума.
    5. На основе данной грамматики пишется на любом известном вам языке лексер и парсер, которые переводят эту грамматику в набор токенов(задача лексера), а парсер эти токены в Абстрактное Синтаксическое Дерево (Abstract Syntax Tree)
    6. На основе данного дерева вы можете проводить анализ кода, проверку на ошибки, оптимизации.
    7. Данное дерево мы можем трансформировать в другую форму. После чего на его основе сгенерировать код, который мы хотим получить.
    8. Крайне советую посмотреть исходники открытых компиляторов, например, Roslyn для шарпа или аналогов для других языков, чтобы посмотреть, как оно вообще работает.


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

    И да, придется оооочень много читать, а также хороший английский, на русском намного меньше литературы по данной специфике.
    Ответ написан
    6 комментариев
  • Допустимо ли ardruino в коммерческом проекте?

    a_volkov1987
    @a_volkov1987
    Инженер-схемотехник
    Ну и зачем вам ардуино при таком наборе компонентов?
    Вы городите систему из основной платы и двух шилдов, которые представляют собой тупо подложку под готовый коммерческий модуль (BT и GSM модули). При этом шилды соединяются огромными разъемами, где половина соединений вам нафиг не вперлась.
    Хотите в серийное производство - делайте печатную плату, на которой будут оптимально размещены все компоненты - выиграете на габаритах и качестве работы девайса.
    Ардуино - для прототипов, не для коммерции. У нее нет никакой защит ни от электромагнитных, ни от механических, ни от вибрационных, ни от атмосферных воздействий. Это если только с инженерной точки зрения взглянуть.
    С точки зрения программиста - слишком много потерь идет по производительности и стабильности работы, если избегать чистого Си.
    Так что проверили, что идея рабочая и модули все работают - молодцы, теперь проектируйте нормальный девайс.
    Ответ написан
    Комментировать
  • Стоит-ли платить за платные курсы для получения сертификатов?

    @syrov
    пишу программы до 99 строк
    На курсере есть много интересных курсов. Ценовая политика разная, некоторые хотят (Х каждый месяц, что я считаю нехорошо), другие хотят Х за курс (т.е. можно вернуться через год и пройти еще раз). Если платить (я например заплатил около 150 за два курса), то появляются дополнительные вопросы для закрепления материала.
    Как итог, если тема для Вас важная, то платить стоит. Но вот про резюме, это к вопросу по курсере отношения не имеет. Хотя, если вы скажите, что повышение квалификации важный момент, и что вы этим занимаетесь постоянно, и книжки читаете, и курсера, то это будет не плохо.
    Ответ написан
    Комментировать
  • Стоит-ли платить за платные курсы для получения сертификатов?

    @laxikodeje
    Сколько проводил собеседования - ни разу не поинтересовался сертификатами подобными.
    И кстати, был забавный чел, у него как раз был сертификат. Да еще куда как более серьезный, чем вами упомянутый.
    Этот чел был принят на работу вне моего ведома НЕ ТЕХНИЧЕСКИМ руководителем фирмы (видимо, за сертификат).
    Это чел с сертификатом - был одним из самых стремных работников.

    Я ясно обозначил свое отношение к сертификатам и их полезности???
    Ответ написан
    2 комментария
  • Стоит-ли платить за платные курсы для получения сертификатов?

    Rupaka
    @Rupaka
    Изучаю html уже 7 лет
    Вы уже работаете джуном, у вас на собеседовании спрашивали сертификат?
    сомневаюсь
    Я проводя собеседование никогда не спрашивал
    Если вы прошли курс то у вас есть знания
    А корочку получить у нас любой дурак может:)
    Ответ написан
    Комментировать
  • Нет навыков в программировании, можно ли сразу начать изучать swift?

    Swift - это отличный первый язык программирования. "База" не нужна, если вы хотите писать простенькие графические приложения. Но прежде, чем делать что-то полезное, убедитесь, что вы знаете сам Swift. Скачайте XCode. Его часть Swift Playgrounds - анимированные учебники-задания от Apple. Советую Learn to Code 1, 2, 3. Если где-то застопорились, всегда можно нагуглить гайды/подсказки/советы. Единственное, без чего нельзя начать - английский язык.
    Ответ написан
    Комментировать
  • С чего начать карьеру ИТ?

    Мне 30 лет. Начал свою карьеру в ИТ в 27.
    У меня ИТшное высшее образование, но жизнь сложилась так, что во время учебы нашел работу не по специальности, которая сразу начала приносить неплохой доход (производство рекламы: наружка, полиграфия). В один "прекрасный" день, спустя 10 лет работы, я понял, что достигнут потолок и мне совершенно не интересно дальше развиваться в этом направлении. Тогда то я и начал искать чем заняться.
    Я прекрасно понимаю страхи и мысли, которые крутятся в голове у человека уже с семьей.
    "А не поздно ли?", "А с чего начать?", "А как на меня будут смотреть другие люди/друзья/коллеги?", "А на какой доход и через сколько времени можно рассчитывать?", "А откуда взять время на жену/детей и учебу?" и еще куча других...
    В 16-22 все эти вопросы совершенно не волнуют - ты еще юн, свободен от обязательств и в какой-то мере финансово не обременен...

    Немного порассуждаем :)

    Отвечу на самые-самые вопросы:
    А не поздно ли?
    Нет. Никогда не поздно! Звучит банально, но это работает.
    Нужно срочно забыть сколько тебе лет и оперировать только понятием жизненный опыт. А его к 30 уже порядком. Мозги еще не "заржавели", тело еще не барахлит.
    НО нужно сразу условится - любая сфера ИТ требует ПОСТОЯННОГО самосовершенствования и изучение нового материала. ЛЮБАЯ.

    Чем заняться-то?
    Я для начала для себя определил две области ИТ в которых возможен быстрый прогресс за короткий срок и достаточно быстрое трудоустройство. 1С-программирование и веб-программирование.
    Они были выбранные после тщательного анализа локального рынка труда + низкий порог входа + возможность быстрого прогресса. Долго сомневался, читал форумы и статьи, что бы выбрать окончательно, но в итоге победило направление веб-программирования. Решающим стали два критерия: возможность удаленной работы на зарубежных биржах и отсутствие привязки к конкретной узкой технологии. В финансовом плане 1Сники на начальном этапе получаю больше, но со временем Веб вырывается вперед.
    Многие написали выше, что надо учить основы основ. Разложить всю теорию по полочкам. Понять принципы ООП и паттерны проектирования. Это правильно, НО... время+семья+деньги накладывают некоторые свои ограничения. Как мне кажется главная цель - это смена сферы деятельности, т.е. добиться результата. Да, по началу будут жуткие "решения" и "ужасный вырвиглазный лапшевидный говнокод", НО плох тот программист, который не продолжает свое обучение ПОСТОЯННО. Но учиться уже на работе под руководством более опытных товарищей НАМНОГО проще.

    А с чего начать это ваше "веб-программирование"?
    Сразу оговоримся, что есть принципиально два разных направления: "фронт-энд" и "бэк-энд". "Фронт-энд" проще и дружелюбнее для совсем начинающих. Его изучение позволит быстрее прийти к выполнениюглавной цели. Поэтому дальше я буду рассматривать именно это направление.
    Да-да, конечно, потом можно и "бэк-энд" изучить и даже полностью перейти на него. Можно совмещать, обв.
    И еще одно отступление: уровень английского Pre-Intermediate. Это само собой разумеющееся. В любом случае придется читать, слушать и понимать.
    Итак по теме вопроса.
    Рекомендую начинать с: htmlacademy.ru - пожалуй лучший русский ресурс для новичков. Интерактивные задания с самых азов. Все основные курсы бесплатные. Платная подписка открывает доступ к продвинутым курсам - рекомендую покупать эту подписку уже после прохождения всех базовых курсов. Есть два платных месячных "интенсива" - весьма неплохие и стоят своих денег.

    Остальные ресурсы рекомендую проходить параллельно с HTML-академией, начинать где-то после 7 курса:
    www.codecademy.com - на английском. Помимо курса по HTML&CSS можно попробовать JavaScript и jQuery + неплохие ознакомительные курсы по "бэк-энду"
    https://dash.generalassemb.ly - на английском. Интересны тем, что имитируют выполнение реального заказа на фрилансе.
    Есть еще куча ресурсов и курсов, но для начала этого вполне хватит.
    В любом случае придется изучить JavaScript. В этом деле поможет уже упоминаемый выше www.codecademy.com + learn.javascript.ru

    И главное - больше практики. Применяйте свои знания.
    Верстайте псдшники хотя бы ради практики и портфолио. Прикручивайте к ним что-нибудь простенькое на jQuery.

    А откуда взять время на жену/детей и учебу? Как совмещать-то все еще же работа есть...
    Если уделять учебе хотя бы 1 час в день, то можно вполне все успевать.
    Я учился так:
    - на работе была возможность почитать и поделать небольшие занятия в течение дня ( в сумме полчаса)
    - еще часик уже ночью, когда все спят дома.
    - в выходные вставал пораньше и в субботу за два часа пока все спят повторял все сделанное за неделю, а в воскресенье подбивал итоги и планировал следующую неделю.
    Придется пожертвовать сериальчиками и какими-нибудь излишествами нехорошими - всегда есть что-то. Все время дисциплинировать себя первое время. Можно вести блог или поставить цель на смартпрогресе. Главное регулярно заниматься. даже 15 минут в день - это уже большой плюс.
    Еще очень важно, что бы домашние знали к чему вы стремитесь и чем заняты.

    А на какой доход и через сколько времени можно рассчитывать?
    Тут все ОЧЕНЬ индивидуально. Все зависит от усердия и желания.
    Можно грубо прикинуть "скоростное прохождение этого квеста":
    1) материальные вложения: 30-32 т.р. два интенсива(базовый и продвинутый) и помесячная платная подписка на htmlacademy.
    2) временные вложения: 5-7 месяцев на курсы и интенсивы от htmlacademy + 2-3 месяца на основы JavaScript и jQuery

    После этого вполне можно пойти работать верстальщиком с перспективами карьерного роста с окладом от 15 т.р. или попробовать себя на фрилансерских биржах.
    Почему так мало?В моем регионе именно столько получают стажеры-верстальщики в первый месяц, но это уже работа + на реальных проектах прогресс пойдет намного быстрее. А следовательно и вырастет доход.

    А не будет ли мне сложно "работать" в молодом коллективе?
    Возможно первое время будут какие-то сложности, но как мне кажется в любом случае ценятся базовые человеческие качества + профессионализм. А если учесть, что к 30 уже есть достаточно богатый жизненный опыт, то я не думаю, что возникнут проблемы.

    Как-то так :)
    Удачи. И главное помните - все зависит только от вас. От ваших желаний и вашего трудолюбия.
    Ответ написан
    3 комментария