Страница 1 из 3
Нужны ли специалисты по низкоуровневому программированию?
Добавлено: 15 ноя 2005, 14:39
Victor Gr.
Читаю книжки по ассемблеру, оптимизации программ (с учётом особенностей архитектуры процессоров x86) и рядом с ними - по MySQL и PHP.
Читаю, и параллельно размышляю: а как сейчас востребованы специалисты по низкоуровневому программированию? Нужны ли сейчас люди хорошо разбирающиеся в ассемблере и тонкой заточке кода под архитектуру?
Другими словами, можно ли получать хорошие деньги, быть востребованным, посвятив себя ассемблеру?
Или же в наши дни скорость и требования в разработке программ сменились и гораздо важнее уметь создавать правильные базы данных, писать качественные скрипты и заниматься веб-программированием?
Интересует чему посвятить себя, чтобы в перспективе за окном стоял свой Porsche
Добавлено: 15 ноя 2005, 14:44
Llama
Victor Gr., такие люди нужны _всегда_ но их никогда не надо много...
Добавлено: 15 ноя 2005, 15:11
sanitar
ИМХО самую массовую часть спектра сейчас составляют задачи, для которых оптимизация скорости разработки и поддержки важнее оптимизации скорости выполнения. Т.е. это решения, которые как правило, не сажают процессор на задницу, зато нуждаются в быстрой модификации по первой необходимости.
Отсюда вывод -- в среднем наверное больше нужны специалисты по высокоуровневым языкам.
Это не отменяет высказывания Llama.
Добавлено: 15 ноя 2005, 16:04
Victor Gr.
Я всё никак не могу забыть дядьку со стенда IBA на какой-то из выставок TIBO. С красивым американским акцентом и игрой на публику он объяснял мне, тогда ещё школьнику, о серверах IBM zSeries (или zPower?)...
Такой сервер, который они представили на выставке обслуживает БелЖД. Он на глазах у меня логинился из Windows к своему юникс-аккаунту, на сервере, где-то на ул. Богдановича. Тогда я в этом ещё ничего не понимал, но было интересно
.
Так вот, его слова на меня тогда очень воздействовали:
"Вы, как тысячи других `программистов` умеете что-то делать всякие поделки в Windows. Кому такие уже нужны? Таких - море!
А вот в нашей стране очень мало людей разбираются в таких серверах, как этот! И такие специалисты нарасхват!, хотя их очень-очень у нас немного, так что для БелЖД даже пришлось вызывать из России.
Так, что, ребята, чтобы быть нужным, нужно изучать - ВОТ ЭТО!"
Хотя, он говорил это так, что вряд ли верил, что мы сможем это
.
Сам я в то время программировал на Visual Basic 5.0.
, ну и Perl для CGI, так что его слова о тысячах 'спецов' вполне относились и ко мне.
С тех пор я обращаю внимание именно на редкие узкоспециализированные ниши, в которых нет того богатства выбора спецов.
Вот и интересно, можно ли найти хорошую работу, заостряя внимания на ассемблере.
Добавлено: 15 ноя 2005, 16:34
Speccyfan
Victor Gr. писал(а):Я всё никак не могу забыть дядьку со стенда IBA на какой-то из выставок TIBO. С красивым американским акцентом и игрой на публику он объяснял мне, тогда ещё школьнику, о серверах IBM zSeries (или zPower?)...
Такой сервер, который они представили на выставке обслуживает БелЖД.
На БелЖД используются MAINFRAME IBM 9672 и две IBM 2066 с оперативной памятью 8 Гбайт и дисковой памятью 500 Гбайт.
А по поводу асма он нужен, но не обязательно под x86, большим спросом пользуются специалисты умеющие писать под всякие микроконтроллеры типа PIC.
Добавлено: 15 ноя 2005, 20:09
Foxx
Не попробовавши асма не поймешь, что значит "оптимизировать код" (не вдаваясь в дальнейшее разглагольствование). И даже при сегодняшнем состоянии спектра харда очень часто перед высокоуровневиками становятся задачи по оптимизации той или иной задачи. И зачастую (неоднократно был свидетелем) такие вот "высокоуровневики" садятся на жопу и не знают, с какой стороны посмотреть на задачу.
Считаю, что асм _крайне_ позитивно развивает программиста, расширяя его познания в области харда и понимания тех первопричин, "как та или иная тулза вообще работает, изнутри тскть"... как смог, так выразился.
Добавлено: 15 ноя 2005, 20:22
Victor Gr.
Foxx, это точно. Поэтому и читаю сейчас Юрова как роман. Чтобы просто понять как на нём программируют, расширить свой кругозор в области низкоуровневого программирования.
Всё-таки, гораздо бОльший прирост производительности достигается за счёт алгоритмической оптимизации. И производительности можно в разы увеличит даже на скрипте PHP.
Но вопрос в том, имеет ли смысл с точки зрения дальнейших перспектив, вникать в предмет?
Добавлено: 15 ноя 2005, 23:38
Flying
ИМХО, современные компиляторы достаточно умны, чтобы генерировать оптимальный код. И потратив месяц на написание алгоритма на асме, можно обнаружить, что сишный компилятор сгенерировал то же самое, или даже лучше из кода на Си, написанного за полчаса. Поэтому асм имеет смысл использовать для программирования контроллеров или чего-то специфичного. И чтобы эффективно использовать асм, нужно действительно глубоко в него вникнуть.
Добавлено: 16 ноя 2005, 00:21
Victor Gr.
Flying, ну да. И это ОЧЕНЬ большая заслуга компиляторов. В этом отношении они продвинулись очень далеко.
Просто, если владеешь техникой, ни один компилятор не заменит виртуозной игры мастера. (я не о себе
).
Наверное, на Си в Линуксе можно повторить абсолютно всё, что и на асме.
Я читаю книгу Криса Касперского 'Техника оптимизации программ' - Эффективное использование памяти. Хотя в ней идёт подробный разбор ассемблерного кода, в самом начале автор оговорился, что ВСЕ оптимизации будут проводиться только на языке Высокого Уровня и Си. Никаких ассемблерных вставок!
Добавлено: 16 ноя 2005, 00:33
Llama
Скажем так: ИМХО в ассемблер стоит лезть только если _ОЧЕНЬ_ четко предсталяешь что делаешь, как оно работает как будет лучше. _СРЕДНЕМУ_программисту лчше ориентировать на что-то более выкоуровневое - а ассемблер оставить фанатам. Если чуствуешь, что ассемблер это то, без чего жить неможешь - то занимайся этим. Если исходть из сугубо из утилитарных соображения - то займись чем-то более высокоуровневым.
Добавлено: 17 ноя 2005, 10:26
myst
- Юров -- фигня, лучше Зубкова почитать. Гораздо более информативная книга.
- Разница в трудозатратах при программирования на Asm и на C создается не уровнем языка C а наличием у C libc. Если написать для Asm'а libasm, то получится 10% разницы, не больше.
- CC действительно генерирует очень плотный код. Но есть случаи когда CC тупит.
- И нифига Asm не сложный.
Re: Нужны ли специалисты по низкоуровневому программированию
Добавлено: 17 ноя 2005, 12:59
vics
Victor Gr. писал(а):Интересует чему посвятить себя, чтобы в перспективе за окном стоял свой Porsche
Купи-продай (желательно госсобственность).
Добавлено: 17 ноя 2005, 21:10
Victor Gr.
Зубков - это справочник, когда уже имеешь предстлавение.
А Юров - учебник. Всё разжевывается и по полочкам раскладывается.
HelloWorld на Си
#include <stdio.c>
main () {
printf ("Hello World!\n");
}
Вызывает функцию printf libc.
Чем это лучше, чем направить системный вызов операционной системе?
Ну можно и прямо в видеопамять написать, но так уж полностью переносимость теряется. Зато, самый быстрый код!
Ну и так далее. Это самый простой пример.
И ещё вопрос. О программировании MMX/SSE. GCC в этом разбирается? Каким образом он решает, стоит ли применять MMX и SSE? Сам, или по явному указанию?
Добавлено: 17 ноя 2005, 21:17
Foxx
как помнится у него есть ключи -mmmx, -msse, -mfpmath=mmx||sse||387, а по дефолту первые два отсутствуют, а третий =387, можно сделать и -msoft-float... и еще куча разных ключей с этим связанные. все ищется где-то в мане.
Добавлено: 17 ноя 2005, 22:24
Lioxa
Victor Gr. писал(а):Вот и интересно, можно ли найти хорошую работу, заостряя внимания на ассемблере.
Можно. Знаю одну кантору в Минске, где именно такие и нужны.
Только не знаю нужны ли прямо сейчас (имею ввиду, что штат уже наверное набран). И причём нужны именно спецы. Потому что начальник отдела разработки сам спец в этом деле, и работа серьёзная... Только пронрамить там надо микроконтроллеры.