Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: программирование драйверов - стоит ли заниматься?  (Прочитано 33147 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maniac85
Гость
« : 05-02-2008 13:44 » 

(старое название темы - Стоил ли заниматься программированием драйверов?) (1153)
-------------------------------

Возник такой вопрос, а стоил ли заниматься программированием драйверов? (с утра ктото заразил меня писимизмом, поэтому хочу поделиться мыслями, может я где неправ, и не все так страшно Жаль)-
Да мне нравится архитектура Windows, ее API,  меня это очень привлекает.
(по этому я кроме "университетского изучения"(именно в кавычках!) Си и С++ я учил/учу чистый WinAPI, не MFC!)
НО! есть одно НО:
Цитата
- для написания драйверов нужны люди с опытом, это ответственная работа, тут нулевой уровень а не третий...
По моему в компаниях кому нужны kernel-программисты - там они уже есть, это люди уже с опытом, и зачем счас нанимать работадателю начинающего kernel-программиста? Не опыта работы(которая тут намного важнее чем в каких БД), есть люди уже с опытом и знаниями.
Если не программирование драйверов то что? Меня одолевают смутные сомнения
Выбирать особо неприходиться: С++, С#, Java
На счет С++:
-есть смысл изучать С++, но не на уровне "а мы в универе лабораторки делали". Такие "спецы" никому не нужны. Обучить искусству программирования на С++ до нужного уровня - это очень трудоёмко. Соответственно работодателю проще найти готового спеца. Их мало. Получают они много. - так же как и с программистами драйверов!
C#?, по моему легче всего устроиться Си Шарпщиком, я понимаю что время разработки это важно и C# обеспечивает ее.
Но многие вещи на нем не напишешь. Хотя ВСЕ зависит от задачи. Какая задача, такой и инструмент(язык)
Просто БД, дотНЕТ меня не сильно привлекает, я хотел бы заниматься выше сказанным, просто, реально ли потом найти себе работу? Жаль

p/s
да и по моему вообще программированием стои заниматься лет с 15, времени хватит набраться опыта и т.п,
к окончанию универа, а то и раньше(я в этом уверен) можно у же будет знать очень многое, => и работу найти со знаниями будет легче.
Очень себя виню что начал очень поздно(на 3 курсе) браться за голову, до этого так...здача лабораторок, это не уровень...
в итоге 21 год будет, а знаний очень мало(Си, С++, WinAPI, Pascal, Delphi,HTML, PHP и т.п я не рассматриваю)
С чего это я тут все написал? Просто пообщался с человеком, он прямо и сказал, извини но думать стоило раньше, низкоуровневым программированием надо заниматься годами, плюс без знаний Asm'a написание драйверов невозможно(хотя пишут в основном на Си, отлаживать же надо все равно, не говоря про ассемблерные вставки иль лучше DLL)

ушел искать стенку...
« Последнее редактирование: 14-10-2008 03:18 от Алексей1153++ » Записан
Tuborg
Команда клуба

ee
Offline Offline

« Ответ #1 : 05-02-2008 14:14 » 

Низкоуровневое программирование (в том числе драйверы) рулит! Поскольку программистов бизнес-формочек и всяких БД навалом... А вот низкий уровень очень редок из-за того что там надо больше знать и дольше этому учиться. НО! оно окупается сторицей. Я кроме основной работы постоянно получаю заказы причём стоимость этих заказов на порядок выше, чем на работе. Нанять стороннего программиста БД за небольшие деньги можно... а вот низкоуровнего - фиг вам! большие деньги нужны. Потому что здесь и глубокая инженерно-математическая подготовка нужна и опыт.

По поводу опыта... развивающимся компании выгоднее нанять начинающего... времени на проекты часто бывает навалом, а денег в обрез... тут и надо хвататься... ну и конечно не забывать про самообразование!
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 05-02-2008 15:42 » 

maniac85, пессимизм твой тебя обманывает. Специалистами не рождаются - ими становятся. Всему надо сперва научиться и поднабраться опыта.

Существует естественная убыль специалистов (я не про тот свет, а о перепрофилировании). Соответственно, должен быть и обратный процесс - обучение новых специалистов.
Драйвера были, есть и будет их еще много-много!
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Scorp__)
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 05-02-2008 17:21 » 

maniac85, прямо твой пост - по-моему целая коллекция заблуждений Улыбаюсь

Во-первых, мне очень интересна фраза "учу WinAPI". Это же просто набор функций, зачем их учить? Они запоминаются сами в процессе работы, но МСДН всегда под рукой и там все можно найти. Стоит понять основные принципы - это да, но учить специально там ничего не надо.

Потом, люди с опытом нужны везде. И ответственность на разработчике  везде большая. Какая разница: упадет Windows в синий экран в каком-то случае или повиснет приложение обработки данных похерив с собой результаты вычислений за сутки? Конечно, какие-то знания у "начинающего kernel программиста" должны быть. Но вовсе не в таком объеме, как у гуру. Сразу попасть на хорошую позицию тоже вряд ли получится, зарплата вряд ли будет превышать средний уровень зарплаты программистов. Но найти позицию именно в этой сфере несложно.

Цитата
Обучить искусству программирования на С++ до нужного уровня - это очень трудоёмко. Соответственно работодателю проще найти готового спеца. Их мало. Получают они много. - так же как и с программистами драйверов!
Обучить этому искусству несложно, если человек уже нормально программирует. Вообще язык программирования - это просто язык для выражения своих мыслей о том, как машина должна решать задачу. Кстати, в кернеле, С++ используется редко где, фактически используется С, а С - довольно простой и понятный язык.
И ты противоречишь сам себе, когда говоришь, что специалистов мало, но работодателю проще нанять готового. Когда специалистов мало - готового не найдешь, он уже там где ему больше платят/ему удобнее. Плюс к этому, очень немногие фирмы могут оплачивать такого специалиста. Так что им проще нанять, кого-нибудь не очень крутого, хорошо бы, чтобы он был с опытом и т. п., но такого как правило не бывает. И нанимают самого толкового из начинающих (может даже и не самого, в зависимости от их готовности платить Улыбаюсь ).

А уж про программирование с 15 лет... Прям как в спорте Улыбаюсь Да, вроде считается, что в молодости голова соображает лучше, а потом уже работает только опыт. Но мне кажется, что это от того, что в молодости ты учишься и опереться кроме соображалки тебе не на что, когда же появляется опыт, ты ленишься учиться и делаешь так, как уже умеешь - голова работать отвыкает. В общем надо этого избегать.

Низкоуровневым программированием не обязательно заниматься годами, более того, я видел случаи, когда это вредило. А вот ассемблер знать действительно нужно, но это совсем не так сложно как кажется Улыбаюсь Я думаю, что лучше поработать с несколькими процессорами с разными ассемблерами, после этого, понимание вообще отличное. Для знакомства с ассемблером x86 процессоров я всем советую книгу Зубкова "Assembler для DOS, Windows и UNIX". Для того чтобы разобраться в принципах отладки и реверс-инжиниринга подойдут книги Криса Касперски, например "Фундаментальные основы хакерства" и "Образ мышления - дизассемблер IDA", тем более, что читаются они очень легко, развлекательная литература, практически Улыбаюсь

В общем, вместо стенки, лучше иди искать хорошую подходящую тебе вакансию Улыбаюсь Или какой-нибудь open source проект Улыбаюсь
« Последнее редактирование: 05-02-2008 17:23 от Scorp__) » Записан

- А Вы сами-то верите в привидения?
- Конечно, нет, - ответил лектор и медленно растаял в воздухе.
maniac85
Гость
« Ответ #4 : 06-02-2008 07:03 » 

мдя..наверное я сам себя загнал в угол...Жаль
Нельзя так!
Спосибо всем, многое для себя подчеркнул!:)
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 06-02-2008 11:01 » 

Scorp__), подписываюсь под каждым словом)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
maniac85
Гость
« Ответ #6 : 04-03-2008 12:04 » 

Не стал создавать новой темы, пишу тут. Опять возник вопрос.
Вот смотрите, программист-драйверов, системный программист должны специализироваться в какой-то системе
(Windows NT, Unix\Linux, операционные системы рабочих станций, коммуникаци-онных компьютеров, ОС реального времени (QNX, Windows CE)). Получается специалист устроившись на определенную фирму, будет узкоспециализироваться на той систем, что находится в данной фирме(да и что за системы обычно вы обслуживаете? можете поделиться:)).
интерисует что в первую учереь требуеттся на ПРАКТИКЕ, просто под Windows драйвера пишутся производителями комплектующих, недумаю что под нее необходими в нашей стране программисты. Скорее всего нужны программисты микроконтроллеров, а там однозадачные системы. Значит имеет ли смысл учиться программировать многозадачную Windows? Не то чтобы не хотелось. Вопрос не в этом. Вопрос в том - что именно нужно на практике. Какие технологии/системы учить?
Если можно объясните пожалуйста, а то я запутался:(

« Последнее редактирование: 04-03-2008 12:06 от maniac85 » Записан
Вахмурка
Помогающий

ru
Offline Offline
Пол: Мужской
Программист


WWW
« Ответ #7 : 04-03-2008 15:54 » 

  Дрова конечно интересно, но это не для меня. Меня больше прикалывает прикладное програмирование, я там вижу больше творчества, там есть объекты, интерфейсы, и другие прелести ООП. Да и мне просто доставляет удовольствие думать категориями ООП.
Записан

Программа – это мысли спрессованные в код.
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 04-03-2008 17:51 » 

просто под Windows драйвера пишутся производителями комплектующих, недумаю что под нее необходими в нашей стране программисты.
Ну, как сказать... В состав проекта, который наша команда делала год назад, входило 2 самописных драйвера для Win. Из истории нашей компании не самую малую часть проектов составляло создание драйверов для разного рода устройств. При этом производителями железа мы не являемся Улыбаюсь
Записан
Hammurapi
Участник

ru
Offline Offline

« Ответ #9 : 03-04-2008 09:42 » 

Все что напишу ниже это ИМХО (исключительно ИМХО).
В школе нас учат каким-то вещам, а в институтах,универах...и др. ВУЗах учат учится, учат искать информацию, учат ее использовать и т.д. А думаю эта схема переносима на программирование вообще.
По себе скажу...чем только в свои без малого 30 лет не занимался, но спроси меня какой флаг вскидывается в при той или иной команде ассма ни скажу хоть убей(хотя архив своих прог весит 40 кил), спроси структуру пакета IP или IPSec даже не вспомню (хотя в Вузе это все учил досканально), спроси про Неймановскую архитектуру разведу руками (хотя Олиферов книжка одно время была настольной) и как блин запрограммировать какой нить ПИК контроллер да не упомню, хотя где-то валяется свой программатор и т.д. и т.п. Сейчас вот билдеровские исходники юзаю пришлось книжку по Паскалю скачать... забыл я некоторые конструкции языка, хотя программил на нем довольно долго , пока Си не привлек. И вопрос зачем мне помнить какой флаг вскидывается при той или иной команде ассма если я возьму книжку и за несколько часов все вспомню. Это я все пишу лишь с тем , чтоб доказать что если ты можешь/тебя научили обучаться, обучится чему либо можно , и можно достаточно быстро. А потом если ты выберешь одно из направлений и решишь в нем стать классным спецом , который может в данной области сделать все что угодно, тебе нужно будет только практика. А стать хорошом системым программистом можно в довольно сжатые сроки, тем более у студентов времени пруд пруди , и не пытайтесь меня убедить (19 сессий за плечами УлыбаюсьУлыбаюсьУлыбаюсь ). Сядь обложись книжками, вооружись компом , советуйся на разных форумах, скачивай чужие разработки , дабы разобраться и когда тебя это затянет лишь время сделает из тебя спеца....УДАЧИ!
P.S. чем сложнее написать драйвер под Винду, чем научиться какому-нить Oracl'у???           
Записан
Hammurapi
Участник

ru
Offline Offline

« Ответ #10 : 03-04-2008 09:45 » 

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

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 03-04-2008 09:47 » 

Цитата
но спроси меня какой флаг вскидывается в при той или иной команде ассма ни скажу хоть убей

не верю...
80% случаев даже логически сами собой напрашиваются (и есть), ещё 10% запоминаются (например при инкременте fZ шавелится, а fC - нет, меня это всегда удивляло Отлично )
Записан

Hammurapi
Участник

ru
Offline Offline

« Ответ #12 : 03-04-2008 10:24 » 

 Алексей1153++,
Ты пытаешься усомнится в моем умении программировать на ассме??? УлыбаюсьУлыбаюсьУлыбаюсьУлыбаюсь Просто последний раз я писал прогу на ассме ..щас припомню в 2002 или 2003...по моему так... а после этого столькими вещами занимался, что память сама собой закинул все старые знания на задворки... В прочем тема то и не в этом, а в том, что всему можно обучится и если  что-то знал..... работал, то никогда не забудешь и вспомнить не проблема. И парень заразившись пессимизмом думает, что уже опаздал и никуда не успеть, а я лишь хотел показать, что нет поводов отчаиваться и лишь надо чем-то увлечься и начать изучать....На мой взгляд разработка драйверов и вообще системное программирование ООООчень интересная тема и если он начнет этим заниматься, то результаты не заставят себя ждать и если ему еще учится в институте 1-2 года, он может за это время хорошо научится писать драва.
« Последнее редактирование: 03-04-2008 10:34 от Hammurapi » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 03-04-2008 10:26 » 

Цитата
Ты пытаешься усомнится в моем умении программировать на ассме
ни в коем разе не пытаюсь усомниться, я говорю - не верится, что забыл Ага
Записан

Hammurapi
Участник

ru
Offline Offline

« Ответ #14 : 03-04-2008 10:37 » 

Алексей1153++, Знаешь я в свое время когда жил один очень не плохо готовил. А потом когда женился, напрочь все забыл... Сейчас когда жена к теще уезжает пельмени и яичница...УлыбаюсьУлыбаюсьУлыбаюсь Что-нить более сложное надо доставать поварскую книгу... Как ты думаешь смогу ли я сделать со второго раза свою любимую печоночную запеканку АгаНе понял УлыбаюсьУлыбаюсьУлыбаюсьУлыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #15 : 03-04-2008 10:42 » 

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

Hammurapi
Участник

ru
Offline Offline

« Ответ #16 : 03-04-2008 11:00 » 

maniac85,Какая разница под что писать в начале, принципы то везде одинаковые... начал ты писать по Винду , потом тебя попросили написать под Линух [исправленно в связи с невернной формулировкой] в Винде пишешь по средством API функций, Линух это Си...(надеюсь больше ни кто придираться к неправильным формулировкам не будет...УлыбаюсьУлыбаюсьУлыбаюсьУлыбаюсьУлыбаюсь [/исправленно в связи с невернной формулировкой], а смысл один и тот же, не говоря уже про кроссплатформенные решения коих все больше. Вот я тебе расскажу один случай. Был я тогда еще приличным чайником... токо токо Паскаль начал изучать...(в школе еще учился).. и как-то у одного гуру(ну так мне тогда казалось, может оно и не так было) кто-то спросил (я при разговоре присутствовал) ты можешь вот эту задачу решить..Он да не вопрос. Ему: А в чем ты ее будешь решать(писать)? Он ответил стандартной по идее фразой. А в чем надо?? Мне это тогда показалось так дико ... А потом со временем понял, что это совсем не дико... Какая мне разница на чем в настоящий момент написаны исходники Билдеровских компонентов на Объектном Паскале или же на чем нить другом... Да будь они хоть в Аде нарисованы...Лишь на синтаксис языка пришлось бы времени больше потратить!!! УлыбаюсьУлыбаюсьУлыбаюсь Пиши под Винду или  установи себе Линух, что мне кажется более интересным там в ядре можно хорошо покапаться. И программи, программи, программи.
« Последнее редактирование: 03-04-2008 12:04 от Hammurapi » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 03-04-2008 11:40 » 

Hammurapi, (шепотом)
Цитата
начал ты писать по Винду , потом тебя попросили написать под Линух разная система команд
только никому больше не говори такого Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Hammurapi
Участник

ru
Offline Offline

« Ответ #18 : 03-04-2008 11:53 » 

Sla,(шепотом) Хорошо...не так написал..... Больше не буду... Даже свой пост отредактирую.... УлыбаюсьУлыбаюсьУлыбаюсьУлыбаюсьУлыбаюсь
« Последнее редактирование: 03-04-2008 12:05 от Hammurapi » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 03-04-2008 12:10 » 

Hammurapi, будет!!!!!
ну почему только Си?

Offtopic:

а с виду - умный мужик Улыбаюсь
« Последнее редактирование: 03-04-2008 12:11 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Hammurapi
Участник

ru
Offline Offline

« Ответ #20 : 03-04-2008 12:38 » 

Sla, Хм... Ну незнаю.... я с Линухом давно дело не имел... и последний когда в институте писал под ядро чего-то уже не помню ... Си чистый использовал.....Не в теме сейчас.... Могу что-нить не то брякнуть...УлыбаюсьУлыбаюсьУлыбаюсьУлыбаюсь И так уже ляпнул..УлыбаюсьУлыбаюсьУлыбаюсь
Записан
DrGluck
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #21 : 04-04-2008 05:49 » 

По поводу дров.
Наша контора, к примеру, щас свою PCI железку делает. Предетца писать два драйвера. Но это не сильно пугает. Предыдущая железка была сделана 10 лет назад на ISA с драйвером на ассемблере под 9х. Вот где ужос то.
В общем, резюмирую всё вышесказанное: ТВОРИ, ВЫДУМЫВАЙ, ПРОБУЙ... и да пребудет с тобой СИла...

З.Ы.
По поводу inc и флагов fC и fZ. Где то читал, почему так повелось, но забыл. В принципе мне так удобно.
« Последнее редактирование: 04-04-2008 05:52 от DrGluck » Записан

Good user - dead user
Вахмурка
Помогающий

ru
Offline Offline
Пол: Мужской
Программист


WWW
« Ответ #22 : 04-04-2008 09:29 » 

 Для меня ответ на вопрос поставленный в теме одназначен: не стоит. И вот почему. Сегодня я в очередной раз наблюдал очередную разработку наших специалистов. С дровами там всё нормально, но прога просто элементарно глючит: может на совершенно одинаковых компьютерах вести себя по разному, в программе просто масса логических ошибок, ведёт себя не так как законно ожидает от неё пользователь, при этом западный аналог такой программы работоспособен на все 100% и был разработан в весьма короткие сроки. ( тут как в России пологается мы не сами разрабатываем, а адоптируем чужие разработки ). Почему? И это я уже наблюдаю не в первый раз. Процесс доводки такого софта на практике получается бесконечным: одно обновление устраняет один ошибки но создаёт массу других. Наш аналог написан без применения ООП на чистом C применением WinAPI, западный на С++ и с пременением объектно-орентированных технологий. При этом у нас программисты ужасно гордятся тем что пишут драйверы и это считается "высшим пилотажем", а ООП если и нужно то только для того чтобы работать с ГИП.
Записан

Программа – это мысли спрессованные в код.
buisyhanh
Постоялец

vn
Offline Offline

« Ответ #23 : 14-10-2008 01:39 » 

Я думаю, что - Заниматься программированием драйвера есть некоторые подводы и полезности:
 - Тебе требует большое знание обо устройствах и ОС. А это требует время, опыты, самообразование.
 - Надо хорошо знать С или Ассемблер и думать по битам.
 - После два года заниматься драйверами - будет у тебя большие знание и опыт - за это ты быстро обладаещь другими областами программирования. Значит - экономически выгодно.
 - Но, после этого думаю нужно заниматься и другими языками, программированием другого аспекта  для расширения своего знания.
Записан
gektor333
Гость
« Ответ #24 : 04-02-2009 22:57 » 

Составляющие компа:
1) железо - это такие штуки, по которым, если ничего не получается, можно хорошенько треснуть ногой или разбить в дрыбыдень
2) софт - это такие вредные штуки, на которые можно только ругаться, даже если совсем все плохо
поэтому - однозначно железки, им отомстить можно.
А если серьезно, то что бы ты ни делал, но если тебе это не по душе, то даже став опытным в своем деле, будешь чувствовать неудовлетворенность, потому что против себя не попрешь, и, напротив, если душа лежит к этому занятию - дерзай. (imho)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 05-02-2009 04:58 » 

gektor333, всё правильно сделал Улыбаюсь
Записан

moimalbox
Гость
« Ответ #26 : 18-02-2009 06:43 » 

Здравствуйте
Тут вот какая штука
Подскажите сначала что такое вообще драйвер и для чего он нужен...

В моем понимании всегда было  что драйвер это программа управления определенным устройством - файл с расширением .sys
Может я ошибаюсь...
Но для любого устройства  есть драйвер от компании производителя
Зачем же их програмировать самостоятельно.
Разве что если Вы разрабатываете и делаете железо самостоятелььно?
« Последнее редактирование: 19-02-2009 04:15 от Алексей1153++ » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #27 : 18-02-2009 19:28 » new

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

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines