LINUX.ORG.RU

Переиздание книг Столярова по программированию

 


9

4

Скандально известный на ЛОРе Андрей Викторович Столяров выпустил новое издание своего учебного пособия «Программирование: введение в профессию» и обновил PDF-версии:
«Азы программирования»
«Системы и сети»
«Парадигмы»
В новом издании 4-томник стал 3-томником.

Как и предыдущее издание, новое использует странную кодировку текста, но если вы не пользуетесь преимуществами электронных книг, разницы не заметите. Книга будет полезна начинающим изучать программирование.

>>> Сайт автора

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Zhbert (всего исправлений: 3)
Ответ на: комментарий от shpinog

Речь идет исключительно о том, чтобы не тратить время на очевидно мертвый язык и сразу начать с сишечки. Всё. Больше ничего не предлагается, ничего не отождествляется и не подменяется.

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

Речь идет исключительно о том, чтобы не тратить время на очевидно мертвый язык

Изучение Паскаля — не трата времени. Куда вы все спешите…

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

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

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

чтобы не тратить время

Это было бы справедливо, если бы было куда спешить. Новички в 99.9% не имеют каких-то глобальных планов и идей, для которых им нужно программирование.

Конечно если у тебя есть концепт-проект, идея продукта\ПО которые ты хочешь создать, и для реализации тебе нужно научиться программировать, при этом Си лучший выбор - ты прав.

Вопрос остаётся только один, на сколько это распространённый юзкейс.

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

ты общаешься с технофошыздом. там здравый смысл не в почете.

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

Это было бы справедливо, если бы было куда спешить… Конечно если у тебя есть концепт-проект…

О чем ты говоришь вообще? Какой концепт? Какая идея? Речь идет об одной конкретной задаче: подготовить студента-программиста за ограниченное количество учебных часов. Программиста, а не околоайтишника, которому надо просто уметь алгоритмы рисовать, чтобы писать на каком-нибудь 1c потом или unreal script. Когда ты готовишь ПРОГРАММИСТА, то учебные часы надо тратить не на мертвые языки, а на изучение алгоритмов, живые языки и архитектуру.

Хватит уже долбиться в глаза и растекаться мыслью по древу. Я не говорю за околоайтишников, не говорю за самостоятельное изучение. Речь ТОЛЬКО ПРО СТУДЕНТОВ-ПРОГРАММИСТОВ.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от liksys

Неверно. Ты исходишь из того что Паскаль отнимает время у Си. Это не так. Значительно больше времени будет потрачено на попытку объяснить на си многие простые вещи, которые на паскале практически ни у кого затруднений не вызывают. Си слишком много тащит за собой - тебе об этом писали. На практике у наших студентов уходит меньше времени на связку Паскаль + Си + Си углубленно и необоснованного отсева меньше, чем на связку Си + Си углубленно. Паскаль совсем не «игрушечный молоток» - ты просто его не знаешь. Но и создавался он с оглядкой на преподавание. Так что одинаков глупо тащить самый обычный Паскаль в прод и учить детей на Си. И то и то - можно, но нерационально.

З.Ы. Специально для тебя отмечу - никто не предлагает осваивать Паскаль досконально, до нюансов - об этом, кстати, и Столяров пишет. Паскаль нужен для того чтобы быстро пройти не очень простой материал не отвлекаясь на совершенно ненужные на начальном этапе вещи. Он позволяет отделить обучение алгоритмам, простейшему программированию от нюансов устройства системы - это можно отодвинуть на более позднее время.

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

Неверно

Верно.

Это не так.

Так.

Значительно больше времени будет потрачено на попытку объяснить на си многие простые вещи

Простоые вещи в си эквивалентны простым вещам в паскале. Если тебе все равно придется обучать за семестр сишке вслед за паскалем, это время так или иначе будет потрачено на обучение отличиям сишки от паскаля и тому, почему строки больше не работают волшебным образом.

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

Простоые вещи в си эквивалентны простым вещам в паскале. Если тебе все равно придется обучать за семестр сишке вслед за паскалем, это время так или иначе будет потрачено на обучение отличиям сишки от паскаля и тому, почему строки больше не работают волшебным образом.

Простоые вещи в си эквивалентны простым вещам в паскале.

как-раз хотел написать, что нуачившись алгоритмике на паскале, нет (от слова «совсем») проблем перейти на C. или Вам-таки трудно?

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

metawishmaster ★★★★★
()
Последнее исправление: metawishmaster (всего исправлений: 1)
Ответ на: комментарий от liksys

Речь идет об одной конкретной задаче: подготовить студента-программиста за ограниченное количество учебных часов.

Это задача преподавателя, а не ученика. У 99% учеников ещё нет задач, для которых им нужно это программирование.

У тебя логика - научим программировать, ради программирования.

Программиста, а не околоайтишника, которому надо просто уметь алгоритмы рисовать, чтобы писать на каком-нибудь 1c потом или unreal script.

Программист это тот кто создаёт, ты не научишь его создавать, ты научишь его «Си побыстренькому». Так что ещё большой вопрос, кто по итогу будет полезней, бухгалтер которого научили 1с или этот «Си ради Си».

Когда ты готовишь ПРОГРАММИСТА, то учебные часы надо тратить не на мертвые языки, а на изучение алгоритмы, живые языки и архитектуру.

Изучение алгоритмов к ЯП никак не привязаны. Можешь на псевдокоде хоть учить. Программист этот тот кто создаёт и решает задачи, значит главная цель научиться это делать, а сколько на это уйдёт времени уже вторично.

Или ты действительно веришь, что для полного новичка, разница в осознании происходящего, между int a; a= 15 и var a: integer; a := 15; , сводится к различиям синтаксисе?

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

Изучение Паскаля — не трата времени.

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

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

живые языки

Что, прям на все живые языки? Для php-иста, хаскелиста, 1сника или сишарпщика твой си не живее паскаля, в своей жизни они могут ни разу с ним не столкнуться. Впрочем, если лет 10-15 назад я бы топил за паскаль в качестве языка обучения, то сейчас я больше тяготею к питону в этом качестве. Не потому что паскаль мёртв, а потому что в питоне можно больше парадигм программирования продемонстрировать студентам.

мыслью по древу

Мысию по древу. «Боян бо вещий, аще кому хотяше песнь творити, то растекашется мысию по древу, серым волком по земли, шизым орлом под облакы». То есть Боян растекается белкой по древу, серым волком по земле и сизым орлом под облаками.

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

У тебя логика - научим программировать, ради программирования.

Нет. У меня логика - научим программировать студента-программиста, дадим ему полезный инструмент и потратим его время на что-то полезное, а не на мертвый язык.

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

Нет. У меня логика - научим программировать студента-программиста, дадим ему полезный инструмент

Первое да, второе нет. Ты не можешь знать, что для него будет полезным. Завтра соотношение количества программистов знающих си и вакансий, относительно вакансий на условном PHP станет 1 к 10000, и вся полезность сведётся к минимуму.

потратим его время на что-то полезное

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

shpinog ★★★★
()
Последнее исправление: shpinog (всего исправлений: 1)
Ответ на: комментарий от shpinog

Ты не можешь знать, что для него будет полезным.

Могу. Я точно знаю, что паскаль для него будет бесполезным в работе инструментом с вероятностью, близкой к ста процентам. А на той же сишечке по-прежнему будет написан условный PHP, как и условный Python, и условный Nginx, и условное ядро.

А учить делать что-то полезное в программы Вузов не входит

Сделал мой день :)

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

Могу. Я точно знаю, что паскаль для него будет бесполезным в работе инструментом с вероятностью, близкой к ста процентам. А на той же сишечке по-прежнему будет написан условный PHP, как и условный Python, и условный Nginx, и условное ядро.

Жду от тебя список вакансий в РФ:

1)Core разработчик языка python 2)Разработчике Nginx 3)Разработчик ядра Linux

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

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

shpinog ★★★★
()
Последнее исправление: shpinog (всего исправлений: 1)
Ответ на: комментарий от shpinog

Завтра соотношение количества программистов знающих си и вакансий, относительно вакансий на условном PHP станет 1 к 10000, и вся полезность сведётся к минимуму.

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

в довесок: https://www.tiobe.com/tiobe-index/

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

Какое милое возведение в абсолют.

Конечно, на сишке непосредственно будет писать меньшинство. Например те, кто пойдет пилить что-нибудь под контроллеры. Им без сишки никак.

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

И так далее, и в том же духе.

А теперь я жду от тебя список тех, кому будет трудно жить без паскаля.

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

И так далее, и в том же духе.

Их не меньшинство, а статистическая погрешность в сумме всех программистов.

А теперь я жду от тебя список тех, кому будет трудно жить без паскаля.

А его и не должно было быть, речь шла о программировании, а ты свёл всё к полезности инструмента. Как оказалось с точки зрения полезности, для студента из РФ, си и паскаль являются ущербными с точки зрения нахождения работы.

shpinog ★★★★
()
Последнее исправление: shpinog (всего исправлений: 1)
Ответ на: комментарий от drfaust

Вау 1 вакансия. Правда и та не подошла, он же только сишечку знает, а там ещё питон нужен и ещё опыт работы с микроконтроллерами. Условный студент в пролёте.

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

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

Очевидная ложь.

75 вакансий «Pascal программист»

2 809 вакансий «C программист»

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

А кто тебе сказал, что на выхлопе института студент должен знать только один язык?

Питон вполне подходит для изучения программирования на языках с динамической типизацией и «автомусором» - как ни как ещё один подход к программированию.

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

А кто тебе сказал, что на выхлопе института студент должен знать только один язык?

А кто сказал, что одним из них не может быть паскаль ?

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

Более того, питон отлично подходит для второго языка.

  • Учим студента алгоритмам и простой сишечке.
  • Даем углубленную сишечку.
  • Даем питон и архитектуру.
  • Показываем, как к питону писать расширения на си. Параллельно студент понимает, какой ценой дается функционирование таких простых вещей в питоне, как словари и списки.
  • Предлагаем написать какой-нибудь проектик на питоне с сишными вставками, чтобы студент осознал цену поизводительности, и то, как языки взаимодействуют друг с другом.

Дальше уже можно учить плюсы (с углубленным ООП), ФП и прочие чудесные вещи. Естественно, с живыми примерами.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

2 809 вакансий «C программист»

И в скольких из них предполагается 1) отсутствие опыта работы 2) Достаточно знания одного Си ?

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

Может. Бесполезный сам по себе, оторванный от реальности, мертвый язык. Время, потраченное впустую, как я уже неоднократно показывал (в том числе пруфом с вакансиями).

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

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

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

Может, но не нужен:

  1. из-за затрат на переобучение на Си, который придётся учить
  2. он невостребован - мёртвый груз
drfaust ★★★★★
()
Ответ на: комментарий от liksys

Это не пруф. Вы ребят сами оторваны от мира, и без всяких языков. У вас какие-то идеальные студенты в вакуме и такие же преподаватели, которые участиться в Идеалии.

Студенты по несколько языков знают, серьёзно ? 2% от общей массы?

Большинство к концу обучения и одного языка не знают, тайна?

А для тех 2% по сути не важно какой язык, им и вуз не нужен для изучения программирования, скорее как институт социализации или ввиду личных обстоятельств ака «родители говорят нужна вышка».

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

из-за затрат на переобучение на Си, который придётся учить

Выше говорили, что как раз при знании паскаля, си учится проще и намного быстрее чем просто Си.

Собственно автор книги это тоже утверждает, Паскаль у него просто трамплин.

он невостребован - мёртвый груз

Однажды носителей капиталистического мышления приравняют к нацистам.

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

Вы ребят сами оторваны от мира

Тебе два практикующих разработчика рассказывают про полезность си. Оторваны от мира. Ок.

А для тех 2% по сути не важно какой язык, им и вуз не нужен для изучения программирования

Разговор ведется о том, как это дерьмовое образование хоть немного улучшить. А ты скатился в какую-то полемику про социализацию.

Однажды носителей капиталистического мышления приравняют к нацистам.

Чел, попустись.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

Так это вы мне пытаетесь навязать, что я топлю за Паскаль и за единственность. Все мои сообщения как раз говорят, о том, что язык вторичен.

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

shpinog ★★★★
()
Последнее исправление: shpinog (всего исправлений: 1)
Ответ на: комментарий от shpinog

Студенты по несколько языков знают, серьёзно ? 2% от общей массы?

Большинство к концу обучения и одного языка не знают, тайна?

Какой красивый у вас ВУЗ.

Мой личный пример я уже приводил. После диплома посчитали с чем мы работали - около 10ка различных языков.

Я вынес прекрасные знания Си и С++ (того времени - сейчас от плюсов дико отстал), АСМ-386, Паскаль, Foxpro/SQL(которые позволили мне успешно поддерживать и дорабатывать СУБД на clipper`е).

И я не те 2% вундеркиндов - я не попал по баллам на военную кафедру, средний бал по диплому ~4, очень много трояков…

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

Ты определись уже, у тебя язык вторичен, или все-таки нужен трамплин? Если первый язык вторичен, то можно начать и с сишки. Если нужен трамплин, то тезис про вторичность уже не канает.

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

Тебе два практикующих разработчика рассказывают про полезность си. Оторваны от мира. Ок.

По этому и не объективно. Вы просто топите за то, что ближе.

Разговор ведется о том, как это дерьмовое образование хоть немного улучшить. А ты скатился в какую-то полемику про социализацию.

В его текущем виде - никак. Из конфетки говно можно сделать, а наоборот уже нет. И проблема там не в Си vs Pascal, а в самой системе образования и отсутствия дальнейших лифтов.

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

Ты определись уже, у тебя язык вторичен, или все-таки нужен трамплин? Если первый язык вторичен, то можно начать и с сишки. Если нужен трамплин, то тезис про вторичность уже не канает.

Найди сообщение где я говорил, что с сишечки нельзя? Ты уже столько сообщений утверждаешь исключительность и нужность сишечки, что стал считать, что я против неё.

Я с самого начала против любого фанатизма. То что язык вторичен, не говорит о том, что он не нужен.

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

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

Вы просто топите за то, что ближе

Конечно, мы топим за то, что ближе! Ближе к реальной жизни и полезности, а не академическому манямирку.

В его текущем виде - никак

Поэтому давайте продолжать учить некроязыки по публицистическим книжкам с пропагандой авторской шизы.

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

Ты уже столько сообщений утверждаешь исключительность

Где?

Я говорю про нужность сишечки и ненужность паскаля. Если язык вторичен, то учи полезный инструмент, а не мертвый язык.

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

научим программировать студента-программиста, дадим ему полезный инструмент

и получим синдром утенка

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

скучной императивной парадигме

Его диалекты с 1986-1989 годов поддерживают возможности ООП.

И Embarcadero не похоже, что бедствует, не?

без интересных возможностей

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

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

Хотя это неявно уже писалось, но, похоже, никак не доходит до разума «паскаль-вон-из-образования».

Никто не учит сначала Паскалю или даже программированию, учат АЛГОРИТМЫ и СТРУКТУРЫ ДАННЫХ, используя ЯП, который можно бесплатно в любом компе.

Давайте посмотрим, а что для этого можно использовать?

Для чего создавался С? Для переноса игрушки с одного компа на другой.

Для чего создавался Python, C++, Java, Lua, Rast, Go, FORTRAN и т.д.? Для решения той или иной задачи, НЕ ИМЕЮЩЕЙ ОТНОШЕНИЯ к преподаванию.

Для чего создавался Pascal? Для ОБУЧЕНИЯ. Изначально у него даже компилятора не было. Так что вы там хотите предложить завместо инструмента, СПЕЦИАЛЬНО созданного для обучения?

Чтобы объяснить «рецепт магии» Паскаля, хватит 45 минут, после чего можно приступать к обучению алгоритмам и структурам данных, делая иллюстрации на Паскале с минимальными пояснениями «что такое := и чем оное отличается от =».

Для того, чтобы объяснить «магию» «Здравствуй, имярек», реализованную на Cи или Java, потребуется полноценный курс именно Cи или Java.

P.S. scanf("%s", &y); – ну сразу понятно, зачем амперсанд перед именем переменной! Особенно после пояснения, что он используется для формирования адреса переменной. И обязательно не забыть, что в начале проги надо написать заклинание #define _CRT_SECURE_NO_WARNINGS, иначе ничего работать не будет.

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

с 1986-1989 годов поддерживают возможности ООП

И? Ты считаешь что это делает паскаль декларативным? Или ты не знаешь что значит «императивный»?

И Embarcadero не похоже, что бедствует

Рад за них. Кто это, кстати, и как они относятся к данному треду?

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

Выглядит. Сейчас сложнее найти язык, где таких возможностей нет.

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

Никто не учит сначала Паскалю или даже программированию, учат АЛГОРИТМЫ и СТРУКТУРЫ ДАННЫХ, используя ЯП, который можно бесплатно в любом компе.

Ну тогда начинаем с Лого и Scrath`а

Вот только Сишке всё-одно придётся учить (про АСМ молчу - он на средних курсах должен быть), т.к. курс СПО - драйвер под винду - классическая лаба курса.

Для чего создавался Pascal? Для ОБУЧЕНИЯ.

Увы, он даже пром масштабов достиг, но погиб…

Для того, чтобы объяснить «магию» «Здравствуй, имярек», реализованную на Cи или Java, потребуется полноценный курс именно Cи или Java.

Ложь. В Си можно очень просто войти не заморачиваясь. Более того, преподы могут нарисовать либы/макросы, что бы обойти scanf`ы и адресацию на первых этапах. Зато на втором курсе не придётся объяснять почему в паскале строки ограничены в 255 символов «исторически», а по стандарту Си символ (char) может иметь любое кол-во бит.

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

И Embarcadero не похоже, что бедствует, не?

Есть статистика использования в ихней RAD Studio «Delphi» vs «Builder» за последние лет 10?

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

Рад за них. Кто это, кстати, и как они относятся к данному треду?

Единственный из крупных, кто пользует паскаль. Наследник Борланда. Продают(в честь дня рождения скидка до 8 марта 2021 от 142 967 ₽ :))))) ) RAD Studio, которая включает Delphi(pascal) и, внезапно, Builder(C++). Если зарегиться, то для некоммерческого можно бесплатно скачать и установить либо Delphi, либо Builder, вместе нельзя. Ну или месячная триалка - вполне можно успеть накомпилировать паскалевские компоненты для билдера…

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 3)
Ответ на: комментарий от drfaust

Ложь. В Си можно очень просто войти не заморачиваясь.

Войти кому?

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

Подобным? Их 80% в среднем на первом курсе ( Тех кто этого не знает), если не больше по стране.

Кто-то конечно и на Си научится, кто спорит? В действительности большая часть просто забъёт, так и получаем «Диплом есть, знаний нет».

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

Как уже сказали выше, один простой пример с выводом строки на Си это сразу объяснение, что такое функция, что там за плейсхолдеры, директива препроцессора.

Если человек кроме слов «папка» и " проводник" ничего не видел, всё обучение закончится ещё не начавшись.

shpinog ★★★★
()
Последнее исправление: shpinog (всего исправлений: 1)
Ответ на: комментарий от shpinog

Войти кому?

Абстрактному первокурснику, который не знает ЯП вообще в Си, а не то что вы подумали…

Как уже сказали выше, один простой пример с выводом строки на Си это сразу объяснение, что такое функция, что там за плейсхолдеры, директива препроцессора.

Если человек кроме слов «папка» и " проводник" ничего не видел, всё обучение закончится ещё не начавшись.

Я в 94м, когда поступил имел представление о бейсике и «черепашке», об организации компьютера внутри весма смутно, не знал что такое дискета и как её вставлять в дисковод. Это что-то изменило? В 25 лет в Беларуси выехал в РФ в звании ведущий инженер. 17 лет паяльника(ремонт). Сейчас снова ведущий инженер. Надо убирать нафиг это ЕГЭ и возвращать старую советскую систему. ВУЗы против ЕГЭ, устраивают свои экзамены, т.к. галки ставить - одно, а иметь понятие - другое. Программы перегружены, везде, всяким хламом. Одним из хламов является паскаль.

Всё зависит от родителей,мозгов,склада_ума(в школе на литературе я больше 4х строк стишок не мог сложить),упорства, и о-о-очень многое зависит от преподавателей. Даже барана можно обучить.

З.Ы. У нас, в конторе, с год висела вакансия «слесарь КИПиА» - я туда и шёл, собственно, но отправили «инженером АСУ». Знаете сколько народу к нам приходило и дальше собеседования не прошло? - по одному в неделю. Отсеиваются на вопросах: «нарисуй и объясни закон Ома», «в чём измеряется давление», «какие физические принципы измерения температуры/давления» и т.п. - все с корками. Один на вопрос по единицам давления ответил «измеряются в миллиамперах», уточнили, ради прикола, «а в каком диапазоне»? - ответ «4-20ма». Год в Лукойле КИПовцем проработал, единиц давления не знает, зато знает пром-стандарт токового интерфейса датчика (0-20 или 4-20 на вкус и цвет). Вот нафига такие «спецы», которые даже школьную физику не знают?

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 2)
Ответ на: комментарий от shpinog

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

то ненастоящие программисты

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

Я в 94м, когда поступил имел представление о бейсике и «черепашке», об организации компьютера внутри весма смутно

А сколько ещё с твоего класса? Вот и оно, это исключение и личный опыт которые ты проецируешь на массы.

Надо убирать нафиг это ЕГЭ и возвращать старую советскую систему.

Ты застал\застал остатки той системы, она на тебя повлияла. Советская система обучала чему-то, даже совсем отбитых, да и в целом была направленна на расширение кругозора.

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

ВУЗы против ЕГЭ, устраивают свои экзамены, т.к. галки ставить - одно, а иметь понятие - другое.

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

Всё зависит от родителей,мозгов,склада_ума(в школе на литературе я больше 4х строк стишок не мог сложить),упорства, и о-о-очень многое зависит от преподавателей. Даже барана можно обучить.

Всё это верно, и в то же время зависит от более глобальных вещей.

Достаточно прочитать большинство местных тем на лоре, в большинстве ты увидишь аргументацию вида «Востребовано\нет», сколько платят, плевки друг другу в рожу и другие увеселения.

А часто ли ты увидишь серьёзное отношение к аргументации, что человеку что-то просто нравится, поддержку чужих интересов ? Не часто.

Вот вы все обсираете паскаль, а у того же abc.pascal довольно большое сообщество и много пользователей, и большинство из них как раз начинающие. По вашему их силой туда загоняют? Нет, им просто интересно, возможно даже нравится.

И уж точно они знают о существовании Си, следовательно это их осознанный выбор, но педагогам с лора же виднее что удобнее?

shpinog ★★★★
()
Последнее исправление: shpinog (всего исправлений: 1)
Ответ на: комментарий от drfaust

RAD Studio, которая включает Delphi(pascal) и, внезапно, Builder(C++)

У меня чуть штаны не подвернулись :-D

С другой стороны кто-то же покупает кассеты и винил? Может и на это старьё желающие найдутся.

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

старьё??? я год назад 10.2 поставил - сейчас уже 10.4. Они живут и процветают в своей нише. После древнего Билдер-6 я не узнал Билдер из RAD Studio Tokyo-общее осталось, остальное новое. Компилер С++11 поддерживает(в какой степени - х.з. т.к. мои мозги пока его ещё не поддерживают)

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

Компилер С++11 поддерживает(в какой степени - х.з.

Они используют Clang, спасибо BSD-лицензии позволяющей проприетарить код. Так что C++11 поддерживается в соответствие с той, уже достаточно древней, версией Clang-а, которую они схомячили.

utf8nowhere ★★★
()
Последнее исправление: utf8nowhere (всего исправлений: 1)
Ответ на: комментарий от utf8nowhere

clang - спасибо - не знал. Думал по прежнему тащат свой bcc.

Ну с их стороны это логично - выбрали достаточно перспективный инструмент, с gcc - видать не срослось, хотя они могли бы его использовать - как никак отдельный продукт и намертво пришивать к своему проекту его не надо - вроде GPL v3 не запрещает его использовать из командной строки в сторонних проектах…

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

вроде GPL v3 не запрещает его использовать из командной строки в сторонних проектах

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

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

В Си можно очень просто войти не заморачиваясь.

Нельзя. В Си заморачиваются даже опытные программисты.

Более того, преподы могут нарисовать либы/макросы, что бы обойти scanf`ы и адресацию на первых этапах.

Т.е. сделать этакий… Паскаль. Зачем? Да и макросы объяснять и препроцессорную обработку… Зачем, если стоит задача объяснить, что такое цикл, чем цикл с пред условием отличается от пост? Что такое ветвление, зачем нужны процедуры и функции, в чём разница между глобальными и локальными переменными.

Если давать сразу Си, слишком многие решать побаловаться его «магией» и начнут отстреливать себе яйца с помощью int a=b=c=e<d=2

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

Хотя это неявно уже писалось, но, похоже, никак не доходит до разума «паскаль-вон-из-образования».

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

В сотый раз повторяю: учебный курс с учетом «магических» значков сишки можно устроить так, чтобы поначалу обходить их стороной по-максимуму. Адресная арифметика и указатели не так страшны, как их малюют паскаль-фанбои и может быть объяснена за одно занятие. Трата времени на все эти несравнима с изучением целого языка.

Для чего создавался Pascal? Для ОБУЧЕНИЯ.

И это совершенно не означает, что он подходит для обучения лучше всего.

Ты, кажется, уже четвертый человек, кого я посылаю читать Прату, для подтверждения этой концепции.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от shpinog

у того же abc.pascal довольно большое сообщество и много пользователей, и большинство из них как раз начинающие. По вашему их силой туда загоняют?

Можно сказать, что на PascalABC как раз таки силой загоняют. Его обязывают использовать в каких-то курсах программирования. Всё его сообщество - это студенты и школьники, которым приходится пользоваться этим паскалем. Может, конечно, это и к лучшему. Там, где сейчас PascalABC, ещё 10 лет назад вообще Turbo Pascal был.

И уж точно они знают о существовании Си

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

rupert ★★★★★
()
Последнее исправление: rupert (всего исправлений: 1)
Ответ на: комментарий от shpinog

у того же abc.pascal довольно большое сообщество и много пользователей

Эти самые пользователи постоянно просят сделать доступными и предыдущие выпуски - новые возможности иногда ломают старые, а на олимпиадах может быть старая, заранее известная версия. На что им обычно отвечают, что в данный момент такой возможности нет. Что мешает на их же зеркале на гитхабе выкладывать сборки-релизы – великая загадка.

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

Инертность нашей системы образования удручает.

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

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

что большинство практиков говорят, что паскаль - пустая трата времени, и сишка легко осваивается, с пруфами.

Это ошибка выжившего

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

Чушь. С тем же успехом я могу сказать, что у паскалефанбоев просто синдром утенка.

Многие факультеты начинают обучать с сишки, и ничего, люди учатся.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

Многие факультеты начинают обучать с сишки, и ничего, люди учатся.

Ога, знаю я как они «учатся». На мехмате начинают с Сишки, при этом очередь пересдач «практикума на ЭВМ» одна из самых больших среди всех дисциплин. Людям проще освоить матан чем сишку.

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

Можно сказать, что на PascalABC как раз таки силой загоняют.

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

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

Раньше так и было, сейчас там большинство это молодняк.

Инертность нашей системы образования удручает.

В штатах в большинстве школ я так понимаю С ?

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

Самое забавное в этой ситуации то, что большинство практиков говорят, что паскаль - пустая трата времени, и сишка легко осваивается, с пруфами

Практиков чего? Практик освоения сишечки? Опять подмена понятий.

Если конкретно ты осилил, это частность. Если ты преподаватель, и успешно выпустил несколько групп программистов в жизнь, опираясь на Си, тогда это аргумент.

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

Практиков чего? Практик освоения сишечки?

Опять подмена понятий.

Сам придумал - сам опроверг. Тебе уже объясняли в два горла, иди перечитывай все обоснования, пока не дойдет.

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

Нельзя

можно, вместо того что бы объяснять что такое Program laba_1 объяснить что #include <stdio.h> подключает нужные функции для ввода-вывода. И так далее.

зачем, если стоит задача объяснить, что такое цикл,

Это можно объяснить и на блок схемах начиная с развёрнутого до if цикла, а закрепить уже for(;;), более того - это будет правильней, т.к. в отличие от Паскаля в цикл for не прибит гвоздями к перечислимым типам.

слишком многие решать побаловаться его «магией» и начнут отстреливать себе яйца с помощью int a=b=c=e<d=2

Если преподаватель не говорил, что «=» так же возвращает значение, которое можно где-то использовать и они сами до этого дошли - пусть стреляют:

О, сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель.
drfaust ★★★★★
()
Ответ на: комментарий от Reset

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

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

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

объяснить что #include <stdio.h> подключает нужные функции для ввода-вывода.

Это неправильное объяснение и оно только запутывает.

более того - это будет правильней, т.к. в отличие от Паскаля в цикл for не прибит гвоздями к перечислимым типам.

Это как раз неправильно, так как только запутывает.

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

Правильно им объяснят, когда начнут конкретно язык учить. Вы же обучая АЛГОРИТМАМ не будете объяснять что такое startup-код в Паскале, или же что именно делает uses CRT - ведь вы же обучаете ТОЛЬКО АЛГОРИТМАМ?

Это как раз неправильно, так как только запутывает.

Общая форма цикла запутывает, или мы циклы будем недообъяснять, а так поверхностно?

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

Правильно им объяснят, когда начнут конкретно язык учить.

Лучше никак не объяснять, чем говорить чушь.

uses CRT - ведь вы же обучаете ТОЛЬКО АЛГОРИТМАМ?

Ты из тех кто подключает uses crt для того чтобы вызвать readkey в конце программы, чтобы можно было её запускать в проводнике?

Общая форма цикла запутывает, или мы циклы будем недообъяснять, а так поверхностно?

Да, запутывает, потому что в 99% случае этот цикл они будут использовать как в паскале, а «общность» формы даже если объяснять, она в одно ухо влетит, а из другого вылетит.

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

Ты из тех кто подключает uses crt для того чтобы вызвать readkey в конце программы, чтобы можно было её запускать в проводнике?

Из тех, кто очищает экран, что бы вывести транспонированную матрицу.

а «общность» формы даже если объяснять, она в одно ухо влетит, а из другого вылетит.

Т.е. студент не получает базового понятия «цикл», а получает два-три частных - мне жаль ваших студентов.

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

Из тех, кто очищает экран, что бы вывести транспонированную матрицу.

Зачем его очищать? uses crt это последнее что нужно при обучении паскалю.

Т.е. студент не получает базового понятия «цикл», а получает два-три частных - мне жаль ваших студентов.

Цикл while. Через него можно сделать все сложные случаи.

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

Зачем его очищать?

Хорошо, матрица - неудачно. А насчёт вполне реальных лаб «нарисовать график функции». Причём что такое uses Graph нам никто не объяснял (знали единицы) - рисовали в текстовом режиме «звёздочками», и ассистенты, принимающе лабы на это не обращали внимания, главное есть цикл, есть вычисления.

Цикл while. Через него можно сделать все сложные случаи.

Все сложные случаи в таком разе делаются через if->then->else+goto, и при объяснении циклов в эту связку как раз и надо разворачивать цикл, что бы студен понял где, и что на самом деле делается.

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от drfaust

Объясняем студенту переменные:

– Представим, что ячейка памяти вот эта коробочка. Назовём её x. Вторую назовём y. Положим в коробочку x 2 яблока, т.е. сделаем присвоение x = 2. Теперь сделаем присвоение y = x. Сколько яблок лежит в каждой коробке? ….

Слушаем варианты ответов:
– В коробке y 0 яблок, мы туда ничего не положили, я сам видел.
– В коробке y 2 яблока, т.к. их переложили из коробки x, а в коробке x нет яблок.
– В коробке y 2 яблока, а в коробке x бесконечное число, но за раз можно вытащить только 2.
– Тогда и в коробке y теперь бесконечное число, а за раз можно вытащить 2 яблока.

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

А насчёт вполне реальных лаб «нарисовать график функции»

Вывести числа и нарисовать в gnuplot. Вообще uses и include это принципиально разные вещи. В связке с include идут еще ключи линковщика, которые никак не связаны с именем файла в include. Да и сам include в Си тоже делать не обязательно.

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

Поржал, спасибо.

– Представим, что ячейка памяти вот эта коробочка.

Если обсудить этот анекдот, то именно в этой фразе заключается ошибка препода - сравнить «память» с «коробкой», объяснить «присвоение» фразой «положим», когда надо говорить «скопируем/клонируем» 2 яблока из кармана. и т.д.

Но это конечно не для студентов - может для 3-5 класса (сейчас я не смогу сориентироваться, т.к. что и в каком классе изучается, т.к. «Слава реформам!!! Слава ЕГЭ!!! Слава Фурсенко!!!»)

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

Вывести числа и нарисовать в gnuplot

Ага. #include / uses Crt объяснить - запутает/усложнит/не_смогут, а объяснить, хоть и в зачаточной стадии gnuplot - нет.

Вообще uses и include это принципиально разные вещи. В связке с include идут еще ключи линковщика, которые никак не связаны с именем файла в include. Да и сам include в Си тоже делать не обязательно.

Прекрасно знаю что и почём. Сам когда-то писал TPLки для BP7.

Вот только на начальном этапе для обучения, как тут утверждают «АЛГОРИТМАМ» хватит и простых объяснений вроде:

  1. uses Crt - «подключаем набор функций в котором есть ….»
  2. #include <stdio.h> - «подключаем набор функций в котором есть ….»
drfaust ★★★★★
()
Ответ на: комментарий от drfaust

Ага. #include / uses Crt объяснить - запутает/усложнит/не_смогут, а объяснить, хоть и в зачаточной стадии gnuplot - нет.

Чтобы объяснить #include надо прочитать лекцию на час, в отличие от uses crt.

Знания gnuplot или аналогов помогут в будущем, результаты расчета редко когда выводят в виде графика в самой программе.

#include <stdio.h> - «подключаем набор функций в котором есть ….»

Еще раз, это неправда! include stdio не подключает какие-либо функции. Зачем вводить студентов в заблуждение? Они потом такое скажут на собеседовании и опозорятся, а у них еще после этого спросят кто их учил.

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

Чтобы объяснить #include надо прочитать лекцию на час, в отличие от uses crt.

Для обучения «АЛГОРИТМАМ» этого не надо. Про линковку и препроцессор тоже не надо, т.к. функции из stdio/stdlib находятся в libc линкующейся автоматом.

Знания gnuplot или аналогов помогут в будущем

Зачаточные знания Си для цели «обучения АЛГОРИТМАМ» помогут в будущем. Знания Паскаля в будущем ненужно.

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

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

С чего ты взял, что это обяснение предлагается оставить до самого выпуска? Оно канает в первом приближении, пока студент учится писать АЛГОРИТМЫ в однофайловых программах. Когда дойдет до многофайловых (чему будет посвящено отдельное занятие, очевидно), ему нужно объяснить про хедеры и линковку.

Хоспаде, что только паскаль-фанбои не придумают, лишь бы защитить свою вайфу. Ты тред вообще читал? Я десять раз уже объяснял это и разжевывал порядок обучения сишке.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от drfaust

Для обучения «АЛГОРИТМАМ» этого не надо.

Тогда и Си рассказывать не надо вообще. Либо не рассказывать вообще либо рассказывать нормально. На кой хрен студентам рассказывать заведомую ложь? Ты можешь ответить на этот вопрос?

Зачаточные знания Си для цели «обучения АЛГОРИТМАМ» помогут в будущем. Знания Паскаля в будущем ненужно.

С чего ты взял? Помогут еще как.

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

С чего ты взял, что это обяснение предлагается оставить до самого выпуска?

Еще раз, это НЕ объяснение, а заведомая ЛОЖЬ!

Оно канает в первом приближении

Среди гопоты, «базарящей» на «фене» оно может быть и «канает».

Я десять раз уже объяснял это и разжевывал порядок обучения сишке.

Ты где преподаешь и какой у тебя стаж?

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

На кой хрен студентам рассказывать заведомую ложь?

С такой логикой F=m*a - тоже ложь, потому что сам Ньютон записал свой закон в дифференциальной форме.

Допустимое упрощение и опущение деталей применяется в образовании повсеместно.

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

Еще раз, это НЕ объяснение, а заведомая ЛОЖЬ!

Еще раз, это не ложь, а упрощение до нужного уровня.

Среди гопоты, «базарящей» на «фене» оно может быть и «канает».

Нет аргументации - докопайся до орфографии, пунктуации, стиля разговорной речи и …

Ты где преподаешь и какой у тебя стаж?

… Наличия сапога на голове, потому что «сперва добейся».

Ты пятай человек, которого я отправляю читать Прату до просветления.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

С такой логикой F=m*a - тоже ложь, потому что сам Ньютон записал свой закон в дифференциальной форме.

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

Допустимое упрощение и опущение деталей применяется в образовании повсеместно.

Это не упрощение и не опущение деталей, а просто ложное утверждение. #include … не подключает каких-либо функций.

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

С чего ты взял? Помогут еще как.

Идем на хедхантер. Вводим в поиск:

73 вакансии «Pascal программист»

2 820 вакансий «C программист»

Итак, еще раз: каким образом знания паскаля помогут в будущем?

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

Еще раз, это не ложь, а упрощение до нужного уровня.

Нет, это ложь.

Ты пятай человек, которого я отправляю читать Прату до просветления.

Понятно, вот когда пойдешь преподавать, тогда приходи со своим мнением. Сейчас оно ничего не стоит.

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

Идем на хедхантер. Вводим в поиск:

И что это доказывает?

Итак, еще раз: каким образом знания паскаля помогут в будущем?

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

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

На кой хрен студентам рассказывать заведомую ложь? Ты можешь ответить на этот вопрос?

Следуя твоей логике, в таком случае они и к «АЛГОРИТМАМ» не должны допускаться пока не познают Паскаль вплоть до {$L+ <крутая_либа>}

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

Понятно, вот когда пойдешь преподавать, тогда приходи со своим мнением. Сейчас оно ничего не стоит.

Ответил «преподаватели» тем кого «они учат» :)))))

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

Это называется передергивание.

Да. То есть примерно то, чем ты занимаешься.

Нет, это ложь.

Упрощение не является ложью, не ври.

«#include … не подключает каких-либо функций»

И ты снова врёшь, потому что я не говорил, что include подключает какие-либо функции.

Понятно, вот когда пойдешь преподавать

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

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

Прямо на любой? Точно?

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

Следуя твоей логике

Это ты придумал

е должны допускаться пока не познают Паскаль вплоть до {$L+ <крутая_либа>}

Ты передергиваешь.

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

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

После того как он выучит Паскаль, этот Паскаль будет мешать ему учить другой язык. Можно добавить к этому ещё и потерянные «учебные часы».

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

Смешные такие :) Им, вернувшись из большого мира, говорят, что их учебная программа говно и мало связана с реальностью, а они кричат, сучат ножками и рассказывают про свои регалии, им мол виднее.

@Reset сколько лет у тебя опыта в коммерческой разработке? Сколько хайлоада или бигдаты ты написал? Сколько студентов после вуза прособеседовал?

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

Упрощение не является ложью, не ври.

Это НЕ упрощение. Ты можешь это как мантру еще 100500 раз повторить, но твоя ложь не станет вдруг правдой.

И ты снова врёшь, потому что я не говорил, что include подключает какие-либо функции.

Твой «коллега» значит говорил, для меня вы все на одно лицо.

Прямо на любой? Точно?

Точно.

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

Это ты придумал

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

Хотя, возможно, ты плохо знаешь си и не до конца понимаешь, как работает #include, тогда тебе действительно кажется, что это вранье.

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

@Reset сколько лет у тебя опыта в коммерческой разработке?

20

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

Уверен, что больше твоего.

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

Это НЕ упрощение.

Потому что ТЫ СКОЗАЛ? Точно так же могу тебе повторить твои же слова: от того, что ты говоришь, что это не упрощение, оно им быть не перестанет.

Твой «коллега» значит говорил, для меня вы все на одно лицо.

Вот когда научишься следить за нитью дискуссии, тогда и поговорим.

Точно.

Haskell?

Уверен, что больше твоего.

Судя по твоим суждениям, крайне сомнительно.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от Reset

Вот как раз нет.

Вам паскале-поклонникам объясняют уже страниц 10, что Си на начальном этапе не сложнее паскаля.

Для Си можно сделать «быстрый старт» и начать их изучать if`ы, циклы, сортировки и т.п.

За это время они подтянут Си, по программе «изучение первого языка». К середине семестра знание Си будет вполне на уровне, что бы начать работать с динамическими структурами данных.

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

Потрясающе дивный манямирок :) Ладно, как скажешь. Оставайся наедине со своими заблуждениями.

@drfaust оставь его в покое, это кабинетный теоритик, ты его не убедишь.

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

Кабинетные теоретики это те, кто с нулевым опытом в предмете обсуждения смеют «критиковать». Я преподаю Си (да, Си, а не паскаль как кому-то кажется) 4 года и вижу где что и почему студентам дается плохо. Это не критика, а охаивание.

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

Твой «коллега» значит говорил, для меня вы все на одно лицо.

Я говорил. Для «нульцевого» студента и его первого helloworld этого вполне хватает. И на многое чего другого хватит.

Ты же утверждаешь, что студент для написания лабы ОБЯЗАН знать препроцессор, компиляцию, линковку - может ещё и makefile вспомнишь?

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

Я преподаю Си

Где можно посмотреть твои курсы? Просто чтобы убедиться, что это проблема в Си, а не в том, что ты хреново объясняешь.

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

Ты же утверждаешь, что студент для написания лабы ОБЯЗАН знать препроцессор, компиляцию, линковку - может ещё и makefile вспомнишь?

Именно поэтому у его студентов возникают проблемы при изучении сишечки. То есть человек не в состоянии придумать упрощенные объяснения и аналогии, и корректно составить учебную программу с хорошими примерами, а виновата сишечка.

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

Я преподаю Си (да, Си, а не паскаль как кому-то кажется) 4 года и вижу где что и почему студентам дается плохо.

Дай ссылки на конспект первых двух лекций по Си - можно в личку. Там и посмотрим насколько ты умеешь объяснять…

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

Ты же утверждаешь, что студент для написания лабы ОБЯЗАН знать препроцессор, компиляцию, линковку -

Конечно он обязан знать эти слова и зачем нужен каждый этап. Синтаксис препроцессора и команды компилятора и линковщика знать не обязан. Но знать как позвать компилятор с минимальным набором опций чтобы создать исполняемый файл конечно обязан.

может ещё и makefile вспомнишь?

Это не обязательно на начальном уровне.

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

Конечно он обязан знать эти слова и зачем нужен каждый этап. Синтаксис препроцессора и команды компилятора и линковщика знать не обязан. Но знать как позвать компилятор с минимальным набором опций чтобы создать исполняемый файл конечно обязан.

Прям с первого занятия, лол? Серьезно?

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

Я преподаю Си

Где, кому?

да, Си, а не паскаль как кому-то кажется

Попреподавай теперь паскаль, с удовольствием выслушаю твоё мнение, когда у тебя будет опыт в обоих.

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

Для запуска hello world действительно нужны знания того, как работают хедеры и линковка? Точно-точно? Прям вообще без них никак?

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

Где, кому?

Курс называется «Информатика». А вот где и кому это я не скажу :)

Попреподавай теперь паскаль, с удовольствием выслушаю твоё мнение, когда у тебя будет опыт в обоих.

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

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

Для запуска hello world действительно нужны знания того, как работают хедеры и линковка? Точно-точно? Прям вообще без них никак?

Точно. А еще нужно знать, что у компьютера есть монитор для вывода информации, клавиатура для ввода, есть жесткий диск, память и процессор и то, что процессор команды понимает в бинарном виде … много что надо знать. Хедеры и линковка это не самое страшное. Ты что думаешь, что я на первом занятии рассказываю как hello world запускать? К этому еще подойти надо, так рассказывают только на быдлокурсах «жава за 21 день» и т.п.

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

Точно

Нет.

Это в принципе все, что нужно знать про твой план обучения сишечке. Иди читай Стивена Прату. Человек явно шарит в обучении больше тебя.

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

Конечно. А как ты собрался hello world запускать?

И чем тогда отличается

fpc hello.pas

от

gcc hello.c

На выхлопе у обоих будет некий экзешник, который и отпечатает «hello world»

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от liksys

Это в принципе все, что нужно знать про твой план обучения сишечке.

Спасибо, твое мнение очень важно для нас :)

Иди читай Стивена Прату. Человек явно шарит в обучении больше тебя.

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

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

Замечательно, и этот процесс ты предлагаешь объяснять магией? Тут у тебя и препроцессор и компиляция и линковка. Для паскаля будет почти тоже самое. И это надо будет объяснить на первом занятии где объясняется запуск hello world.

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

Курс называется «Информатика». А вот где и кому это я не скажу :)

Какая специальность у учеников и какой багаж знаний?

Есть один знакомый преподаватель, который электротехникам си разжёвывал, после того, как им основы программирования объясняли на питоне. Преподаватель тот был сильно недоволен. Учитывая то, что в микроконтроллерах один си, а дальше них электротехники идти не планировали, другие языки в принципе вызывали сильные сомнения.

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

Какая специальность у учеников и какой багаж знаний?

Математика. В информатике и программировании околонулевой.

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 1)
Ответ на: комментарий от Reset

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

Класно - школа №666, класс 6й, программа «Информатика»….

В этой теме обсуждаются книги преподавателя МГУ и спор идёт об использовании СИ vs ПАСКАЛЬ на первом курсе весьма престижного ВУЗА.

Если вы не в школе преподаёте, то объясните, что делают на профильном курсе студенты, не знающие что такое клавиатура???

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

не знающие что такое клавиатура???

Внезапно, такие есть и после выпуска из «престижного ВУЗа». ВУЗ и его престижность тут не имеют никакого значения. Если ты прочитаешь Столярова, то обнаружишь, что программирование там начинается где-то после первой трети книги.

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

Математика. В информатике и программировании околонулевой.

Так пусть учат маткад… А потом уже и прочее подтянется. Нафига математикам паскаль или си на 1м курсе???

Я уже в треде приводил эпитет, что «Бухгалтеров надо учить алгоритмам на встроенном языке 1С, т.к. он им пригодится», а не паскаль, лого, Си и пр.

Программистов надо начинать с Си - потому как он им пригодится, как и бухгалтерам 1С

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

Так пусть учат маткад…

Ты с инженерами попутал.

Нафига математикам паскаль или си на 1м курсе???

Тебя забыли спросить. Из математиков получаются в итоге самые лучшие программисты.

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

Из математиков получаются в итоге самые лучшие программисты.

Из быстрого поиска:

РУДН «Прикладная математика и информатика»:

Основные дисциплины:

  • Математический анализ;
  • Алгебра и геометрия;
  • Дискретная математика;
  • Комплексный анализ;
  • Функциональный анализ;
  • Дифференциальные уравнения;
  • Уравнения математической физики;
  • Теория вероятностей;
  • Математическая статистика;
  • Случайные процессы и теория массового обслуживания;
  • Основы программирования;
  • Технология программирования;
  • Линейное программирование;
  • Архитектура компьютеров;
  • Численные методы;
  • Операционные системы;
  • Компьютерные сети;
  • Методы оптимизации;
  • Теория автоматического управления;
  • Базы данных;
  • Системы компьютерной алгебры и пакеты математических вычислений;
  • Физика;
  • Концепции современного естествознания;
  • Безопасность жизнедеятельности.

Математиков учите чему хотите. Хоть Фортрану. Речь в треде идёт о программистах. И там в списке будет меньше 10 курсов НЕ связанных с программированием, как и у вас - меньше 10ка связанных с программированием.

Да, с логикой и численными методами у программистов плохо - программы так созданы, но с десятками других направлений в программировании намного лучше. (единицы уникумов с обоих сторон не берём в расчёт)

З.Ы. К стати, не плохо было бы почитать ихние курсы «Методы оптимизации» и «Теория автоматического управления». ТАУ - сейчас нужна, но это было у АСУшников, а не у меня ПОИТ(специальность другая), методы оптимизации - тоже очень неплохо - в отдельном курсе у нас не было ни кого.

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от liksys

Им, вернувшись из большого мира, говорят, что их учебная программа говно и мало связана с реальностью

В большом мире 40 лет переполняли буферы те, кого учили Си как первому языку, так, будто бы это не Си , а Алгол. Потому что привыкли переполнять буферы с помощью scanf() и gets(), игнорировать то, что вернула scanf() etc.

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

Почему ты при этом уверен, что дело в самой сишке, а не в плохом курсе этой самой сишки?

По статистическим соображениям. Куда ни плюнь: если обучают СИ с нуля людей, не умеющих программировать вообще, всё время случается лютый звиздец: толпы на пересдачников, почти нулевой уровень освоения и полная неспособность практического применения полученных знаний. А потом выжившие в этой катавасии переносят свои комплексы на прочих и не отличают Си от плюсов. В результате сплошные инвалиды.

Если ни у кого не выходит, наверное, дело в инструменте, а не мастере.

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

В большом мире 40 лет переполняли буферы те, кого учили Си как первому языку

Бездоказательное утверждение и некорректное использование квантора всеобщности.

В смысле, всех под одну гребенку.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от Vudod

если обучают СИ с нуля людей, не умеющих программировать вообще, всё время случается лютый звиздец

У нас то же самое - хреновое преподавание Си, причём первым был Паскаль, да и плюсов тоже. Поняли их (Си и С++), дай бог, с десяток из ~40 доживших до диплома. Но дело в том, как его преподносят. Ни один из преподов по Си даже близко не читал ANSI C89, а пихали в качестве учебников самописные брошюрки листов на 100-150 максимум.

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 2)
Ответ на: комментарий от drfaust

Мой товарищ читает по Кернигану и Риччи. Ну и что, думаете усваивается? Ничего подобного. Большинство не могут писать на ЭТОМ, так как это слишком низкий уровень абстракции. Даже при программировании микроконтроллеров они спрашивают, почему в Ардуино надо написать 23 строчки и всё работает, а тут надо шаманить сутками над тремя сотнями строк, чтобы получить то же.

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

Кернигану и Риччи. Ну и что, думаете усваивается? Ничего подобного.

Я снеё и учился в 1995. Без практики нифига не усвоится. Дали хелловорд - разжуйте, дали A+B=4, программа должна вычислить чему равно А при B == 3 - разжуйте инты и присваивание - не надо досканально - поверху, не надо углубляться. Для первого использования пойдёт.

Тот же инклюд - мать вашу - почитайте стандарт и объясните без всяких «препроцессоров», что вместо этой строчки будет вставляться другой файл.

Углублённое пойдёт дальше - дайте человеку сначала подержать «инструмент»…

Аналогия с болгаркой - всё преподавание Си я видел со стороны «прочитай инструкцию», а то, что ты можешь отпилить ноги - не следовал «ТБ», не «так держал», почему отпустил «одну руку» - если нет практики, которая должа звучать так: «запусти болгарку без диска - почувствуй как напряглись мышцы, удвой в трое и попробуй уже с маленьким диском» и т.д… Уже потом будете объяснять «устройство редуктора болгарки», как «поменять щётки» и т.п.

Можно на любом языке себе «отпилить ноги», в том числе и на паскале - просто с самого начала не давайте возможности этого сделать на Си. Например, с Лиспом, как это сделать я не знаю, возможно потому что я его смутно представляю, Си знаю - представляю даже как пятикласнику объяснить каждую строчку Си программы, но я не преподаватель, я не смогу ему объяснить дыже «пузырёк».

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от Vudod

почему в Ардуино надо написать 23 строчки и всё работает, а тут надо шаманить сутками над тремя сотнями строк, чтобы получить то же.

Потому что в Ардуино толпа готовых либ есть типа:

#include <internet.h>
#include <display.h>
int main(void)
{
 display D;
 interbet I;
 D.initgraphics("Nokia_3310");
 I.initSite("http://porn.hub");
 display.ShowAVI(I.getVideo());
}

Выруби ему в Ардуино эти либы - и он взвоет… А если всё красиво подготовлено и объяснено, то и в учебном процессе будет у него как «в Ардуино»…

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от Vudod

почему в Ардуино надо написать 23 строчки и всё работает

Вот по такому принципу и надо учить «АЛГОРИТМАМ», а уже потом Си. Человек уже будет уметь расставлять точки с запятыми и вигурный с круглыми скобки - не надо переобучать с begin-end`ов

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

И чем тогда отличается

По воспоминаниям, второе устанешь ждать пока скомпилируется и слинкуется.

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

Речь в треде идёт о программистах.

Это вы на пару так решили почему-то. Тред о переиздании книги.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от drfaust

Можно на любом языке себе «отпилить ноги», в том числе и на паскале - просто с самого начала не давайте возможности этого сделать на Си. Например, с Лиспом, как это сделать я не знаю, возможно потому что я его смутно представляю, Си знаю - представляю даже как пятикласнику объяснить каждую строчку Си программы, но я не преподаватель, я не смогу ему объяснить дыже «пузырёк».

Нет, тут вопрос перехода количества в качество. Если отпиливание ног происходит раз в 2-3 занятия, то это терпимо и можно указать, что так делать нельзя. Именно так дело обстоит во многих современных языках типа go или d. Это и есть золотая середина. Паскаль долгое время этому правилу соответствовал, просто он действительно морально устарел, от него студентов воротит и этот фактор сбрасывать со счетов нельзя.

Если отпилить себе ноги не получается, но программа не хочет компилироваться ни в какую, как в Аде или Окамле, это другая крайность. Тут студенты перестают вовсе писать что-либо и впадают в депрессию, что они — идиоты. Именно такие языки используются там, где важна правильность работы: для космических ракет или финансовых роботов. Это их ниша. Учить на них нельзя, потому что обучающиеся должны совершать ошибки и править их.

А есть языки типа Си или ПХП, на которых можно творить всё, что хочется, и писать такой код, который работает совершенно невообразимым способом. Вот на них тоже нельзя учить. Там придётся каждому по 10 раз за пару рассказывать про исключения из правил или про . Потому что есть общепризнанные абстрацкии вроде типов данных и их крайне нежелательно смешивать. Есть разделение на цикл с условием и цикл со счётчиком, не надо их смешивать, потому что оператор выбора должен обеспечивать единственный выбор, а не проваливаться вниз по нескольку раз. Модули должны быть модулями, а не кусками кода. Слишком много проблем и количество переходит в качество.

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

Ушами на учебных часах хлопать не нужно и ничего не потеряешь.

Да тут тред, походу свалился в «обучи обезьяну(с ушами или без) АЛГОРИТМАМ, Си сложен, Паскаль прост».

Как обезьяны пробрались на первый курс ВУЗа по программированию(с чего и начался срач) - никто объяснить не может, «математиков» вместо обезьян предлагают. Ну а «хлопать ушами» - в любой специальности результат будет одинаковым.

Да, я прошёл начальный цикл ««черепаха» + «корвет_бейсик»» (это и «влюбило» меня в программирование), поступил в ВУЗ, на первом курсе не знал, что такое дискетка 5`25, начинал с Паскаля. Вышел монстром в Си и С++ по меркам 1999года, на работу без проблем, сменил работу - без проблем… Всё пучком. А то как давали нам Си/Си++ - тихий ужас. Плюсы давал человек на 4 года старше меня(аспирант). Я получил «автоматом 5» потому что нашёл ошибку в его задании, подошёл к нему и он признал ошибку -> ООП я здал (на уровне того BC++ 3.1, т.е Си_с_плюсами).

Из таких как я, понявших Си и Си++ было около десятка из сорока. Остальные так и застряли в Паскале/Дельфи. Большинство из тех кто поняли Си - были на голову выше меня (написать, на первом курсе вирусок на асм86 который потом всё-таки вырвался и о нём ещё DrWeb писал - один из них, но он до института уже на асме лабал), остальным так и не дошло Си, по простой причине - преподаватели «не умеют его готовить».

Потому я и упёрся почитать Столярова - вдруг он подход нашёл.

А K&R - не - это не учебник, это пособие…

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

По воспоминаниям, второе устанешь ждать пока скомпилируется и слинкуется.

Да… Для обучения это архиважно.

Это вы на пару так решили почему-то. Тред о переиздании книги.

Перечитайте тред сначала, почему речь идёт о языках для первогодог и как это связано с учебными книгами Столярова, который как раз и является преподавателем в МГУ на «кафедре программирования».

Так что бухгалтеров, школьников, математиков приплетать не надо - речь идёт о профиле «программирование»

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от drfaust

У меня куча однокурсников на не it специальности в итоге работает в it, никого от Паскаля не воротило, а тот, который сейчас в Microsoft работает, внимательнее всех лекции слушал (прикинь, у нас ещё лекции по Паскалю были). Само собой другие языки он сам учил и не разу от него не слышал «зачем мы это учим?» или какое-либо недовольство.

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

Перечитайте тред сначала

Ээээ, не хочу!

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

Да тоже особо не воротит. Речь о том, что не надо преподавать профильным специальностям «мёртвые инструменты», в частности Паскаль программистам - теряются учебные часы.

Самому сейчас на Паскале (Дельфи) приходится частенько кодить/исправлять - по мелочи, но там легаси с 2000х годов висит. Новьё пишу в таком же, лично мне противном, RAD Studio Builder, но уже на плюсах(оно приятнее).

Личные предпочтения - это последнее, что нужно учитывать при выполнении задачи, мне хоть на Лого - лишь бы платили за работу и этот «инструмент» смог помочь выполнить ТЗ.

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

так это мало

Для 70-тысячного городка это много. У нас грамотные слесаря-КИПовцы по вахте к нам ездят с большухи, а вы.. мало…

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

С другой стороны, когда на ардуине тебе надо скачать файл по фтп, а параллельно у тебя по прерыванию обновляется светодиодная строка 128×16 светиодиодов, то неплохо бы на низком уровне понимать, почему тебе надо отключать прерывания на это время. Ибо памяти на всё не хватит — тогда у тебя получится, что тебе одновременно нужны и буфер на 256 байт под состояние светодиодов, и два сетевых сокета под ftp, и буфер под общение с ftp, и буфер для скачки файла по ftp, плюс разные другие переменные, а ОЗУ у тебя всего 2кб..

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

остальным так и не дошло Си, по простой причине - преподаватели «не умеют его готовить».
Потому я и упёрся почитать Столярова - вдруг он подход нашёл.
А K&R - не - это не учебник, это пособие…

М.,Мир,1988

/* инвентаризация одной книги */
#include <stdio.h>
#define MAXTIT 41     /* максимальная длина названия + 1 */
#define MAXAUT 31     /* максимальная длина фамилии автора + 1 */
struct book {         /* шаблон первой структуры: book 
                            является именем типа структуры */
  char title [MAXTIT];  /* символьный массив для названия */
  char author [MAXAUT]; /* символьный массив для фамилии автора */
  float value;          /* переменная для хранения цены книги */
};                    /* конец шаблона структуры */
main( )
{
  struct book libry;    /* описание переменной типа book */
  printf(" Введите, пожалуйста, название книги.\n");
  gets(libry. title); /* доступ к элементу title */
  printf(" Теперь введите фамилию автора.\n");
  gets(libry.author);
  printf(" Теперь введите цену.\n");
  scanf(" %f ", &libry.value);
  printf("%s, %s: %p.2f \n", libry.title, libry.author,
                                        libry.value);
  printf("%s: \" %s \" \(%p.2f\)\n", libry.author, 
                            libry.title, libry.value);
}

Вот образец работы программы:

Введите, пожалуйста,  название книги.
Искусство программирования для ЭВМ 
Теперь введите фамилию автора.
Д. Кнут
Теперь введите цену. 
5р.67
Искусство программирования для  ЭВМ,  Д. Кнут: 5р.67 
Д. Кнут: "Искусство программирования для ЭВМ"  (5р. 67)
vM ★★
()
Последнее исправление: vM (всего исправлений: 1)
Ответ на: комментарий от liksys

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

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

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

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

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

Вот только на начальном этапе для обучения, как тут утверждают «АЛГОРИТМАМ» хватит и простых объяснений вроде:

Вот именно: простых и на начальном этапе. Вывод графиков функций – это уже не простой и не начальный этап.

Начальный этап: считать 2 числа с клавы и вывести их в реверсивном порядке. Считать 2 числа и поделить первое на второе, если деление возможно. Считывать с клавиатуры числа, пока не введут нуль и вывести количество введённых чисел и их сумму.

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

«магию инклюдов»

Это религиозное что-то?

Инклуд — это, вашу мать, физический инклуд строк из одного файла в другой. Какая там магия?

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

«магию указателей»

Опять девочки с «информатики в экономике» в чем-то провинились, что вы их пытаете языками с указателями?

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

можно, вместо того что бы объяснять что такое Program laba_1 объяснить что #include <stdio.h>

Не-а. Для начала потребуется объяснить, что программа начинается с функции main() (а не со слова "программа по_имени, а дальше begin) и вот тут вы запаритесь объяснять, а что такое функция в Си, почему у неё должен быть тип и как сделать окончание проги корректным с т.з. ОС.

Да, я о том, что «правильнее» int main() {...; return 0;}, нежели ‘void main()’.

Или вы можете сказать «это такая необходимая магия, пишите это заклинание, смысл его поймёте (может быть) позже».

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

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

Я уже показывал, что «магию» инклюда и -lm (что в древнем TC-2.01 не надо - всё пальчикамиделается, а для BC(уже_с_плюсами)3.11 ещё и мышой) можно легко обойти «кратким объяснением что и почему», так же как uses Crt.

Более того, студент-программист будет в будущем изучать Си «углублённо», но он буде уже иметь его АЗЫ, которые, на самом деле, могут в в корне отличаться от того что ему преподавали ранее.

Пример - первый курс - адрес в памяти линеен, арифметика запрещена(обходится, но то не для первого курса). Начинаем изучать Си - - адрес в памяти линеен, арифметика разрешена (ШОК, А КАК ТАК!!!), Изучаем АСМ86 - снова ШОК""" - память не линейна и может перекрываться (сегмент-смещение)… следом идёт СПО с АСМ386 и дескрипторами - снова слом мозга - (физичиская/адресуемая/логическая память), оказывается, что адрес - это вовсе не ячейка в памяти, оказывается что это структура, даже нет - запрос к процу предоставить данные по адресу 0x12121212…

Зачем там часто «ломать голову» студенту. Сразу объяснить в терминах Си, что указатель - особый тип данных, и он может быть чем угодно, НО над ним разрешен ограниченное подмножество операций…

В будущем за одну-две лекции сэкономите намного больше часов.

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

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

Си с его точкой входа main() сюда ложится логичным образом.

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

потребуется объяснить, что программа начинается с функции main() (а не со слова "программа по_имени, а дальше begin)

Какой злющий синдром утёнка вас преследует.

Я вот сижу и пытаюсь понять, почему же программа должна начинаться со слова "программа по_имени, а дальше begin". С какого перепуга?

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

можно легко обойти «кратким объяснением что и почему», так же как uses Crt.

Так не нужен в Паскале этот uses Crt на первых порах вообще. А когда понадобится, тогда уже и Паскаль не нужен.

Зачем там часто «ломать голову» студенту. Сразу объяснить в терминах Си, что указатель - особый тип данных, и он может быть чем угодно, НО над ним разрешен ограниченное подмножество операций…

Затем, что это вообще не надо объяснять в начале.

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

А уж потом надо давать… ассемблер. Паскаль и здесь может, т.к. допускает ассемблерные вставки. И уж после ассемблера переходить к Си. Потому что на этом этапе уже можно сосредотачиваться на самом Си. Это если мы говорим о подготовке программистов.

Я, кстати, встречал мнение, что программистов надо начинать учить с Лиспа.

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

К тому времени, когда человек начинает изучать Си, он уже знает,

Так про то и речь: Си для тех, кто УЖЕ ЗНАЕТ. Но мы НЕ МОЖЕМ рассчитывать, что ВСЕ пришедшие студенты УЖЕ ЗНАЮТ, что, например, каждая программа возвращает числовой код завершения; что программа принимает аргументы через командную строку;.

Для виндозника, которого обучали в школе «программированию» на питоне, встроенном в OpenOffce, это всё не самоочевидные вещи, даже если он писал что-то для Майнкрафта на Джаве.

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

Вот реально интересно, сколько первокурсников вытаращат глаза на произнёсшего такое на первой лекции?

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

Я вот сижу и пытаюсь понять, почему же программа должна начинаться со слова «программа по_имени, а дальше begin». С какого перепуга?

Формально говоря, в программе может не быть переменных.

program Kill; begin writeln("Умри, жестокий мир"); end.

Хотя FreePascal, как я помню, разрешает не указывать вообще имя программы.

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

Я не знаю, что там нынче в школе. А меня обучали на курсах УПК, например. Программированию под DOS-ом.

А потом на подготовительных к поступлению в ВУЗ мы еще архитектуру этого самого DOS-а учили отдельно полгода.

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

профильным специальностям «мёртвые инструменты», в частности Паскаль программистам - теряются учебные часы.

Преподается не инструмент-паскаль, а основы программирования. В первую очередь программирование, а инструмент вторичен. Почему именно выбирается паскаль в этом треде уже 100500 раз сказали, потрудись поищи.

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

Хотя FreePascal, как я помню, разрешает не указывать вообще имя программы.

Оно еще во времена Turbo Pascal стало необязательным...

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

Так не нужен в Паскале этот uses Crt на первых порах вообще. А когда понадобится, тогда уже и Паскаль не нужен.

пройдись тут по поиском по словам «gnuplot» и «uses crt» - найдёшь ответ, после которого Reset в powerdown ушёл.

Затем, что это вообще не надо объяснять в начале.

Согласен, кратко, минимум подробностей… как тут называют «магию указателей в Си» - там там полсеместра надо, и только после того, как они изучат адресацию процессоров i86 и т.п. (т.е. будут знать, что «шина адреса» это не только «набор проводов»).

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

Я и пытаюсь доказать, что всё это реально просто сделать без «мертвечины» в виде Паскаля. Для профильных ВУЗов будет лучше начать с Си, возможно с Питона(тут я сомневаюсь), но не с языков, которые будут «висеть в мозгах». Сэкономятся человекочасы на учёбу (как студентов, так и преподов)

Я, кстати, встречал мнение, что программистов надо начинать учить с Лиспа.

Слава богу он сюда не сунулся - точно бы «разорвали на куски», а идея глупая. Однокурсник умудрился на проце Z80 внутри мыльницы(настоящей мыльницы для обычного мыла) сделать стековую лисп-машину - сам паял, сам прошивал, сам программировал базу лиспа. Как удалось? - «Так там всего пять операций, главное стек пожирнее сделать…» - это был один из «вундеркиндов», знаниям, которых я завидовал…

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

А зачем нужен «теоретик», даже если он на бумажке в «блоках» решит задачу, когда не сможет чего-либо реализовать?

Сорри - я забыл, У Вас же не программисты, а математики… Речь то идёт о другой специальности…

З.Ы. Вы слышали о вакансии «1С-программист»? Они востребованы, оплачиваемы, халтур много… Что о них скажете? Вроде как тоже «программисты»…

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

А зачем нужен «теоретик», даже если он на бумажке в «блоках» решит задачу, когда не сможет чего-либо реализовать?

Ты читать совсем разучился? Чтобы что-то реализовать не на бумажке в качестве инструмента используется язык программирования. После того как основы выучат и научатся программировать, выучат другой язык, это не проблема и никакой «потери времени» тут нет.

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

З.Ы. Вы слышали о вакансии «1С-программист»? Они востребованы, оплачиваемы, халтур много… Что о них скажете? Вроде как тоже «программисты»…

За этим в ВУЗ идти не надо. Мало ли что востребовано. Сегодня одно востребовано, а завтра другое. В конце 90х начале 200х были востребованы так называемые «экономисты» и «юристы», но большинство из них сейчас либо полы метут либо телефонами в Евросети торгуют либо переквалифицировались во что-то другое.

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

пройдись тут по поиском по словам «gnuplot» и «uses crt» - найдёшь ответ, после которого Reset в powerdown ушёл.

С чего бы это? Я тебе объяснил, что это нахрен не нужно и в настоящем промышленном коде за который ты вроде как топишь никто так не делает, а вызывают внешние тулзы на сгенерированных счетной программой файлах. Да в том же экселе можно csv файл открыть и график нарисовать. Эксель это, внезапно, школьная программа и входит в ЕГЭ, каждый должен его знать.

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

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

Я уже высказывал своё мнение о вашем месте преподавания: «как преподаёте - так и плывут».

За этим в ВУЗ идти не надо

Как раз таки и надо. 1Сочником, будь ты хоть программистом/математиком_прикладником от бога ты стать вряд ли сможешь. Там нужны существа, вроде бухгалтеров/юристов/кадровиков, помешанных на программировании.

Язык 1С (если вы его видели) проще вами любимого паскаля. Но есть одно НО - что бы что-то сделать в 1С ТиС - нужно уже быть товароведом,что-то сделать в 1С ЗиК - нужно быть и кадровиком и бухгалтером. А так - как я уже говорил «для Бухгалтеров первым языком программирования должен быть встроенный в 1С язык»

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

Я уже высказывал своё мнение о вашем месте преподавания: «как преподаёте - так и плывут».

Мои как раз на эти вопросы ответят. А вот ваши как раз и плывут и идут работать не ко мне.

Reset ★★★★★
()
Ответ на: комментарий от Reset
  1. Речь шла о «нулёвых» первогодках и ты предлагал вместо ClrScr; использовать gnuplot, на что я тебе и ответил.
  2. Я не топлю за «промышленный код»
  3. Речь в треде всё ещё идёт о студентах-программистах на первом курсе - какое нахрен «настоящем промышленном коде за который ты вроде как топишь» - перепил???
drfaust ★★★★★
()
Ответ на: комментарий от Reset

А вот ваши как раз и плывут и идут работать не ко мне.

Кто мои???

Вы говорите о тех кандидатах: слесарях-КИП, что бары от миллиампер не отличат? - они к вам идут работать?

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

Речь шла о «нулёвых» первогодках и ты предлагал вместо ClrScr; использовать gnuplot, на что я тебе и ответил.

Блин, какое нахрен clrscr? Ты графики предлагал текстом строить, я тебе сказал, что это не нужно. И clrscr тоже не нужно!

Речь в треде всё ещё идёт о студентах-программистах на первом курсе

Если студент программист не в состоянии на зачете открыть Эксель (или любую другую программу) и загрузить туда csv файл-выхлоп своей программы, то его однозначно отчислять надо! Я с такими пока не сталкивался, но всякое бывает.

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

А кто учит здесь – «как преподаёте - так и плывут» ? Поэтому каков вопрос таков и ответ. Я учу нормально.

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

Если студент программист не в состоянии на зачете открыть Эксель (или любую другую программу) и загрузить туда csv файл-выхлоп своей программы, то его однозначно отчислять надо!

Ты первогодкам предлагаешь изучать csv - ладно, он простой - пофиг, что понятие файла ему ещё не давали, даже текстового. Но как он сдаст этот график, если у него дома в excel настроено по дефолту comma separated в ‘,’ и дефолт тип «число», а у препода где он сдаёт comma separaped в ‘.’ и дефолт тип в «общий»???

Не городи уже хрени - вроде норм начинал, а сейчас…

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

Ты сморозил херню, а теперь придумываешь миллион отговорок. Внезапно, файл можно создать до изучения понятия файл в ЯП. Подсказка: < и > в командной строке. Сюрприз, да?

Эксель спрашивает о разделителе при открытии файла. И я еще упомянул, что Эксель я привожу для примера.

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

Я и пытаюсь доказать, что всё это реально просто сделать без «мертвечины» в виде Паскаля. Для профильных ВУЗов будет лучше начать с Си

Ещё раз: это НЕВОЗМОЖНО сделать, если исходить из положения «нулевые знания у первогодок». В Си слишком много либо «магии», либо длинных объяснений, зачем всё это нужно.

Ну вот элементарное:

#include <stdio.h>
int main (void)
{
  puts ("Hello, World!");
  return 0;
}

Сравните с тем же на Паскале:

program One;
begin
 writeln("Hello, World!");
end.

Где требуется меньше пояснений? При этом вы должны учитывать, что для первогодок фразы в этом заголовке объявляются функции, связанные с вводом и выводом данных; в заголовках (которые как правило представлены отдельными заголовочными файлами) обычно объявляются предоставляемые соответствующими им библиотеками функции, типы данных, константы и определения препроцессора – словесный шум.

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

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

Хочешь оценку получить, будешь делать, что препод сказал. Они и делают. А форумы, вот они: https://www.cyberforum.ru/pascalabc/. Все сообщения там про то, как сделать домашку. Для сравнения, на С++ там только половина постов про домашку. А паскаль - все.

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

А интегралы в школе не словесный мусор? Мусор, но только для тех, кто не хочет учиться. Уж в ВУЗе-то надо понимать, что туда идут добровольно.

wandrien ★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от rupert

Ну если стоит задача загнать их в отдельный уголок, чтобы они не лезли на форумы про разработку, то паскаль задачу решает на 100%.

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

почему же программа должна начинаться со слова «программа по_имени, а дальше begin»

Потому что так легче разгребать листинги результатов работы студентов в системе пакетной обработки. И точка в конце программы по схожим причинам (кроме удобства остановки студенческого парсера ). И не сразу label, const, type, var, а после

PROGRAM LAB1_PETROV_72(PETROV);

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

Сам придумал - сам опроверг. Тебе уже объясняли в два горла, иди перечитывай все обоснования, пока не дойдет.

Всё что ты объяснил, то что тебе легче преподавать С. Такой себе аргумент. И как не раз здесь было сказано, с точки зрения преподавания паскаль выигрывает.

А дальше пошли детские аргументы про 20 часов, что дальше, с++ за 21 день?

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

Всё что ты объяснил

Нет.

детские аргументы

С твоей стороны.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от rupert

Хочешь оценку получить, будешь делать, что препод сказал.

Или забью болт, как сделает большинство когда им не интересно. Может конечно сейчас не так ?

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

А интегралы в школе не словесный мусор?

Нет, т.к. интегралы идут после дифференциалов, даются объяснения, даётся формула Ньютона-Лейбница, рисуются картинки «площадь под графиком со знаком» и пр.

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

Нет, т.к. интегралы идут после дифференциалов, даются объяснения, даётся формула Ньютона-Лейбница, рисуются картинки «площадь под графиком со знаком» и пр.

Преподавание тоже надо вести последовательно.

Какие-то невероятные истории, что ученик не понимает про файлы и не может вкупить, что такое инклуд. Картинки ни разу в чат не вставлял что ли или ссылки не кидал? Вот самый наглядный инклуд.

wandrien ★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от mister_VA

Кстати, площадь под графиком запутывает.

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

Вот такое объяснение бы добавить в учебники:

https://web.archive.org/web/20160305170628/http://ru.yasno.tv/article/math/42-chto-takoe-integral-eto-umnozhenie

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

include только вставляет объявления функций, но не сами функции. Можно объяснить что это лишь вставка текста, который содержит магические заклинания, которые в комбинации с другими заклинаниями (ключи линковщика) позволяют использовать функции из библиотек. Но если объяснять нормально тут надо читать лекцию на полтора часа. Эта лекция хорошо зайдет, если человек уже умеет программировать, но если он ноль, то это будет просто бесполезная трата времени.

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 1)
Ответ на: комментарий от Reset

include только вставляет объявления функций, но не сами функции.

#include вставляет то, что есть в файле. Напишете туда не объявление, а определение функции, значит вставит определение. Вы так же преподаёте??

Но если объяснять нормально тут надо читать лекцию на полтора часа. Эта лекция хорошо зайдет, если человек уже умеет программировать, но если он ноль, то это будет просто бесполезная трата времени.

Ну да, МАГИЯ-то удобнее, и объяснять ничего не надо.

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

Ну да, МАГИЯ-то удобнее, и объяснять ничего не надо.

Ну так варианта два – 1. объяснить магией 2. прочитать лекцию на полтора часа, которая в одно ухо влетит, а из другого вылетит. Вы за какой вариант? Мне оба не нравятся.

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

include только вставляет объявления функций, но не сами функции

Ну, это только соглашение. Которое иногда нарушается. И которое не касается inline-функций, по понятным причинам.

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

Ну, это только соглашение. Которое иногда нарушается.

Оно массово нарушается для C++ классов, особенно с шаблонами, там по другому нельзя. Для этого даже есть специальная поддержка компилятора, избегающая ошибки повторного объявления.

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

include только вставляет объявления функций, но не сами функции. Можно объяснить что это лишь вставка текста, который содержит магические заклинания, которые в комбинации с другими заклинаниями (ключи линковщика) позволяют использовать функции из библиотек.

faust@archlinux ~/П/C/РАзная всячина> cat maximum.txt
int maximum(int x, int y)
{
    if (x > y) return x;

    return y;
}⏎                                                                                                                                                                                                                  faust@archlinux ~/П/C/РАзная всячина> cat c_minuc_1.lox 
c--;⏎                                                                                                                                                                                                               faust@archlinux ~/П/C/РАзная всячина> cat 333.c
#include        <stdio.h>

#include        "maximum.txt"

int main()
{
        int a,b,c;

        a=3;
        b=4;

        c = maximum(a,b);

#include        "c_minuc_1.lox"

        printf("%d", c);

        return c;
}
faust@archlinux ~/П/C/РАзная всячина> gcc 333.c
faust@archlinux ~/П/C/РАзная всячина> ./a.out
3⏎                                                                                                                                                                                                                  faust@archlinux ~/П/C/РАзная всячина> 

О чём можно спорить с супер-преподавателем, который не знает предмета спора от слова совсем. Для не го сами слово «Си» - уже «магия» - потому как он его не знал, не знает, и знать никогда не будет - неспособен просто...

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от drfaust

И что ты этим хотел сказать? Решил меня «поймать» на том, что я якобы не знаю как работает include? У тебя НЕ получилось. А теперь попробуй найти в stdio.h код функции printf.

Reset ★★★★★
()
Ответ на: комментарий от Reset
  1. Не знаешь что такое include - потому объяснить первогодкам упрощённо не в состоянии - поэтому тебя так и прёт от «магии include».
  2. Что находится в stdio.h знать на начальном этапе для «hello world» не надо и даже вредно.
  3. код функции printf подключается автоматом, т.к. он внутри libc и никакой магии линковки нет (далее, когда дойдут до написания простейшего драйвераЮ а это совсем иной уровень, под линукс(~3й курс), наоборот придётся объяснять студентам как отключить дефолтную линковку libc)
  4. Регулярно показываешь незнание предмета спора, не только инклюд - одной фразой вы доказали свою некомпетентность, а признавать не хотите.

Вердикт: конструктивный диалог невозможен.

drfaust ★★★★★
()
Последнее исправление: drfaust (всего исправлений: 2)
Ответ на: комментарий от drfaust

Не знаешь что такое include - потому объяснить первогодкам упрощённо не в состоянии - поэтому тебя так и прёт от «магии штсдгву»

Это «упрощенное» объяснение будет для них не более чем шумом и заклинанием «так надо».

Что находится в stdio.h знать на [b]начальном этапе[/b] для «hello world» не надо и даже вредно.

С этим я никогда не спорил. Что конкретно там находится знать не нужно, но что такое объявление функции знать все же нужно.

код функции printf подключается автоматом, т.к. он внутри libc и никакой [b]магии линковки[/b] нет

С этим я тоже никогда не спорил. Но заметь, он подключается при линковке, include <stdio.h> тут совсем не причем. И это ты, кстати, выше заявлял, что include подключает функции, а не я.

Регулярно показываешь незнание предмета спора

Пруфы будут или как всегда? Пока обосрался с незнанием include лишь ты.

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 2)
Ответ на: комментарий от Reset

Мой коллега, кстати, сейчас пробует составить программу по Си в которой не будет использоваться include первые несколько занятий, а все нужные объявления будут записываться явно. Не знаю на сколько успешно получится, узнать можно будет только в сентябре.

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

1, 2, 3, 4…

Всё правильно, по всем пунктам.

Как тут неточно подаёт информацию, так и студентам.

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

почему в паскале строки ограничены в 255 символов «исторически»

это только для типа ShortString, для остальных 3 типов строк ограничений нет

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

Какие-то невероятные истории, что ученик не понимает

Типичная картина мира тех, кто никогда не пробовал давать частные уроки программирования (хотя бы даже для подготовки к ЕГЭ по информатике). Даже для очень многих преподавателей – вот это вот «да что тут непонятного» определяет картину мира. А то, что в группе реально после очередного объяснения что-то поняли трое из двадцати – этого мы не видим, поскольку те трое, которые поняли, создают поток фидбека, достаточный, чтобы остальные за ними просто спрятались.

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

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

для остальных 3 типов строк

В современном fpc я насчитал 6 типов строк, включая PChar. Правда, знать об этом надо в исключительных случаях.

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

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

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

Ещё в роли string могут использоваться unicodestring в режиме совместимости с уникодным дельфи. Ещё есть RawByteString, если надо работать с файлами в разных кодировках, WideString, если надо использовать COM+ под виндой. В общем, геморроя, конечно, гораздо меньше, чем с utf8 в голой C89, но тоже имеется.

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

Кстати, о птичках. Точнее о котиках. Ещё точнее, о юникотиках. Есть небольшой вопрос к нашим фанатам сишечки. Вот такой код на паскале

program hello;
var
  s1, s2: string;
begin
  s1:='Привет ';
  s2:='мир!';
  Writeln(s1+s2);
end.
одинаково хорошо отработает и в турбопаскале под досом с cp866 и в fpc под линуксом с utf8. Чо как там у вас в сишечке с этим? Как там strcat с utf дружит? scanf нормально русские буквы понимает?

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

Попрошу уточнить, а этот код он в одной и той же кодировке всегда сохраняется «в турбопаскале под досом с cp866 и в fpc под линуксом с utf8»?

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

Сохраняется в родной кодировке для системы. Условно, набирается студентом с учебника. А уж что там с кодировкой и что это вообще такое, не его недалёкого ума дело. Доживёт до следующего курса, узнает.

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

то же самое и на Си будет, никакой разницы

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

Как там strcat с utf дружит? scanf нормально русские буквы понимает?

А почему он не должен понимать?

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

iмхо код это данные и

(function(...rest){
  console.log("Литерал это данные "+" вызов литерала это код" )}
)()

замыкания/сборка_мусора «устаревшая» -отМакарти технология которой ужо 60 лет

qulinxao3 ★★
()
Последнее исправление: qulinxao3 (всего исправлений: 2)
Ответ на: комментарий от drfaust

а могли бы из 0 и 1 brainfuckить gui И многопоточность

зы. ващет если делать инструменты , затем инструменты инструментов и т.п целевой язык перестаёт быть ТАК значимым.

а вот если всё (да и ещё и ручками) вносить в машину на host-языке - тогда и разгорается флэйм.

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

двухтомник хювенена и второго фина/шведа - как раз Линус тогда же linux’ил

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

Где требуется меньше пояснений?

'use strict'
console.log('Крокфорд Д. - Как устроен JavaScript - 2019.pdf')
qulinxao3 ★★
()
Ответ на: комментарий от wandrien

Более тупого вброса сложно представить %)

Как раз пример очень хороший! И правильный. Потому что он из реальности. Студент садится дома делать задания и пишет такой код. И у него должно работать. Иначе у него будет расстройство и он на всё забьёт, так как делал всё верно, как учили, а оказалось, что ничего не работает. Раньше против этого использовали простой приём: запрещали русские буквы и говорили, что они — магия. Это работало, оставляя некоторое чувство неудовлетворённости, но только до тех пор, пока студент не начинал писать в файлы в Винде, путь к которым содержит не ASCII символы. А переименовать все выше стоящие папки — это та ещё история.

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

Во времена koi7 запрещали? Это именно вброс. Обьъясняю. Онромное количество софта на си и крестах 15 лет работает с utf8, а тут «вопрос с подвохом». Очевидно, что конкатенация не зависит от кодировки.

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

Очевидно, что конкатенация не зависит от кодировки.

Конкатенация работает, но ввод-вывод и имена файлов в Windows будут поддерживать UTF-8 только после явного переключения локали, которое завезли только в Windows 10. Традиционно в Windows при использовании libc приходилось использовать специальные W-функции с UTF-16 чтобы работал Юникод.

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

Началося…

Во многих учебных заведениях используется Windows, причём часто не последней версии, так что с этими проблемами приходится считаться. Я не видел учебных заведений с Линуксом как в России, так и в Японии.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Я видел, в том числе районные и поселковые школы в далёком 2011, но они действительно в меньшинстве. И у учеников винда дома. А линукс в школе от бедности и чтобы не играли. Поэтому надо ориентироваться на то, чтобы была хорошая поддержка обеих платформ.

Vudod ★★★★★
()
Последнее исправление: Vudod (всего исправлений: 1)
Ответ на: комментарий от X512

Во многих учебных заведениях используется Windows, причём часто не последней версии, так что с этими проблемами приходится считаться. Я не видел учебных заведений с Линуксом как в России, так и в Японии.

Это у MS надо спрашивать, почему им взбрело в голову сменить в GUI одну 8-битовую кодировку на другую 8-битовую кодировку, при этом оставив старую на ФС.

В DOS и в Linux всё нормально было с кодировкой.

wandrien ★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от X512

Я не видел учебных заведений с Линуксом как в России, так и в Японии

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

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

Конкатенация работает, но ввод-вывод и имена файлов в Windows будут поддерживать UTF-8 только после явного переключения локали, которое завезли только в Windows 10

Ну хоть завезли, наконец-то. А куда 866ю дели? :)

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

А куда 866ю дели? :)

Закопали в глубине диалога System, где она и сидит последние лет 20. Но если включить там русский язык, в консоли для неюникодных программ будет 866. В GUI — 1251. Пока на другую локаль не переключишь и не перезагрузишься.

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

Я не видел учебных заведений с Линуксом как в России, так и в Японии.

МГУ?

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

В cygwin/msys2 вроде из коробки utf-8 работает?

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