Репутація українського ІТ. Пройти опитування Асоціації IT Ukraine
×Закрыть

Embeded/kernel разработка, перспективно ли?

Я сам JavaEE developer, но душа всегда тяготела к операционным системам их устройству и прочему. Плюс слышал что на западе легче устроиться именно системным программистам ( да, угнать трактор мечта есть ) , потому как его <b>крайне</b> редко аутсосрсят.
Вопрос к доу, собственно есть ли смысл идти работать системным программистом после java, т.к. я слышал что платят у цій країні им не очень, да и опыта мало.
И еще нужно ли знать электоронику и физику, потому как с универа я их не знал, так еще и забыл?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Как там на западе не знаю — у нас полная задница. Знать нужно очень много, а платят очень мало. Зачем тебе этот геморр.

Жаль что всё так ! Мне именно это по душе как говорится, а остальное без особого энтузиазма ...

Доброго времени суток друзья ! Суть вопроса :
После универа необходимо найти работу, но меня всегда интересовали «железяки», Linux, RTOS’ы, ARM’ы из знаний имеется Си и база по С++ ну и теория ОС, МК. Разумеется что вакансий не то что мало, а их практически НЕТ (особенно в Днепропетровске) в основном предлагают свалить в Киев или Львов, а так же «за бугор» если опыт есть хороший. Как вы считаете стоит ли продолжать углубляться в системщину, разработку ядра или всё таки в этой стране это ненужно и необходимо переключится на более «модные» сейчас вещи типа Java или php со всей вытекающей гадостью типа css, html, JS ?
Интересует мнения всех адекватных людей но более всего хочу услышать тех кто связан с данной темой, что бы узнать как сейчас дела в этой сфере, что нового, на что больше обратить внимание, что подучить ! Благодарю всех ...

PS: Ответы на мой вопрос интересует многих людей из Днепропетровска !

PS2: Как жаль что на форуме люди так мало общаются именно на данную тему (встраиваемые системы, разработка ядра) это же писец как интересно. Самое ужасное что курсов по Java, C#, PHP или QA хоть ж*пой жуй даже по Erlang у нас в Днепре проходили, а по системщине, по Си-шке под Linux ничего нет, просто печаль !

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

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

Спасибо за ответ, в любом случае мне интересней разбирать древний г*вно код на «плюсах» чем трогать пальцем css+html, для меня это очень сложно (морально) !

я разделяю ваш максимализм :) отчасти, ибо форматы того же makefile или там m4 даже похуже css/html

p.s. ну и в принципе, что бы хорошо прогать на пшп(та на любой динамике), в любом случае надо знать и си и haskel/sql
да и динамические языки имеют свою красоту

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

Забейте. Ищите там где готовы платить.
Embedded это тоже куча бизнес-логики. Если вы думаете что у вас здесь не будет «а подвинь вот это на 1 пиксель», то вы сильно ошибаетесь.

— ЗП приблизительно одинаковые и зависят от других вещей.
— Позиций меньше — но и конкуренции на порядок меньше.
— Как по мне, работа интересней. Хотя тут каждому свое.

— И дело тут не в языке программирования: java — не java. Просто разный приоритет необходимости и важности умений.

Я також хочу займатися системним програмуванням, але це для того шоб зрозуміти як все працює (може поміняти напрямок з дотНЕТ на системного програміста). Може хтось порадить з чого починати? які книжки почитати?

П.С.: читав Таненбаума про МІНІКС

Разговаривал с агентом на счет потолка зарплат в embedded (linux/microcontrollers/etc.), так он прямо сказал, чтобы особо губу не раскатывал, а если нужны деньги — дуй в Java.

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

JavaEE developer

Денег одинаково, порог входа такой же как в JavaEE.

Не ефективно в короткій перспрективі.
Вимоги більші, поріг входу вищий.
Якщо тре терміново бабло піднімати, то за джава дадуть більше.

Коли ж ТС думає про віддалену перспективу, років так на 5 і більше, то варто.

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

А если серьезно, а в чем романтика, если не секрет? Ну вот на столе стоит у меня роутер, 300 МГц процессор, размером с записную книжку, и это точная копия раннего PC начала 90-х, но тот был размером с чемодан. Кому интересно по-старому программировать ту рухлядь, или вот эту новую рухлядь? Да неужели? Они ведь только размерами и отличаются. Маленькая рухлядь на столе это мимикрия той старенькой рухляди путем сморщивания. Отвратительная пародия. Есть поэтому причины сказать: не ввязывайтесь. Это бесперспективно.

Сказано это в контексте kernel, c, unix.

Так что если даже _душа_ тянется, нужно еще разобраться, а не к порочному ли стремление? ;)

А если серьезно, а в чем романтика, если не секрет? Ну вот на столе стоит у меня роутер, 300 МГц процессор, размером с записную книжку, и это точная копия раннего PC начала 90-х, но тот был размером с чемодан. Кому интересно по-старому программировать ту рухлядь, или вот эту новую рухлядь? Да неужели? Они ведь только размерами и отличаются. Маленькая рухлядь на столе это мимикрия той старенькой рухляди путем сморщивания. Отвратительная пародия. Есть поэтому причины сказать: не ввязывайтесь. Это бесперспективно.

В маленькой рухляди много всего нового. Маленькой рухляди можно найти больше применений чем большой. Ну и просто интересно.

Ну вот на столе стоит у меня роутер, 300 МГц процессор, размером с записную книжку, и это точная копия раннего PC начала 90-х, но тот был размером с чемодан. Кому интересно по-старому программировать ту рухлядь, или вот эту новую рухлядь? Да неужели?

Вы как-то однобоко подаёте информацию :) Вот у меня на столе стоит материнка с процессором, в процессоре четыре ядра, каждая пара ядер имеет свою RISC архитектуру, т.е. полностью разные архитектуры, всё это работает на частоте 1.5Гц, у каждой пары ядер свой 2D и 3D акселератор, потребление 1.5W. Бесполезно? Возможно, но спорно. Интересно? Однозначно!

Мне, возможно, нужно было детальнее пояснить мысль.

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

Роутер это прогресс? — Очевидный.

А что с программным обеспечением? А здесь всё ровно наоборот. Чем современнее ПО, тем оно требует всё больше ресурсов от компьютеров, всё дороже обходится его производство, всё труднее его поддерживать (на поддержку потребитель чаще платит больше, чем на производство).

Вот теперь, надеюсь, яснее моя мысль, что сравнивая два одинаковых по функциональности компьютера, и наблюдая за производством компьютеров на интервале 20 лет, это производство отвечает критерию «прогресс». А ПО этого же компьютера, и средства его производства просто вопит о своем очевидном убожестве.

Если отрицаем очевидное убожество ПО, тогда присматриваемся к компьютерам. Сегодня весь компьютер, по сути, помещается в Систему-на-Чипе. И что же на чип поместили? Производство микросхем эмулирует на чипе весь этот отсталый хлам. Шины PCI, USB, файловые системы, и пр. Достаточно вдуматься, что происходит, и можно содрогнуться: устарелое ПО, устарелые концепции операционных систем, концепции архитектуры, и принципы программирования 70-х годов навязывают производителям микросхем и процессоров свою отсталость. Принципы программирования ПО это жуткий тормоз. Узкое место в отрасли.

Может, это просто стагнация? Но тогда программистам платили бы как прежде по 200$ и они продолжали писать на ассемблере, совершенствуясь именно в нем. Но на фоне общего прогресса технологий, который движется вперед, то, что застыло, получается, движется назад. Однако здесь не просто регресс, а уже пора звать докторов-онкологов. ПО в конечном решении пожирает все ресурсы. Зарплаты увеличились на порядок, требования к окружению ПО разбухли на порядок, и двигающийся прогресс в микросхемах даже и не покрывает кризисных процессов в программировании.

Кто-то обещал такой ценой, регрессом, исправить положение с ошибками в ПО и легкостью написания нового. Давайте перейдем на еще более высокий уровень языка, это будет панацеей... — и что? спросим мы. Больше программистов, больше кода? Это же смешно. Это работает на стройке, да, больше рабочих — шире яма. Но и на стройках уже прогресс, там механизируют, уменьшают стоимость, делают всё более экологичнее, быстрее, дешевле. А что в отрасли ПО? Я намекал на эти проблемы, создавая тему: «Два года разработки» x «$1,7млн» = иск в суд на бесполезное ПО.

Ну, тут тре бачити іншу сторону медалі.
Так як залізо стало доступне і є АРМ процесори за $1, то електроніка та ПО до неї лізуть у всі щілини. І попит на програмістів випереджує їх пропозицію.
Клієнт хоче швидко мати якийсь функціонал, навіть глючний, по принципу, «краще погано їхати, чим добре йти». Софт така штука, що рано чи пізно допиляється. Аби лиш би було " нє крівоє жєлєзо".
Так що тут не регрес батєнька, а ріст (прогрес тобто).
У даному бізнесі у більшості випадків більше має той, хто перший виводить продукт на ринок і знімає вершки. Хоча є різні стратегії, але стратегія вершків у ПО досить часто є переважною.
п.с. Летить літак на висоті 10км. І тут об«ява на борту, що шановані пасажири, Ви можете зараз включити свої девайси і спробувати скористатися інтернетом.

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

А что можно сделать в области разработки ПО? Это ведь чистая интеллектуальная деятельность, вы ведь не можете автоматизировать труд поэта, вы можете разве что формализировать и научить его каким-нибудь методологиям.

Достаточно вдуматься, что происходит, и можно содрогнуться: устарелое ПО, устарелые концепции операционных систем, концепции архитектуры, и принципы программирования 70-х годов навязывают производителям микросхем и процессоров свою отсталость. Принципы программирования ПО это жуткий тормоз. Узкое место в отрасли.

Узкое место — это высокая конкуренция в среде полупроводниковых компаний. Доступность технологий и высокая конкуренция заставляют их выдавать наружу не уникальные и технологичные вещи, а по сути нишевый мусор, когда Time to Market составляет пол года, а время жизни продукта максимум год-два. Зачем совершенный софт для этой железки, если завтра её перестанут выпускать? Вы посмотрите еррату к новым массовым чипам, создаётся такое впечатление, что их не тестируют вообще...

А что там? :) А то мой домашний провайдер golden telecom вечно отрезает половину зарубежного интернета, и совсем нет времени поменять его...

Engineering Services Software DeveloperLocation: Germany, SouthernJobID: 482Posted: Wednesday, March 21st, 2012Our Engineering department is looking to add a Software Developer to the Automotive Services Team. The successful candidate will work together with our customers to create and realize software solutions in response to the customer product development activities. If you have experience with C, C++, and/or Java in a UNIX-based development environment or the equivalent experience in diagnosing and troubleshooting operating system software and enjoy working with customers on real leading edge products, this position might be just what you are looking for to boost your career. Search more job opportunities.

Job Duties

Liaises with key customers regarding product performance, problems and system design.
Investigates and resolves difficult and complex product problems by applying knowledge of design principals, procedures and practices.
Develop custom software solutions based on customer requirements.
Conducts field-tests and troubleshoots complex technical problems determining causes and appropriate remedial action.
Develop prototype and demonstration systems as technology samples for customer use.
Participates in product reviews, design or enhancement projects and testing in order to share knowledge based on customer experience.
Follows and ensures compliance to workplace operating and environmental, health and safety procedures and guidelines.

On-site consulting services.

Experience & Education

Enthusiasm, excitement, and genuine interest in UNIX/RealTime OS and Developer Tools technologies.
Bachelors or Masters in E.Engineering, Computer Science, or equivalent technical degree or diploma program.
Junior Positions — A minimum of 1 −3 years of embedded software development experience with C, C++, and/or Java in a UNIX based development environment or the equivalent experience in diagnosing and troubleshooting operating system software.
Intermediate Positions — A minimum of 5 — 10 years of software development experience with C, C++, and/or Java in a UNIX-based development environment or the equivalent experience in diagnosing and troubleshooting operating system software.
Senior — A minimum of 10+ years of software development experience with C, C++, and/or Java in a UNIX-based development environment or the equivalent experience in diagnosing and troubleshooting operating system software. Specialized Skills Working knowledge of the QNX operating system and embedded software development principles. Strong C, C++ and design skills a requirement.
Familiarity with common automotive processor architectures (ie SH/PPC/ARM).
Real-time systems programming experience considered an asset.
Experience developing software with graphics and multimedia considered an asset.
Enthusiasm and a desire to learn about new technologies a requirement!
Work Tools Used Computers, peripheral equipment, diagnostic tools and pertinent software applications.
Effort and Working Conditions Moderate visual concentration in use of video display terminal. Stress levels associated with resolving problems under customer pressure for product/system performance.
Occasional travel to customer sites may be required.

Physical effort may include the exertion associated with hardware installations.

Хорошая позиция для старта таких как автор топика.

300 МГц процессор

и это точная копия раннего PC начала 90-х

Да ну здрасьте! dx2-66, dx4-100, dx4-120. Откуда 300 MHz процессор в PC начала 90-х? :) Даже кнопка Turbo не давала перформанса на 300 :)

а еще лучше выучить кобол, фортран, смолток ... :)

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

Ну да в QNX например синьор это 10+ опыта.

На Западе синьор это часто (всегда?) 10+ лет опыта, но совсем необязательно столько набирать для выезда. Один человек с этого форума уехал по линукс кернелу с опытом года 3 кажется, правда в нерабочее время ботанил сильно.

Смотря какого опыта, внутри компании были даже случаи, что человек бросал весь embedded и переключался на java, потому что ему это интересно, и пять лет колбасил eclipse. Тут вообще никто не делит людей на сеньоров: тестер, программер, PM, finance, legal и босс %) Ну где-то так и есть.

у нас делят... сеньйоров моложе 30 не видел пока.

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

джуны такие чудеса показывают, что можно с сеньором запросто спутать :)


— Ну, вот, теперь отвечай! — сказала Королева, посмотрев на часы. -
Когда говоришь, открывай рот _немного шире_ и не забывай прибавлять: «Ваше
Величество»!
— Я просто хотела взглянуть на сад, Ваше Величество...
— Понятно, — сказала Королева и погладила Алису по голове, что не
доставило той ни малейшего удовольствия. Оглядевшись, Королева прибавила:
— Разве это сад? _Видала_ я такие сады, рядом с которыми этот — просто
заброшенный пустырь!
Алиса не осмелилась ей перечить и продолжала:
— А еще я хотела подняться на вершину холма...
— Разве это холм? — перебила ее Королева. — _Видала_ я такие холмы,
рядом с которыми этот — просто равнина!
— Ну нет! — сказала вдруг Алиса и сама удивилась, как это она решается
возражать Королеве. — Холм _никак_ не может быть равниной. Это уж совсем
чепуха!
— Разве это чепуха? — сказала Королева и затрясла головой. — _Слыхала_
я такую чепуху, рядом с которой эта разумна, как толковый словарь!

Алиса в стране чудес :)

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

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

если душа тяготела — занимайтесь в свободное время Embedded/kernel, а деньги продожайте зарабатывать JavaEE. Т.к. слухи правдивы и перспективы довольно призрачные.

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

На счёт ядра линукса я бы не заморачивался сильно, гораздо важнее знать все принципы работы различных систем и устройств, иначе ждёт сильно узкая специализация. Если linux kernel разработка в новинку, стоит сразу изучать параллельно, например, ядро NetBSD, как представителя embedded в семье BSD и ядро Solaris’а (Open Solaris, Oracle Solaris) — солярис, потому что многие вещи сделаны по уму и вызывают восхищение, Windows тоже стоит уделить внимание.

По поводу электроники и электрики, если понятна спецификация PCI каких нибудь древних версий (Вот, как пример, www.ics.uci.edu/.../pci/PCI_22.pdf ), то большего системному програмисту из этой области знать не нужно. Т.е. бОльшие знания, конечно, приветствуются, но на работу системного программиста уже сильно не влияют.

Как бы я не любил физику, она не нужна.

Из моих персональных наблюдей, если системный программист может понять и объяснить каждый из этих примеров: graphics.stanford.edu/...r/bithacks.html , то он состоялся как системный программист.

Ну если зашёл разговор о манипуляции бит/байт и тд, то тут можно посоветовать классику: www.amazon.com/...34314281&sr=1-1.

На западе легче устроиться по java таки, вакансий больше в десятки раз.

Я сам работаю на java. В своё время увлекался, и сейчас немного увлекаюсь, системным программированием на с/c++ под unix/win. Задавал себе этот вопрос неоднократно, но менять направление работы не собрался.

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