LINUX.ORG.RU

Язык для обучения программированию


1

7

Понятно, что Java - наверное самый мэйнстрим на текущий момент, ну с C#(Mono)(я не рассматриваю здесь пыхпых, джаваскрипт и прочий веб), но мне известна(как и большинству местных) статья, что изучение с Явы вредно для мозгов.
И вот, столкнувшись с тем, что отданные под моё руководство студенты 3го курса не сильно способны заниматься программированием на С++, задумался, как решить эту проблему, избегая 2х тупиков - делать всё за них, и выгнать их.
Допуская, что производительность языка не нужна(хотя, ввиду того, что делаем мы в основном числодробилки, это очень сильно допущение) и вообще у нас под рукой кластер, какой язык посоветует ЛОР, помогающий развить мозг молодых учёных до уровня С/С++? Да и вообще, список годных для обучения, и негодных соответственно. Думал было python, но тем не в нём производительность недостаточная, а самому реализовывать затратные вещи на С пока не хочется.
Update: vb и delphi не Ъ ввиду того, что я то под линуксом сижу. Update 2: всё, наработанное за время использование предложенного языка, не хочется терять, поэтому хорошо бы, если б можно было соединять уже готовые вещи с C/C++. Насчёт pascal я просто никогда такого не желал, там такое есть?

★★★★

Последнее исправление: aptyp (всего исправлений: 2)

Brainfuck

Осилят одну программу - давай что хочешь.

//начинал с плюсов

anonymous
()
Ответ на: комментарий от anonymous

в сикп объясняется устройство и работа компьютера?
вроде довольно много прочитал, но ничего подобного не видел.

aptyp ★★★★
() автор топика
Ответ на: комментарий от user0xff

Python я выберу, как самый простой язычок, благо опыт Alva довольно хорош, да и многие в треде его рекомендовали.

aptyp ★★★★
() автор топика
Ответ на: комментарий от shybovycha

Начать изучение программирования нужно с осознанного выбора платформы, для учебы и работы она должна быть одна. Рекомендую Linux (на базе Gentoo). Языки на сегодня из самых востребованных и высокооплачиваемых для профессионалов - конечно же Ruby и Си, а таже не забывать про оформление студенческих работ на высшем уровне (LaTeX, TeX), очень актуально программирование ПЛИС (разные языки типа НDL), еще не отменяли Perl, Python и bash. Остальное все по желанию.

Deleted
()
Ответ на: комментарий от Deleted

На Gentoo? Рассмешили.
Люди в венде ужасно работают, а Вы им самый трушный дистр предлагаете.

aptyp ★★★★
() автор топика
Ответ на: комментарий от aptyp

в сикп объясняется устройство и работа компьютера?

Нет, не объясняется. Сомневаюсь, что это будет сложно (и долго). Нужно объяснить всего про три сущности: АЛУ/УУ, различные контроллеры и шины данных.

Объяснять про устройство какого-то конкретного компьютера, тем паче x86, я считаю не просто бесполезным, но и вредным.

Macil ★★★★★
()
Ответ на: комментарий от Macil

А драйвера как писать, не объясняя устройство? Или для оптимизации тех или иных функций. В научной работе это нужно.

aptyp ★★★★
() автор топика
Ответ на: комментарий от slackwarrior

Рано ещё. И сам он тут не отмечался.

aptyp ★★★★
() автор топика
Ответ на: комментарий от aptyp

в сикп объясняется устройство и работа компьютера?

вроде довольно много прочитал, но ничего подобного не видел.

5-я глава, не?

kyz
()
Ответ на: комментарий от aptyp

А драйвера как писать, не объясняя устройство?

Зачем? Все уже до нас написано. А насчет оптимизации, ситуация такова, что правильно распралелленная реализация уделает «оптимизированную», но не распараллелленную версию.

Понятно, что хочется дать студентам все... Но это просто невозможно. Нужно учить программировать. Знание низкоуровневых аспектов работы оборудования не имеет никакого отношения к оптимизации программ. Это как хорошая фотокамера не имеет отношения к хорошим снимкам.

Кроме того, кто сказал что они будут в своей последующей карьере использовать x86?

Да просто хорошее знание дискретки даст намного больше преимуществ, чем весь этот низкий уровень.

Ну например, попроси своих студентов привести примеры моноидов из реальной жизни...

Macil ★★★★★
()
Ответ на: комментарий от aptyp

На Gentoo? Рассмешили. Люди в венде ужасно работают, а Вы им самый трушный дистр предлагаете.

Раз такое дело, руль не давать вообще, админить централизованно (и сборка делается тогда одна на всех, гента превращается в локально-бинарный дистр). Плюсы: система компонуется одинаковая для всех, проблемы «апдейтов накачали» нет, версии компиляторов и библиотек у всех одинаковые и зависят от _локального_ мейнтейнера. Минусы: кому-то надо админить сборку и синхронизировать рабочие места.

Xenesz ★★★★
()
Ответ на: комментарий от Xenesz

Одинаковая для всех сборка = бинарный дистр, и никакого профита, помимо общей базы, а в этом случае лучше уж минт поставить.

aptyp ★★★★
() автор топика
Ответ на: комментарий от aptyp

никакого профита

версии компиляторов и библиотек у всех одинаковые и зависят от _локального_ мейнтейнера

Фичи пакетов тоже именно те которые нужны и для всех одинаковые. В бинарных дистрах может внезапно версия питона (например) приехать с апдейтами очень неудачная для проекта. Тот же, кто собирает генту для локалки, не только может просечь такой момент, но и имеет больше вариантов для разруливания.

Если неохота заниматься сборкой, тогда ой.

Xenesz ★★★★
()
Ответ на: комментарий от Xenesz

Согласен, что у генты очень продвинутый portage, но при желании и в бинарных можно настроить, думаю, просто тут действительно просто.

Сборкой не ломает заниматься, ломает то, что сообщество не такое большое и доки не такие продвинутые, хэндбук это только самое-самое начало.

aptyp ★★★★
() автор топика
Ответ на: комментарий от aptyp

А как Вы полагаете почему они в ней работают ужасно? Самый трудный тот, который самый неуправляемый, да еще и закрытый от проникновения внутрь кода. А Linux Gentoo самый правильный путь и самый гибкий, и управляемый на 100%. Конечно же самому во всем сложно разобраться, но мы же учимся даже азбуке не один день :), да и коммуникации зачем нам тогда даны? А исходный код?

Deleted
()
Ответ на: комментарий от aptyp

Доки я переработаю и соберу в одном месте, есть такая задумка - сделать их доступными даже «для блондинок», но работа сильно тяготит, нужно много работать чтобы ноги не протянуть :). Главная сейчас задача - работать как можно больше для себя и своей семьи, а не на чужой капитал.

Deleted
()
Ответ на: комментарий от user0xff

В любом случае лучше с С начинать. Потому что просто и сурово)

И приучает к чистоте программного кода. Это когда с выделениями/освобождениями памяти играться начнут особенно актуально.

+146%!

northerner ★★★
()
Ответ на: комментарий от Bad_ptr

Ага)) Он ещё толком не существует

aptyp ★★★★
() автор топика
Ответ на: комментарий от aptyp

На Gentoo? Рассмешили. Люди в венде ужасно работают, а Вы им самый трушный дистр предлагаете.

Гента проще и удобнее венды. Никто не заставляет забыть про genkernel и мета-ебилды. И потом - все четко описано в хэндбуке.

upcFrost ★★★★★
()

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

pba
()

Учить программировать нужно на C

ttnl ★★★★★
()
Ответ на: комментарий от marat2345

пропустил интересную дискуссию

Тут надо внести некоторую ясность.
«Нерегулярность» бывает разной, и многие ее типы не является проблемой для LRnLA алгоритмов. Так, как только появятся задачи --- тут же сделаем AMR --- оно идеально ложится как раз на идеологию локальной рекурсии. Ну и многосеточные методы, кстати, тоже.

А вот против неструктурированных сеток я как раз принципиально возражаю.

VLev
()
31 марта 2012 г.
Ответ на: комментарий от pba

Haskell - основы языка на 100 страничках, отличный учитель - Душкин и его книги. У Хаскеля в отличии от императивных языков - математическая прозрачность алгоритма и кода. Программист может больше времени выделить на эвристику (т.е. оптимизацию).

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.