| 
			| 
					
						| 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 ... |  |  | 
	|  |