• Почему вместо true выводится 1, а вместо false вообще ничего?

    dima9595
    @dima9595
    Junior PHP
    if(2 == 2){
       echo 'true';
    }else{
       echo 'false';
    }
    Ответ написан
    Комментировать
  • Почему вместо true выводится 1, а вместо false вообще ничего?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    <?php
    var_dump(2 == '2'); //bool(true)
    var_dump(1 === '1'); //bool(false)
    Ответ написан
    Комментировать
  • Как редактировать плагин WordPress, чтоб при его обновлении изменения сохранились?

    OtshelnikFm
    @OtshelnikFm Куратор тега WordPress
    Обо мне расскажет yawncato.com
    Не слушайте, они не в теме))

    Можно, но при условии ваших знаний и возможностей плагина. Важно усвоить - ядро (файлы) плагина править нельзя. Но у себя воздействовать - можно.

    Итак:

    Смотря что вы подразумеваете под редактированием:

    1. Если css файлы - их редактировать нельзя. Только переопределять. т.е. если есть класс .some в плагине - то вы у себя в подвале подключайте свой css файл, а стиль для .some переносите и пишите там.

    2. если вы говорите о правке перевода, а у автора плагина строки переведены через __() функции - то воспользуйтесь плагинами интернационализации (переводов), или ВП фильтром gettext

    3. Если php файлы, то поинтересуйтесь у автора - есть ли в том месте, где вы хотите поменять, фильтр. apply_filters в коде плагина, а вы воздействуете на него через add_filters (Есть еще экшены (действия) - но они не позволяют изменять. Это триггеры, когда событие произошло).
    Если фильтра в этом месте нет - попросите автора добавить его. Обычно автор заинтересован в том, что его плагином пользуются и внедряет. Но если вам фильтр нужен только для смены текста - то вам вариант номер два, выше. У плагина может быть 500 строк и на каждую строку текста лепить фильтр - маразм.

    4. Автор плагина может ввести и поддерживать функционал шаблонов. Темплейты - например карточка товара, профиль пользователя, одиночная запись и т.д. Такой функционал имеют многие плагины. bbPress, woocommerce. Суть их такова - что вы переносите файл шаблона (например cart.php) в свою тему или внутри папки wp-uploads (каждый плаг по своему реализует) и плагин вначале проверяет наличие такого файла вне своей папки, а потом, если не нашел там, подключает из своей папки. Так вы можете всю нужную верстку и внешний вид под себя переделать.

    5. Много функций внутри плагина висит на хуках (add_action) - например так:
    add_action('some_action', 'some_function', 20);
    где 20 - приоритет выполнения. Так вы можете всю функцию дерегистрировать через remove_action. Например так:
    remove_action('some_action', 'some_function', 20); (приоритет 20 обязательно такой как и при регистрации)
    и потом всю функцию из плагина копируйте к себе (переименуйте) и вешайте на этот же хук и приоритет. Внутри функции уже делайте как вам надо - изменяйте.
    Но этот способ самый зависимый - т.к. вам нужно следить - вдруг в обновлении автор в этой функции внес изменения или устранил уязвимость. Следите через svn или гит.

    Так что варианты есть. А если их еще в плагине нет - попросите автора плагина добавить такую возможность. Если автор плагина не пойдет на встречу - не юзайте такой плагин. Там нет будущего. Большинство программистов понимает что ситуаций много и помогают и внедряют и подсказывают если есть еще способы влияния на нужный участок.
    Ответ написан
    Комментировать
  • Тайм-менеджмент для разработчика?

    @hermaeus_seeker
    Рекомендую книгу "Джедайские техники" Максима Дорофеева. Ещё у него есть свой канал YouTube. Сейчас ещё проходит марафон.

    Читал много литературы, для меня это лучший автор:
    1. Здесь нет банальностей вроде "SMART", "Слона разделить на части" и методик, которые их авторы сами не используют в жизни.
    2. Упор идёт не на ресурс "времени", а на ресурс "мыслетопливо". Часто времени у нас достаточно, но не хватает "мозговой энергии" на некоторые задачи стратегически важные(и сложные) задачи. Как следствие, человек сперва "разбирается с мелочью" не добираясь к важным задачам, из-за чего создаётся иллюзия нехватки времени.
    3. Борьба с прокрастинацией, дружба со своим и здоровые привычки.
    4. Систематический подход и практики.
    Ответ написан
    1 комментарий
  • А Вы встречали гениев-программистов?

    @mickvav
    Programmer, system and network administrator
    Видел среди студентов. Один такой сдал мне отличный проект семестровый, потом потусовался в Яндексе, расстроился из-за нехватки code review-вов и культуры разработки, ушёл в гугл.
    Пытаться нанимать таких людей стоит, если у вас есть задачи, которые вы не знаете, КАК решать. Если все задачи, которые вы решаете, для вас более-менее технически очевидны, они от вас разбегутся со скуки.
    Ответ написан
    Комментировать
  • А Вы встречали гениев-программистов?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Смотрю вопрос пользуется популярностью, поэтому тоже поделюсь мыслями. Люди, которые отвечают выше, смотрят на этот вопрос с одной стороны, а я расскажу с другой. Не буду называть себя гением и даже талантливым, но тем не менее ситуация, которую вы описываете, мне очень знакома. Я сам такой. Не общительный, со своим ноутом, решаю неочевидные задачки, занимаюсь в основном фрилансом, чтобы уменьшить бессмысленное общение на общие темы, хотя переодически сталкиваюсь с командами. Есть похожие знакомые. Не буду давать советов или рекомендаций. Просто поделюсь наблюдениями с обратной стороны, а выводы вы уже сами делайте.

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

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

    Резюме его тянуло на senior, а в комменте к резюме говорилось об отсутствии командной разработки и том, что кандидат интроверт.

    Резюме. Скорее всего там есть на что посмотреть. Очень приятно придя на собеседование услышать, что твое резюме читали, что твой гитхаб заинтересовал или еще что-то такое. При этом крайне обидно (я понимаю, что звучит глупо, что все это скрывают, но это и правда обидно) слышать в свой адрес "мы не верим, что ты это написал, поэтому вот тебе тестовое задание". Если не верите - спросите. О своих проектах всегда есть, что рассказать, по делу такие люди говорить могут, а в присутствии технического специалиста диалог будет интересным и покажет все, что человек делал и к чему стремится.

    Он достал из портфеля свой ноутбук и с невиданной до этого скоростью решил новую тестовую задачу за 22 минуты

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

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

    Это следствие широкого кругозора из предыдущего пункта. Просто есть особенность: если вы говорите "сделай мне xxx с помощью yyy" такой человек с большой вероятностью скажет "но с помощью zzz это сделать проще/быстрее/понятнее/проще_поддерживать и.т.д.". Не стоит сразу отбрасывать эту мысль, практически всегда она будет серьезно аргументирована. Это касается оценки заданий на собеседовании - если вы получили решение или ответ, который не ожидали - это стоит обсудить. Так вы покажете свою заинтересованность в знаниях кандидата. А это жирный плюсик в ваш адрес.

    В ответах выше говорят, что
    Для организации гений скорее вреден, чем полезен.

    Это спорное утверждение. Такой разработчик быстро устает от рутины, но даже рутину он может делать быстрее, чем кто-то другой. Или вообще может ее автоматизировать используя знания из других областей. Да, работать 9 часов в день практически невозможно. Но и за 4-5 часов при частичной занятости можно успевать очень многое.

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

    Еще там кто-то сказал
    психологических качеств (как вольётся в коллектив, в процесс)

    Такие люди почему-то думают, что коллектив должен быть сплоченным, что все должны дружить, ходить в боулинг, вместе кататься на велосипедах и участвовать в корпоративах. Я это видел несколько раз в разных школах, потом в институте, потом на работе. Но на самом то деле (практически всегда) им нужен человек, который будет работать. Пришел. Взял тикет. Сделал. Взял. Сделал. Поделился с кем-нибудь опытом. Предложил какое-то решение. Еще поработал. Ушел.
    Ответ написан
    Комментировать
  • Почему mysql возвращает ошибку?

    svfat
    @svfat
    ☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
    Не указан PRIMARY KEY
    Ответ написан
    Комментировать
  • Как "перепрошить" мозг будущему программисту?

    @DarkViatrix
    Интересуюсь всем возможным и невозможным.
    Если тебе это интересно, то ты можешь это прокачать. Без интереса - далеко не продвинешься.

    1. Уточни у себя, знаешь ли ты хорошо базовую математику, которую дают в 5-11 классах? Возможно, нужно начинать с самых основ и постепенно двигаться вверх, усложняя задачи. Как раз из 5 класса хорошо решаются задачи и развивается логика. Возможно, в начале тебе данные знания нужно подтянуть.

    2. Читай книги про логику, развивай логику, пытайся увидеть алгоритм в каждом своем дне.
    Сегодня искала книгу и многие советовали: Логика. Виноградов С. Н. и Кузьмин А. Ф. _ 1954, Непейвода В.В. - прикладная логика.

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

    Если будешь прикладывать усилия, работать над этим - сможешь стать кем угодно.
    Главное - труд и чтобы дело нравилось.
    Ответ написан
    Комментировать
  • Можно ли заработать C++ программисту в 2021?

    @evgeniy_lm
    Заработать можно любому программисту в любом году при условии что он умеет писать важные, нужные программы
    Ответ написан
    Комментировать
  • Можно ли заработать C++ программисту в 2021?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    И хочется слезть с родительской шеи побыстрее)

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

    Никому не нужен "подработчик на С++", но ты можешь делать лабы по С++ (или по математике или по еще чему-нибудь) в своей школе/институте и там подработать.
    А с 18-ти можешь попробовать трудоустроиться, для чего уже сейчас можешь пошерстить вакансии в своем городе и учить то, что в них указано.
    Ответ написан
    Комментировать
  • Что за профессии такие - Release Engineer и Configuration Manager?

    alexclear
    @alexclear
    A cat
    Release engineer - это не профессия, а должностная инструкция (роль). Это человек, который выполняет release engineering (https://en.wikipedia.org/wiki/Release_engineering), фактически - человек, который находится в конце цикла процесса разработки программного продукта. Он делает из предоставленного разработчиками кода готовый к развертыванию продукт - занимается написанием инсталляторов, сборкой пакетов, определением зависимостей и т.п.
    Configuration manager - это роль, человек, выполняющий которую, занимается управлением конфигурацией (https://en.wikipedia.org/wiki/Configuration_manage... Управление конфигурацией - это описание конфигурации, достижение повторимости, развертывание новых узлов, реакция на изменения внешних условий, внесение изменений по запросу, планирование емкости, определение бюджета и другие похожие задачи.
    Ответ написан
    Комментировать
  • Парсинг json файла, как исправить ошибку?

    it_monk
    @it_monk
    Разработчик в oncloud.ru
    > "keepalive": true,

    Запятэ в конце уберите
    Ответ написан
    4 комментария
  • Почему в git обычно игнорируют картинки? Разве нормально, что если кто-то скачает и развернет мой сайт, у него поедет верстка и все будет некрасиво?

    youngmysteriouslight
    @youngmysteriouslight
    ТК, ТТ, JS, FP, WM
    Странный совет, если рассматриваеть его категорично.
    Скажу тривиальную мысль: версионировать нужно то, что является предметом версионирования.
    То есть, если конкретная картинка является неотъемлемой частью самого проекта, а не внешней зависимостью или внешним ресурсом, то она должна быть в репозитории.

    Сходу нашёл пример в Github: https://github.com/rancher/ui/tree/master/public/a...

    Единственно только нужно понимать, что версионирование бинарников обычно сопровождается большими накладными расходами и есть проблемы со слиянием, поэтому если есть возможность исключить картинки из [версионируемого части] проекта, ею стоит воспользоваться. То же касается базы данных: не комильфо держать дамп базы в том же репозитории, что и сам код, поскольку слишком дорогой становится история.
    Ответ написан
    Комментировать
  • Почему так трудно найти крутого специалиста по С++ под Windows?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    еще точнее
    трудно найти крутого специалиста по С++
    под любую платформу. ни какого секрета нет. С++ один из самых трудных к изучению языков. азы можно освоить быстро, но о высокой квалификацию можно будет говорить только с многолетним опытом (имеется в виду не просто применения, а постоянного роста)
    Ответ написан
    Комментировать
  • Различие между хостом и узлом?

    Wikipedia.
    Узел сети — устройство, соединённое с другими устройствами как часть компьютерной сети. Узлами могут быть компьютеры, мобильные телефоны, карманные компьютеры, а также специальные сетевые устройства, такие как маршрутизатор, коммутатор или концентратор

    Хост — любое устройство, предоставляющее сервисы формата «клиент-сервер» в режиме сервера по каким-либо интерфейсам и уникально определённое на этих интерфейсах.


    Коротко:
    узел сети – любое сетевое устройство
    Хост – оконечное устройство, предоставляющее сервисы
    Ответ написан
    2 комментария
  • А Вы встречали гениев-программистов?

    @AlexSku
    не буду отвечать из-за модератора
    Гении это создатели новых языков.
    Ответ написан
    Комментировать
  • Необходимые знания для embedded developer'a?

    @LampTester
    Начать хочу с самых ранних азов.


    Правильно. Если хотите стать профессионалом, начинать надо с базовой теории. "Нет царских путей в геометрию".

    Интересуют так же такие вещи как: стоит ли учится писать сценарии программ для Arduino, сможет ли это помочь абстрагироваться в выбранной сфере разработки и получить те самые азы?


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

    Нужно ли учиться паять и разбираться в микросхемах, теристорах, тестерах и прочем железе что бы работать embedded программистом?


    Да, обязательно. Хороший embedded-программист сам должен быть способен разрабатывать железо. Более того, в не слишком сложных проектах (или в очень критичных по оптимальности решения) разработчик железа и программист - один и тот же человек.

    Вообще, embedded-программист - в большей степени электронщик (где-то на 80%, или даже больше), чем программист.

    Нужны ли знания программирования под линукс? Читая вакансии не один раз встречал требования знания работы с линукс.


    Опционально, будет плюсом.

    Что касается процесса обучения, то он примерно идентичен процессу обучения инженера-электронщика.

    1. Полный курс общей физики. Обязательно. Без него никуда, это база всего. После него отпадают 98% элементарных вопросов и появляется стройная картина мира. Математика - без фанатизма, но в достаточном объеме, чтобы понимать курс физики.
    2. Базовый курс конкретно электроники. Здесь можно посмотреть в сторону классики - Горовиц и Хилл первое, что приходит на ум.
    3. Программирование. Без фанатизма. Ночами штудировать численные методы и заучивать классичесские алгоритмы не надо (хотя представлять, как работает, например, метод Рунге-Кутта будет полезно), но выработать навыки алгоритмизации требуется обязательно. На эту тему полно туториалов, гораздо больше, чем по электронике.
    4. Обработка сигнала тоже нужна. В написании программ для контроллеров всякие цифровые фильтры встречаются очень часто (особенно при обработке сигнала с датчиков), надо бы представлять, как работают методы ЦОС.
    5. Специальные вопросы. Архитектура контроллеров, стандартные интерфейсы и т.п. Это уже по необходимости.

    Кроме этого - английский в достаточном объеме, чтобы понимать техническую литературу и общаться на среднем уровне. Простой тест - свободное чтение документации и ресурсов типа hackaday.

    Но самое главное - желание. Только оно может обеспечить достаточный объем практики.
    Ответ написан
    3 комментария
  • Необходимые знания для embedded developer'a?

    @OYTIS
    Embedded Software Developer
    Оффтоп: денег в вебдеве как правило больше, особенно в РФ (но глобально - тоже). Если это не смущает, читайте дальше =)

    С++, Linux, Verilog - это все хорошо, но я бы занимался этим после того, как поработаете какое-то время, и поймете, куда хотите расти.

    Абсолютный must, имхо:
    • Язык C. Это рабочая лошадка firmware, без него никуда, зато остальные языки - совершенно опциональны.
    • Какой-нибудь простой ассемблер (сегодня я бы сказал, армовский). Не обязательно быть мастером, но очень помогает понять, как работает процессор в принципе.
    • Скучная школьная теория: архитектура ЭВМ, устройство операционных систем, конечные автоматы - все это для эмбеддера куда более актуально, чем для веб-девелопера
    • Электроника. Необязательно уметь спроектировать шестислойную плату с учетом EMC, но читать схемы - это важно. А также способность потыкать плату тестером или осциллографом (в большинстве случаев ошибка все равно в софте, но успокаивает).
    • Стандартная периферия и интерфейсы: UART, I2C, SPI, DAC/ADC. Это до какой-то степени можно выучить и на ардуине, но лучше освоиться с настоящим железом
    • Умение читать документацию на железо. Должно прийти при освоении предыдущих пунктов, если не ограничиваться копипастом из туториалов.


    Если освоите до какой-то степени (главное - не увлекаться) этот набор, то можете работать в firmware. А дальше уже можете развиваться куда душа лежит, и где будут карьерные возможности - Linux, C++, электроника, DSP, whatnot.
    Ответ написан
    3 комментария
  • Что нужно знать для программирования железа?

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

    В целом программирования для микроконтроллеров можно как и любую другую разработку разделить на уровни.
    Для простоты скажем это Уровень железа (Hardware Abstact Level (HAL)) и уровень приложения (Application или Business Level)

    Для того, чтобы заниматься уровнем железа необходимо:
    1. В первую очередь знать как работает микроконтроллер, и всякая периферия от простых портов, UART, ADC, SPI и до USB, Ethernet и Bluetooth. Для этого необходимо почитать соответствующую литературу, можно статьи, коих много в интернете.
      И после этого ознакомления, самое главное, необходимо изучить оригинальные спецификации на все это, потому что только там есть правда.
    2. Необходимо знать язык программирования, для начала Си, но лучше сразу начать с С++ :). Ассемблер вам понадобиться в настоящих приложениях очень редко, только если, вы скажем, захотите написать свою RTOS . Т.е. особо без надобности изучать ассемблер не надо, но как работает ПО прошитое в микроконтроллер и сам микроконтроллер вы знать должны (Стек, как происходит вызов функций, как выполняется прерывание, как создаются динамические объекты, что такое куча и т.д.)



    Для того, чтобы заниматься уровнем приложения:
    1. строго говоря можно про аппаратуру знать постольку поскольку, например, если у вас уже написал HAL для UART, то вам не надо знать, какие там регистры используются для установки четности или скорости, вы просто будете вызывать соответствующие функции HAL

    2. однако тут необходимо знать дополнительно много всего, включая С++ и, например, паттерны проектирования, Операционные системы реального времени, парадигмы программирования ( к примеру, ООП, метапрограммирование) и т.д.



    В общем и целом, если контора небольшая то, для "программирования железа" необходимо уметь все от разработки схем и оптимизации кода на ассемблере до Метапрограммирования... Таких людей в жизни я не видел. Есть люди которые знают это все, но знания очень поверхностные, есть которые хорошо знают одну часть, но не очень другую.

    Обычно все таки людей разделяют на схемотехника и программиста, который делает все от HAL до бизнес логики.

    В идеале, должны быть 3 человека, схемотехник, программист низкого уровня (HAL, стеки, драйвера), программист бизнес логики
    Ответ написан
    Комментировать
  • Стоит ли работать программистом?

    Начал изучать вакансии и вижу, что предлагается от 25-35 тысяч для джуна (прикинул, что это на год-два), затем миддл (думаю около 60-70 тыс года на 3-5).

    Деньги не такой большой приоритет для тех кто идёт работать программистом. Идут потому что могут и получают удовольствие от работы. Не все, но часто именно так. За большими деньгами идут в офисы, банки и т.д., куда там ходят за большими деньгами?) Плюс программирование даёт свободу(возможно только иллюзию:)). И такие зп в русском секторе, почитайте тут же про фриланс.
    БД, C#, Java, JS, PHP

    Какой-то несвязный список технологий, третье четвертое ещё как-то вместе смотрятся, но С# и ява и дальше лендинг? Интернет-магазин лучше не писать)
    женат, ребёнок; мне 27, кстати ... Но времени на это "хобби" катастрофически не хватает.

    По началу, когда перейдёт в работу, тоже времени не будет хватать, дальше - окупится
    Еще на одном портале с вакансиями полистал резюме чужие, у многих смена мест работы каждые 2-6 месяцев и таких мест у людей от 5

    Какие-то не те резюме смотрели. Если устраиваться в разработку сервиса какого крупного или интернет-магазина, то месяца 2-3 уйдёт только на то чтобы въехать в бизнес-логику и что куда где уходит приходит, на уровне - вроде как более менее понятно.
    Расскажите, господа программисты, что меня может ждать?

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