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++ »
|
Записан
|
|
|
|
|
RXL
|
|
« Ответ #2 : 05-02-2008 15:42 » |
|
maniac85, пессимизм твой тебя обманывает. Специалистами не рождаются - ими становятся. Всему надо сперва научиться и поднабраться опыта.
Существует естественная убыль специалистов (я не про тот свет, а о перепрофилировании). Соответственно, должен быть и обратный процесс - обучение новых специалистов. Драйвера были, есть и будет их еще много-много!
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Scorp__)
Молодой специалист
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
|
|
« Ответ #5 : 06-02-2008 11:01 » |
|
Scorp__), подписываюсь под каждым словом)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
maniac85
Гость
|
|
« Ответ #6 : 04-03-2008 12:04 » |
|
Не стал создавать новой темы, пишу тут. Опять возник вопрос. Вот смотрите, программист-драйверов, системный программист должны специализироваться в какой-то системе (Windows NT, Unix\Linux, операционные системы рабочих станций, коммуникаци-онных компьютеров, ОС реального времени (QNX, Windows CE)). Получается специалист устроившись на определенную фирму, будет узкоспециализироваться на той систем, что находится в данной фирме(да и что за системы обычно вы обслуживаете? можете поделиться:)). интерисует что в первую учереь требуеттся на ПРАКТИКЕ, просто под Windows драйвера пишутся производителями комплектующих, недумаю что под нее необходими в нашей стране программисты. Скорее всего нужны программисты микроконтроллеров, а там однозадачные системы. Значит имеет ли смысл учиться программировать многозадачную Windows? Не то чтобы не хотелось. Вопрос не в этом. Вопрос в том - что именно нужно на практике. Какие технологии/системы учить? Если можно объясните пожалуйста, а то я запутался:(
|
|
« Последнее редактирование: 04-03-2008 12:06 от maniac85 »
|
Записан
|
|
|
|
Вахмурка
Помогающий
Offline
Пол:
Программист
|
|
« Ответ #7 : 04-03-2008 15:54 » |
|
Дрова конечно интересно, но это не для меня. Меня больше прикалывает прикладное програмирование, я там вижу больше творчества, там есть объекты, интерфейсы, и другие прелести ООП. Да и мне просто доставляет удовольствие думать категориями ООП.
|
|
|
Записан
|
Программа – это мысли спрессованные в код.
|
|
|
Вад
|
|
« Ответ #8 : 04-03-2008 17:51 » |
|
просто под Windows драйвера пишутся производителями комплектующих, недумаю что под нее необходими в нашей стране программисты. Ну, как сказать... В состав проекта, который наша команда делала год назад, входило 2 самописных драйвера для Win. Из истории нашей компании не самую малую часть проектов составляло создание драйверов для разного рода устройств. При этом производителями железа мы не являемся
|
|
|
Записан
|
|
|
|
Hammurapi
Участник
Offline
|
|
« Ответ #9 : 03-04-2008 09:42 » |
|
Все что напишу ниже это ИМХО (исключительно ИМХО). В школе нас учат каким-то вещам, а в институтах,универах...и др. ВУЗах учат учится, учат искать информацию, учат ее использовать и т.д. А думаю эта схема переносима на программирование вообще. По себе скажу...чем только в свои без малого 30 лет не занимался, но спроси меня какой флаг вскидывается в при той или иной команде ассма ни скажу хоть убей(хотя архив своих прог весит 40 кил), спроси структуру пакета IP или IPSec даже не вспомню (хотя в Вузе это все учил досканально), спроси про Неймановскую архитектуру разведу руками (хотя Олиферов книжка одно время была настольной) и как блин запрограммировать какой нить ПИК контроллер да не упомню, хотя где-то валяется свой программатор и т.д. и т.п. Сейчас вот билдеровские исходники юзаю пришлось книжку по Паскалю скачать... забыл я некоторые конструкции языка, хотя программил на нем довольно долго , пока Си не привлек. И вопрос зачем мне помнить какой флаг вскидывается при той или иной команде ассма если я возьму книжку и за несколько часов все вспомню. Это я все пишу лишь с тем , чтоб доказать что если ты можешь/тебя научили обучаться, обучится чему либо можно , и можно достаточно быстро. А потом если ты выберешь одно из направлений и решишь в нем стать классным спецом , который может в данной области сделать все что угодно, тебе нужно будет только практика. А стать хорошом системым программистом можно в довольно сжатые сроки, тем более у студентов времени пруд пруди , и не пытайтесь меня убедить (19 сессий за плечами ). Сядь обложись книжками, вооружись компом , советуйся на разных форумах, скачивай чужие разработки , дабы разобраться и когда тебя это затянет лишь время сделает из тебя спеца....УДАЧИ! P.S. чем сложнее написать драйвер под Винду, чем научиться какому-нить Oracl'у???
|
|
|
Записан
|
|
|
|
Hammurapi
Участник
Offline
|
|
« Ответ #10 : 03-04-2008 09:45 » |
|
Во блин написал и подумал , а че это я в самом деле так разбазаривался...Немного подумав понял, техника не стоит на месте и я видимо с ней вместе вдигался.... Я думаю как и большенство товарищей на этом форуме.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #11 : 03-04-2008 09:47 » |
|
но спроси меня какой флаг вскидывается в при той или иной команде ассма ни скажу хоть убей
не верю... 80% случаев даже логически сами собой напрашиваются (и есть), ещё 10% запоминаются (например при инкременте fZ шавелится, а fC - нет, меня это всегда удивляло )
|
|
|
Записан
|
|
|
|
Hammurapi
Участник
Offline
|
|
« Ответ #12 : 03-04-2008 10:24 » |
|
Алексей1153++, Ты пытаешься усомнится в моем умении программировать на ассме??? Просто последний раз я писал прогу на ассме ..щас припомню в 2002 или 2003...по моему так... а после этого столькими вещами занимался, что память сама собой закинул все старые знания на задворки... В прочем тема то и не в этом, а в том, что всему можно обучится и если что-то знал..... работал, то никогда не забудешь и вспомнить не проблема. И парень заразившись пессимизмом думает, что уже опаздал и никуда не успеть, а я лишь хотел показать, что нет поводов отчаиваться и лишь надо чем-то увлечься и начать изучать....На мой взгляд разработка драйверов и вообще системное программирование ООООчень интересная тема и если он начнет этим заниматься, то результаты не заставят себя ждать и если ему еще учится в институте 1-2 года, он может за это время хорошо научится писать драва.
|
|
« Последнее редактирование: 03-04-2008 10:34 от Hammurapi »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #13 : 03-04-2008 10:26 » |
|
Ты пытаешься усомнится в моем умении программировать на ассме
ни в коем разе не пытаюсь усомниться, я говорю - не верится, что забыл
|
|
|
Записан
|
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #15 : 03-04-2008 10:42 » |
|
я бы смог Всё что я готовил до женитьбы - я и сейчас неплохо могу приготовить. Возможно, даже лучше
|
|
|
Записан
|
|
|
|
Hammurapi
Участник
Offline
|
|
« Ответ #16 : 03-04-2008 11:00 » |
|
maniac85,Какая разница под что писать в начале, принципы то везде одинаковые... начал ты писать по Винду , потом тебя попросили написать под Линух [исправленно в связи с невернной формулировкой] в Винде пишешь по средством API функций, Линух это Си...(надеюсь больше ни кто придираться к неправильным формулировкам не будет... [/исправленно в связи с невернной формулировкой], а смысл один и тот же, не говоря уже про кроссплатформенные решения коих все больше. Вот я тебе расскажу один случай. Был я тогда еще приличным чайником... токо токо Паскаль начал изучать...(в школе еще учился).. и как-то у одного гуру(ну так мне тогда казалось, может оно и не так было) кто-то спросил (я при разговоре присутствовал) ты можешь вот эту задачу решить..Он да не вопрос. Ему: А в чем ты ее будешь решать(писать)? Он ответил стандартной по идее фразой. А в чем надо?? Мне это тогда показалось так дико ... А потом со временем понял, что это совсем не дико... Какая мне разница на чем в настоящий момент написаны исходники Билдеровских компонентов на Объектном Паскале или же на чем нить другом... Да будь они хоть в Аде нарисованы...Лишь на синтаксис языка пришлось бы времени больше потратить!!! Пиши под Винду или установи себе Линух, что мне кажется более интересным там в ядре можно хорошо покапаться. И программи, программи, программи.
|
|
« Последнее редактирование: 03-04-2008 12:04 от Hammurapi »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #17 : 03-04-2008 11:40 » |
|
Hammurapi, (шепотом) начал ты писать по Винду , потом тебя попросили написать под Линух разная система команд
только никому больше не говори такого
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|
Sla
|
|
« Ответ #19 : 03-04-2008 12:10 » |
|
Hammurapi, будет!!!!! ну почему только Си? Offtopic: а с виду - умный мужик
|
|
« Последнее редактирование: 03-04-2008 12:11 от Sla »
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|
DrGluck
|
|
« Ответ #21 : 04-04-2008 05:49 » |
|
По поводу дров. Наша контора, к примеру, щас свою PCI железку делает. Предетца писать два драйвера. Но это не сильно пугает. Предыдущая железка была сделана 10 лет назад на ISA с драйвером на ассемблере под 9х. Вот где ужос то. В общем, резюмирую всё вышесказанное: ТВОРИ, ВЫДУМЫВАЙ, ПРОБУЙ... и да пребудет с тобой СИла...
З.Ы. По поводу inc и флагов fC и fZ. Где то читал, почему так повелось, но забыл. В принципе мне так удобно.
|
|
« Последнее редактирование: 04-04-2008 05:52 от DrGluck »
|
Записан
|
Good user - dead user
|
|
|
Вахмурка
Помогающий
Offline
Пол:
Программист
|
|
« Ответ #22 : 04-04-2008 09:29 » |
|
Для меня ответ на вопрос поставленный в теме одназначен: не стоит. И вот почему. Сегодня я в очередной раз наблюдал очередную разработку наших специалистов. С дровами там всё нормально, но прога просто элементарно глючит: может на совершенно одинаковых компьютерах вести себя по разному, в программе просто масса логических ошибок, ведёт себя не так как законно ожидает от неё пользователь, при этом западный аналог такой программы работоспособен на все 100% и был разработан в весьма короткие сроки. ( тут как в России пологается мы не сами разрабатываем, а адоптируем чужие разработки ). Почему? И это я уже наблюдаю не в первый раз. Процесс доводки такого софта на практике получается бесконечным: одно обновление устраняет один ошибки но создаёт массу других. Наш аналог написан без применения ООП на чистом C применением WinAPI, западный на С++ и с пременением объектно-орентированных технологий. При этом у нас программисты ужасно гордятся тем что пишут драйверы и это считается "высшим пилотажем", а ООП если и нужно то только для того чтобы работать с ГИП.
|
|
|
Записан
|
Программа – это мысли спрессованные в код.
|
|
|
buisyhanh
Постоялец
Offline
|
|
« Ответ #23 : 14-10-2008 01:39 » |
|
Я думаю, что - Заниматься программированием драйвера есть некоторые подводы и полезности: - Тебе требует большое знание обо устройствах и ОС. А это требует время, опыты, самообразование. - Надо хорошо знать С или Ассемблер и думать по битам. - После два года заниматься драйверами - будет у тебя большие знание и опыт - за это ты быстро обладаещь другими областами программирования. Значит - экономически выгодно. - Но, после этого думаю нужно заниматься и другими языками, программированием другого аспекта для расширения своего знания.
|
|
|
Записан
|
|
|
|
gektor333
Гость
|
|
« Ответ #24 : 04-02-2009 22:57 » |
|
Составляющие компа: 1) железо - это такие штуки, по которым, если ничего не получается, можно хорошенько треснуть ногой или разбить в дрыбыдень 2) софт - это такие вредные штуки, на которые можно только ругаться, даже если совсем все плохо поэтому - однозначно железки, им отомстить можно. А если серьезно, то что бы ты ни делал, но если тебе это не по душе, то даже став опытным в своем деле, будешь чувствовать неудовлетворенность, потому что против себя не попрешь, и, напротив, если душа лежит к этому занятию - дерзай. (imho)
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #25 : 05-02-2009 04:58 » |
|
gektor333, всё правильно сделал
|
|
|
Записан
|
|
|
|
moimalbox
Гость
|
|
« Ответ #26 : 18-02-2009 06:43 » |
|
Здравствуйте Тут вот какая штука Подскажите сначала что такое вообще драйвер и для чего он нужен...
В моем понимании всегда было что драйвер это программа управления определенным устройством - файл с расширением .sys Может я ошибаюсь... Но для любого устройства есть драйвер от компании производителя Зачем же их програмировать самостоятельно. Разве что если Вы разрабатываете и делаете железо самостоятелььно?
|
|
« Последнее редактирование: 19-02-2009 04:15 от Алексей1153++ »
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #27 : 18-02-2009 19:28 » |
|
ну вопервых - делаем) а во вторых - не все задачи можно решить на уровне пользователя. они конечно несколько специфичны - эти задачи... как правило связанные с безопасностью... впрочем можно еще подумав с десяток областей найти)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
|