Здравствуйте. Хочу сразу попросить прощения за свой периодически повторяющийся всеми и от этого надоевший, как мне кажется, вопрос. А дело собственно обстоит вот в чем – сам учусь на матмехе, и решил подучить программирование, но ребром встал вопрос о том, какой язык учить. Сам склоняюсь к С++ или Ассемблеру, но проблема в том, что первый из языков говорят непомерно сложный и на его изучение могут уйти годы, а Ассемблер хоть и предлагает неограниченные возможности, но разве на нем можно написать, к примеру программу моделирование физического процесса, да еще вроде как хорошей литературу на Русском языке нет, а Английский я из рук вон плохо знаю. Так что прошу оставить здесь свои мысли по поводу всего изложенного выше. Заранее благодарен за все ваше советы. P.S. И еще вот возник вопрос, могут как-нибудь образом помочь в изучении программирования книги вроде «Программирование. Математические основы, средства, теория», в них я вроде неплохо разбираюсь, если нет скажите пожалуйста какие книги являются хорошими учебниками. Еще раз спасибо.
1. С матмеха или физмата выходят очень толковые программисты. На вопрос какой язык выбрать решать тебе. Я сам начал когда-то с С++ щас активно использую платформу .NET но не думаю что ассемблер поможет сделать программу моделирования физического процесса. Я не говорю что это не возможно. Просто будет сложно это сделать на таком языке. C++ достойный язык но не надо его переоценивать, обрати внимание на С#, язык достойный внимания. 2. Программирование, это как раз задача описания некоторой предметной области в виде структур данных, алгоритмов, и т.д А вот кодирование, т.е. перевод этих описаний на конкретный язык программирования, это несколько иная задача - и может относится к разным людям в частности кодерам. Без мат.части не обойтись, необходимо знать многие алгоритмы без который не существовал бы Интернет, алгоритмы упрощают нам жизнь. а они как ни странно завязаны с Математическими основами. P.S В своё время я читал: Вирта, Алгоритмы + структуры данных = программы. Даж не знаю есть такая книга сейчас, старая она. И Страуструпа по С++, тож не чего, но по началу читаються тежеловастенько. А к .NET прилагаеться MSDN
годы могут уйти на изучение любого языка (и уйдут ). Тут все от тебя зависит. В принципе, на нем можно написать все. Но это не значит, что на нем нужно писать все. Языков надо учить несколько и исходя из задач, которые ты будешь решать, выбирать наиболее подходящий(-ие). Язык - это ведь всего лишь инструмент...
Когда меня спрашивают, что можно написать на ассемблере, я отвечаю: "То же самое, что и на других языках"
на сайте ruasm.ru на главной странице написано, кому и зачем нужен ассемблер. Я НИ КОИМ ОБРАЗОМ не согласен с утверждениями автора. Все, что там написано легко реализуется на си.
Kostya Факт: Ты математик, у тебя следовательно мат. склад размышления Вывод: Следовательно тебе проще понять математика Итог: Найти язык который разработан математиком На данный момент я думаю тебе подойдет Паскаль, а это Object Pascal в среде Delphi. Потому что Паскаль разработан математиком для студентов математиков, чтобы им было проще было выражать свои мысли, которые они хотят выразить как можно более точно. В сочетании того что на Delphi можно еще и формы юзать, и выражать мат.мысли думаю тебе это средство и язык подойдут. Одни множества чего стоят! В си их нет, а так иногда не удобно зы: Для себя я уже сделал выбор: Если системный уровень: Си Если работа с БД или математика: Паскаль Если быстро написать: Delphi Если качественно, время есть и чтобы программировать было приятно: Ассемблер ИМХО: Всегда решает Техническое Задание и круг решаемых задач тобой, грубо говоря: "What is You ?"
Не забудь о "Искусство программирования", Д.Э. Кнут. Мне вот далеко не все понятно, но книга гениальная. Абстрагированная от всех языков, книга, которая пишется очень много лет (точно не нашел сколько, но ужасно много- расскажете?). Идет время, понимаю все больше и умнею, умнею.. Ссылку не дам. Но найти ее можно много где. Как в начале, хватит первых трех томов (я и первый то за пол года не разобрал).
Kostya Настоящий мужчина объясняется с женщиной по французски, слушает оперу на итальянском, ругает врага на русском, ведет философские разговоры на немецком, читает документацию на английском. Короче, главное знания и умение ими пользоваться, а на каком языке ты будешь выражать свои мысли (писать программы), ты будешь выбирать сам, в зависимости от ситуации.
bers Это не crypto сказал, "Карл V, правитель Священной Римской империи, во владениях которого проживало множество народов, и никогда не заходило солнце, советовал говорить с другом по-французски, с врагом - по-немецки, с любимой - по-итальянски, с Богом - по-испански. "Но русский язык богаче их всех, - утверждал Михаил Васильевич Ломоносов, - ибо есть в нем живость французского, твердость немецкого, нежность итальянского и возвышенность испанского".
EvilsInterrupt IMHO нафик они нужны. Я как то спросил у препода, зачем множества в Паскале. Он ответил - а просто захотелось. Kostya Мне ассемблер нравится за его чистоту, IMHO лучше начинать с него.
Kostya С++ не такой уж и сложный язык. При больших фирмах треннинг-центры помогут освоить его за 3-6 месяцов (конечно не с нуля). Этого вполне хватит на будничную работу програмиста - Associate SW Engineer - задачи несложные, хорошая документация, ТЗ, SRS... плюс помощь более опытных программистов. Понятно что для уровня Software Engineer, Senior SW,...,TeamLider.. могут уйты годы. К сожалению ты пока расматриваешь лишь сам язык. Хотя очень важно умение разбираться в чужом коде, знание ОС (не только Windows или Linux), англ.язык, опыт работы с разными IDE, source control tools, знаие QA процесса... Всего не перечислить. Этих пунктов несколько десятков. Просто выучить язык маловато. Выбор языка важен только тогда когда ты полностю определишся с своей целью (да и знать несколько языков верхнего уровня это всегда плюс). З.Ы. Да и какая разница с чего начинать - важно закончить, а не бросить посередине.
Подойдет любой ООП язык. Я сам с физмата, нас 1,5 года делфи обучали. Мне пришлось выучить фортран за 2 дня чтобы зачитали как курсовую. Попробуй фортран поучи, он не сложный, к тому же считается математическим.
Юзай Си и АСМ вместе, 100% непрогадаешь. Только главное: юзай только Visual Studio для Си под Windows.
Только не Васик Остальные языки, сугубо по собственным предпочтениям - ища чужого мнения можно получить просто огромную кучу предложений, и вернуться в начало вопроса.
Kostya Советую воспользоваться тем обстоятельством, что учишься на матмехе (чем кстати отличается мехмат от матмеха?), и выучить хотя бы пару экзотических языков вроде Lisp'а, Prolog'а и т.п. Ценность этих языков заключается не столько в их практическом значении, сколько в требовании совершенно другого, не процедурального, образа мышления. Разобраться с ними позже самому будет непросто, а вот использовать атмосферу матмеха и принцип "пусть меня научат" вполне возможно. Стандартные же языки можно выучить за пару недель до приемлимого уровня - возьми например С++ для логики, VB или Delphi для GUI, PHP для web-страниц, просто чтобы было на чем работать.