Разработки по массивам. Если что-то вам приглянётся пишите на vmastich@inbox.ru или в ЛК.
Первая рубрика, это функции которые позволяют находить размер и ранг динамического массива. Также этому правилу подчиняются и массивы mql4, специфику показываю в видео.
Если вы передаёте массивы в свои функции и не хотите передавать лишние параметры в функции, то данные функции будут вам очень полезны.
Нахождение размера.
Пример вы объявили обычную переменную
Код:
int Q=(int)new int[10];
Далее вы передаёте этот объект как число и получаете размер функцией которую я вам предлагаю.
Нахождение ранга.
Предположим вы собрали многомерный динамический массив такого вида
[2][3][4][5]
и запихнули его в переменную Q, далее вы передали переменную в функцию, и вам нужно узнать что ранг у этого массива равен 4ём. Вы вызываете функцию и получаете ранг из переменной Q.
Найти размер статического массива нельзя его можно только посчитать. В своих материалах я показываю как это сделать. Как показывает практика на моём опыте динамические массивы используются в 85% случаях. Что касается ранга статического массива, то статический массив со всеми своими данными и параметрами лежит в одном блоке, следовательно получить и посчитать ранг статического массива тоже не получиться. Но позже будут разработаны функции которые будут имитировать статические одноконтурные массивы.
Отправляя вам код с функциями, я отправлю вам видео, на чём основаны мои расчёты. Если вы не поленитесь, то на этих прототипах сможете сделать много интересных функций.
Прошу обратить внимание мои типы данных занимают памяти как на этом ресурсе т.е. откалиброваны очень тонко. Если что-то не получается пишите.
Рубрика2.
Предлагаю вам несколько функций для работы с динамическими/многоконтурными массивами, позже будет имитировано такое со статическим массивом.
1ая может создавать массив любого ранга, прописывая и выделяя память на все размеренности. Пример вам нужно создать дин. массив massiv[2][3][4][4][10], вы помещаете данные в одномерный массив описатель int opisat[]={5,2,3,4,4,10}, далее вы передаёте 2 указателя в функцию, она это переваривает и собирает вам 5ый массив.
2ая может выводить все столбцы или информацию по нужной размеренности.
3яя разрушает такой массив полностью, имеется в виду все размеренности.
Последние выводят единичные параметры: возвращают значение, присваивают его и т.д. В них вы передаёте массив любого ранга и можете управлять этим делом в цикле в ходе выполнения программы.
Я в видео кратко показал, как это работает. Если видео будет удалено (потому что я попадал в ситуации когда каналы блокировали) то напишите мне я отправлю вам его на почту.
Здравствуйте, Gaxis, Вы писали:
G>Разработки по массивам. Если что-то вам приглянётся пишите на vmastich@inbox.ru или в ЛК.
G>Нахождение размера. G>Пример вы объявили обычную переменную G>Код:
int Q=(int)new int[10];
G>Далее вы передаёте этот объект как число и получаете размер функцией которую я вам предлагаю.
Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
в C++ варианте все освобождения памяти будут автоматические
Делайте так ради Бога. Я собрал функции которые способны эти массивы создавать и разрушать. Есть функция которая может менять ранг. Но их пока мало сделаю будет больше.
Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
Loksiin12, в ролике был намёк, что это всё можно приобретать. Уверяю — приобретать в текущем виде никто не будет. Одномерный стандартный вектор в основе — это минимальное условие (но не последнее)
Как вы хотите чтобы было? Опишите ваши условия идеи, мне будет над чем подумать.
ps: Одесса? Был у меня коллега, весной французскими духами тамошними в Москве торговал..
_>ps:Здравствуйте, pilgrim_, Вы писали: _>ps: Одесса? Был у меня коллега, весной французскими духами тамошними в Москве торговал..
Я зарегистрировался на форумах, спросил разрешение у администрации могу ли я предлагать свои разработки мне дали этот раздел. Я разместил свою тему. Если вам есть что сказать пишите нормально.
Здравствуйте, Gaxis, Вы писали:
_>>ps:Здравствуйте, pilgrim_, Вы писали: _>>ps: Одесса? Был у меня коллега, весной французскими духами тамошними в Москве торговал.. G>Я зарегистрировался на форумах, спросил разрешение у администрации могу ли я предлагать свои разработки мне дали этот раздел. Я разместил свою тему. Если вам есть что сказать пишите нормально.
Не обижайся, может для тебя то что ты предлагаешь выглядит нормой, но на мой взгляд это выглядит продажей воздуха, сорян если неправ, но выглядит именно так.
Ну а штуки вида
>int Q=(int)new int[10];
конечно могут работать, но в последнее время все реже и реже (hint: x64)
ps: мне доводилось работать с компиляторами, где int мог быть: 2 либо 4 байт, как настроишь
_>>>ps:Здравствуйте, pilgrim_, Вы писали: _>>>ps: Одесса? Был у меня коллега, весной французскими духами тамошними в Москве торговал.. G>>Я зарегистрировался на форумах, спросил разрешение у администрации могу ли я предлагать свои разработки мне дали этот раздел. Я разместил свою тему. Если вам есть что сказать пишите нормально.
_>конечно могут работать, но в последнее время все реже и реже (hint: x64) _>ps: мне доводилось работать с компиляторами, где int мог быть: 2 либо 4 байт, как настроишь
Я указал про то что у меня типы занимают столько-то столько-то. Поэтому тут надо смотреть либо статически настраивать либо универсальные расчёты делать. Также в видео я про это говорю что нужно 4 байта для загрузки указателя. так что тут нужно смотреть будет нужда финансовая поддержка сделаю. Вы меня ни чем не удивили.
Здравствуйте, Gaxis, Вы писали:
G>Также в видео я про это говорю что нужно 4 байта для загрузки указателя. так что тут нужно смотреть будет нужда финансовая поддержка сделаю. Вы меня ни чем не удивили.
Эх коллега, тут я сдаюсь, сори.
ps: на всякий случай, здесь обитают в основном практикующие разработчики
По имейлу гуглится, что топикстартер — 18-летний житель Белоруссии.
Видео опубликовано под псевдонимом — это правильно, под своим именем такую стыдобу публиковать нельзя.
Названия функций и переменных, конечно, поражают воображение.
Хрен бы догадался, что такое SosdDAr, не услышав об этом в начале видео (для ленивых -- "создать динамический array").
Нескромный вопрос, если позволите -- вы в разработке реальных проектов участвовали?
Здравствуйте, Gaxis, Вы писали:
_>>ps:Здравствуйте, pilgrim_, Вы писали: _>>ps: Одесса? Был у меня коллега, весной французскими духами тамошними в Москве торговал.. G>Я зарегистрировался на форумах, спросил разрешение у администрации могу ли я предлагать свои разработки мне дали этот раздел. Я разместил свою тему. Если вам есть что сказать пишите нормально.
G>Пример вы объявили обычную переменную G>Код:
int Q=(int)new int[10];
Что будет, если sizeof(int) не равен размеру указателя?
G>Далее вы передаёте этот объект как число и получаете размер функцией которую я вам предлагаю.
G>Предлагаю вам несколько функций для работы с динамическими/многоконтурными массивами, позже будет имитировано такое со статическим массивом.
Прежде, чем изобретать свои велосипеды, нужно изучить существующие (std::vector и std::array) и понять, чем они не устраивают. А что бы предлагать свои велосипеды другим — нужно сделать их лучше.
Но предлагаются велосипеды из костылей и демонстрируется незнание существующих инструментов и непонимание размеров типов данных и их зависимость от аппаратной платформы.
Здравствуйте, b0r3d0m, Вы писали:
B>Названия функций и переменных, конечно, поражают воображение. B>Хрен бы догадался, что такое SosdDAr, не услышав об этом в начале видео (для ленивых -- "создать динамический array").
B>Нескромный вопрос, если позволите -- вы в разработке реальных проектов участвовали?
Он свою первую лабораторку продать пытается. Как разработчик он скорее всего карьеры не сделает, но вот как продажник...
Здравствуйте, уважаемый Gaxis, Вы писали:
G>Разработки по массивам. Если что-то вам приглянётся пишите на vmastich@inbox.ru или в ЛК. G>Первая рубрика, это функции которые позволяют находить размер и ранг динамического массива. Также этому правилу подчиняются и массивы mql4, специфику показываю в видео. G>Если вы передаёте массивы в свои функции и не хотите передавать лишние параметры в функции, то данные функции будут вам очень полезны.
Прежде всего — пожалуйста, не обижайтесь, но Вы, уважаемый Gaxis, ломитесь в раскрытую дверь
Автор: Николай М. Джосаттис
"Стандартная библиотека C++.Справочное руковод.2изд"
Посмотрите (хотя бы по диогонали) примеры из этой книги.
Кстати — они есть и на сайте издателей: http://cppstdlib.com
В разделе "examples".
P.S. Ещё раз — не обижайтесь, и простите меня и здешних обитателей за наставления,
но предлагать Ваши сегодняшние творения на продажу — это предлагать "осетрину не первой свежести"
P.P.S. Очень хочется надеяться, что Вы, уважаемый Gaxis, найдёте себя в разработке ПО.
Но в первую очередь — подтяните английский! Без знаний английского в этом деле никуда!
Здравствуйте, AleksandrN, Вы писали:
AN>Здравствуйте, Gaxis, Вы писали:
AN>Что будет, если sizeof(int) не равен размеру указателя? AN>Прежде, чем изобретать свои велосипеды, нужно изучить существующие (std::vector и std::array) и понять, чем они не устраивают. А что бы предлагать свои велосипеды другим — нужно сделать их лучше. AN>Но предлагаются велосипеды из костылей и демонстрируется незнание существующих инструментов и непонимание размеров типов данных и их зависимость от аппаратной платформы.
Что касается указателей то я и в начале темы написал про то что мои функции отрегулированы на стандартные типы данных, т.к. основная задача построить специфику, что уже даёт понять что может быть всякое, тут 2 варианта использовать типы данных которые будут помещать указатели что сделает код универсальным либо переписать типы из своей платформы.
Здравствуйте, b0r3d0m, Вы писали:
B>Названия функций и переменных, конечно, поражают воображение. B>Хрен бы догадался, что такое SosdDAr, не услышав об этом в начале видео (для ленивых -- "создать динамический array").
Названия функций вы можете написать свои от этого ничего не измениться.
Здравствуйте, AlexGin, Вы писали:
AG>P.S. Ещё раз — не обижайтесь, и простите меня и здешних обитателей за наставления, AG>но предлагать Ваши сегодняшние творения на продажу — это предлагать "осетрину не первой свежести"
AG>P.P.S. Очень хочется надеяться, что Вы, уважаемый Gaxis, найдёте себя в разработке ПО. AG>Но в первую очередь — подтяните английский! Без знаний английского в этом деле никуда!
Для этого и нужно начинать что-то делать и пробовать себя и получать отзывы. Та что всё это очень хорошо. Что касается английского то как вы знаете разговорный язык никакого отношения к алгоритмам не имеет, и если название переменной помидор вам не нравится можете написать капуста. Также напомню вам о том что регистры процессора могут иметь вообще по одной букве, например название регистра MMVP(примерно, пока на Ассемблере не пишу) и т.д., понятное дело что не расшифруешь если не читать инструкций и не чему не учиться и ничего не практиковать. Я не американец что должен подстраиваться под них. Я русскоговорящий человек, также есть компиляторы которые поддерживают и русские названия так что тут ничего не скажешь.
На данном форуме в основном контингент — взрослые мужики под 40, а не дошкольники.
К сожалению то что Вы выложили — на данный момент примерно на этом уровне — детский сад и позорище.
В любом случае удачи, оптимизма благо Вам не занимать
Здравствуйте, Gaxis, Вы писали:
G>Я русскоговорящий человек, также есть компиляторы которые поддерживают и русские названия так что тут ничего не скажешь.
Таких, практически используемых компиляторов, фактически нет, а те кто имеет национальные *ключевые* слова оказываются сразу же за бортом. Это имеет право на жизнь, но в очень узких сферах. В ЯОП — этого нет. И не надо путать с идентификаторами, которые, при должном упорстве могут быть любым набором байт (хотя намекаю про "национальные" идентификаторы).
Но самое главное, — есть универсальный межнациональный язык: эсперанто. Как бы это не было иронично — но у него есть даже ммм... диалект. Стоит просто смириться, с тем, что, сегодня, языком "программирования", а так же для интер-национальных коммуникаций — используется английский. Если вы не научитесь хотя бы приблизительно понимать что там пишется — много потеряете. По сути, можно даже не уметь на нем ни писать, ни говорить, но бегло читать ты уметь обязан.
Здравствуйте, Mystic Artifact, Вы писали: MA> Но самое главное, — есть универсальный межнациональный язык: эсперанто. Как бы это не было иронично — но у него есть даже ммм... диалект. Стоит просто смириться, с тем, что, сегодня, языком "программирования", а так же для интер-национальных коммуникаций — используется английский. Если вы не научитесь хотя бы приблизительно понимать что там пишется — много потеряете. По сути, можно даже не уметь на нем ни писать, ни говорить, но бегло читать ты уметь обязан.
Если кому-то будет нужно, написать названия можно используя переводчики какие угодно. Ладно я лучше буду двигаться дальше чем играться с вашими капризами, пользы будет больше.
Вообще-то ты предлагаешь свой проект: тебе его и править. Никто его не будет править, без необходимости, а с твоим подходом необходимость ни у кого и не возникнет, т.к. никто не захочет использовать код у которого названия методов обфусцированы, при чем не обфускатором, а каким-то внеземным разумом.
Более того, никто его даже не будет читать, если он неряшлив.
Ну и последнее — мой комментарий относится далеко не только к коду: есть масса информации, которую стоит потреблять исключительно в оригинальном виде. Отрезая себя от этого — это какой-то извращенный вид самоизоляции.
Здравствуйте, Gaxis, Вы писали:
G>Что касается указателей то я и в начале темы написал про то что мои функции отрегулированы на стандартные типы данных, т.к. основная задача построить специфику, что уже даёт понять что может быть всякое, тут 2 варианта использовать типы данных которые будут помещать указатели что сделает код универсальным либо переписать типы из своей платформы.
Это я и имел в виду, когда писал про непонимание типов данных. Указатель — стандартный тип данный на C и C++.
А код
int Q=(int)new int[10];
и обёртки для работы с ним не универсальные и чреваты проблемами.
На 32-х разрядной системе сработает, но не уверен, что на всех платформах.
На 64-х разрядных потеряются 4 байта адреса и потом будет непонятно, где искать массив, под который выделена память.
На 16-разрядной (такие системы и сейчас встречаются, но узко-специализированные) сработает, но будет использоваться 2 лишних байта, а ресурсы у таких систем очень ограничены.
И, предыдущие 3 предложения, актуальные для наиболее распространённых платформ, но не уверен, что для всех.
Стандарт языка требует, что бы sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long), но не задаёт жёстко размеры типов. А размер указателя зависит от аппаратной платформы. А в некоторых случаях могут быть свои особенности, как например, было на i386 — там были ближний указатель и дальний, разного размера. И при приведении типов надо понимать, что делаешь, особенно при приведении указателя к целому типу.
Здравствуйте, Gaxis, Вы писали:
AG>>Но в первую очередь — подтяните английский! Без знаний английского в этом деле никуда! G>Для этого и нужно начинать что-то делать и пробовать себя и получать отзывы. Та что всё это очень хорошо. Что касается английского то как вы знаете разговорный язык никакого отношения к алгоритмам не имеет, и если название переменной помидор вам не нравится можете написать капуста.
Английский в ИТ как латынь в медицине. Вся терминология завязана на английский язык. На Русский документация переведена не вся, а если перевод есть, то бывает не полный. Всегда есть вероятность работать в международной команде или выхода на международный рынок
Здравствуйте, Gaxis, Вы писали:
G>Ладно я лучше буду двигаться дальше чем играться с вашими капризами, пользы будет больше.
Не будешь двигаться дальше, если будешь разумную критику считать капризами. Польза от того, что указывают на ошибки есть. Для этого в промышленной разработке и используется код-ревью.
Здравствуйте, Mystic Artifact, Вы писали:
MA> Вообще-то ты предлагаешь свой проект: тебе его и править. Никто его не будет править, без необходимости, а с твоим подходом необходимость ни у кого и не возникнет, т.к. никто не захочет использовать код у которого названия методов обфусцированы, при чем не обфускатором, а каким-то внеземным разумом.
MA> Более того, никто его даже не будет читать, если он неряшлив.
Со своим проектом я предлагаю специфику, отдавая код пользователю я отправляю видеоинструкции и рассчитываю на то что пользователь посмотрит и разберёт алгоритм, т.к. моя задача не втюхивать код, а давать идеи и понимание, чтобы пользователь разобрался, мог что-то отрегулировать по своему или создать что-то своё. А то получается функция есть, в ней код, и вы будете ещё сидеть и сутками или месяцами как я разбираться с тем как это работает. Так что если с такими вещами работать так это конечно соображать нужно. В свези со всем этим мною сказанным большинство ваших комментарий не имеет смысла.
Что касается правок, то идеи предлагаю не ради выколачивания денег и что-то мне подсказывает что отдавая это за копейки я продам своё авторское право, ну да ладно я не идеален да и в видео тоже извиняюсь.
Здравствуйте, AleksandrN, Вы писали: AN>Английский в ИТ как латынь в медицине. Вся терминология завязана на английский язык. На Русский документация переведена не вся, а если перевод есть, то бывает не полный. Всегда есть вероятность работать в международной команде или выхода на международный рынок
Всё сложнее чем кажется, я подозреваю что сами иностранцы даже не знают что они сотворили и всех тонкостей языка. Я просто попутно отдаю модули что использую сам. Правительство не позволит нам русским рабам уехать за бугор чтобы счастливо жить и зарабатывать деньги. У меня много своих идей и работать в международной компании я не буду да и к тому же есть переводчики, можно залезть на забугорную ветку и брать там заказы, но прежде стоит что-то одно доделать до конца.
Здравствуйте, Gaxis, Вы писали:
G>Здравствуйте, AleksandrN, Вы писали: AN>>Английский в ИТ как латынь в медицине. Вся терминология завязана на английский язык. На Русский документация переведена не вся, а если перевод есть, то бывает не полный. Всегда есть вероятность работать в международной команде или выхода на международный рынок
G>Правительство не позволит нам русским рабам уехать за бугор чтобы счастливо жить и зарабатывать деньги. У меня много своих идей и работать в международной компании я не буду да и к тому же есть переводчики, можно залезть на забугорную ветку и брать там заказы, но прежде стоит что-то одно доделать до конца.
Очень многие уехали или работают в российских представительствах иностранных компаний. Не все российские ИТ-компании работают только на российском рынке. Есть и те, кто работает на внешнем рынке. А переводчик что будет делать? После каждого коммита идентификаторы в коде исправлять? Или гуглить и переводить документацию по используемым инструментам?
G>Я просто попутно отдаю модули что использую сам.
Если выкладывать свои исходники в открытый доступ, английский тем более актуален. Так разработчики со всего мира смогут их использовать и развивать. Например: смогли бы набрать популярность во всём мире такие проекты как Linux, Nginx, QT, если бы идентификаторы в них были бы на родных языках их разработчиков?
Здравствуйте, Gaxis, Вы писали:
MA>> Более того, никто его даже не будет читать, если он неряшлив. G>Со своим проектом я предлагаю специфику, отдавая код пользователю я отправляю видеоинструкции и рассчитываю на то что пользователь посмотрит и разберёт алгоритм, т.к. моя задача не втюхивать код, а давать идеи и понимание, чтобы пользователь разобрался, мог что-то отрегулировать по своему или создать что-то своё. А то получается функция есть, в ней код, и вы будете ещё сидеть и сутками или месяцами как я разбираться с тем как это работает. Так что если с такими вещами работать так это конечно соображать нужно. В свези со всем этим мною сказанным большинство ваших комментарий не имеет смысла.
Лучше не видеоинструкции делать, а понятные идентификаторы, комментарии к каждой функции и неочевидным местам, документацию с описанием идей, лежащих в основе продукта.
Документацию по классам и методам можно генерировать по комментариям, используя такие инструменты, как doxygen.
Здравствуйте, Gaxis, Вы писали:
G>Всё сложнее чем кажется, я подозреваю что сами иностранцы даже не знают что они сотворили и всех тонкостей языка. Я просто попутно отдаю модули что использую сам. Правительство не позволит нам русским рабам уехать за бугор чтобы счастливо жить и зарабатывать деньги.
Насчет тонкостей языка C++ есть книги: Бъерна Страуструпа, Николая М Джосаттиса, Скотта Майерса, Андрея Александреску
— дай Бог каждому российскому (беларусскому) программисту знать тонкости C++ так, как знают эти иностранцы...
Кстати, вся эта литература имеется в русском переводе.
Пожалуйста, уважаемый Gaxis, потрудитесь поизучать литературные источники вышеуказанных авторов! Это для Вашей же пользы!
Для таких обсуждкний, что позволит или не позволит правительство — здесь есть раздел "Политика"
Кстати, даже работая в РФ, разрабатывая программный продукт для рынка России, необходимо беглое чтение англоязычной технической докумнтации!
G>У меня много своих идей и работать в международной компании я не буду да и к тому же есть переводчики, можно залезть на забугорную ветку и брать там заказы, но прежде стоит что-то одно доделать до конца.
Да, нередко в оффисах есть девушки переводчицы, но они НЕ владеют техническими вопросами
Очень часто после их перевода текстов по программированию — просто хочется то ли плакать, то ли смеяться. Понять смысл после таких "переводов" как правило невозможно.
Правильнее — освоить язык самому и переводить тексты по IT самостоятельно.
Здравствуйте, Gaxis, Вы писали:
G>Названия функций вы можете написать свои от этого ничего не измениться.
Ничего не изменится для компилятора — так точнее...
Для людей, использующих Вашу библиотеку классов/функций — всё может имениться кардинально...
Так, например, даже если я беларусский программист, разрабатывающий ПО для применения в Беларуси,
функцию создающую что-либо я буду искать в Ваших кодах по ключевому слову create или в крайнем случае make...
Мне даже не придёт в голову искать по "sosd" (на русском тарнслите, да при том и с ошибкой).
Таким образом, количесто пользователей Вашего ПО (даже при свободном распространении) будет стремиться к нулю.
Продать такой "шедевр"...
Это аналогично, как продать ведро снега зимой чукче или эскимосу...
Здравствуйте, Gaxis, Вы писали:
G>Если кому-то будет нужно, написать названия можно используя переводчики какие угодно. Ладно я лучше буду двигаться дальше чем играться с вашими капризами, пользы будет больше.
Уважаемый Gaxis Вы совершенно правы, что в Вашем глобальном деле отвлекаться на всякие мелочи и стоит двигаться дальше в вашем непростом деле.
Но вдруг среди капризничающих есть потенциальные покупатели? Вас нет времени обращать на них. Но Вы наверняка задумывались, может быть есть способ не упустить покупателя не тратя лишнего времени и сил?
Имонно поэтому специально для Вас я предлагаю услугу по придумыванию имен переменных и функций. Есть опыт работы по созданию названий для статических и динамических массивов. Могу придумать названия для одномерных, двумерных и даже трехмерных(!!!) массивов. Есть так же VIP тариф, где мы можем обсудить названия для массивов бОльшей размерности. Я гарантирую, что сотрудничество со мной позволит Вам увеличить в 3, 5 и даже в 10 раз!!! Согласитесь, об этом можно только мечтать, но это реально! Не упустите такоую возможность! Работайте над Вашим проектом, а названиями займемся мы!!! Пишите сегодня и получите скидку в 10% при заказе по тарифу VIP!!!
Так же, специально для Вас есть отдельная услуга: переписывание строки "int Q=(int)new int[10];" которое позволить снизить негатив местной целевой аудитории. Меньше негативных отзывов, а значит больше продаж!!! К сожалению данная услуга достаточно дорогая, но она позволит вывести ваш продукт на новый уровень. Только для Вас мы готовы предоставить скидку в целых 20% при одновременном заказе услуги по придумыванию названий по тарифу VIP!
AG>Насчет тонкостей языка C++ есть книги: AG>Бъерна Страуструпа, Николая М Джосаттиса, Скотта Майерса, Андрея Александреску AG>- дай Бог каждому российскому (беларусскому) программисту знать тонкости C++ так, как знают эти иностранцы... AG>Кстати, вся эта литература имеется в русском переводе. AG>Пожалуйста, уважаемый Gaxis, потрудитесь поизучать литературные источники вышеуказанных авторов! Это для Вашей же пользы!
Александреску — это слишком детский уровень, пусть уж сразу 20-й стандарт читает!
Не рановато ли ему Александреску-то? Он еще програмировать не умеет. ИМХО начинать надо с чего-нибудь попроще, какой-нибудь учебник по программированию с нуля. И лучше начинать с какого-нибудь языка попроще.