2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 02:13 
Аватара пользователя


20/06/14
236
Я думаю что вычислением зубодробительных интегралов и постройкой красивых графиков мои познания в Mathematica пока и заканчиваются, в этом смысле я действительно дурак, установивший Mathematica, правда справки прочитано не пара страничек. Моя будущая, надеюсь, профессия называется «Химик», там есть где этой системе развернуться: от задач, решаемых в аналитической и коллоидной химии, термодинамике, кинетике, до простейших и не простейших квантово-механических расчётов.

-- 11.08.2014, 03:22 --

Xaositect, за мной имеется грешок: я копаю в глубь, жертвуя видением общей картины. Для меня изучение большого числа языков не вариант.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 11:55 
Аватара пользователя


31/10/08
1244
В мире насчитывается свыше 10 000 специализированных и более 100 универсальных языков. Среди всего этого многообразия можно выделить 10-20 популярных.
Но даже в этом случае выбрать 1 из них не предвидится возможным. Поэтому профессиональному программисту постоянно приходится изучать разные языки, хотя и бывают исключения.

1) Си/Си++
2) Java
Являются самыми популярными языками и более того универсальными. Рейтинги можете сами найти. Не думаю что стоит делать выбор между ними. К приму у меня друг дома для души пишет на Java, а на работе на Си++.

Если вы совсем мало программировали, то советую начать с Java. Если уже достаточно много программировали на каком либо другом языке, то лучше подойдёт Си++.
Почему с Java? Как известно правильный стиль программирования определяет первый язык. А в этом плане Си++ не есть пример того как над писать.
Зато Си++ обладает большим функционалом, что является плюсом. Си является стандарты языком в POSIX и для МК тоже является стандартом де факто.

Что касается научных вычислений. То делают их на разных языках.


PS. Java знаю поверхностно, поэтому смотрю на него однобока.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 12:19 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Знать и C++, и Java - совет хороший, но на отдалённое будущее. А поначалу эти языки могут сильно между собой интерферировать, что принесёт вред и ошибки.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 13:06 
Заблокирован
Аватара пользователя


07/08/06

3474
Qazed в сообщении #895174 писал(а):
Итог:
1. Уверенное владение одним языком, вместо поверхностных знаний по 10-ти языкам;
2. Быть убеждённым, что потраченное время потрачено не зря;
3. Возможность писать полезные вещи;
4. На диванном уровне решать задачи от компьютерного зрения и программирования роботов до эмулирования нейронных сетей;
5. Получать удовольствие от процесса обучения

Список будет продолжаться


Всегда учил язык под задачу - месяца 3-4 уходило для достаточно уверенного владения. По мне - почти все языки в своей основе похожи. Но если Вы смотрите в сторону роботов, контроллеров - там, скорее всего, Си.

Я бы советовал принять во внимание следующее:

1) Знание всех тонкостей и нюансов языка не всегда нужно, а иногда даже вредно - в том же Си есть основные конструкции, а есть дебри, связанные с шаблонами типов. Шаблоны позволяют записать более компактно исходный код (но не делают меньше исполняемый код), но неспециалисту в шаблонах разобраться в коде потом может оказаться сложно. В любом случае, тонкости можно постигать со временем - по мере необходимости.

2) Гораздо важнее - знание основных алгоритмов, подходов и принципов программирования. Например, я всегда освобождаю динамическую память на том же уровне, где и выделяю: никогда не возвращаю результат функции в динамически выделенной в ней области памяти (или использую для этого специальный класс auto_ptr, который автоматически её освобождает). В итоге избегаю большинства проблем с утечками памяти, выявить и устранить которые бывает довольно трудоёмко. Если знаете основные принципы, то выбор языка уже не имеет большого значения, и любой новый язык можно освоить достаточно быстро. По этому пункту полезно разбираться в коде библиотек - чтобы узнать, как люди пишут.

3) По сравнению со сложностью проекта, в котором Вы будете участвовать, сложность самого языка программирования незначительна. Даже если Вы будете писать программы в одиночку, то всё равно Вам придётся сталкиваться с библиотеками, написанными другими, придётся изучать их возможности, интерфейсы, обходить баги и т.п. В том же Си сам язык - это малая часть по сравнению со структурами классов стандартной библиотеки STL.

Вот захотите Вы написать многопоточное приложение. На каком языке будете писать? На том, который знаете, или который лучше соответствует задаче? Например, сейчас есть такой язык Erlang, который заточен под параллельные приложения. Если нужно быстро соорудить программу, чтобы проверить какую-нибудь гипотезу, то, наверное, будете писать на знакомом языке. А если программа будет достаточно сложной и будет развиваться, то имеет смысл выбрать и изучить язык под задачу. Иначе Вы закопаетесь в собственных процедурах управления потоками.

Кроме собственно программирования часто упускают из вида процесс проектирования - как сделать так, чтобы потом все части программы работали слаженно и допускали изменения (см. "Системная архитектура"). Неудачно спроектированный код часто выгоднее переписать заново, нежели бороться с постоянно вылезающими ошибками.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 14:22 
Аватара пользователя


20/06/14
236
Pavia, AlexDem, спасибо за подробные ответы.
После недолгих раздумий мне показалось, что изучать надо и C++, и Java. Не могу решить с какого начать.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 14:35 
Заблокирован
Аватара пользователя


07/08/06

3474
Qazed в сообщении #895271 писал(а):
Не могу решить с какого начать.

Нас учили на Паскале и Delphi. На Java я не программировал, не могу сказать. Мне кажется, простые программы всё равно на чём писать - если есть хороший учебник по Си, то можно начать с Си. Там есть хорошая среда разработки (IDE) - MS Visual Studio. Может сейчас и для Java всё есть - я участвовал в проекте, но сам не писал на нём. После Delphi мне с Visual Studio показалось привычней. Как будет с точки зрения новичка - не знаю.

-- Пн авг 11, 2014 15:39:30 --

Мне кажется, Java больше ориентирован на интернет-приложения, поэтому как бы не пришлось изучать связанный с этим лишний материал. Но это только предположение - я не видел учебников по нему, т.к. не использовал.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 14:40 
Аватара пользователя


20/06/14
236
Я как большой мальчик пользуюсь Linux

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 14:48 
Заблокирован
Аватара пользователя


07/08/06

3474
Qazed в сообщении #895278 писал(а):
Я как большой мальчик пользуюсь Linux

Сочувствую :) В том смысле, что мне приходилось отлаживать программы на Си под Линукс - это удовольствие не для новичка. Хорошего IDE под Linux мне найти не удалось. Всё равно вести основную разработку оказалось удобнее под Win, а потом отдельно компилировать и отлаживать мелочи под Linux с помощью жутко неудобного встроенного отладчика xxgdb.

В общем, по Линукс Вам пусть лучше подскажет кто-нибудь другой. Я не настолько плотно с ним работал.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 14:53 


10/04/12
705
AlexDem в сообщении #895281 писал(а):
Сочувствую :) В том смысле, что мне приходилось отлаживать программы на Си под Линукс - это удовольствие не для новичка. Хорошего IDE под Linux мне найти не удалось. Всё равно вести основную разработку оказалось удобнее под Win, а потом отдельно компилировать и отлаживать мелочи под Linux с помощью жутко неудобного встроенного отладчика xxgdb.


Я, например, пришел в Linux после Windows. После чего программировать под Windows тошнит. В качестве IDE использую vim. Отладчик gdb, но куда более полезен syslog.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 14:54 
Аватара пользователя


20/06/14
236
AlexDem в сообщении #895281 писал(а):
Qazed в сообщении #895278 писал(а):
Я как большой мальчик пользуюсь Linux

Сочувствую :)

Спасибо, добрый человек

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 15:01 
Заблокирован
Аватара пользователя


07/08/06

3474
mustitz в сообщении #895283 писал(а):
Я, например, пришел в Linux после Windows. После чего программировать под Windows тошнит. В качестве IDE использую vim. Отладчик gdb, но куда более полезен syslog.

После Delphi и Visual Studio, где можно быстро поставить точки останова, завести в окно список переменных для отслеживания значений, всё удобно прошагать - gdb показался мне жутко неудобным. Чтобы проверить значение переменной, нужно ввести команду (и так - для каждой, которую нужно узнать), в то время как в Visual Studio все изменения значений отображаются в окне автоматически. С точками останова тоже была какая-то проблема - не везде срабатывали вроде, точно не помню. Мне всё показалось неудобным именно с точки зрения отладки. А новичка это всё будет отвлекать, и пока он будет бороться с отладчиком - забудет, что хотел сделать. Можно ведь с целью отладки и отладочных сообщений в текст навставлять, но это мало общего имеет с удобством. Впрочем, возможно, это просто у меня сила привычки.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 15:03 
Аватара пользователя


20/06/14
236
Не надо офтопа

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 15:06 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Из IDE под пингвина можно посоветовать Code::Blocks.Qazed, а каким дистрибутивом Линукса нынче пользуются большие мальчики? Просто любопытно ;-)
Насчёт Паскаля и Дельфи. Пропустите это мимо ушей, пожалуйста. Кого-то когда-то на нём учили, да, но это не повод браться за их изучение сегодня.
Ещё раз про Java. Это моё очень имхастое ИМХО, конечно, и не хотелось бы разводить тут холивары, но ящитаю, что Java как первый язык программирования никуда не годится. Если выбирать между ним и Си/C++, выбор однозначно в пользу второго.
Что насчёт Processing? Ходили по ссылкам?

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 15:13 
Заблокирован
Аватара пользователя


07/08/06

3474

(Оффтоп)

Aritaborian в сообщении #895288 писал(а):
Насчёт Паскаля и Дельфи. Пропустите это мимо ушей, пожалуйста. Кого-то когда-то на нём учили, да, но это не повод браться за их изучение сегодня.

Безусловно, я не хотел сказать, что это - кандидаты на изучение для Qazed. Но Паскаль несколько более формализован, чем Си, и этим был хорош для обучения. А так - я тоже склоняюсь к Си, хотя бы потому, там меньше всего-такого, скрытого от разработчика, типа сборщика мусора, виртуальной машины, поэтому проще себя чувствовать хозяином положения.

 Профиль  
                  
 
 Re: Выбор языка для изучения
Сообщение11.08.2014, 15:24 
Аватара пользователя


20/06/14
236
Aritaborian в сообщении #895288 писал(а):
...а каким дистрибутивом Линукса нынче пользуются большие мальчики?

Xubuntu
Aritaborian в сообщении #895288 писал(а):
Что насчёт Processing? Ходили по ссылкам?

Да ходил. Я такие штуки пару лет назад делал в Cinena 4D. Там есть модуль MoGraph, что он умеет можно посмотреть в Google Картинках.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу Пред.  1, 2, 3, 4  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group