Аноним обратиться по имени
Понедельник, 27 Сентября 2004 г. 22:37 (ссылка)
Для начала. Когда я поступал, я думал, что буду учиться на программиста. Точнее, повышать свою программистскую квалификацию, ибо она у меня есть, более того, даже документально засвидетельствованная. Когда я поступил и попытался учиться мне популярно объяснили, что учить меня будут на инженера. Сейчас я знаю только одно - я не учусь, кем буду - не понятно, но специальность у меня называется ПО. Это было типа вступление.
Вот. Теперь мысль, меня посетившая. Просто под понятием "программист" мы понимаем несколько разные вещи. Вы - тех, кто пишет программы. Я - тех, кто создает работающие программные продукты. Которые не многозадачны по типа "окон" - глючат и работают одновременно, а именно делают полезную работу, при этом используют максимум способностей машины.
А вообще, для меня мир "взрослого" программирования начался с Вычислительного центра РАН (тот, что на пятом этаже высотки на Ленинском). Так вот там основная задача - правильно распределить задачи на процессоры (назовем это так, чтобы не перегружать терминами). Наверное, после этого у меня и укрепилось мнение о том, что хороший программист - он наездник, не объясняющий лошади как правильно бежать, а умеющий подстроиться под ее существующие возможности. Это так, если уж понравились сравнения.
Далее. Ваше программирование - это не есть отношение машины и, скажем так, управляющего этой машиной. (Тут хочу сделать отступление. Про замечательное слово драйвер - он не водитель, в смысле шофер, а человек, которому подвластен агрегат. Драйвер в метро - машинист - бог и повелитель состава. Так вот программист - он должен быть драйвером ЭВМ. Извините за сленг, не мог сдержаться.) Это отношение именно пользователя, а не того, кто управляет компьютером. Программсит должен быть Хозяином - именно так, с большой буквы.
А теперь я скажу почему это все должно быть именно так. Мы сейчас практически достигли предела развития микропроцессорной техники. Уменьшение техпроцесса еще будет происходить, но крайне недолго. И это просто не нужно. Ибо основная проблема в том, что в соврменном ПО до 40% "мертвого" кода, еще процентов десять выигрывается за счет оптимизации остального. Но это - явление временное - из-за того, что компиляторы, которые сейчас пишутся, почти все используют трансляцию н в машинные коды, а на языки уровнем чуть "ниже", то наслоение "мертвого кода" увеличивается. И мы приходим к тому, что небольшое усложнение программы ведет к значительно большому увеличению ее "потребностей". Так вот, вы мне скажите, что дальше? Так и будем придумывать новые слова, которые могут нам заменить целые предложения, а отдельные слоги будем потихоньку забывать?
Так, теперь дальше. Техника - она предсказуема не менее алгоритма. Поскольку строится она по законам. Тут как раз главная ошибка - нужно представить себе компьютер в виде, например, простой коробки передач. Все очень просто - шестерни, валы, сцепления. И все логично до безобразия. Любая техника - это лишь увеличения количества этих "коробок передач", и ничего боле.
Про самолет. Вы в курсе, что конструкторы самолетов обязаны проходить летную практику? А пилот знать устройство самолета?
И, наконец,
Лучший язык - Ассемблер
Лучший компилятор - отсутствие оного (сразу вспоминается лицейский лаборант, который ради шутки нагонял страх на новоприбывший восьмиклашек, набивая по памяти прогрмму сразу в hex-кодах)
Лучшая среда - Блокнот
А лучший эксперт по всем вопросам - это,конечно, я. И я как всегда нифига не знаю, но скажу.