November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Monday, October 5th, 2009 04:00 pm

откуда берётся столько быдлокодеров на PHP. А вот откуда.

Начав с языка, провоцирующего на написание поганого кода, дисциплине программирования уже не научиться.

Правильно кто-то написал в комментах: слишком низкий порог вхождения..

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Monday, October 5th, 2009 03:18 pm (UTC)
напомнило:
http://imgs.xkcd.com/comics/11th_grade.png
Monday, October 5th, 2009 03:19 pm (UTC)
перл тоже не лучшее средство для обучения программированию, но картинка по сути правильная
Monday, October 5th, 2009 03:20 pm (UTC)
если чисто эстетически то наверное надо начинать с пайтона. ну а если учить всерьез то конечно с С
Monday, October 5th, 2009 03:23 pm (UTC)
учиться хорошо на паскале. или на модуле. или вот на аде. но у них практического применения нет.
так что да, на питоне, наверное.. только после него остальные языки будут казаться очень ограниченными :)
Monday, October 5th, 2009 03:27 pm (UTC)
потому я и говорю - С как язык для общего понимания процессов, чтоб народ врубался что массивы и переменные просто так не назначаются, чтоб поняли кто такие поинтеры, malloc и прочие страшилки, а потом толкнуть в сторону джавы и пайтона

я сам учился на паскале и (наверное извращения ради на прологе), и после этого в С например с налета не врубаюсь, да и ООП тоже не так легко дается
Monday, October 5th, 2009 03:28 pm (UTC)
а я начинал с фортрана и PL/1 :)

(no subject)

[identity profile] tullamoredew.livejournal.com - 2009-10-05 03:32 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 05:44 pm (UTC) - Expand
Monday, October 5th, 2009 03:30 pm (UTC)
и да, я могу оценить шутку про Ever changed the value of 4 ;)

(no subject)

[identity profile] deadkittten.livejournal.com - 2009-10-05 04:47 pm (UTC) - Expand
Monday, October 5th, 2009 04:03 pm (UTC)
Я сам учился на паскале и (наверное извращения ради на прологе), и после этого в С например с налета не врубаюсь...

Вот-вот. Типичное последствие обучения программированию на Паскале, о чем я ниже и написал.

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 04:07 pm (UTC) - Expand

(no subject)

[identity profile] tullamoredew.livejournal.com - 2009-10-05 04:14 pm (UTC) - Expand
Monday, October 5th, 2009 06:35 pm (UTC)
мне кажется, учась программировать на C студент сразу научится делать негодные вещи, навроде присваивания указателей без явного приведения типа, а это для студента не очень хорошо. кмк, прежде, чем начать так делать, нужно понять, почему так делать не надо.

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 08:12 pm (UTC) - Expand
Monday, October 5th, 2009 03:41 pm (UTC)
слушай, а вот что это за вера, что языки имени Вирта хороши в учебных целях?

Ну что в том же Паскале есть такого, что мешает Ц?
кроме того факта, что Ц -гадость

Мне, кстати, если серьезно Objective-C кажется весьма годным именно с учебной точки зрения

Хотя, может быть, честный smalltalk будет педагогичнее и правильнее
Monday, October 5th, 2009 03:47 pm (UTC)
это не вера, это результат практического наблюдения. нас в институте им всем учили понемножку. причём я к тому времени уже неплохо знал си, не считая несколько устаревших к тому времени фортранов и PL/1. мне лично паскаль не нравится, потому что многобукв надо писать.

но по сравнению с си у них есть модульность и явное выделение в модулях интерфейса и реализации, а также более строгая типизация средствами компилятора.

про objective c ничего вразумительного сказать не могу, я его слишком мало знаю. а для изучения ООП лучше смотреть на джаву или C#. или на тот же питон, там объектность довели до абсурда логического завершения :)

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:08 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 05:11 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:33 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:38 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 05:39 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:51 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:59 pm (UTC) - Expand

(no subject)

[identity profile] ivlad.livejournal.com - 2009-10-05 06:37 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 06:56 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 09:08 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 08:17 pm (UTC) - Expand

(no subject)

[identity profile] ivlad.livejournal.com - 2009-10-05 06:36 pm (UTC) - Expand
Monday, October 5th, 2009 04:06 pm (UTC)
виртовские языки более концептуальны.

Smalltalk тоже хорошо, но еще менее применимо ;(

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 04:55 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 04:58 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:09 pm (UTC) - Expand

(no subject)

[identity profile] bormotov.livejournal.com - 2009-10-05 05:06 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:11 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 05:12 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:15 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 05:18 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:21 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 05:48 pm (UTC) - Expand

(no subject)

[identity profile] bormotov.livejournal.com - 2009-10-05 05:22 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:25 pm (UTC) - Expand

(no subject)

[identity profile] bormotov.livejournal.com - 2009-10-05 05:30 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 05:48 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 05:46 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 05:52 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 05:55 pm (UTC) - Expand

(no subject)

[identity profile] bormotov.livejournal.com - 2009-10-05 06:04 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 06:07 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 07:04 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 07:49 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 07:53 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2009-10-05 07:57 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:56 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 06:01 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 06:16 pm (UTC) - Expand

(no subject)

[identity profile] alexott.livejournal.com - 2009-10-05 06:26 pm (UTC) - Expand

(no subject)

[identity profile] dim-hj - 2009-10-14 12:54 pm (UTC) - Expand
Monday, October 5th, 2009 03:58 pm (UTC)
Я бы вот Паскаль как раз запретил в качестве учебного языка. Базовую алгоритмистику на нем, может, и проще преподавать, чем на [put your favorite tongue here], но так как язык не "чист", у людей формируется какое-то совершенно превратное представление о том, "как же оно на самом деле работает". Люди пишут "var" в function declaration и не понимают, что за этим стоит указатель; пишут func_name := value вместо return (value) и не понимают, как именно происходит возвращение; не могут впоследствии объяснить calling conventions и почему работает printf() в Си с переменным числом аргументов; не понимают сути lvalue vs. rvalue и почему нельзя написать foo := bar := baz и т.п.

Думаю, что преподавать программирование имеет смысл либо на Lisp/Scheme, как это делали в митовском SICP до недавнего времени, либо на традиционных фон-неймановских языках, но тогда уж без этой пошлой паскалевской маскировки указателей (к слову, они там все равно есть в явном виде), которая только запутывает и сбивает с толку, и прочей шелухи, толстым слоем оседающей на мозгах юных падаванов от программирования.
Monday, October 5th, 2009 04:05 pm (UTC)
а это смотря как объяснять. нам вот сначала объяснили, что [в традиционных языках программирования] переменная есть тройка из имени, области памяти с определённым адресом и лежащего там значения.
после чего конструкции по манипулированию этими штуками в разных языках программирования оказываются вполне понятными




(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:02 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2009-10-05 05:05 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:21 pm (UTC) - Expand

(no subject)

[identity profile] bormotov.livejournal.com - 2009-10-05 05:26 pm (UTC) - Expand

(no subject)

[identity profile] danfe.livejournal.com - 2009-10-05 05:40 pm (UTC) - Expand
Monday, October 5th, 2009 04:09 pm (UTC)
сам-то Паскаль, может быть. С современных-то позций.
Но после паскаля у Вирта много чего было :)
Monday, October 5th, 2009 04:04 pm (UTC)
дак смотря чему учиться.

Я тут как-то sicp решил зачитать, очень пожалел, что нас в ВУЗе не со схемы/лиспа начинали учить :)))
Monday, October 5th, 2009 04:09 pm (UTC)
да, у меня тоже моск закостенел на процедурных языках. ООП в него потом вписалось, функциональное программирование в лице лиспа - очень с трудом, а пролог совсем не пошел :(
Monday, October 5th, 2009 04:11 pm (UTC)
эх, курс по прологу для меня был одним из самых интересных :)
Но как-то без реальной практики, проще проще считать что "да так, книжку читал".

(no subject)

[identity profile] tullamoredew.livejournal.com - 2009-10-05 05:01 pm (UTC) - Expand
Monday, October 5th, 2009 03:28 pm (UTC)
Это в точности про меня. 1-в-1.
Monday, October 5th, 2009 03:29 pm (UTC)
Т.е. учислся я на паскаел, потом был C, только потом — perl, но моя первая работа была на perl, да и вторая тоже.
Monday, October 5th, 2009 03:31 pm (UTC)
и это правильный подход, товарищи!
Monday, October 5th, 2009 03:36 pm (UTC)
Я вообще благодаря отцу прошёл интересный путь. Первая PC'шка появилась у них на работе в.. Эээ.. 89-ом что ли, я в третьем (!) классе был. А ещё там был класс ямах. И вот прежде чем давать мне играть на ямахах он заставлял писать на паскале на PC'шке (это был TurboPascal, как бы не 3.0, хотя вроде уже четвёрка, надо даты сравнивать)…

А потом PC'шка дома — классе в 5-ом уже. А играть мне надоело быстро (навсегда).

Это лишило меня Спектрума, но заодно и Бейсика. А ассемблер был сразу x86 (кстати, раньше C, я писал на асме резиденты и вставки в паскалевский код). К C я пришёл только в 10-ом классе, выбирая спецкурс. А перл — где-то на первом курсе, не помню зачем. А на втором курсе нашёл первую работу (ещё удалённую) и вылетел из института первый раз заодно :)
Monday, October 5th, 2009 03:37 pm (UTC)
третий паскакаль был еще для CP/M на Z80 :)

(no subject)

[identity profile] blacklion.livejournal.com - 2009-10-05 03:40 pm (UTC) - Expand
Monday, October 5th, 2009 03:37 pm (UTC)
Да, четвёрка вышла 87. это была она.
Monday, October 5th, 2009 03:34 pm (UTC)
моя первая работа была на Magic5-BTrieve, вторая на Prolog, а остальные на баше

сейчас вот на пайтон приходится переползать, баш не со всем справляется