Правду говорят, что лучший способ изучить какой-либо язык программирования - это начать кодить на нём. В отличие от самого программирования как философии, когда надо сначала ознакомиться с теоретической базой.
В общем, таки сподобилась писать курсач. На C++ с применением Qt. Стоит заметить, что с Сями я до недавних пор не очень дружила - по работе всё никак не могла вырваться из амплуа "тупого похапешника" (хуже которого, как известно, только "тупой 1Сник"), а "для души" предпочитала писать на чём-либо с более высоким уровнем абстракции. Сишный синтаксис и пару базовых фич знала, но не более.
Ну, в общем, писать так писать - нарисовала формочку в Qt Designer, присобачила её к проекту в KDevelop, и, что называется - поехали. И всё неплохо шло, благо Qt Assistant - достаточно удобная и полезная документация... но с какого-то перепугу я решила, что надо в изучение Сей всё же как следует углубиться, приобрела пару книжек и открыла соответствующий курсец. И разработка практически встала, за что я щас себя в очередной раз ругаю. Казалось бы - почему?
Да потому что куда проще сначала написать какой-то кусок кода (разумеется, зная базовые принципы кодонаписания и парадигмы программирования), а потом уже заглянуть в книжку и что-то оптимизировать, где-то поправить - в общем, довести до ума, уже используя конкретную специфику конкретного языка. А в противном случае получается тот самый зеландовский пример про сороконожку, которая, если будет размышлять о том, как именно она ходит, просто запутается в своих ногах. Вот сейчас меня разбуди среди ночи - и у меня всё равно от зубов будут отскакивать все эти указатели-ссылки-конструкторы-деструктор
ы-преобразования и прочая хрень... а то, что, собственно, я хотела написать, теперь вспоминается долго и мучительно (впрочем, вчера я хотя бы распарсила XML-файлец нормально). Ну и нахрена я вообще во всё это полезла, а?
Уж проще было как обычно, запастись... не угадали, не пивом, а чаем, наваять хотя бы костяк базовых классов, а если что неясно или синтаксис какой-нибудь фичи подзабылся - вот тогда уже подглядывать в книжки и учебные курсы. СНАЧАЛА посмотреть в деле, а потом уже заучивать спецификации. Ну и что, что поначалу неоптимизированный
быдлокод черновик получается? Поправить уже написанное всегда можно (всё же не бизнес-приложение пишу, а всего лишь небольшой учебный проект), это лучше, чем сидеть у пустого окна IDE и думать, с чего бы такого заковыристого начать.
Вот сейчас думаю - конечно, я правильно сделала, что практически наизусть по тем же интуитовским курсам вызубрила спецификации HTML 4 и CSS 2 - вон, до сих пор тесты на них прохожу влёт. Но смогла бы я так во всех этих делах ориентироваться, если бы ко времени этого самого заучивания у меня бы за плечами не было нескольких, хоть и кривенько скоденных, но вполне себе рабочих проектов? Вряд ли. Роль моторной памяти нельзя недооценивать, а "отличники"-зубрилы не зря у мало-мальски толковых людей вызывают презрение.
Ну и теперь, собственно, претензия на холивар. Собственно, эти ваши плюсики - аццкий дзен. Я могу понять стремление разработчиков предусмотреть все возможности для оптимизации программы вплоть до последнего байта и контроля над каждой крохотной ячеечкой памяти... но нахрена ж оно выглядит НАСТОЛЬКО неинтуитивно и вообще временами не-"человекопонятно"? Тут народ временами на перловские регулярки матерится - так вот, регулярки ещё фигня, да. Куда больше все эти выражаемые в спецсимволах условности похожи на php-шные наборы функций (о неструктурированности коих ходят легенды). Не хотела бы я встретиться с маньяком, написавшим компилятор или хотя бы парсер для кода на C++! Даже любители brainfuck выглядят в моих глазах менее опасными для общества персонажами :)))
