среда, 5 июня 2013 г.

Процессор перебором



Очень часто встречаю печальные опусы пользователей интернета о том, какие программисты криворукие, что они пишут такие глючные программы.

Если посмотреть на задачу написания  компьютерной программы с точки зрения математической логики, то её можно охарактеризовать как дискретную NP-полную задачу. Ну нельзя в программировании наполовину или на четверть написать ту или иную функцию, класс или объект, немножко определить переменную, чуть-чуть задать цикл.
Также известно, что в подобных задачах эффективное решение может быть найдено только полным перебором. И когда я эту мысль высказал одному технарю, он сразу сделал вывод, что данное направление решения задачи - это тупик, т.к. перебирать придется очень долго, чтобы получить хоть какой-нибудь существенный результат.

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

Другое решение - составить математическую модель и включить полный перебор. Если таким способом каждый раз искать один единственный необходимый результат - это естественно очень затратно. Но если перебор будет идти постоянно, и походу сохранять все эффективные решения, то в результате у нас постепенно будет формироваться библиотека из очень оптимизированных шаблонов.

Если и делать такой перебор, то лучше и проще наверное начинать не с каких-нибудь языков программирования,  а с транзисторов микропроцессора. Хотя, все зависит от задачи. 

понедельник, 3 июня 2013 г.

Экономический взгляд на высшее образование

ВУЗ - это коммерческая организация

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

Образование - это инвестиции

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

Образование в экономической теории

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

 Стоимость образования

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

Идея тут простая: необходим образовательный портал, где работодатели смогли бы дешево обучать и подбирать себе специалистов, а соискатели могли бы бесплатно освоить необходимые навыки и знания для требуемой специальности.