Как научиться программировать?
Вопрос в топике имеет немножко иной смысл, нежели вы могли подумать.
Я пишу на ..одном непопулярном языке, просто для себя, как хобби, и не собираюсь заниматься этим на коммерческой основе. Самоучка вобщем.
Конечно, очень увлекаюсь и знаю множество его тонкостей, но меня не устраивает тот говнокод, что получается в итоге. И опять, же имею ввиду не то, что сделано как-то нерационально, а внешний вид, с трудом понятный человеку код.
Так вот, как выработать стиль в коде? Может подскажете какую-нибудь документацию на эту тему?
Конечно, очень увлекаюсь и знаю множество его тонкостей, но меня не устраивает тот говнокод, что получается в итоге. И опять, же имею ввиду не то, что сделано как-то нерационально, а внешний вид, с трудом понятный человеку код.
В таком случае, ничего не мешает переписывать код в цикле, пока он не начнёт устраивать.
+1
Если тот язык пока не имеет таких рекомендаций по форматированию и именованию, то можно посмотреть такие правила в других языках, наиболее похожих на ваш.
Вы бы всё-таки написали, что за язык-то. Тогда можно будет посоветовать что-то более конкретное.
1. Учился на архитектора-проектировщика, но то, что я проектирую, мне не нравится. Что мне делать?
2. С золотой медалью окончил медвуз. 6 лет интернатуры и прочие радости. Все в лучшем виде. Но я не могу отличить банальный насморк от острого гайморита. И халат на мне как-то не так сидит. Мне кто-нить поможет?
3. Я за рулем 10 лет и каждый месяц попадаю в ДТП. Но это фигня. Мне не нравится, как я выгляжу со стороны в потоке машин. Что можно сделать?
И много других.
Вопрос, озвученный топикстартером - из этой серии.
Пишу на http://en.wikipedia.org/wiki/MIRC_scripting_language
'Переписывать код в цикле' пока единственное, что помогает. Причем с нуля. Не только исправлением кода, но и его оптимизацией, поскольку уже имеется опыт от предыдущей версии...
Lerkin, виной всему перфекционизм. Все происходит не так, что выучил сразу все и за раз. Каждый день можешь узнавать какие-то мелочи и тонкости, и хоть каждый день переписывай, поскольку проектов может быть много, и в каждом (и уже непомнишь где именно, по прошествию времени) используется код который можно сделать лучше. Простое перечитывание кода не помогает, в результате получается аналогичный моветон с ctrl+c ctrl+v.
Извините, если я настолько уныл, что показался троллем. В качестве доказательства, могу лишь привести несколько ссылок на сайты со своим профилем и скриптами:
http://www.mircscripts.org/archive.php?squery=Spoofing
http://www.hawkee.com/profile/61425/
http://www.chaters.ru/blog/mSL/
Сижу 24/7 в IRC сети RusNet под ником Spoofing (в данный момент не поленился зайти на #codenet). И нет, я не тролль.
Lerkin, виной всему перфекционизм.
Да вы что... Ну, легкие невротические расстройства поддаются терапии. :)
Все происходит не так, что выучил сразу все и за раз. Каждый день можешь узнавать какие-то мелочи и тонкости, и хоть каждый день переписывай, поскольку проектов может быть много, и в каждом (и уже непомнишь где именно, по прошествию времени) используется код который можно сделать лучше. Простое перечитывание кода не помогает, в результате получается аналогичный моветон с ctrl+c ctrl+v.
Да вы что... Почти 20 лет, в легкую программирую на досуге, и уяснил один тонкий момент: комментарии в коде рулят, а небольшое описание масюсенького проектика (у вас других и не может быть, на данном этапе развития) весьма и весьма помогает освежить память.
Выключите эту богомерзость и дела пойдут в гору. :)
Кто-то, увы непомню кто, но из местных, выразил мысль, что совершенствоваться в процессе создания чего-либо - это копец. Очень ведь интересно написать вчера блок кода, а сегодня понять уже, что весь проект вообще сделан как попало. :)
У меня такое ощущение бывало и не раз, как избавиться пока не знаю. Стараюсь не переписывать код почем зря, просто доделываю, тестирую, рефакторю только код, а уж архитектуру если рефакторить - так это уже в следующей версии. Ну как-то так.
Автору, пожалуй, предложу просто писать. Сегодня написал скрипт, понял, что хреновый - завтра напишешь другой, лучше. Развитие, че. Имхо.
Мой совет парадоксален: попробовать научить кого-нибудь программированию скриптов mIRC.
Можно, например, передать опыт перед уходом из проекта, либо выступить с курсом лекций, как гуру. Иногда достаточно "поговорить" с невидимым оппонентом, чтобы в голову пришла неожиданная мысль или новый взгляд на проблему. Ровно тот случай: "Пока объяснял -- сам понял".
Если обязательно нужно материальное воплощение результата -- написать цикл статей по теме.
Есть мнение, что первую версию надо сразу выкидывать в ведро, и тут же браться за вторую -- только её можно считать решением задачи. :)
Русские реалии программирования часто характеризуются неполной либо отсутствующей постановкой задачи, и первая версия -- "разведка боем". В жизни не все проекты (иногда даже программисты) доживают до второй версии. Но проблема не в программистах, а в бездарях (по большей части), которые ими управляют.
Мораль: решение задачи есть постановка, а программа -- лишь её иллюстрация.
Было такое мнение у г-на Брукса, но тоже критиковали, правда не помню как. Исходя из опыта я вижу, что так делать невыгодно экономически. Выгоднее заранее как можно лучше продумать архитектуру и придерживаться ее. Потому что ну два раза написать продукт - это все ж таки небыстро.
Кроме книг (о которых говорили тут) может помочь сообщество людей, которые пишут на этом языке. На форуме MIRC есть раздел со скриптами, да Вы и сами приводили ссылки на какие-то сообщества. Другое дело, что сообщество ваше может состоять из таких же скриптеров-самоучек. Возможно, имеет смысл временно переключиться на какой-нибудь язык с более продвинутым сообществом. По синтаксису наверное близки будут Perl и PHP (но тут вам виднее). Вроде бы, на них и ботов для IRC можно делать тоже.