Задать вопрос
  • С чего начать изучать электроннику?

    @smsi
    В.Г. Борисов Юный радиолюбитель
    Р. Сворень Электроника шаг за шагом
    Поступать в ВУЗ не стоит.
    Работы для электронщиков (с нормальной оплатой) в России нет
    Ответ написан
    Комментировать
  • Насколько сейчас востребованы программисты микроконтроллеров?

    @Oligophren
    Сертифицированный разработчик Terrasoft BPM'online
    Можно открыть хх и убедиться, что это не очень востребовано. По сравнению с вебом вакансий в разы меньше, зарплаты намного ниже.
    Ответ написан
    Комментировать
  • Выбор ЯП под определённую задачу?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    JavaScript

    А еще лучше Lua, потому что он учится за 15 минут, а вы - начинающий. Ладно, не 15 минут, у вас уйдет 2 часа, но не более.
    Ответ написан
    2 комментария
  • Как разбирать чужой код?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    Как разбирать чужой код?

    Документации почти нет

    Добро пожаловать в реальный мир ;)
    А если серьезно, то не существует какого-то определенного универсального алгоритма, который поможет разобрать код. Все сугубо индивидуально. Вам придется по крупицам восстанавливать ход мыслей того, кто это писал.
    Возможно ничего нового я для Вас не открыл, но как есть.

    #offtop
    как поступать в ситуации когда имея на руках только исходники библиотеки понять как она работает?

    Исходники - это еще большая роскошь) Некоторые успешно переписывают приложения имея на руках только скомпилированный бинарник без отладочной информации)
    Ответ написан
    2 комментария
  • Существует ли таблица совместимости компиляторов и версий библиотек?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Для gcc и его libstdc++ есть таблица соответствия версии компилятора и версии символов из его библиотеки, а так же описание правил, по которым версии изменяются и вообще всей идеи версионирования ABI: https://gcc.gnu.org/onlinedocs/libstdc++/manual/ab...
    Ответ написан
    Комментировать
  • Полезно ли долго (и вообще) «велосипедить» в программировании?

    ApeCoder
    @ApeCoder
    Закон дырявых абстракций

    Из-за закона дырявых абстракций вот что получается: придумает кто-нибудь чудесный новый генератор кода, с которым у программиста работа наконец-то станет эффективной, а ему и говорят: «Сперва научись делать это руками, а потом уж пользуйся генератором, чтобы сэкономить время». Генераторы кода, абстрагирующие разработку кусков кода, так же дырявы, как и все прочие абстракции. А единственный компетентный способ залатать эти дыры — выучить, как работают абстракции, и какие подробности они скрывают. Итак, абстракции экономят наше рабочее время, но не экономят учебное время.

    Отсюда парадоксальное следствие: в то время как инструментарий программиста забирается на всё более высокие уровни сложности со всё более развитыми абстракциями, стать высококвалифицированным программистом становится всё труднее.
    Ответ написан
    Комментировать
  • Полезно ли долго (и вообще) «велосипедить» в программировании?

    я замечаю что гораздо лучше всё усваиваю когда делаю всё с нуля

    Поверьте - так у всех.

    Но вы обратили внимание, что в школе вам рассказывали про опыты Галилея, а не дали два шарика и не сказали - разберитесь какой из них падает быстрее?

    Представьте что вы велосипедите долго-долго и разобрались с авторизацией и загрузкой файлов вдоль и поперек, а потом все же сталкиваетесь с каким-нибудь фреймворком и смотрите, а там загрузка сделана так же как у вас и вы бы могли не тратить год, на то чтобы дойти до этого, а просто сразу посмотреть. Смотрите на авторизацию и думаете - "о, а чо так тоже можно было?"

    Объем знаний слишком велик чтобы полсностью сгенерировать его самостоятельно. Best practice много и ко всем сразу сам не придешь. Чему-то учиться придется.
    Поэтому наилучшая схема чуть-чуть повелосипедить. Изучить пару фреймворков. Попробовать опять повелосипедить. Изучить еще один, а там, может быть, присоединиться к разработке какого-то..
    Ответ написан
    Комментировать
  • Полезно ли долго (и вообще) «велосипедить» в программировании?

    Moskus
    @Moskus
    Когда советуют, убедитесь, что у вас и у аудитории этого совета одна цель. Потому что "как можно скорее начать пользоваться фреймворками" - это если задача - как можно скорее начать шлёпать продукт и деньги получать. А если задача - научиться программировать, фреймворки тут не при чем.
    Ответ написан
    14 комментариев
  • Где можно найти нормальный учебник по графам?

    myjcom
    @myjcom Куратор тега C++
    Касьянов В. Н., Евстигнеев В. А. - Графы в программировании: обработка, визуализация и применение
    Год выпуска: 2003
    Автор: В. Н. Касьянов, В. А. Евстигнеев
    Издательство: БХВ - Петербург
    ISBN: 5-94157-184-4
    Количество страниц: 1104

    P.S.

    Где я могу такое найти?

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

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Школьный учебник по информатике.
    Ответ написан
    Комментировать
  • Можно ли написать свой редактор кода на python?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Ну, если хочется - смотри на то, что есть и делай лучше.
    Вообще-то камень преткновения здесь - грамотный текстовый движок. Их, доступных для Питона, очень не много.
    Есть в TkInter - его, если мне не изменяет память, использует штатный питоновский IDLE.
    Так же есть интересный проект https://thonny.org - тоже TkText расширяет.
    Раньше TkInter использовал LeoEditor, но он давно перешёл на Qt (leoeditor.com ) и использует свой движок (хотя, скорее, там есть возможность выбора - давно не смотрел).

    Scintilla - как компонент используется очень много где. В том числе и в коммерческой WingIDE, если я правильно помню. Примеров кода тут много, поскольку этот компонент интегрирован со всеми основными UI библиотеками.
    Смотри https://github.com/spyder-ide/spyder , ninja-ide.org ,
    https://github.com/matkuki/ExCo интересная штука, Eric IDE найди...
    Про scintilla можно почитать и на Хабре: https://habr.com/ru/post/144848/ https://habr.com/ru/post/144411/

    Кстати, там упоминается редактор, который теперь enki-editor.org и использует не scintilla, Qutepart - еще один вариант текстового движка (https://habr.com/ru/post/188144/ )

    Ещё есть интереснейший проект https://github.com/SergeySatskiy/codimension
    У него, вроде бы, тоже свой текстовый движок (на Qt, но не Scintilla)

    В общем изучай опыт и используй лучшее!
    Ответ написан
    3 комментария
  • JavaScript - высокоуровневый язык программирования?

    Zoominger
    @Zoominger
    System Integrator
    На что преподаватель с хмурым взглядом повторил "На высокоуровневом языке". Да с таким видом, будто он JavaScript за ЯП не воспринимает вовсе.

    Бгг, а препод-то в теме, любит поглумиться. Привыкайте к такому отношению.

    да и вообще можно сказать, что все современные языки - высокоуровневые?

    Нет.

    Если я не прав, то скажите в добавок какие есть "всемирно известные" и современные низкоуровневые ЯП?

    Assembler. Сишку теперь считают низкоуровневой. Ещё ряд нишевых языков.

    А JS таки да, высокоуровневый.
    Ответ написан
    3 комментария
  • Где взять подробный пошаговый туториал по решению реальной жизненной задачи с помощью Docker?

    @skrimafonolog
    Я понимаю, что если столько людей им пользуется - значит зачем-то оно таки нужно. Но хочется на реальном примере из жизни.

    Мода.
    Многие не понимают и используют.

    Пытаюсь освоить Docker - уперся в непонимание того, зачем он вообще нужен.

    Для изоляции среды - чтобы можно было один раз настроить с определенным окружением и затем запускать на любой ОС, чтобы другие программы не мешали.

    Есть такая проблема - софт № 1 требуется библиотеки А версии выше 1.3.4
    При этом софт № 2 требует библиотеки А версии ниже 1.2.9.
    Докер позволяет подобные вещи разрулить.

    В крупных проектах подобные вещи возникают сплошь и рядом.

    Если у вас нет такой проблемы, то вам Докер не нужен.
    Лишнее ПО создает лишние проблемы (скажем очистка неиспользуемых слоев в Докер отдельная проблема).

    Однако есть еще хорошести у Докера - легкость получения идентичной среди на совсем другой операционной системе, к примеру, для разработки. Тогда это нужно сразу в docker-compose втыкать. Внимание docker-compose это только для разработки, эта система не рекомендуется для production.
    Ответ написан
    2 комментария
  • Для чего нужны директивы препроцессора на языке С и С++?

    Zoominger
    @Zoominger
    System Integrator
    Лень печатать, почитайте сами:
    5d85f85fd3f76981179317.png
    5d85f89945186944026071.png
    Ответ написан
    Комментировать
  • Нужно ли учить графическую часть в winapi?

    Adamos
    @Adamos
    Если не хотите, чтобы ваши знания С++ стали неактуальными прежде, чем вы сможете их применить - избегайте в учебе любых материалов и программ с ключевыми словами "Microsoft" и "Visual".
    Ответ написан
    Комментировать
  • Нужно ли учить графическую часть в winapi?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вдруг я хочу QT учить?

    Нашел книгу Щупака по winapi.

    Смените книгу.
    Ответ написан
    Комментировать
  • Нужно ли учить графическую часть в winapi?

    Zoominger
    @Zoominger
    System Integrator
    Qt бы и учили, ИМХО.
    А по крестам для старта что-нибудь без WinAPI.
    Ответ написан
    Комментировать
  • Стоит ли устанавливать Астра линукс и чем его можно заменить?

    fdroid
    @fdroid
    press any key
    Расскажу про свой опыт. Работал в школе программистом (про корректность названия должности промолчу, потому что, по сути, ни к какому программированию я отношения не имею, я сисадмин, местами даже эникей — ну или наоборот). Возник вопрос о переходе на отечественное ПО, просто потому что, согласно законодательству, муниципальные организации не имеют права закупать ПО, не присутствующее в реестре российского ПО. А лицензироваться потребность была совершенно неиллюзорная. Начал изучать тему. Для начала — операционная система. Существует Альт Линукс, который есть в реестре, но таки он не бесплатный для использования в организации. Связался с СПО «Базальт» — разработчиком ОС. Компания довольно легко пошла на встречу, согласившись предоставить нужное количество лицензий без оплаты, на условиях договора сотрудничества, который, собственно, сводился к тому, что школа на своём сайте выкладывает в общий доступ информацию о том, что использует Альт Линукс и как именно использует. Условия достаточно ненапряжные, то, что надо. Конечно же, в комплекте идёт офисный пакет — Open Office или Libre Office, точно не помню, но, как мы все знаем, весь багаж документации любой организации представлен в docx и xlsx, с которыми «либра» без поехавшего форматирования не совместима. Начал искать варианты. Первый вариант — МойОфис разработки ООО «Новые облачные технологии». Во-первых, никакими путями у меня не получилось найти ни в свободном доступе, ни на других ресурсах, дистрибутивы просто для того чтобы, хотя бы, оценить что ПО из себя представляет. Тем не менее, связался с разработчиками и совершенно без проблем для школы было предоставлено необходимое количество лицензий. Но, хоть у МойОфис с совместимостью с МС-форматами дела обстоят намного лучше чем у «либры», но, всё же, неидеально. Я давно знаю и пользуюсь пакетом OnlyOffice, который бесплатен для частного использования и реально заточен под то, чтобы работать с МС-форматами файлов, совместимость я оценил бы процентов в 99. Да вот только OnlyOffice для организаций не бесплатен и его нет в реестре российского ПО. Но, оказывается, существует версия, которая, по сути, один-в-один OnlyOffice, только называется Р7 Офис — и вот эта версия есть в реестре, но, опять же, для организаций не бесплатна. Связался с разработчиком — АО «Новые коммуникационные технологии» — и, опять же, никаких проблем с получением бесплатных лицензий для школы не возникло — предоставить нужное количество лицензий разработчик готов. Весь затык был в том, что, со слов разработчика, не определён порядок передачи лицензий и они ждут первого встречного шага со стороны регионального Министерства образования. Ввёл директора школы в курс дела, объяснил ситуацию, т.к. дальнейшие действия — это уже административная работа. Таким образом, в реальности оказалось, что можно обеспечить школу лицензионным софтом и не потратить на это ни копейки, что, безусловно, радует. Но вот до конца всю эту тему я не довёл, т.к. уволился, т.е. окончательно не согласовал лицензирование Р7 Офис, а ведь это действительно достойный софт.

    PS Мой ответ больше про внедрение, но пусть будет как есть, возможно, кому-нибудь окажется полезным.
    Ответ написан
    2 комментария
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    Можно ли себя называть миддлом, если твой код говно?

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

    как писать поддерживаемый код?

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

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

    Скажу за себя. Ни одной из этих известных книжек за свою жизнь не прочитал. Писал много говнокода дома, очень много. Удалял, переписывал. Смотрел код других людей, анализировал, пытался перенять то, что считал правильным.

    Можно ли себя называть миддлом, если твой код говно?

    Не пытайтесь себя оценить. В каждой компании свои понятия миддла. А если кто-то 35 лет на лиспе кодил, а потом прыгнет на Angular - кто он, джун или сеньор?
    И, да, все мы в какой-то степени пишем говнокод. Если кто-то Вам доказывает, что он пишет супер чистый код - не слушайте.

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев