• Как "перепрошить" мозг будущему программисту?

    @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...

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

    m77x
    @m77x
    Консультант
    Наверное отвечу в стиле "были наши времена"…
    Ностальгируя по понятиям "ма. меня нет, дома два программиста, ты не волнуйся, - кота покормят" - канули в лета. Возросла молодая поросль стремится "рубить бабло", реже, но "рубить бабло по крупному". Именно для них(вас) мы писали всякие фичи, лазили с паяльником и делали будущее.
    Стоит ли вам изучать асемблер? Если из под палки, лучше закиньте эту мысль там. откуда вы бы сами не смогли её вытянуть.
    Если в вас остался (ну мало ли, информационное поле земли подсказало) и вы хотите с железом говорить "ты чо чувак, я должен тебе кишку новую пришить? - пошел на…" и будете выполнять невыполнимые с точки зрения сейвойнишных лаботрясов задачи на порядок опережая скорузлых очочников, - тогда смело в путь!
    Но на вашем пути встретятся такие странности и тупости (если будете кодить оптимально), что я вам завидую как первооткрывателю )))
    Ответ написан
    1 комментарий
  • Должен ли программист знать ассемблер?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Чем больше знаешь - тем лучше, разве не очевидно?
    Ответ написан
    Комментировать
  • Почему так трудно найти крутого специалиста по С++ под 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 код и много чего интересного и не очень. Из плюсов - стек технологий, которым пользуются все, своеобразный драйв от того что принимаешь участие в разработке продуктов, которые помогают другим людям, от того что участвуешь в этом.
    Ответ написан
    Комментировать
  • Стоит ли работать программистом?

    copist
    @copist
    Empower people to give
    Я тут всем пролайкал ответы. Отвечу и сам.

    Денежный вопрос стоял остро, первые несколько лет, пока я сортировки пузырьками писал сам и фантазировал на тему своего мегакрутого фреймворка, который на поверку был 10% от Yii или Zend Framework.

    Затем мега скачок. И в стартапах поработал, и в интерпрайзе, и на фрилансе. Почему-то всё стало легко. И дедлайны легко переживаю. Постепенно выбрал себе специализацию: веб-архитектор и backend-разработчик.

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

    Знаю 15+ языков программирования, в разной степени.

    Что я всегда за собой замечал - всё в IT всегда было в удовольствие. И сервера ставил, и интернет-магазины делал с интересом, и веб-порталы кодил.

    Ответом на часть твоих вопросов будет следующее:
    * Чтобы нравилась работа, делай то что нравится тебе
    * Чтобы стОило, делай то, что нужно другим
    * Когда первое и второе совпадут, ты будешь финансово обеспечен и морально удовлетворён

    А про тяжести работы ... у меня всегда перед глазами вот это и я просто помолчу.
    Ответ написан
    1 комментарий
  • Перспективы в системном программировании?

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

    Adamos
    @Adamos
    Возьмите этот список, сверните трубочкой и садитесь писать свой калькулятор/плейер/редактор сейвов/что угодно, лишь бы был гуй и какая-то логика за ним. Десктопный клиент к какому-нибудь серверу - очень хороший вариант на сегодня.
    Попутно вы будете вынуждены ознакомиться с тем, что необходимо знать новичку, и будете меньше фантазировать и больше ориентироваться. Думать о трудоустройстве, пока у вас нет хотя бы такого опыта, просто бессмысленно.
    Ответ написан
    Комментировать
  • Как устроиться на начальную должность в веб?

    kirbi1996
    @kirbi1996
    Создай какое нибудь crud приложение в качестве первого проекта, для второго можешь какой нибудь магазин пиццы или книг реализовать, с личным кабинетом например, с корзиной.
    Ответ написан
    Комментировать