×Закрыть

Изучение Си и поиск работы

Здравствуйте.

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

Если по обучению вроде почти понятно: есть десятки книг даже на русском (только как проекты делать без наставника — нет) , то с поиском работы пробел.

При поиске на work/rabota «программист С» (или)СИ", сайт подсавляет что угодно (C#, C++), но не выдает что нужн мне, ибо таких вакансий нет :(

LinkedIn

Лучшие комментарии пропустить

си живет либо в embed/однокристалках либо в серьезном софте (который у нас не разрабатывается)
так что можно для фана фиксить линух (файрфокс, хром, mysql) , а потом через несколько лет уехать в какой нить ред хэт, амазон , майкрософт (но только очень и очень теоретически)

есть десятки книг даже на русском

 — нужно привыкать читать на английском. Даже если книга не устарела, чаще всего у неё кривой/странный перевод.

только как проекты делать без наставника — нет

 — запросто, кто мешает делать университетские лабы?
Чисто программистов на C не бывает. Как и сказали раньше, синтаксис выучить не проблема, годы могут уйти на изучение предметной области.

P.S. За 7 лет можно было бы стать неплохим специалистом, если бы действительно был интерес.

На самом деле просто знаний C очень мало, C легко изучаемый язык, куда важнее знаная "вокруг"(конкретно уже зависит от направления разработки) C ибо C низкоуровневый язык

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Хочу освоить именно этот язык, т.к. со школы манил

Если «манил» это от слова «money» то забудь.

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

Ассемблер там хоть не собираешься учить? Вместе с пайкой?

Правда. Не идите в эту сферу. Все ембеддеры бедные, как церковные мыши

Церковні миші не можуть бути бідними

Квантор всеобщности тут, все же, не стоило использовать. Исключения есть.

Кто-то не понимает сарказма?
А вообще, не мешайте отгонять «мечтающих, но не делающих». Это точно не та область, через которую можно *быстро* войти в айти.
Если есть желание — то да, можно попробовать. Конкуренция ниже, но зато входной порог выше.

Многие утверждают это на полном серьёзе.

asm не, а вы в чем специалист? не видно из профиля. какой у вас лично опыт с встраиваемыми системами?

сам язык Си прост, куда проще чем С++. Зачастую сложна именно предметная область.

подтяну основы, дальше что и куда?
у меня сложилось мнение, что по нему ищут спецов самостоятельных, а не джунов, которыми нужно руководить и уделят время.

Джуны, которыми нужно руководить, не нужны никому.
Нужен человек, которому можно дать задачу, сказать, куда копать, он накопает, покажет, тогда скажешь, что переделать. Он переделает и все ок. То есть, внимание требует раз в день, кушает мало, а работает — много.

Вот тебе два опенсорсовских сишных проекта — OBS и FFMPEG. Используются для видео обработки. Альтернативы им практически нет. А если есть, то жалкое подобие им или используют их библиотеки (как делаю я). Скачивай код, изучай, можешь даже поучаствовать там, пофиксить баги. Освоишь их — ищи работу, нет — нах.

Танунафиг такие проекты с таким кодом. Там высокооптимизированные куски, которые невозможно читать, и невозможно понять.

Все сишные проекты такие. Хотя разве, что лабы, но для них есть индусы

Не все, на моей памяти были радиотелефоны, и там более-менее читаемо (правда, event-based). И в дровах upper half может быть (и, вероятно, будет) без оптимизаций по железу. И в юзер спейсе тоже без жести.

Шесть лет назад ffmpeg начал изучать, правда, только кодируемую часть и преобразование в RTMP. Убил на это, где то 4 месяца, пока начал что то писать свое. Опыт в разработки на Си был большой, но область применения по видео пришлось начинать с нуля

Отож. А я за 9 месяцев выучил Питон и С++. Поэтому новичку лезть в видео вряд ли полезно — помрет с голоду, пока освоит.

Вопрос был у него по Си. Я и ответил. Если по честному, то даже и плюсы не прокормят сейчас.

даже и плюсы не прокормят сейчас

 В плане?

мало сейчас С/С++ чистых проектов. Обычно идет зоопарк в прицепе.

Так про прокорм это не про язык. Прокорм — это область специализации (зачастую узкая). А язык — не более чем инструмент.

прокорм, це скільки на руки:
$400, $1K, $2K5, $5K?

щось довго, як на мене, достатньо тижня для написання клієнт-сервера.

А за за день пишеться приклад згідно манулала,
єдиине, що там час від часу міняється АРІ і приклад виявляється дещо застарілий, і тре адаптовувати,

Еще говно-стример вспомни. Там вообще только процентов 10% работающего кода.
И безумие с закатом солнца ручками — реализация С++ на С.

безумие с закатом солнца ручками — реализация С++ на С

 Это не безумие, а Linux kernel style. Оно реально шустрее, чем С++, и бегает в любой ситуации на любом железе.

Вот только оно не бегает, а еле ползает, да еще и падает случайно.
И хер соберешь на чем-то, на чем пейсатели его не собирали. Да и на том же самом собрать еще тот танец с бубном.

И хер соберешь на чем-то, на чем пейсатели его не собирали. Да и на том же самом собрать еще тот танец с бубном.

Это всё зависит не от эмуляции ООП на C, а от других материй. Нарушенный алиасинг, asm-вставки с кривым определением побочных эффектов (сегодня не выстрелило, а завтра чуть другие условия и зацепит). Или шутки типа макроса container_of в Linux, в котором явное разыменование NULL-указателя (пусть даже для проверки типа).

Эмуляция ООП на С просто сильно усложняет отладку этого уродства под названием гстример.

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

есть что-то менее объемное и сетевое и системное?

оно не сетевое и не системное.
если не нравится сетевое и системное — надо учить питон или жабаскрипт.

я не верно написал:
есть что-то менее объемное, в идеале сетевое и системное?

гляньте lwn.net/Kernel/LDD3
оно точно системное
сетевое — напишите чатик под линукс в консоли

«Прост язык» != «просто писать на языке» (независимо от области).

Я вот в одном проекте уже задолбался вычитывать все эти rtpp_trr_tfx_open и смотреть, чем оно отличается от rtpp_tfx_create_trr. Хочу namespaces и инкапсуляцию, чтобы не надо было следить, кто полез кривыми ручками куда не положено :)

Нет ли на втором мониторе тулзы, которая при наведении указателя мыши на rtpp... покажет описание функции? Я думаю, ОС не предусматривает свободу действий с кодом, ограничивает ее. Почему? Потому что вы перестанете покупать аддоны. Следствие: переписать ОС или использовать AutoIt подобные языки для быстренького запиливания собственных примочек помогающих в описанном выше случае. Имхо на всякое ограничение можно свою утилиту наваять, которая по хоткею или (тут вообще круто — согласно контекста применения (тут распознавание нужно еще) ) взломает ограничение установленное хитрым разработчиком.

Нет ли на втором мониторе тулзы, которая при наведении указателя мыши на rtpp... покажет описание функции?

Это не сильно помогает.

Я думаю, ОС не предусматривает свободу действий с кодом, ограничивает ее.

При чём тут ОС?

Перепутал. ОС в меньшей степени, чем IDE

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

есть десятки книг даже на русском

 — нужно привыкать читать на английском. Даже если книга не устарела, чаще всего у неё кривой/странный перевод.

только как проекты делать без наставника — нет

 — запросто, кто мешает делать университетские лабы?
Чисто программистов на C не бывает. Как и сказали раньше, синтаксис выучить не проблема, годы могут уйти на изучение предметной области.

P.S. За 7 лет можно было бы стать неплохим специалистом, если бы действительно был интерес.

> Даже если книга не устарела, чаще всего у неё кривой/странный перевод.

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

кто мешает делать университетские лабы

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

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

работали? есть инф.по требованиям на СИ? Если есть такие спецы и вакансии.

Работаю. Не знаю на счёт требований. Но, то что я вижу, это востребованность си.

Спросите их на счет вакансии для начинающего и какие требования.

Артур, извините, конечно, а почему кто-то что-то должен делать за Вас?
Требования Вам тут чуть ли не каждый комментирующий расписал, а Вы всё ищете, где же есть такая вакансия, чтобы с совсем нулевыми знаниями и чтобы вся команда Вас тянула. Вы бы сами такого человека наняли, даже в качестве стажёра?

Никто такое делать не будет, предварительно не отсобеседовав Вас во все интерфейсы.
Что Вы знаете и умеете?

В перечне вакансий есть с/с++ вакансии, не поленилась проверить.

Я був на такій співбесіді, де пишуть, переважно, на С.
Будь готовий до такого, якщо йдеш в люксофт на співбесіду:
— Операції з бітами. Як інвертнути 4 біт в числі, як інвертнути всі окрім 4, як просто дізнатись значення певного біту і т.д. це все треба писати на папірці робочий код.
— Знати про структури даних і базові алгоритми.
— Мережі, знати як працює TCP/IP стек, що таке таблиця маршрутизації і навіщо.
— Лінукс, один тільки цей пункт можна розписувати годину. Кернел спейс і юзер спейс, базові команди.
— Ну і сішка звісно. Питають багато збоченого, наприклад, що буде в результаті INT_MAX + 1 і чому. Вміти писати нескладні макроси.
— Бажано шарити плюси, якщо шариш, то почнуться розмови про STL, проблеми в наслідуванні і таблицю віртуальних функцій, ідеально, якщо ще й новий стандарт шариш, але там уже на дві години можна розписувати що питати будуть.

Одним словом, будучи на сіньйорній позиції, мені було достатньо не легко підготуватись до того інтерв’ю, але джуніора чи стажера звісно ж всього того питати не будуть. Текст більше для обрису горизонтів розвитку, якщо вдастся свічнутись.

P.S. Особливо, кхм... як би то не образити, «фанати своєї справи», починають питати за принципи роботи операційних систем, принципи роботи алокаторів пам’яті, принцип роботи оперативної пам’яті, кеші процесора і т.д.

Джунов мучат на собесах больше, чем синьоров. Правда, если ответит 65% — можно взять.

принципи роботи операційних систем, принципи роботи алокаторів пам’яті, принцип роботи оперативної пам’яті, кеші процесора і т.д.

Таненбаум в помощь. Это все весьма полезно, чтобы понимать, что оптимизировать.

Операції з бітами. Як інвертнути 4 біт в числі, як інвертнути всі окрім 4, як просто дізнатись значення певного біту і т.д. це все треба писати на папірці робочий код.

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

Сталкивался с джавистом, для которого оказалось новостью существование big endian и little endian.

Та відповсти без проблем, а написати якусь заумну задачку на листочку може вже бути проблемою. Особливо, якщо не працював з цим останні декілька місяців, нюанси забуваються.

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

Это на джуна и будут спрашивать. Надо знать любые 60-80%, тогда есть шанс пройти.

спрашуючі будуть знати хоть 40%? разом чи кожен отдєльно?

Як на мене, якщо ми говоримо саме про джуніора який претендує на позицію саме С розробника, то я б очікував:
1. Перш за все знання С, як би дивно це не звучало. Структури, макроси, арифметика з вказівниками, вказівники на функції, макроси, приведення типів.
2. Базовий CS, алгоритми і структури даних.
3. Знання лінукса хоча б на юзерському рівні.
4. Хоча б мінімальне уявлення про мережі, рівні OSI, TCP/IP
5. Вміти прості операції з бітами.
6. Загальна комп’ютерна грамотність. Знати як налаштувати мережу, як встановити в лінуксі хоча б IDE.

і навіщо знання лінукса сішнику?

Загальна комп’ютерна грамотність. Знати як налаштувати мережу, як встановити в лінуксі хоча б IDE.

а ще ворд, екзель і починити прінтер в бухгалтерші, тиж праграмізд

Бо лінукс на С пишеться, нє?

ядро на С, але ж нашо, як уже папіредниками написано до нас

бо залізо нове, і оті папі про нього не знали

да не настільки нове, що нада дрова з нуля херачить
там пару регістрів може надо добавить\ініціалізувати,
копіпаста рулить

та часто хочуть те залізо поставить іншим раком...

А вот статейка в тему. Читается как блокбастер! habr.com/ru/post/459136

ага прикольная штука кстати довольно годно описана реальная работа пусть и «в обычном режиме» она «в позитивном ключе» ))

ЗЫ: хотя распаять на схеме не те запчасти либо не так в общем скорее обычная практика чем наоборот ну а что программисты же ж в коде тоже баги пишут? ))

а я от не знаю що таке таблиця маршрутизації і знати не хочу і не збираюся це вчити найближчим часом і вважаю що воно не потрібно, так як це знання специфічні для розробників різного виду мережевого обладнання яке мені нахєр не впало зовсім, так що ?

а потім бідкаються, бо або vpn працює, або гугль, а щоб і те і те — ні гг

це проблеми ІСТ га(е)їв
от запитай Чиндженки, який працює з ЦОС, нах йому впала таблиця маршрутизації?

у наших хмарах та апворках, такі може і є, але навіть спроба з ними поспілкуватися якось не гарно виглядає

Якщо у вакансії є вимога шарити мережі, що запропонуєте запитувати?
А якщо це джуніор або просто людина, яка не мала комерційних проектів де б довелося працювати з мережами?

Забудь про C. Это худшее направление с такими исходными данными.

со школы манил реверсинг софта, низкоуровневое программирование, возможность разработки драйверов

А конкурировать прийдётся с людьми, которые со школы этим занимались. Без наставников.

Нифига. Я в 25 зашел в С, и в третий день работы увидел на проекте такой код, от которого понял, что не я здесь самый тупой. Правда, это были голодные 2000-е.

в третий день работы увидел на проекте такой код...
Правда, это были голодные 2000-е.

Тож нічого і не змінилось в цьому плані.
На більшості проектів в перші дні бачиш таке, що хочеться тікати.

Я не о том, а что вайтишников мало было, и брали кого подряд. Сейчас больше хотят знаний.

спасибо за мотивацию, если сейчас разрабатываете на СИ, то что можете сказать по работе с этим языком и ее поиску? Какие продукты пишите?

Вот прям щас на С++. В эмбедед они вместе идут обычно, если не специализироваться на внутренностях линукса или совсем мелких контроллерах. Для линукса — чистый С.
Сидел на разном от радиотелефонов до поисковой системы и браузера, сейчас — телефония внутри роутера.

касательно эмбеда: покупа одноплатник, что дальше писать и проективать? для разработки проекта нужна плата расширения, если это робот или машинка, то плата для упр. сервоприводами. Но что писать то в этом случае?
Тут еще мышление нужно подстроить в правильное русло, на это время может понадобится.

я нахожусь в верхней половине эмбедеда — работаю с софтом, а не с железом. Начинал с игрушки sourceforge.net/projects/colours
что делать с одноплатником — не подскажу

Знаходжусь в нижній половині ембеду, працюю більше із залізом. В даний час займаюсь роботами. На одноплатнику відносно важкі задачі, навігація, компютерний зір, і подібне — одноплатиник передає дані на мікроконтроллер, який керує двигунами і сервоприводами. Плати роблю кастомні під конктетні задачі. На одноплатнику лінукс, на мікроконтроллері FreeRTOS.

нифига это не низ, но зависит от объема работ конечно же, может вы часть из указанного делаете.
посмотрите, надеюсь актуально будет armpc.ru

Щось не зовсім вас зрозумів...Одноплатні комп’ютери це Raspberry Pi, Beaglebone, Nvidia Jetson та інші.

Определись с направлением, которое хочешь ковырять. Если хочется попробовать сеть и ядро, то можно в следующем порядке.
1 Написать сетевой драйвер из LDD3
2 Написать клиент-сервер для юзерспейса. Посмотреть как твои пакеты из юзерспейса в драйвер бегают
3 Написать свой сетевой фильтр (это тоже модуль ядра). Посмотреть, перехватывает ли он твой трафик. Добавить в него возможность некой конфигурации через sysfs и/или netlink сокеты.
(Пункт 1 — 3 можно отладить на компе)
4 (опционально) Для одноплатника можно попробовать собрать образ системы в чем-то популярном. yocto, openwrt...
5 Добавить в ядро свои простенькие сокеты (для этого нужно sdk, йокто его умеет собирать, не знаю как у опенврт дела) с поддержкой пакетов-датаграмм (изобрести свое UDP) Направить эти пакеты в свой сетевой драйвер.

1 Написать сетевой драйвер из LDD3

а где спеку на сетевую карту взять? разве что из готового кода ядра ковырнуть?

Направить эти пакеты в свой сетевой драйвер.

лучше сразу RDMA поднять )) кстати если подумать у интеловских чипов открытые спеки...

Там SLIP loopback. Будет назад получать все что отправил

это типа «драйвер виртуальной карты»? чёт мне кажется и мой опыт тоже это же ж и показывает что и опыт такого тоже будет «скорее виртуальным». вся макотка начинается когда оно начинает говорить с уже реальным железом. а просто модуль в ядро сунуть дело нехитрое.

ЗЫ: опять же ж конечно смотря какая задача стоит чему научиться и научиться ли чему-нибудь реально

Та там пока сунешь все пальцы об многопоточность и прерывания обобьешь

дык! вот и я об том жы ж вот приходит такой чел я говорил дривера под линукс ядра писал! ок говорю а накидай тупую схему многопоточности на прерываниях хотя нет пожалуй это тяжело ну пусть будет хотя бы б как ты прерывания своей сетевой карты обрабатывал или может ты её пулил тоже норм или может ты DMA умеешь? а получается он реально написал (взял напрямую пример кода с LDD) «болванку» модуля ядра и даже 1 раз её загрузил а в реальности там ничего.

ЗЫ: а вы говорите «режимы работы транзистора» (к) (тм)

Пускай сначала хоть с такого начнет. Будет что-то типа хелловорлда.

было все понятно до п.5, зачем? и зачем собирать свой образ, какую цель преследовать?

по описанию, целый фаерволл получится :)

так отож «напоркуя»? що воно дасть?

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

и зачем собирать свой образ, какую цель преследовать?

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

касательно эмбеда: покупа одноплатник....

А то рассказывали мне историю. Решил разработчик внутри компании деятельность сменить. Приходит и говорит: «Хочу разрабатывать под эмбеддед линукс». А ему в ответ: «Ну, чтобы далеко не ходить, расскажи как и в какой последовательности на малинке линукс запускается. Не знаешь? Ну, приходи когда узнаешь»

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

Решил разработчик внутри компании деятельность сменить. Приходит и говорит: «Хочу разрабатывать под эмбеддед линукс». А ему в ответ: «Ну, чтобы далеко не ходить, расскажи как и в какой последовательности на малинке линукс запускается. Не знаешь? Ну, приходи когда узнаешь»

ЧСВ таке ЧСВ

В простонародье это ЧСВ называется «новые ревизии железа»

а криптор написать, сильно нужно грамотным быть в теории и практике? Как минимум: знание РЕ формата(исполняемые файлы Виндовс), работа с файлами, анализ сигнатур ...

от накуя це все, я от знову повторюся, цього не робив і не збираюся робити, так як це дуже обмежена сфера телекому, який я обходжу 10ю дорогою, тому що там нудьга і пздць

Тільки в ній вакансій третина від усього київського ембедеда

я в курсі, що WiFi хантять, слава Богу, що ледве відбився від того спаму

от накуя це все, я от знову повторюся, цього не робив і не збираюся робити

Я не знаю зачем тебе это, поскольку ты занимаешься совершенно другими вещами. Я могу сказать зачем это мне. Я этим себе на хлеб с маслом зарабатываю.
Я даже больше скажу. Я вообще не понимаю зачем ты влез со своим особо ценным мнением и начал примерять это на себя (и, подозреваю, сравнивать со своей текущей деятельностью у себя в голове). Ы — логика.

так як це дуже обмежена сфера телекому, який я обходжу 10ю дорогою, тому що там нудьга і пздць

Все мужики, расходимся. Муха (которые как известно, редко ошибаются) сказал что телеком это скукота и п****ц. Закрываем это направление в Украине. Все, кому интересно — вы неправы. На самом деле вам неинтересно, но вы притворяетесь.

Я вообще не понимаю зачем ты влез со своим особо ценным мнением и начал примерять это на себя

лол, просто лол,
твоя думка тут так само ціна і моя

Я этим себе на хлеб с маслом зарабатываю.

решта, наверно, в АТБ «ахрана атмєна»

сказал что телеком это скукота и п****ц

так тому воно й оутсорситься,
в 99% оусорситься некритична руттина робота

дивись, я от «вітаю» написання коду «тупого» коду, так щоб нуб зрозумів,
бо за 2 тижня, можливо тобі тре буде його читати,
а там — «мамамія, чьо автор хотів сказати?»

Та ні, він просто був тормозний з зайвими malloc/free на рівному місці під буфера, коли можна було напряму нормально зробить

какими иходными данными? то, что занимался реверсом софта и досихпор не утратил интерес к системному? и что не повелся на высокую з/п и не освоил популярный язык?

На самом деле просто знаний C очень мало, C легко изучаемый язык, куда важнее знаная "вокруг"(конкретно уже зависит от направления разработки) C ибо C низкоуровневый язык

Вот тут полно работы jobs.dou.ua/...​ancies/?category=Embedded
Также можно глянуть на сайтах крупных аутсорсеров (ГлобалЛоджик, Люксофт, Циклум, Софтсервы и Инфопульсы разные) — у них эмбедеда хватает.
Еще всякие Юбиквити, Мелланоксы и Ринги.
Посмотрите, что дополнительно требуется (С++, Линукс, многопоточность, сети, железо, ассемблер).
Драйвера раньше учили по книжице lwn.net/Kernel/LDD3
По практике — могу что-то советовать, skype: denys.poltorak
Может быть проще вначале Питон выучить и на нем тренироваться, потом — почитать teach yourself C++ in 21 days и чето написать, потом — искать работу, зная 3 языка.

Полно работы — всего 2 вакансии для человека с опытом работы меньше года? :)

Еще всякие Юбиквити, Мелланоксы и Ринги.

...которые не возьмут без знаний в специфичных предметных областях.

всего 2 вакансии для человека с опытом работы меньше года

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

(На третьей неделе сплошных собеседований на Trainee C developer)
Где это там выбор кандидатов небольшой?!

а откуда они приходят?

Как правило, с различных курсов с «гарантированным трудоустройством», коих развелось в последнее время.

Сколько уже наняли за 3 недели?

Цифру назвать не могу, но где-то из семерых 1 проходит.

интересно, а под какой проект вы берете именно Си-шников и какой входной порог? Даже если вакансий уже нет, уведомите что нужно, сохраню себе для ориентира в дебрях 8)

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

Что по направлениям, то С — это сплошной embedded. А это значит Linux или RTOS, а также умение все это разворачивать на свежеспроектированной плате (а значит, еще слегка глюченной) в минимально необходимой комплектации. Embedded, в свою очередь, почти всегда идет бок о бок с сетями, зачастую это основной способ коммуникации железки с внешним миром. Гуру динамической маршрутизации быть не обязательно, но маст-хев — понимание того, что проходит через домашний роутер при загрузке веб-странички из инета на домашнем компе, и как поднять на этом самом компе сервер, доступный оттуда.

Та ну, это у вас какой-то сетевой проект.
В Люксофте надо будет CAN шину, а не сети.
Или OS-less проектики бывают, вроде датчиков всяких.

Ну в Люксофте это, как правило, автомотив. Он также попадает под определение «embedded», но обычно его выделяют в отдельное направление, т.к. масса своей специфики.

Тогда телеком тоже надо выделять... И сети... И IoT.... И ничего не останется в результате

Нет. Между этими направлениями можно спокойно переключаться и не увидеть ничего для себя нового. Но вы — первый человек на моей памяти, кто подразумевал автомотив, говоря «эмбеддед».

вобщето в аутомотив більше ембеддед, чим всякі там роутери\світчери

посмотрел вакансии вашей компании — по моему «скиллу» нет, в тех двух 5 лет стажа.

Молодец, что искал на сайтах, где в основном ищут не образованные трудовые ресурсы по типу грузчиков, продавцов и немного программистов на трешовый веб.

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

Или на крайний случай элементарно отправить резюме напрямую в компании, авось кому нужен рекламщик с курсами 2012 года на позицию «C программиста» делать драйвера для ракет SpaceX.

> загуглить специальные сайты поиска работы для IT-специалистов, где могут таких искать
Так вот он и загуглил. Только вместо просмотра вакансий написал на форум...

отстроумный Вы 8)
Что интересно, все кто отписался работают в конкретных компаниях и только у вас ничего не указанно.
Зачем написали то ?

Не спорь с анонимусом — он начнет размножаться делением

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

реверсинг софта, низкоуровневое программирование, возможность разработки драйверов

Для этого нужн несколько другой набор знаний, чем абстактное «знание С». И да, работы (для джунов) тут нет,
Если все-таки интересно, можно только посоветовать, продолжать «ковырять» драйвера и низкоуровневое программирование самостоятельно (как вариант, начать с багов в oss), «прокачаться» таким образом до сеньйора, а там как повезет — очень возможно, что вся эта возня с битами просто надоест )

вы серьёзно, изучать нулевому драйвера? О_О
почему не исходники опенсорсных проектов или выложенных в сеть программ?

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

многопоточную и многозадачную ОС

uC-OS2 занимала 8КБ (кажется) и поддерживала многопоточность. И С++ там никуда не лезет, потому что обычно недостаточно оперативки для динамического аллокатора.

Ну так аллокаторы можно не использовать или указать свои...Не обязательно юзать стл, можно, скажем, как на «С с шаблонами» писать :) Я, кстати, стл тупо копировал частями прям нужными себе в ардуино проект. С десктопа хидера. А потом подпиливал под задачу.

А про «тихий ужас» — гляньте rtl-sdr Сишный вариант, вот где эмбедер видимо гулял. Это, кстати, я переписал на яве (кроме libusb), и заставил на 1 ядре андроид 1Ггц работать вполне быстро — 300к сэмплов/с.

тут вопрос, зачем туда тянуть С++. ИМО на мелких проектах С вполне ок.

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

чувак изобрел виртуальные ф. на С

 Так дрова в ядре линуха работают. Никто ничего не изобретал. Это С++ изобрели какие-то мажоры.

Якщо С++ для мажорів, що тоді з Java/C#/Python...?

то для немовлят))))

В основном там «тихий ужас». Приходят эмбеддеры и начинают программировать на С под многопоточную и многозадачную ОС. Заодно в 1 лицо изобретают, как они там у себя привыкли, виртуальный функции и прочее (ну т.е. С++).

Ты гстример описал.

Да, серьезно. Начать можно, например, с такого:
www.tldp.org/...​.6/html/lkmpg.html#AEN121

Да, если хочешь устроиться на работу — разбирайся lwn.net/Kernel/LDD3
Голый С никому не нужен. Либо идешь вверх (С++, Питон, архитектура), либо — вниз (драйвера, ассемблер, железо).

Либо идешь вверх (С++, Питон, архитектура)

а чо не Go, Java, Rust?

либо — вниз (драйвера, ассемблер, железо)

не в цій країні

а чо не Go, Java, Rust?

Бо вони з С не стекаються. А Пітон та С++ — стекаються, є позиції, де як раз такий набір потрібен.

Якщо бекенд то ще як стекаються.
А якщо тести писати, то да Питон.

не знаю — не чув, щоб на проекті були С та Джава. Що то за монстер?

Андроід — раз,
телеметрiя — два...

Думав, там плюси...

Ловлевел С\С++\Rust, бізнес логіка на чому Бог дав

Откуда в андроеде плюсы? Но через JNI и танец с бубном таки получится.

Вроде, без бубна...

А ты попробуй, потом за бубном в магазин побежишь.

Вот только стыковать питон с С++ это еще тот дурдом. Проще высунуть наружу С интерфейс и дергать из питона. Но предел безумия — это в С++ код интегрировать Питон код.

Питон в таких проектах для парсинга логов, прогона автотестов, автогенерации кода для экранчиков, и прочих доп задач.

Не только. Обычно его как клей для С++ либ юзают, но лучше если те либы предоставляют С интерфейс.

...есть такая штука «javacpp», она по ява классу и С++ коду генерит промежуточную обвертку для вызовов.
Вот подумалось, м.б. можно ее под питон переделать? ) Но эт так, хинт. Мне не зачем.

Такого говна уже вагон и маленькая тележка и таки все оно говно. Где-то что не умеет, а во многих местах вообще глючит.

За это спасибо Гвидо. Он создал безумие с интеграцией С++ и Питона.
А мог он просто почитать, как это сделано в Матлабе и повторить их подход.

Вы что, испытали много трудностей при поиске работы по системному ?

не зрозумів запитання, але вна Україні його мало, крім того, я вже кілька років не шукаю роботу\проекти, вони мене «шукають», так що я не можу сказати що робити вайтішнику тепер

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

У rust порог входа, нескоько другой. Если поставить задачу, как «написать простейший драйвер с 0», то на С получится значительно быстрее.
А так да — rust явно, перспективне))

человек только учится программировать, какие драйверы писать?

Человек спрашивает, не про «научится программировать», а

реверсинг софта, низкоуровневое программирование, возможность разработки драйверов

В качестве первого языка и С и rust весьма хреновые, если на то пошло )

Вот это да, а я и не знал, пойду учить жаваскрипт, это ж сейчас модно?

это все было в школе и на примитивном уровне, все равно придется учиться программировать

это нормально. я когда учился программировать, написал драйвер виртуального рам-диска для MS DOS . а еще вирус и антивирус :-)) когда программирование для тебя хобби , тебе в кайф пробовать разные вещи

спасибо, примерно на одной волне.
я и не думаю что начав программироватьна СИ, найду работу в ближайщие месяца 3. Пока нужно заниматься тем, что получается, и попутно, без спеха и самобичевания изучать новое, не гнобя себя сроками.
Другое дело, что много инф. пока не способен переварить и усвоить, следовательно:
а) обращаться к преподу ( еще разобраться в их квалификации)
б) изучать по форумам и найденным в сети исходникам, читая их, но тут может куда больше времени уйти и год мне точно понадобится.

Виктор, сейчас разрабатываете? Посоветуйте как поступить с вашей точки зрения.

Давно низкоуровневыми штучками не занимаюсь со времен учебы в институте (у меня дипломная работа была написана на Си и Ассемблере), пишу унылый энтерпрайз ради денег. Поступайте по велению сердца :-) к чему душа лежит

Как их можно вообще сравнивать? rust если сравнивать, то только с modern c++

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

Перспективы написать драйвер ядра на python у вас около-нулевые

Перспектив вообще работать, у кого-либо, с ядром примерно столько же.

Это вы не видили драйвера для лазерников кэнон времен примерно 2010г.
За последние 9 лет ломались несколько раз, потому что питон уже изменили, а в драйвере в 1й строчке в комменте не хватало " - ", 3 дня искал...питон, да...

мой косяк, который не придумал как подоброть — я плохо усваиваю и перевариваю большие потоки инфы, а изучая высокоуровневый язык этого не избежать. Помимо языка (который куда больше СИ), будут фреймворки , библиотеки.

Поправьте если заблуждаюсь.

Будут большие потоки инфы, но только уже в предметной области. Не обманывайте себя. Знать нужно много везде.

информации в вашем посте считай нет, а вы со своего опыта рассказать можете? есть опыт?

чому нема, Rust має достатньо можливостей замінити як С та і С++,
він не такий «простий як С» і не такий «заворочений як С++», тобто десь посерединці між ними,
має відмінну від обох парадигму щодо безпеки «якщо код скопілювався то в 99,9% не буде крешитися», тобто відпадає велика кількість часу потраченого на виловнювання причин сегфолтів та іншої непонятності в рантамі
От зроби проект на С на распбері, а потім на Rust (напр. метеостанцію) і відчуй разніцу.

:)
Для початку хоча б поряд стати, а вже потім «замінювати».
C++17/20/23 чим вам не Rust/Java в майбутньому?
Не до того все йде?

C++17/20/23 чим вам не Rust/Java в майбутньому?

частково так, але С++ монстр, а Rust десь так як Go але без GC

Не до того все йде?

ні, так як добавляється сінтакс шуга, але концепт остається старий: С з класами ©

Так про цукор можна до будь чого сказати.
Залежить від того, що є найнижчим рівнем;)
С + класи теж цукор по відношенню до АСМ.

концепт С++ від цього змінився, чи так і лишається «С з класами»?

До С++11 залишається, після я вже не певен.

> возможность разработки драйверов ...

У Львові — 3-го числа почались заняття GL, мала ймовірність що візьмуть з запізненням, але все ж спробуйте — напишіть їм
dou.ua/calendar/27200

Раніше були, наприклад, такі курси:
dou.ua/calendar/21695
dou.ua/forums/topic/21220

Про семінари:
dou.ua/forums/topic/25885

Моніторте їхні новини.
www.globallogic.com/ua/who-we-are/news/#all

Написал дня 3 как им на почту, тишина.
большое спасибо, хотя сомнения что за 2 дня можно чему-то научиться.
и интересно, для чего эти бесплатные воркшопы, ищут таланты?

Они набирают людей, которых потом можно нанять в компанию

Можливо це вас також зацікавить: plvision.eu/...​tm_campaign=Post-Bootcamp

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

Ця книга по С теж хороша: www.amazon.com/...​ers-Library/dp/0321776410

також можете спробувати курс CS50, там дуже цікаві задачі на С. Є варіанти дивитись оригінал на edx англійською : www.edx.org/...​ction-to-computer-science
або український переклад на Prometeus:
courses.prometheus.org.ua/...​etheus CS50 2019_T1/about

Не так давно набирали кучу программистов на сях — софт для роутеров разрабатывать.
Так что бывает и такое.

На железо от 64Мб оперативы? Да там Контр страйк пускать можно, нефиг там с сями делать, CPP рулит.

Смотря какой софт... если это модули Линукса, то там проще писать на сях, чем тащить туда плюсовый рантайм.

П.С.: По секрету скажу, программирование в духе современного С++ больше кушает русурсы не ОЗУ, а ЦП.

Флеш оно кушает, который в железках дефицитный

Для STM32F4, STM32F7, STM32H7, PSOC 6 без проблем можна писати на С++ (зрозуміло що з певними обмеженнями)

У этих традиционно флеша больше. А вот когда на железке 1GB RAM и 32 MB флеша, то начинаешь задумываться, а точно ли нужно питон в дистрибутив включать.

тому що на МСU 2Mb йдуть суто на фірмвару, 32 MB на SCB потрібно ще розділити із Linux :)

Угу, только это правильно называть си с классами

Ну, в ядре линуха плюсов как не было так и нет, выбирать что рулит а что не рулит какбэ вообще не приходится.
Всякие админки — там конечно пофиг, хоть ноджс можно запихать.

А ты думаешь там ядро пишут? Больше как раз прикладного счастия.

Думаю да, ядра достаточно пишут. Админки ведь можно между моделями хоть в бинарном виде копировать, да и фичи туда не каждый день добавляются — топовый асус 2019го года по функционалу никуда не убежал от всяких -WRT 10ти летней давности. Анимашек в UI стало побольше в основном, и всё.
Ну и меня как-то звали на такой проект, рассказывали чем они занимаются.

вы собеседовали? расскажите о требованиях.

Линукс, модули ядра и сеть. В украинском аутсорсинге таких проектов сотни.

Ты бы ещё на ассемблер поискал в 21-ом веке

Любое мультимедиа, DSP, компиляторы, рантаймы итд итп.
Но, конечно, в 21м-то веке сам шик — шлёпать формочки тысячами.

Конечно. Формочки надо шлёпать тыщами а на си работы очень мало

информативно, может еще что напишите? Вы ж гуру 8 )

си живет либо в embed/однокристалках либо в серьезном софте (который у нас не разрабатывается)
так что можно для фана фиксить линух (файрфокс, хром, mysql) , а потом через несколько лет уехать в какой нить ред хэт, амазон , майкрософт (но только очень и очень теоретически)

вы правы, не против встраиваемых систем.

у вас есть опыт разработки под системы? напишите хотя бы вкратце.

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

только С мало даже для embedded

Для устройств с ограниченной памятью — живее всех живых. Но его можно знать как довесок к CPP, как отдельный он... ну скажем так, для школы сойдёт.

плюсую, один С знать мало, помимо С++, я бы добавил Python/BASH, RTOS, часто нужно иметь глубокие знания в эмбед интерфейсах: i2c, spi, uart, can, ethernet. На фоне общего объёма знаний, я бы С отвёл только 10%.
Если бы я вернулся бы на 10 лет назад, то выбрал бы back-end направлени.

+ знання електроніки, хоча б на рівні читання схем.

В эмбедеде на одного, знающего паттерны, приходится двое с осциллографами и схемотехникой. Разделение труда.

І так і ні :) Наприклад дроти відійшли від плати і все перестало працювати, є схема по якій все можна відновити, але програміст не вміє читати схему, а ті хто вміють у відпустці :)
Хоча це якийсь сферичний випадок, ніколи не бачив ембеддера який не вміє читати схему і користуватись осцилографом, навіть якщо робить це не часто.

Все залежить від компанії. Мій приклад: на всіх компаніях де я працював і працюю зараз потрібні знання С, Python, електорніка (аналогова і цифрова), мікроконтроллери, PCB.

Не кажу що ембуддеру потрібно знати всі нюанси в електроніці, але наприклад розуміти чому двигун не можна напряму живити від піна MCU не зашкодить нікому.

З девайсами на Linux простіше, там можна більше акцентуватись тільки на software.

З девайсами на Linux простіше, там можна більше акцентуватись тільки на software.

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

С jtag можно возиться до момента пока не поднят загрузчик (u-boot). Собственно после того как завелась память и есть консоль, jtag можно отложить.

Та ну, отлаживать бряками часто намного быстрее, если не жесткая многопоточность.

С jtag можно возиться до момента пока не поднят загрузчик (u-boot)
И есть возможность зашить хотя бы SPL, чтобы железо оживить.

U-boot — частный случай secondary program loader (оно же second stage bootloader)

Современный заводской загрузчик умеет с сдкарты и юсб загружать spl. А дальше можно шить Линукс через гугловский фастбут.

Это если на железке есть сд карта. И юсб. И оно на тех же пинах, что и на референсной борде. Но так, к сожалению, бывает не всегда.

ніколи не бачив ембеддера який не вміє читати схему і користуватись осцилографом

я не вмію. І асм не знаю. І працював в купі контор, половина — ембедед.
Зазвичай на проекті хоча б чоловік 5, половина розуміє залізо. А от щось велике написати, і не заплутатись в логіці, і схему багатопоточності правильну підібрати — то інші скіли. + якщо щось більш-менш велике, пишеться HAL+OAL(+прокся) і запускається воно на компі, що економить час розробки в рази.

Наприклад дроти відійшли від плати і все перестало працювати

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

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

Если что-то одно знать, то максимум это будут КБ на заводе на минималке и то, если «мама договорится».

Я устраивался с С + С++ + Питон не зная железа, ассемблера, сетей, интерфейсов, RTOS.
В Мелланоксе, к примеру, надо сети. В Люксофте — CAN.
Ну и если видят, что толковый и понимаешь, как програмить — остальному научат.

Не знаю, при устройстве на первую работу три года назад помимо С++ спрашивали сети на базовом уровне, команды линукса и алгоритмы. И мне кажется, сильно надеяться на то, что «научат» не стоит. Всё равно придётся многое учить самому в свободное от работы время

RTOS и хардварные интерфейсы не спрашивали.
И да, первые 3 года читаешь что можешь найти.

Мене на співбесіді кірм С, запитували CAN, one wire, трігери, регістри, гонки сигналів, ФНЧ, режими роботи транзистора, та багато іншого чого вже не згадаю. І це все на позицію Validation engineer :) Так що все дуже залежить від компанії.

Staff — це приблизно аналог Middle.

То ж позиція така. Якщо нормальний проект, то 95% коду від заліза не залежать, а інші 5% енкапсульовані.

Це проекти із залізом на рівні регістрів та HAL, тому вони від заліза залежать дуже сильно. Так, і ці проекти теж «нормальні», просто інша специфіка.

А скільки там у % логіки порівняно з роботою з залізом? І який приблизно розмір проекту (рядків коду чи КБ)?

По різному буває, оскільки це верифікація блоків SOC, то на С на стороні MCU зроблена обробка команд які приходять від PC — розмір такого коду не великий HAL ліба + користувацький код для обробки команд Kb не більше 256 — цей весь код тісно пов’язаний із залізом. Логіки десь 10-20%, все інше робота із залізом SoC.

Основна логіка йде на PC в Python скрипті, який посилає команди на SoC та машину яка вміє генерувати та міряти сигнали, та читає дані із SoC.

Мої колеги і я працювали на рівні регістрів та бібліотек для
SoC, без розробки бізнес логіки. (це щось схоже на те що має STM32: LL, HAL) — оскільки баги могли бути в С, Verilog чи в залізі, працювати потрібно із осцилографами та логічними аналізаторами. Тому в моєму випадку без знать електроніки просто ніяк.

Ну це якщо дивитися по коду... А якщо по фічах/багах — то половина росте коренями з того самого заліза, а потім йде далі у ті 95% кода із application логікою. Тому й потрібно, щоб всі знали предметну область і деяку уяву про хардварь.

режими роботи транзистора

гагага

Вас дивує що запитують про транзистори в компанії яка займається розробкою мікроконтроллерів, тобто повністю пов’язана із електронікою?

а про цикл Карно не запитували, їх же мікросхеми потім ставляють на автомобілі, як так?

спасибо, я теперь буду спрашивать

а про цикл Карно не запитували, їх же мікросхеми потім ставляють на автомобілі, як так?

Ні, оскільки на відміну від транзисторів до мікросхем не має прямого відношення. Даремно смієтесь, людина яка наприклад тестує GPIO повинна мати поняття про транзистори.

сайпрес, такий сайпрес, удачі в тестуванні транзисторів з циклом Карно

да )) вас не?

Ні, тому що я знав на яку посаду я йшов.
Приклад вимог для тест інженера на подібну вакансію:

Must know:
· Knowledge of radio electronics
· Understanding of simple electronic/crystal oscillator functionality
· I2C bus communication interface
· C# programming
· English speaking and writing skills (at least intermediate)
· Experience in work with a following HW:

Logic analyzer
Oscilloscope
Frequency Counter
Spectrum Analyzer

rabota.ua/...​any1250581/vacancy6720194

www.linkedin.com/...​771/?originalSubdomain=in

transistor англійською буде transistor я пошукав по тексту вимог що до знання transistor не вказано ))

людина яка наприклад тестує GPIO повинна мати поняття про транзистори.

тут розумієте яка справа «людина яка наприклад» (к) (тм) має мати поняття не стільки про транзистори скільки про GPIO і що взагалі які виходи можуть бувають і чим вони відрізняються суто у зовнішньому застосуванні як то що куди можна підключати а куди ні і як саме треба ну і приблизно може бути суто теоретично вона ще може знати суто загальну теорію «чому так» от і все що вона має знати про GPIO.

зате там у «вакансії» написано купа всього з Spread-spectrum та Python programming включно а ну це дуже круто а от може «людина яка наприклад» (к) (тм) взяти той самий python та змоделювати на ньому той самий spread spectrum ну так суто математично адже там чиста математика хіба ні? з одного боку відправили з іншого боку прийняли якщо математика співпала значить прийом нормальний а якщо ні...

або от скажімо геть простеньке

· I2C bus communication interface
· C# programming

тож одразу прямо в лоб «а законектити програму на c# до інтерфейсу на i2c?» нє?

Logic analyzer
Oscilloscope

а logic analyzer якої саме моделі? а зробити з oscilloscope той logic analyzer зможе? ))

ЗЫ: ну і тема транзисторів так і не розкрита... ))

знание про transistor является подмножеством

Knowledge of radio electronics

и GPIO у нас последние лет 70 на транзисторах работают, а не на лампах

и GPIO у нас последние лет 70 на транзисторах работают, а не на лампах

а были и на лампах? а в чём будет разница с транзисторной схемой?

а были и на лампах?

так, в лампових комп’ютерах.

а в чём будет разница с транзисторной схемой?

Напівпровідники. Менші робочі напруги та струми. Схема роботи призно однакова — керування відкриттям/закриттям.

dou.ua/...​rums/topic/27731/#1620757

и GPIO у нас последние лет 70 на транзисторах работают, а не на лампах
а были и на лампах?
так, в лампових комп’ютерах.

конкретні приклади навести зможеш? конкретні схеми використання лампових виходів як GPIO? можливо залишки коду що з ними працював?

а в чём будет разница с транзисторной схемой?
Напівпровідники.

ого та це круто! а які напівпровідники знаєш? як вони взагалі утворюются? як працюють? повертаючись до питання

режими роботи транзистора

як напівпровідники зумовлюють ці «режими роботи»? у чому саме відмінність від електронних ламп у питані «режимів роботи»? от скажімо «популярний термін» такий собі «теплий ламповий звук» (к) (тм) чим він зумовлений? чому виник? чи насправді то є так чи ти радше суб’єктивні людські вигадки? от скажімо людина може розрізнити «режими роботи» напівпровідникових транзисторів від «режимів роботи» електронних ламп? керуючись лише власними почуттями на слух скажімо чи там я не знаю на вигляд якщо то якась візуальна схема. а приборно зможе? як ти будеш будувати схему щоб розрізнити «режими роботи» навівпровідникових транзисторів та електронних ламп користуючись усіма тіма приладдям

Logic analyzer
Oscilloscope
Frequency Counter
Spectrum Analyzer

?

Менші робочі напруги та струми.

ого та це круто! а які саме значення? це про максимальні чи про мінімальні? на яких максимальних та мінімальних значеннях ще здатне працювати те і інше? а якщо вже не здатне то чому саме? а чі можна це якось виправити? схему множення якусь? розширювач спектру? ірідієвий каталізатор позитронної плазми?

от скажімо «щось простеньке» нехай будуть робочі частоти перший 4004 працював на тактовій частоті 400 кГц а вже 8080 був здатний долати 4 МГц але ж нічого такого особливого там не відбулося по суті це та ж сама схема лише розширена вдвічі за розрядністю та за набором команд то у чому ж справа що так одразу на порядок зросла тактова частота? а на менших може працювати? а якщо ні то чому? а як що до сучастних процесорів? Сьогодні вони легко долають межу 4 ГГц тобто робочі частоти зросли ще на 3 порядки а яким саме чином того вдалося досягти? А чому зупинилися? А чому при збільшенні частоти ростуть витрати енергії? А у звичайному звуковому транзисторному підсилювачу теж таке відбувається? Тобто щоб брати високі ноти схемі потрібно більше енергії чи навпаки? А як що до електронних ламп? А які взагалі частоти суто технічно досяжні тим самим «режимам роботи транзистора»?

поняття транзистору як вже написали входить в
Knowledge of radio electronics
По вашій аналогії виходить що у вимогах повинно писати не знання С, а знання наприклад union.

у тому же ж і фішка що то не «по моїй аналогії» то «по ваших вимогах» виходить що насправді «у вимогах» пишуть чистий булшит насправді навіть толком не розуміючи про що саме вони «режими роботи тразистора» і нашо воно насправді їм то треба.

ну от скажімо повертаючись до наших баранів програмістів от пишуть у вимогах «сішарп нннада!» а якої саме версії? )) от ви там у себе свої тести пишете яку версію використовуєте?

я же ж кажу усі ці «вимоги» повний булшит так само як і намагання «з’їхати» з уже конкретних вимог «чи мав досвід працювати з конкретним приладом (тут марка модель рік випуску конфігурація тощо)?» та «ось конкретний прилад ось коротка специфікація його на 1 сторінку чи зможеш з ним працювати? як його взагалі увімкнути? як настроїти? що він взагалі робить?» зможеш працювати усьо проходь молодець ідеш на 3-місячні курси з екзаменом саме з цього приладу (тут марка модель рік випуску конфігурація тощо) не зможеш ну такоє...

... і так я серйозно бачив і продовжую бачити «спеціалістів» які «лише мають уявлення» що про транзистори що про електронні лампи що про сі що про сішарп що про програмування взагалі і т.п. такий різний булшит хоча насправді вони аж знають як воно вмикається (тут марка модель рік випуску конфігурація тощо) та як натиснути кнопку «запустити працювати тест» усьо. і нічо живуть же ж люди ))

Тема транзисторів для того щоб побачити чи людина має базові поняття в електоніці чи ні. Це те саме що запитати що таке вказівник на С, і видно чи людина має поняття С чи ні.

я пошукав по тексту вимог що до знання transistor не вказано

поняття транзистору як вже написали входить в

Knowledge of radio electronics

По вашій аналогії виходить що у вимогах повинно писати не знання С, а знання наприклад union.

Logic analyzer
Oscilloscope
а logic analyzer якої саме моделі? а зробити з oscilloscope той logic analyzer зможе? ))

Запитання схоже на «Автомобіль якої саме моделі ви вмієте водити?»
Тут досвід роботи із приладами.

I2C bus communication interface
· C# programming
тож одразу прямо в лоб «а законектити програму на c# до інтерфейсу на i2c?» нє?

Вони йдуть окреми рядками, на С# мужуть писатись тести пристрою що вміє генерувати і вимірювати , наприклад:
www.ni.com/ru-ru/shop/pxi.html

поняття не стільки про транзистори скільки про GPIO і що взагалі які виходи можуть бувають і чим вони відрізняються суто у зовнішньому застосуванні як то що куди можна підключати а куди ні

Як на мене щоб розуміти як налаштувати і підключити пін в режимі «open drain», потрібно знати що воно таке, принаймі чому так називається.

Ось ще одна компанія, де на сб будуть питати про транзистори і операційні підсилювачі:
www.glassdoor.com/...​t=EMPLOYER_SEARCH_RESULTS

P.S. Чому вас так зачепили транзистори?

Тема транзисторів для того щоб побачити чи людина має базові поняття в електоніці чи ні. Це те саме що запитати що таке вказівник на С, і видно чи людина має поняття С чи ні.

та уж конечно )) ещё раз ваша «тема транзисторов как базовая понятия в электронике» укладывается ровно в тот кусочек очень общего знания «какие бывают gpio и вообще выходы у микросхемы и как их правильно подключать» всё.

первоначальная оригинально озвученная тема

режими роботи транзистора

это вообще настолько общая тема что никакого практического смысла относительно ваших вопросов не имеет.

но вообще конечно раз уж речь зашла за «режимы работы» то конечно интересно узнать какие режимы есть у КМОП и какие есть у TTL и имел ли подопытные дело и с теми и с другими и раз уж речь заходит об «режимах работы транзисторов» то какие скажем схемы усилителей знает отдельно на биполярных и отдельно на полевых транзисторах и соотв. их преимущества исходя из «режима работы транзисторов».

Запитання схоже на «Автомобіль якої саме моделі ви вмієте водити?»

просто потому что «спрашивая» сами «спрашивающие» в 146% случаев а) сами ответов точно не знают б) как не знают и того зачем они вообще это спрашивают и относительно чего вообще это.

ЗЫ: ну вот например спрашивают C# а там оказывается

на С# мужуть писатись тести пристрою що вміє генерувати і вимірювати

т.е. это скорее некий «условный скриптовый язык» для «знания которого» достаточно той же ж сишечки общего здравого смысла и 1-страничной инструкции «как писать тесты для прыстрою що тестуе».

причём как я прямо и приметил уже речь ведь не идёт «об пристрое що тестуе» вообще в принципе но об более чем конкретном PXI и конечно опять же ж есть какой-то другой в котором принцип тот же ж но тесты там на питоне или вообще на паскале но «спрашивают» почему-то конкретно C# но при этом на замечании об знании конкретной модели логического анализатора уже «возникают встречные вопросы за автомобиль» ))

ситуация настолько «классическая» что даже не было смысла начинать «обсуждать» но почему бы б и нет опять же ж схемы усилителей припомнил и вообще вот это всё ))

Пропоную закінчувати :)

Автор цікавиться С, а негідник сюди приплів електроніку та інший офтоп який автора по замовчуванню не цікавив :)

так які режими роботи біполярного транзистора?

Режимів кілька, в цифрових виходах мікроконтроллерів використовуєтсья тільки ключовий.

D, в якому транзистор або закритий або відкритий

поведінку електрона в потенційній ямі не просили описати дифрівняннями?

Як на мене щоб розуміти як налаштувати і підключити пін в режимі «open drain», потрібно знати що воно таке, принаймі чому так називається.

яке має відношення до режиму роботи транзистора? ( і що так і питали, ЖПІО, працює в режимі А бо Бе, а чим можна зробити з 2х ЖПІО стереопідсилювач класа Д, і зробити спектральний його аналіз метедом Фурє)...

Як на мене щоб розуміти як налаштувати і підключити пін в режимі «open drain», потрібно знати що воно таке, принаймі чому так називається.

а чим open drain від open collector відрізняється? ну якщо відрізняється канєшно взагалі? ))

P.S. Чому вас так зачепили транзистори?

неграмотніть чувак войовнича неграмотність )) оно глянь у реальному житті у соціополітекономії та сама історія диви який Президент диви яка Партія диви який Електорат )) та же ж сама історія.

а чим open drain від open collector відрізняється? ну якщо відрізняється канєшно взагалі? ))

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

Ну, не джуну же энто всё. Пусть хотя бы инглиш выучит чуть выше «мазе фазе джентельмен»

Одної анг не достатньо, якщо б так було просто всі філологи були б джуніорами :)
Живий приклад plvision.eu/...​tm_campaign=Post-Bootcamp

щоб людину взяли, і вона почала вчитись, потрібно
«If you have prior experience in C programming, welcome to the course.»

А мужики то и не знают....

Тю, так вот значит почему у меня assert постоянно вываливается...

Подписаться на комментарии