Показать полную графическую версию : Хочу научится программированию, с чего начать?
Alex Cop
18-07-2008, 08:43
А почему бы не начать с WSH javascript? Преимущества: не требуется установка никаких программ, полезен для автоматизации задач в Винде, потом можно к нему прикрутить ХТМЛ-морду, изучение ознакомит с си-подобными языками?
против ассемблера, как начинавший с него 20 лет назад, скажу, что он резко затормозит объектно-ориентированное мышление, поставив процедурный подход во главе всего, и потом будет трудно переучиться (у меня в своё время ушло много сил на переход от процедурного мышления к объектному, и до сих пор тяжело, жалею, что когда ООП только появлялось я на него махнул рукой, дескать, зачем эти все классы, если процедуры и функции могут всё? Теперь вижу, насколько заблуждался.) Это сугубо мой личный опыт, просто делюсь, у кого-то может быть было всё прямо наоборот. В + к ассемблеру: будет потом легко программировать микроконтроллеры (это такие штучки, которые управляют современной бытовой техникой, типа стиральных машин, и не только).
Члены класса все равно реализуются методами структурного программирования. ООП это эволюция СП. Нет ООП в отрыве от СП - есть комплекс, сочетающий и то, и другое. При обучении программирования сперва нужно освить методы СП, затем методы ООП.
ООП позволяет хорошо упорядочить программу. В больших проектах это помогает сэкономить программистам много сил как при создании так и при доработках. ООП коммерчески выгодно для компаний, так как можно заниматься продажей "черных ящиков" (классов и интерфейсов). Для мелких же программ, кроме хорошего упорядочивания, преимуществ ООП не вижу, да и правильно реализованные процедуры СП всегда можно сделать методом класса. Упорядочиванию и созданию грамотных классов для программы нужно учиться: нужно уметь рассуждать, определять главные объекты для программы, связи внутри объекта и между объектами. Теоретическое проектирование классов напрямую даже не связано с программированием. По сути создаются целые системы из классов. По сути ООП это реализация грамотно спроектированной системы. Лучше использовать СП, чем создавать плохо упорядоченный набор классов.
С чего начать изучать программирование?
Нужно начинать не с какого-либо языка.
Нужно начать с теоретической подготовки, которая включает два этапа:
1. умение выделять алгоритмы
2. знание теоретических структур данных
3. знание, как работает компоненты компьютера на низком уровне
Высший пилотаж, если это знание уже есть, когда изучается ЯП. Иначе понимание на профессиональном уровне ЯП будет сильно затруднено. Чтение книг Строустропа или Липпмана по С++ "для начинающих" лучше и не начинать, если нет хорошей теоретической подготовки по структурам данным. Кернигана и Ричи тоже лучше читать, имея хорошую подготовку.
Причем читая книгу, нужно параллельно создавать свои программы на основе изученного материала. Это дает очень большой эффект.
Согласен с mrcnn, что прежде необходимо подтянуть аналитический аппарат, а уже потом браться за инструменты.
Насчёт ООП, то Линус Торвальдс (http://ru.wikipedia.org/wiki/Торвальдс,_Линус) даже сказал что оно менее значимое для программирования нежели Визуал Бейсик
“…For example, I personally believe that „Visual Basic” did more for programming than „Object-Oriented Languages” >> (http://www.plainoldprogramming.com/?p=14)
Его высказывание, как я думаю, имело ввиду, что Визуал Бейсик больше людей заинтересовал заниматься программированиям, нежели ООП.
А сразу на С++ вообще не стоит учится программировать, ведь недаром до сих пор в учебных заведениях обучают на Паскале, С... Это хорошо структурированные языки, в которых каждая строка кода имеет единственное точно определенное значение. С опытом когда будут видны недостатки этих языков при написании больших программ можно будет подумать и о переходе на тот же С++.
Ещё, возможно при очень большом желании и терпении, стоит рассмотреть Ассемблер. Знаю что это не очень популярно, но исторически он был раньше языков высокого уровня, так что начинающий программист пройдёт путь эволюции в программировании, лишь бы знакомство не отбило желание идти дальше.
Я сегодня решил заняться ассемблером. Начал читать книгу "The art of assembly"(на англ.). Пока правда голая теория, в т.ч. касающаяся булевой алгебры, и ее использования в создании электронных цепей. Оказывается, сложение реализуется булевыми операциями.
Alex Cop
18-07-2008, 19:38
Эдак вы далеко зайдёте. Ещё скажите, что для того, чтобы сделать программу для тестов (аля окошко, и ГУИ-интерфейс) нужно изучить структурное программирование, а до него - ассемблер, а до ассемблера пройти курс дискретной математики, который трудно понять без курса "линейки". у кого на это всё хватит терпения?и это при том, что при переходе с ассемблера к структурному нужно отучиться от "GOTO", а при переходе от структурного к ООП начисто переломать программистское мышление:
Насчёт необходимости ООП. Да, с т.зрения скриптописания на БАШе всё очень красиво, а на практике, современная среда под виндоус (типа Билдера) НАВЯЗЫВАЕТ ООП (или же мы навеки привязыны к консольным программам). И любой проект средней и высокой сложности перестаёт быть управляемым без ООП (или же требуется гений программиста).
поэтому возможен и такой путь: параллельное изучение алгоритмов (блок-схемы, те, что прямоугольники да ромбики), и ПАРАЛЛЕЛЬНОЕ изучение классов, диаграмм, свойств, учиться выделять классы в поставленной задаче.
современная среда под виндоус НАВЯЗЫВАЕТ ООП
любой проект средней и высокой сложности перестаёт быть управляемым без ООП (или же требуется гений программиста).
Как это навязывает, если сама винда почти полностью написана на чистом си без всяких классов? Проект операционной системы это проект высокой сложности. И винду же написали без ООП!
Как это навязывает, если сама винда почти полностью написана на чистом си без всяких классов? »
Я слышал мнение, что она на Бейсике написана. Т.ч. тут спорно всё...
Хотелось научится программированию, раньше таких возможностей небыло, и приходилось изучать только Бейсик с чего начать?
Направление хочу выбрать программирование: обектно-инегрированные, HTML, и java. Дайте пожалуйста совет с чего начать? Чтоб не заморачиватся? »
Советую начать с BAT-файлов :)
Между прочим, это серьезный инструмент автоматизации задач.
Потом можно заняться сценариями или языком AutoIt.
Alex Cop, не обязательно на чистом ассемблере писать. Можно например использовать ассемблерные вставки в языках высокого уровня. По задачи народ подбирает инструмент, а soles2006 хочет учится, собирает свой арсенал и богатство знаний, к производству он не привязан, так что может себе позволить такое изучение.
Coutty, да это шутка такая была, мол Билл Гейтс написал свой Бейсик так и ОС на нём написал. А вот когда пару лет назад исходники NT4.0/2000 своровали, то Микрософт признала что кардинально на них ничего не построишь. И там кстати был С.
Между прочим первые версии Unix писались на Ассемблере, а после, когда тогдашние компы апгрейднулись, были перенесены на С.
А так у Ассемблера самые стабильные позиции: процессоры, если нВидиа не задавит (http://forum.oszone.net/thread-102487.html), будут использоваться на любых платформах, даже если нВидиа и предложит свою альтернативу безпроцессорной системы, то для видюх тоже найдётся свой ассемблер.
Чего не скажешь про платформонезависимые языки (.NET, Java), у которых полная зависимость от своих изготовителей и проталкивателей на рынке.
Alex Cop
19-07-2008, 03:44
Как это навязывает, если сама винда почти полностью написана на чистом си без всяких классов? Проект операционной системы это проект высокой сложности. И винду же написали без ООП! »
имелось в виду среда разработки, приведите пример инструментального средства написания программы, на выходе которого появляется стандартная программа с GUI-интерфейсом БЕЗ использования ООП.
я сам был жутким противником ООП, но пришлось перемотреть своё отношение к вопросу. Я не спорю, что алгоритм сам по себе проще структурными методами сделать, но когда доходит дело до современных интерфейсов ввода-вывода, то хош не хош, а придётся познакомится с классами.
Как это навязывает, если сама винда почти полностью написана на чистом си без всяких классов? Проект операционной системы это проект высокой сложности. И винду же написали без ООП! »
как я сказал, есть и исключения.
имелось в виду среда разработки, приведите пример инструментального средства написания программы, на выходе которого появляется стандартная программа с GUI-интерфейсом БЕЗ использования ООП.
В винде стандартный блокнот (инструментальное средство для написания) + командная строка и команды cl и link(средства компиляции после которого появляется программа с GUI интерфесом. Подозреваю, что и cl и link а так же ранние visual studio были, как и сама винда, написаны на чистом си без ООП.
В юниксе достаточно только командной строки configure, make а редактирование либо vi, либо ee. Которые написаны на си.
Я думаю так
Для Web
PHP, JAVA, SQL
А еше можно изучить Action Scrip и делать Флешки. Попутно изучить Flex и делать очень хорошие и дорогие сайты.
Для бизнес приложений
Языки C#, Delphi, C++ Bilder. СУБД Firebird, Oracle
И еше как мне кажется перспективные язык Pyton, Ruby
реда разработки, приведите пример инструментального средства написания программы »
Мультиплатформенный CodeBlocs + wxWingets, для скорости и удобства Turbo продукты Code Gear Turbo Delphi, Turbo C++.
Dmitrijan
20-04-2009, 00:07
Я бы порекомендовал начать изучение с Delphi.
Главные условия:
1)Собственное желание.
2)Исключить лень. Заниматься хотябы понемногу, но каждый день
(дабы не забывать пройденный материал).
Обязательные условия:
1)Наличие самого компилятора.(т.е Delphi).
2)Наличие литературы(в нэте навалом).
3)Уметь логически мыслить.
Желательные условия:
1)Знать математику (на уровне старших классов школы).
2)Знать англ.язык.(так как все команды там на английском).
Так вот, придумал простенькую програмку и пробуй воплотить её в реальность.
Сперва простенькие подольше посоздавай типа 2+2(чтоб принцип понять), книги тебе в этом хорошо помогут.А там дальше и сам не заметишь, как усложнять себе задачи станешь.
И если что-то не получается, в нете есть много форумов по Делфи
(погугли их очень много), в них добрые люди тебе обязательно помогут и подскажут.
Вот и все! Желаю успешного погружения в мир Делфи!
EvgeniuXP
14-07-2009, 00:24
Это зависит от характера человека, если упорный - то Бейсик - Си (основы ассемблера) - Си++ - Visual Basic - Visual C++ - C# = WPF. Если это знать будешь, то такие как Делфи, Джава, PHP и любой другой язык - щелкнешь как семечку, даже в основы вникать не нужно будет - так как это одинаково, и ничего нового в них нет. А в начале нужно научиться делать ХОРОШИЕ АЛГОРИТМЫ - так что советую взять книжку Паронджарова "Как улучшить работу ума" - очень захватывающе расписано и в голове не будет хаоса, а будут четкие алгоритмы, заодно научишься рисовать правильные Схемы алгоритмов, жаль что в высших учебных заведениях эту практику не ведут, а наоборот создают "интеллектуальный терроризм" :) В качестве обучения можешь сделать свой редактор икон, один уже создан (т.е. схемы не нужно вырисовывать, а только добавлять иконы, а остальная часть схемы рисуется автоматически, можно даже собрать программу по иконам). По крайней мере это будет прочная опора для дальнейшего развития :)
P.S. С Си++ легко можно перелезть и на 1С 7.7-8.0-8.1-8.2 - кстати, тоже очень интересные есть задумки, а там глядишь и с базой данных научишься работать - делать запросы :) Далее, только сети... административные скрипты, различые батники и т.д., т.п. Можно много еще написать - только а нужно ли это Вам?
Одуревшие люди на ассемблер человека садите)) ему как минимум чтобы понять этот набор букв надо знать системную архитектуру)) Да фи конечно все легко когда знаешь, что попало говорите, если все же не хотите блин разберитесь что такое микропроцессор хотя бы =) Я уверен тут сидят 70% демагогов =) Вообще юзайте html =) если станет интересно то шуруйте сразу на C, только на задачки школьного уровня для начала)) ассемблер без подготовки - взрыв головы, да и с подготовкой не легко +) Блин люди в институтах годами учат этот ассемблер)) а вы ему сразу а давай учи ))) убейся)))
EvgeniuXP
14-07-2009, 20:59
Блин люди в институтах годами учат этот ассемблер)) а вы ему сразу а давай учи ))) убейся))) »
в институтах учат - самостоятельно учиться :) Про ассемблер, я писал, знать только основы, как с регистрами, стеками работать, можно маленько графику, по-крайней мере будет более глубокое понимание - если интерес есть. Я в институте про программирование ничего нового не узнал, так как самостоятельно изучал новшества. Например, они даже WPF незнают что это такое - а инструмент очень интересный и перспективный, особенно рисовать формочки - одно удовольствие :) Начните с Паронджарова - лучше сразу научиться алгоритмы правильно писать.
Для начала можно выбрать кроссплатформенный компилятор PureBasic http://purebasic.info/
Это очень простой язык программирования, но в тоже время довольно мощный.
Посоветуйте пожалуйста по каким книгам желательно начать учить програмирование на Visual C++ и Ассемблере человеку который имел опыт програмирования в Borland C++ 3.11 и в Borland C++ Builder`e?? Посоветуйте книги по которым сами учились, желательно такие книги, которые расчитаны на обучение с нуля, но сам С++ я знаю. Мне важно научится писать в Визуале и с нуля выучит Ассемблер.
Delirium
30-07-2009, 03:06
Именно C++, или C#? Я тоже начинал с BC 3.11, потом легко перешел на C#.
С чего начать изучения Ассемблера? (http://www.forum.oszone.net/thread-113030.html)
Результат (http://forum.oszone.net/forumdisplay.php?f=21&filter_string=чего&filter_by=title)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC