?

Log in

No account? Create an account

Previous Entry | Next Entry

ushastyi пишет:
…популярность и быстрый рост Джавы во многом обусловлена ее социальностью — легко научиться что-то программировать. В сравнении с внешне похожим, но куда более сложным С++, в умелых руках способным творить чудесные программы и системы.

Социальность не всегда значит хорошо. Если меня спрашивают, а такое порой случается, то в качестве языков для обучения студентов я всегда рекомендую именно асоциальные языки. Их сложность и строгость гарантируют, что человеку придется напрягать мозги и разбираться, а это безвозвратно, к счастью, не проходит. Впоследствии другие языки покажутся простыми.
Три раза дададада!!! Учеба, кстати, в отличие от работы (и научной, и инженерной), есть процесс индивидуальный, или, в этих терминах, асоциальный. Если вам предстоит обучаться вычислительной математике, учитесь программированию на функциональном, асоциальном языке. Второй язык уже может быть любым.

Tags:

Comments

( 84 comments — Leave a comment )
v_pychick
Dec. 16th, 2011 07:02 am (UTC)
А самостоятельный перевод из ассемблера в машкод еще учит и внимательности, усидчивости, терпению :)
antihydrogen
Dec. 16th, 2011 04:26 pm (UTC)
Вы явно никогда не пробовали это делать...
Я прогил когда то в машинных кодах для ZX-Spectrum (когда програмка всего в 30ть команд - загружать ассемблер кайфолом), коды выучились наизусть гораздо раньше, чем воспитались усидчивость и терпение...
potan
Dec. 16th, 2011 07:15 am (UTC)
Эх, а я все АПЛ освоить не могу...
fregimus
Dec. 16th, 2011 08:15 am (UTC)
Не обязательно такие абстрактные штучки. Лисп, OCaml и Scala вполне годятся.
(no subject) - potan - Dec. 16th, 2011 08:30 am (UTC) - Expand
(no subject) - clayrat - Dec. 16th, 2011 11:39 am (UTC) - Expand
(no subject) - potan - Dec. 16th, 2011 11:46 am (UTC) - Expand
(no subject) - clayrat - Dec. 16th, 2011 11:48 am (UTC) - Expand
(no subject) - potan - Dec. 16th, 2011 11:54 am (UTC) - Expand
(no subject) - clayrat - Dec. 16th, 2011 11:56 am (UTC) - Expand
(no subject) - fregimus - Dec. 16th, 2011 12:27 pm (UTC) - Expand
(no subject) - clayrat - Dec. 16th, 2011 12:28 pm (UTC) - Expand
(no subject) - clayrat - Dec. 16th, 2011 11:50 am (UTC) - Expand
(no subject) - potan - Dec. 16th, 2011 11:52 am (UTC) - Expand
_aristeo
Dec. 16th, 2011 07:51 am (UTC)
Учиться программировать лучше всего на Паскале.
fregimus
Dec. 16th, 2011 08:14 am (UTC)
Боже упаси!
(no subject) - _aristeo - Dec. 16th, 2011 08:16 am (UTC) - Expand
(no subject) - fregimus - Dec. 16th, 2011 08:19 am (UTC) - Expand
(no subject) - thedeemon - Dec. 16th, 2011 04:15 pm (UTC) - Expand
(no subject) - taras_ - Dec. 16th, 2011 05:13 pm (UTC) - Expand
(no subject) - thedeemon - Dec. 16th, 2011 05:45 pm (UTC) - Expand
(no subject) - taras_ - Dec. 16th, 2011 05:56 pm (UTC) - Expand
(no subject) - pphantom - Dec. 17th, 2011 10:13 am (UTC) - Expand
(no subject) - thedeemon - Dec. 17th, 2011 10:36 am (UTC) - Expand
(no subject) - pphantom - Dec. 17th, 2011 10:54 am (UTC) - Expand
(no subject) - thedeemon - Dec. 17th, 2011 03:40 pm (UTC) - Expand
(no subject) - thedeemon - Dec. 17th, 2011 03:43 pm (UTC) - Expand
(no subject) - pphantom - Dec. 17th, 2011 04:19 pm (UTC) - Expand
(no subject) - thedeemon - Dec. 17th, 2011 04:43 pm (UTC) - Expand
(no subject) - pphantom - Dec. 17th, 2011 05:08 pm (UTC) - Expand
(no subject) - fregimus - Dec. 17th, 2011 11:39 am (UTC) - Expand
(no subject) - pphantom - Dec. 17th, 2011 11:43 am (UTC) - Expand
(no subject) - fregimus - Dec. 18th, 2011 05:45 am (UTC) - Expand
(no subject) - pphantom - Dec. 18th, 2011 10:58 am (UTC) - Expand
(no subject) - fregimus - Dec. 17th, 2011 11:47 am (UTC) - Expand
(no subject) - thedeemon - Dec. 17th, 2011 03:29 pm (UTC) - Expand
zhengxi
Dec. 16th, 2011 10:33 am (UTC)
Хаскеля достаточно много в западных университетах.
Даже в курсах типа "введение в программирование" читаемых гуманитариям дают примеры на Java и Haskell.
fregimus
Dec. 17th, 2011 01:06 am (UTC)
Не помните, в каких именно читают CS на хаскеле?
(no subject) - zhengxi - Dec. 17th, 2011 06:27 am (UTC) - Expand
varthan
Dec. 16th, 2011 10:36 am (UTC)
Ассемблер рулит, да! Первая заработавшая программа на ассемблере - это как инициация во взрослые люди.
fregimus
Dec. 17th, 2011 01:06 am (UTC)
Это несколько другое. Я говорю ведь о первом языке.
(no subject) - varthan - Dec. 17th, 2011 07:05 am (UTC) - Expand
janatem
Dec. 16th, 2011 11:02 am (UTC)
Не понимаю, почему функциональные языки всем скопом относят к асоциальным. Да, в хаскеле много сложноты добавлено, но есть ФЯ совсем простые. Вообще для математиков-непрограммистов, кажется, более естественно начинать именно с функциональных, а не процедурных языков.
fregimus
Dec. 16th, 2011 11:08 am (UTC)
А какие именно ФЯ кажутся Вам простыми?
(no subject) - potan - Dec. 16th, 2011 11:50 am (UTC) - Expand
(no subject) - thedeemon - Dec. 16th, 2011 04:18 pm (UTC) - Expand
(no subject) - potan - Dec. 16th, 2011 04:35 pm (UTC) - Expand
(no subject) - thedeemon - Dec. 16th, 2011 04:58 pm (UTC) - Expand
(no subject) - potan - Dec. 16th, 2011 05:07 pm (UTC) - Expand
(no subject) - thedeemon - Dec. 16th, 2011 05:54 pm (UTC) - Expand
(no subject) - janatem - Dec. 16th, 2011 01:12 pm (UTC) - Expand
(no subject) - thesz - Dec. 16th, 2011 10:38 pm (UTC) - Expand
profpr
Dec. 16th, 2011 12:37 pm (UTC)
Познакомившись с изрядным количеством гуманитарных студентов, завязающих во всяких point-and-click из-за своего неумения программировать, я уверился в том, что альтернатива, скорее, такова: или простой язык, или вообще никакого. К сожалению, наш computer science department кроме классики типа программирования на С++ Ханойских Башен предложить им ничего не может.
fregimus
Dec. 17th, 2011 01:05 am (UTC)
А что вы понимаете под простым языком? Например, lisp, — годится?
(no subject) - profpr - Dec. 17th, 2011 03:52 am (UTC) - Expand
Rainaldo Rossi
Dec. 16th, 2011 05:05 pm (UTC)
Мгм... Как гуманитарий и отчасти "лингвист", достаточно продвинутый в "прикладной компьюристике:)", но привыкший иметь близкие контакты, как с людьми, "боящимися компьютера", так и с "боящимися" и "не верящими" в свою "способность к (вполне человеческим:)) языкам"... рискну предложить к рассмотрению и сугубо противоположную "глубокую истину":

- для многих и многих таких людей крайне ценен именно опыт знакомства с "социальным" (в смысле - "дружественным"? "посильным"? "человеколюбивым"?:)) языком - как возможность элементарно "поверить в себя", перешагнуть и позабыть свой страх и "рефлекторный отказ" (вроде "рефлекторного рвотного рефлекса" порой:)), а там уж... А там уж можно и "пристраститься", "втянуться" (а то и "ухнуть с головой") - но это по выбору, а просто "получить впервые удовольствие от обретённой доступности" - тоже куда как ценнее, полезнее и замечательнее, чем разбить голову и заработать стойкое отвращение и "чувство собственного ничтожества".

И вообще - там, где заведомо есть много путей в направлении "цели", нет такого уж смысла противопоставлять их друг другу... Осилить бы хоть какой:)!
fandaal
Dec. 16th, 2011 08:04 pm (UTC)
кстати да!! Питон в этом смысле чудесный, дает возможность поверить в свои силы.
(no subject) - Rainaldo Rossi - Dec. 16th, 2011 09:30 pm (UTC) - Expand
erofeich
Dec. 16th, 2011 06:03 pm (UTC)
>> Их сложность и строгость гарантируют, что человеку придется напрягать мозги и разбираться, а это безвозвратно, к счастью, не проходит.
Идеальному студенту в вакууме. В реальности отношение в целом к процессу программирования при таком сложном преподавании основ ведет к неверному понимаю сути явления. Вчерашние студенты либо вообще не умеют программировать потому что это было очень сложно, либо игнорируют все аспекты разработки кроме программирования.
Отсюда вечная проблема взаимопонимания между менеджерами и программистами, сорванные сроки, интеллектуальный снобизм на пустом месте и ряд прочих развеселых психологических трудностей.
Начинать надо с простых языков которые сейчас в ходу, желательно как можно раньше вводя свободный выбор языка при реализации. И напирать не на изучение какого-то языка, а на решение различных задач (прикладных, вычислительных, системных), используя программирование.
Хороший программист это инженер, а инженерская специальность предполагает умение сочетать разнообразные актуальные технологии для решения поставленных задач. А не перманентное погружение в дизайн основного инструмента своей работы.
У Вас же выходит что программист это слесарь который кроме всего прочего обладает какой-то странной тягой все время искать идеальный напильник.
thedeemon
Dec. 16th, 2011 06:31 pm (UTC)
Поиск идеального напильника и изучение разных часто гораздо интереснее, чем применение одного и того же. Тем более, что здесь слесари сами могут выпиливать себе напильники. Поэтому программисты ежегодно производят сотни мегабайт споров на форумах и других площадках о том, какой напильник краше. :)
(no subject) - Rainaldo Rossi - Dec. 16th, 2011 09:47 pm (UTC) - Expand
(no subject) - ushastyi - Dec. 17th, 2011 02:30 am (UTC) - Expand
(no subject) - erofeich - Dec. 18th, 2011 05:47 pm (UTC) - Expand
gdt
Dec. 17th, 2011 02:24 am (UTC)
Если вам предстоит обучаться вычислительной математике, учитесь программировать на матлабе, если вы хотите заниматься математикой, или на C, если (большими) вычислениями. Где там могут понадобиться какие-нибудь Хаскели, мне в голову не приходит.
ushastyi
Dec. 17th, 2011 02:35 am (UTC)
Ну мне кажется, что если научиться каким-то Хаскелям, то МатЛабы или С "изучать" уже не придется. Это просто другие средства выразить свою мысль. Но саму мысль формулировать эффективнее максимально мощными выразительными средствами, которые дают "асоциальные" языки.

Если Вы изучали математику, то, возможно, сталкивались с тем, что после изучения функционального анализа или топологии, многие результаты более прикладного мат.анализа или диффуров кажутся сами собой разумеющимися.
(no subject) - gdt - Dec. 17th, 2011 02:57 am (UTC) - Expand
(no subject) - fregimus - Dec. 17th, 2011 03:05 am (UTC) - Expand
(no subject) - gdt - Dec. 17th, 2011 03:08 am (UTC) - Expand
(no subject) - fregimus - Dec. 17th, 2011 03:29 am (UTC) - Expand
(no subject) - gdt - Dec. 17th, 2011 03:37 am (UTC) - Expand
(no subject) - thesz - Dec. 17th, 2011 12:21 pm (UTC) - Expand
(no subject) - gdt - Dec. 19th, 2011 08:26 pm (UTC) - Expand
(no subject) - thesz - Dec. 19th, 2011 08:31 pm (UTC) - Expand
(no subject) - ushastyi - Dec. 17th, 2011 05:54 pm (UTC) - Expand
(no subject) - gdt - Dec. 19th, 2011 02:23 pm (UTC) - Expand
(no subject) - alexandre_putt - Dec. 17th, 2011 09:35 am (UTC) - Expand
(no subject) - pphantom - Dec. 17th, 2011 10:15 am (UTC) - Expand
f2nd
Dec. 17th, 2011 11:46 pm (UTC)
Возможно, асоциальный язык хорош для глубокого изучения принципов и т.п., но начинать, наверное, стоит с чего-то, на чем можно сразу сделать минимальную полезную программу (не думаю, что Java в этом смысле особенно хороша), какой-нибудь Python как расширение программируемого калькулятора, чтобы можно было сразу получить какой-то результат и продолжать изучение всего этого дальше уже с ощущением "we can do it!" на мотивацию должен влиять резко положительно, ИМХО.

Ну и про Jav'у еще? просто оставлю это здесь (отличная копипаста по мотивам объяснения сути /b/):

http://habrahabr.ru/blogs/java/134742/#comment_4475022
fregimus
Dec. 18th, 2011 05:50 am (UTC)
Это совершенно мимо цели. Речь идет о том, как правильно «ставить ум» с самого первого знакомства с программированием, подобно тому, как музыкантам ставят руку. Вовсе не о том, какой язык надо учить, чтобы стать передовиком промышленного производства кода, который может позволить себе смеяться над прочими малопроизводительными рабочими.

А здесь как раз необходимо глубокое изучение принципов. Как организовать обучение, чтоб стимул был — вопрос, с языком не связанный.
riki_koen
Dec. 18th, 2011 01:22 pm (UTC)
1. Что вы скажете за scala в контексте разговора?
2. По-вашему, является ли вольфрамовский язык Математики в достаточной мере языком программирования, а если да, то сколько-нибудь функциональным языком.
fregimus
Dec. 18th, 2011 06:01 pm (UTC)
1. Я сам не пробовал, только почитал немного, но мне кажется, что она хороша. Ушастый ее очень хвалит, именно как функциональный язык; порасспросите его про тонкости.
2. Да, конечно, Mathematica — язык программирования, и несомненно функциональный. Он навеян ML, хоть и весьма от него отдалился.
( 84 comments — Leave a comment )