Size: a a a

Compiler Development

2020 April 07

EM

Evgenii Moiseenko in Compiler Development
вот я щас глянул содержание рекомендуемой выше HtDP.
И что там можно найти: списки, функци высшего порядка, обобщенная рекурсия, экстенсиональное/интенсиональное равенство итп.
Зачем это все новичку ?
источник

AT

Alexander Tchitchigin in Compiler Development
Evgenii Moiseenko
вот я щас глянул содержание рекомендуемой выше HtDP.
И что там можно найти: списки, функци высшего порядка, обобщенная рекурсия, экстенсиональное/интенсиональное равенство итп.
Зачем это все новичку ?
Это оттого, что Вы поверхностно посмотрели и заметили только то, что сами и так знаете. На самом деле там про моделирование предметной области, шаблоны проектирования (но не GoF) и TDD. Моделирование даже через алгебраические типы данных, но этого не говорят, наверное, чтобы не пугать. 😊
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Надо. Зачем им вставлять лишние палки в колёса? Почему Вы не хотите, чтобы они выучились легче, лучше и быстрее, чем мы? Тогда они и достичь смогут большего.
Проблема адекватного обучения самородков - отдельный очень слодный вопрос во всех науках, не только в программировании.
Я только за. Просто речь была об "обучении", а не об "обучении для одаренных". Если учить по такой программе всех подряд, то подавляющее большинство просто плюнет
источник

AT

Alexander Tchitchigin in Compiler Development
И потом, а что и как "новичок" должен программировать без списков, рекурсии и ФВП?! Есть, что ли, такие позиции как junior developer на for + if??? 😂
источник

YS

Yaroslav Schekin in Compiler Development
Alexander Tchitchigin
И потом, а что и как "новичок" должен программировать без списков, рекурсии и ФВП?! Есть, что ли, такие позиции как junior developer на for + if??? 😂
Навалом, на самом деле. If you go outside your ivory tower.
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
Я только за. Просто речь была об "обучении", а не об "обучении для одаренных". Если учить по такой программе всех подряд, то подавляющее большинство просто плюнет
При чём тут снова "все подряд"? Разговор начался с того, что человек (предположительно, неизвестного пола, возраста и бэкграунда) пришёл в чат профессиональных программистов и сам спросил как наиболее эффективно научиться программировать? Как минимум, понятно, что человек уже замотивирован. Поэтому странно давать ответ в духе "а ты сначала научись как-нибудь говнокодить, а потом как-нибудь сам разберёшься, если не дурак".
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
При чём тут снова "все подряд"? Разговор начался с того, что человек (предположительно, неизвестного пола, возраста и бэкграунда) пришёл в чат профессиональных программистов и сам спросил как наиболее эффективно научиться программировать? Как минимум, понятно, что человек уже замотивирован. Поэтому странно давать ответ в духе "а ты сначала научись как-нибудь говнокодить, а потом как-нибудь сам разберёшься, если не дурак".
То, что человек пришел в профессиональный канал, еще не значит что он понимает, то он делает. Вы опять меряете людей по себе :)
источник

AT

Alexander Tchitchigin in Compiler Development
Yaroslav Schekin
Навалом, на самом деле. If you go outside your ivory tower.
Нет, спасибо, настолько далеко (и глубоко) от своей "башни из слоновой кости" я отходить не готов. Никогда не работал в местах, куда брали бы таких джунов.
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
То, что человек пришел в профессиональный канал, еще не значит что он понимает, то он делает. Вы опять меряете людей по себе :)
Нет, не меряю по себе, но предполагаю наличие мотивации и желание научиться именно программировать, а не говнокодить. Кроме того, я знаю места, куда идут те, кто замотивирован научиться "хуяк-хуяк и в продакшен". 🤷‍♀️
источник

AT

Alexander Tchitchigin in Compiler Development
Andrei Kurosh
То, что человек пришел в профессиональный канал, еще не значит что он понимает, то он делает. Вы опять меряете людей по себе :)
А советовать научиться говнокодить людям, которые даже не понимают чего на самом деле хотят - считаю морально недопустимым.
источник

YS

Yaroslav Schekin in Compiler Development
Alexander Tchitchigin
Нет, спасибо, настолько далеко (и глубоко) от своей "башни из слоновой кости" я отходить не готов. Никогда не работал в местах, куда брали бы таких джунов.
Frontend development (бесконечные "сайтики на PHP"). Подавляющее большинство "программистов" 1С.
Ах да, и Excel VBA automation. Ну и так далее — очень много вакансий по вышеперечисленному.
источник

A

Alex in Compiler Development
Господа, я выскажу непопулярное мнение, но по моим наблюдениям обучение очень зависит от конкретного учителя и ученика, а уже инструмент, который использует учитель (язык программирования, например) довольно вторичен. У меня в школе был Delphi, и я до сих пор считаю что для школы Pascal - это отличный вариант, но не суть. Важно чтобы учитель сам понимал что и как работает и мог донести это до ученика. Может ли человек, всю жизнь писавший на Си обучить хорошего программиста через Си? Да, может. Может ли человек, всю жизнь пишущий на лиспах обучить хорошего программиста через Racket? Да, может. Может ли человек, всю жизнь писавший на Си обучить хорошего программиста через Racket? Может быть и сможет, но это определённо сложнее для учителя. А сами по себе споры "нужно ли знать А или Б", "нужно ли изначально учиться на В или Г" напоминают споры vim против emacs.

Что делать замотивированному человеку, который хочет что-то попробовать? Найти учителя (школьного, частного, кружок что-нибудь). Если это не получилось, а желание осталось - попробовать разные учебники и посмотреть какой подход ложится лучше.
источник

MM

Mikhail Maltsev in Compiler Development
Alex
Господа, я выскажу непопулярное мнение, но по моим наблюдениям обучение очень зависит от конкретного учителя и ученика, а уже инструмент, который использует учитель (язык программирования, например) довольно вторичен. У меня в школе был Delphi, и я до сих пор считаю что для школы Pascal - это отличный вариант, но не суть. Важно чтобы учитель сам понимал что и как работает и мог донести это до ученика. Может ли человек, всю жизнь писавший на Си обучить хорошего программиста через Си? Да, может. Может ли человек, всю жизнь пишущий на лиспах обучить хорошего программиста через Racket? Да, может. Может ли человек, всю жизнь писавший на Си обучить хорошего программиста через Racket? Может быть и сможет, но это определённо сложнее для учителя. А сами по себе споры "нужно ли знать А или Б", "нужно ли изначально учиться на В или Г" напоминают споры vim против emacs.

Что делать замотивированному человеку, который хочет что-то попробовать? Найти учителя (школьного, частного, кружок что-нибудь). Если это не получилось, а желание осталось - попробовать разные учебники и посмотреть какой подход ложится лучше.
Если цель - изучить общие принципы программирования, то лучше выбирать язык, которые потребует как можно меньше времени на особенности самого языка и boilerplate-код. Проблема C - это ручное управление памятью и, как следствие отладка непонятных segfault-ов
источник

MM

Mikhail Maltsev in Compiler Development
> Может ли человек, всю жизнь писавший на Си обучить хорошего программиста через Си? Да, может.
Не факт (безотносительно языка). Программировать и обучать программированию - это всё же разные скилы
источник

AT

Alexander Tchitchigin in Compiler Development
Mikhail Maltsev
Если цель - изучить общие принципы программирования, то лучше выбирать язык, которые потребует как можно меньше времени на особенности самого языка и boilerplate-код. Проблема C - это ручное управление памятью и, как следствие отладка непонятных segfault-ов
Если цель - изучить общие принципы программирования, то нужно взять учебник, который учит общим принципам программирования. Я знаю только HtDP. По большому счёту ещё SICP, но уже на более высоком уровне - не для начинающих.
источник

MM

Mikhail Maltsev in Compiler Development
Что такое HtDP?
источник

AT

Alexander Tchitchigin in Compiler Development
Mikhail Maltsev
Что такое HtDP?
источник

PS

Peter Sovietov in Compiler Development
Стране не нужны аж 800+ "молодых и амбициозных" компиляторщиков -- и вот результат, люди не знают, чем себя занять (а про заводы и не говорю) :)

Может сделаем, наконец, группы #PLT и #teach_CS ? ;)
источник

АЕ

Артур Ефимов in Compiler Development
Обучать программированию нужно на логичном стройном и простом языке, а не на чём попало, т. к. обучение программированию обязательно включает в себя практикум, то есть самостоятельную работу ученика. Самостоятельная работа ученика на языке Си, Java, Питон и прочих — это 90% мучение, связанное с бесполезным случайным перебором учащимся вариаций того, что он может написать, то есть с гаданием на кофейной гуще. Сообщения об ошибках если и есть, то несуразные, относящиеся к чему-то, до чего учащемуся ещё как до Луны.

Обучать программированию нужно, поэтому, на языке Оберон.
источник

АЕ

Артур Ефимов in Compiler Development
Даже Go в этом плане довольно говно (извините за арго)
источник