• Как проинициализировать массив в конструкторе С++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В данном конкретном случае инициализации нулями можно сделать так:
    memset(map, 0, sizeof(map));

    Если map -- массив POD-объектов, а инициализация нетривиальная, можно скопировать эталонный массив с помощью memcpy:
    Map(){
        static const map_init[20][20] = {
            ...
        };
        memcpy(map, map_init, sizeof(map));
      }


    В противном случае -- любым другим "объектным" способом -- std::copy, циклом, как угодно.

    Начиная с С++11 можно проинициализировать массив в списке инициализации конструктора, вне зависимости от того, POD поле или нет, например так:
    Map(): map{{1, 2, 3, 4, 5, ...}, {21, 22, 23, 24, 25, ...}, ...} {
      }
    Ответ написан
    Комментировать
  • Оправдан ли переезд в Санкт-Петербург в нынешних реалиях?

    @FoxInSox
    1. Что вы как девочка? Судя по зарплате у вас ни семьи, ни ипотеки, ни горы кредитов. Какой нафиг кризис?
    2. 30к хватит на квартиру/комнату, еду и транспорт. Больше ни на что не хватит. Но для junior android разработчика я бы просил 45. 30к это Макдональдс или верстальщик. Если вы будете на собеседовании в Яндексе и пройдете успешно интервью, то можете просить и гораздо больше.
    3. Вы опять как девочка. Какая разница сколько вам лет и сколько вы работаете? Всех работодателей интересует лишь одно: насколько успешно вы сможете решать его задачи.
    4. Я нашел первую работу и снял комнату в Питере в 2008. Причем из опыта у меня был только фриланс. Тогда точно так же все вокруг ныли и истерили о конце света и крахе мировой экономической системы.

    PS1 Переезд из провинции в Москву/Питер могут изменить вашу жизнь полностью. Количество возможностей в городах миллионниках в миллион раз больше. Цены в крупных городах выше, но это другой вопрос. Для начала карьеры вам должно быть все равно что есть: макароны по 30р за 1кг или мясо индейки по 300р за 1кг.
    PS2 Чем дольше вы живете в провинции, тем сложнее будет переехать в перспективе. Хотя это не всегда так, но мне кажется в большинстве случаев.
    PS3 Как специалист вы будете развиваться гораздо быстрее в крупном городе.
    PS4 В мегаполисах другие люди, другой образ мышления. Пожить в мегаполисе должен каждый.
    Ответ написан
    2 комментария
  • Как реализовать до 40 ШИМ выходов с микроконтроллера?

    @vilgeforce
    Раздолбай и программист
    Вариант - PCA9685, специализированный контроллер именно для LED. 16 каналов на корпус, управление по I2C. 3 корпуса и 48 каналов по 2 проводам готовы. Думаю, если поискать по "pwm i2c controller" или "i2c led controller" можно будет найти и что-то более ногастое.
    Ответ написан
    Комментировать
  • С помощью чего прокачать навыки в области создания устройств методом паяльника + программирования?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    В этом деле есть сразу три теоретических направления:
    -программирование, причем системное, а не прикладное.
    -электроника, которая делится на цифровую и аналоговую.

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

    Из математики придется подтянуть комбинаторику и математическую логику. Это минимум, чтобы только "встать на старт"

    Из программирования - понадобятся ассемблер и C. Ассемблер можно изучать при помощи замечательного отладчика в AVR-Studio. Материалы -
    easyelectronics.ru,
    сайт Николаева (автора программатора uniprof)
    И еще один сайт, для любителей web 1.0 zps-electronics.com

    Из цифровой схемотехники - вышеназванный easyelectronics и замечательная книжка Пей Ан - Сопряжение ПК с внешними устройствами

    Аналоговая электроника - Хорвиц и Хилл - искусство схемотехники.

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

    Для практики следует собрать:
    Двухтранзисторный мультивибратор. Это такой Hello World! для электронщика
    Кучу схем с применением легендарной К155ЛА3

    Где-то после этого можно пытаться браться за микроконтроллеры.
    Ответ написан
    9 комментариев
  • QA engineer, с чего начать?

    @azShoo
    Для начала давайте разберемся, что же такое QA? Понятие это довольно абстрактное, и в СНГ применяется зачастую в ином понимании, нежели в краях более отдаленных.
    QA - это обеспечение качества продукта, причем, в идеальном случае, на всех этапах разработки.
    Самое первое, с чем придется в большинстве случаев столкнуться QA Engineer`у это функциональное тестирование.
    Написание тестов по задачам и прохождение этих тестов., прохождение уже написанных, апдейт, заведение багов и прочее. В этом случае QA Engineer = Тестировщик. Для этого самое важное - хорошо работающая голова, умение читать задачи и задавать правильные вопросы: "А что если так? А если этак?".
    В зависимости от продукта требуются дополнительные скиллы -> в вебе своя специфика, в мобильных своя, в по - своя, в железе - своя. Ну и соответственно базовое понимание кода, работа с базой данных и прочее - тоже периодически понадобятся.

    Но, процесс обеспечения качества не заканчивается на функциональном тестировании, поэтому понятие QA шире, чем тестирование. Здесь мы уходим от банальных тестов по функциональным требованиям и переходим к анализу требований и документации (поиск узких мест в требованиях и реализации), юзабилити тестирование (поиск "косяков" в интерфейсах и функциональности), тестирование производительности и прочее.

    Отдельная часть - автоматизация тестирования. Здесь от компании к компании все по разному, и роль автотестера варьируется от "тестера который научился использовать тестовый фреймворк" до "полноценного разработчика, который автоматизирует то, что ему говорят тестировщики".
    Требования отличаются соответственно.

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

    Что в итоге?
    Мне кажется, что QA-инженер это тестировщик, который вышел в своей работе за рамки тестирования. Который работает над качеством продукта не только в плане "Требования выполнены - к продакшену готовы", а старается делать продукт лучше во всех отношениях, в первую очередь - для бизнеса, во вторую - для пользователя, в третью - для тех, кто этот продукт делает.
    Следовательно, я считаю что путь QA лучше всего начинать именно с тестирования (кстати говоря, в России понятия QA и тестирования почти всегда тождественны в умах не-тестировщиков).
    Что важно для тестировщика?
    Способность и желание разбираться в том, как это [продукт\фича\пр] работает сейчас, и как это должно работать.
    Так же стоит приготовиться много говорить "нет, так не пойдет" менеджерам и разработчикам.
    Ну и вообще, смириться с тем, что другие стороны процесса очень часто готовы действовать в ущерб качеству.

    Что хотят, что бы знал джуниор?
    1) представление о процессе разработки. Этапы, когда пора тестировать и все такое.
    2) представление о написании тестов: что представляет из себя тест-план, тест-сьют, тест-кейс, тест-степ, Definition of Done, Ожидаемый результат и тд.
    3) представление о том, что такое дефект: Severity и Priority дефектов, какие бывают; из чего состоит описание дефекта, и все такое.
    4) хотя бы общее представление о тест-дизайне: что такое, зачем нужен, какие есть практики.
    5) Базовые навыки SQL - селект, упдейт, работа с несколькими таблицами и все такое.
    А ещё хотят, что бы человек умел думать. Будь готов к задачкам на логику (которые туфта и ненужны) и к задачкам типа "Есть окно с кнопкой, посылает запрос: напиши тесткейсы" или "Протестируй карандаш".

    Как-то так.
    К сожалению, больше рассказал именно о тестировании, чем о QA в целом. :)
    Ответ написан
    2 комментария
  • Подкиньте пару хороших книг по Qt (С++)

    EXL
    @EXL
    Энтузиаст
    1. Бланшет, Саммерфилд - Qt4 Программирование GUI на С++. 2ed. - 2008
    2. Шлее Макс - Профессиональное программирование на C++. +CD. Qt 4.8. (В подлиннике) - 2012
    3. Марк Саммерфилд - Qt Профессиональное программирование (High tech) - 2011
    4. Андрей Боровский - Qt4.7+. Практическое программирование на C++ - 2012
    5. Юрий Земсков - Qt4 на примерах

    Первая книга от создателей Qt, в первых главах рассмотрено создание приложения для работы с таблицами (этакий мини Excel). Так что в прямом смысле за день можно разобраться во всех тонкостях создания подобных приложений.
    Вторая книга от известного в Qt-сообществе программиста, очень подробный и толстый справочник по виджетам, их описание и примеры использования. Имеется несколько глав по JavaScript/QML/QtQuick. Однозначный Must Have.
    Третья книга от одного из программистов, разрабатывающих Qt. В ней рассказано о профессиональной разработке приложений. В чем-то является продолжением первой книги.
    Четвертая книга от отечественного программиста, рассмотрены в основном принципы разработки сложных приложений. Отдельный разделы посвящены программированию трехмерной и интерактивной графики, баз данных, многопоточных приложений и созданию собственных виджетов.
    Пятая книга на мой взгляд уже устарела. Её вполне заменяет Макс Шлее.

    Это все книги по Qt 4.X.X на русском языке, известные мне (не считая редакций). Если кто-то знает ещё, пожалуйста отпишитесь.

    По Qt 5 книг пока нету. Макс Шлее сказал, что начнет работу над новой книгой с выхода версии Qt 5.2. По поводу книг для Qt 5 см. ответ ниже. Но не стоит забывать, что у Qt документация одна из самых лучших и вполне способна заменить книгу. Поэтому настоятельно рекомендую пользоваться Qt Assistant при возникновении затруднений.

    По C++ рекомендую конечно классику:
    Прата С. - Язык программирования С++. Лекции и упражнения - 2011
    Ответ написан
    1 комментарий