Я из-за такого подхода бросил software engeneering. Ведь программирование в конце концов только инструмент. Ни в какой больше области не учат пять лет, как пользоваться инструментом. Освоить четыре-пять вложенных уровней условновстей... и зачем? Должна же быть какая цель. Или "учиться программировать чтобы научиться программировать"? Абсурдно ведь. Программирование не должно быть ради программирования, это не искусство. Это должен быть удобный способ донести свою идею компьютеру. Того же пайтона для этого, по-моему, хватает с головой. Где я не прав?
>Ни в какой больше области не учат пять лет, как пользоваться инструментом. медиков учат 7 лет. водителей пассажирского транспорта несколько лет. художников учат всю жизнь.
программирование -- это именно искусство. прикладное, но искусство.
искусство программирования прежде всего заключается в умении мыслить абстракциями на эффективном уровне, а не в знании какого-то конкретного языка. приведенная мной последовательность "C -> Smalltalk -> C#/Java/C++ -> Lua, Scheme, Python" направлена на развитие правильного мышления программиста: "алгоритмы и данные -> абстракции -> прикладное использование абстракций -> смена парадигмы для расширения доступных абстракций".
Python'а вполне достаточно для утилитарного использования, если необходимо просто донести свою мысль до компьютера и получить конкретный результат. вовсе не каждый человек должен становится программистом. нужно иметь passion.
да, в краткосрочной перспективе C# и AS быстрее позволят получать незаслуженное вознаграждение, но позже наступит непреодолимый порог, перейти через который можно будет только полным изучением всего с 0.
С++ -- язык мастеров. неокрепшие умы пишут на нем такие ужасы, что остается только горько смеяться. C# безопаснее в этом плане. текущая 4-ая редакция C# избавила язык от большинства детских проблем. раньше я бы лучше отрезал себе ногу, чем порекомендовал C#. если изучать C++ и С# одновременно, то первый начинает казаться архаичным нагромождением боли и страдания: ручная работа с памятью, разделение описания и реализации класса по разным файлам, мешанина стилей в стандартных библиотеках, увеличение времени компиляции в 100 раз при любом чихе в сторону шаблонов, миллионы противоречащих друг другу рекомендаций (использовать/не использовать исключения, std::string и т.д.)...
Имхо С в качестве первого языка не слишком хороший вариант. Он построен на чрезмерно низкоуровневых абстракциях, которые только усложняют понимание того, а что вообще происходит в программе. Работа со строками для начинающего программиста слишком хардкорна. Тут тебе и понятие указателей, массивов, терминирующий символ, а если хочется чуть более сложный пример, то и управление памятью. Тот же Паскаль в качестве учебного яыка подходит гораздо больше.
ой, я тебя только по твоему трек-листу на last.fm опознал... маскируешься! :) Паскаль и создавался для обучения, но не могу его посоветовать, ибо нет ни одной нормальной, современной реализации. Delphi в пень. с Паскалем я работал последний раз на Turbo Pascal 5.5. если с тех пор строчки остались у него в 255 байт, то опять же не спасут они совершенно.
Вообще мы ведь говорим о первом языке программирования, а не о серебрянной пуле, не так ли? Вполне вероятно на роль такого языка может претеодовать VB.NET( у майкрософта есть вот такая забавная штука http://msdn.microsoft.com/ru-ru/beginner/cc950524.aspx ). Питон для обучения не подходит - в нём слишком много неочевидного. А вот Ruby мог бы быть неплох.
Хочу напомнить, что я таки занимался преподаванием программирования в школе. Я пробовал преподавать как С, так и C#. И когда я говорю о сложности для понимания начинающими некоторых концепций C, то основываюсь на личном опыте.
мой пост большее отношение имел к практике самостоятельного изучения -- формальное обучение имеет в этом отношении другие моменты. в этом контексте, если взять практически любую книгу по С, то научишься нормально программировать на С, а если взять книгу по Delphi, то, скорее всего, ничему не научишься. изучающего программирование не должен формировать инструмент, должно быть достаточно текстового редактора и компилятора. поэтому я не могу одобрить Delphi.
как я ранее ответил, паскаль, действительно, хороший вариант для первого языка, с точки зрения обучения совсем немотивированного человека (читай "студента/школьника") sic! -- идеальный. однако, у него есть несколько минусов:
сейчас паскаль почти также мертв как smalltalk
нет достойной, современной реализации (не использовать же Turbo Pascal 5.5)
потратить свое ценное время на изучение языка, после изучения которого нужно будет сразу же изучать новый язык, чтобы программировать что-то востребованное -- это видится мне непрактичным
последний пункт, как ты понимаешь, не является истинным
( ... )
Comments 15
Программирование не должно быть ради программирования, это не искусство. Это должен быть удобный способ донести свою идею компьютеру. Того же пайтона для этого, по-моему, хватает с головой. Где я не прав?
Reply
медиков учат 7 лет.
водителей пассажирского транспорта несколько лет.
художников учат всю жизнь.
программирование -- это именно искусство. прикладное, но искусство.
искусство программирования прежде всего заключается в умении мыслить абстракциями на эффективном уровне, а не в знании какого-то конкретного языка. приведенная мной последовательность "C -> Smalltalk -> C#/Java/C++ -> Lua, Scheme, Python" направлена на развитие правильного мышления программиста: "алгоритмы и данные -> абстракции -> прикладное использование абстракций -> смена парадигмы для расширения доступных абстракций".
Python'а вполне достаточно для утилитарного использования, если необходимо просто донести свою мысль до компьютера и получить конкретный результат. вовсе не каждый человек должен становится программистом. нужно иметь passion.
Reply
сколько сишник через 20 лет :)
без наезда, просто печальный факт
я бы плюсы с переходом на шарп советовал, если человек правда попрограммировать хочет
луа и питон без вопросов, конечно
Reply
С++ -- язык мастеров. неокрепшие умы пишут на нем такие ужасы, что остается только горько смеяться. C# безопаснее в этом плане. текущая 4-ая редакция C# избавила язык от большинства детских проблем. раньше я бы лучше отрезал себе ногу, чем порекомендовал C#. если изучать C++ и С# одновременно, то первый начинает казаться архаичным нагромождением боли и страдания: ручная работа с памятью, разделение описания и реализации класса по разным файлам, мешанина стилей в стандартных библиотеках, увеличение времени компиляции в 100 раз при любом чихе в сторону шаблонов, миллионы противоречащих друг другу рекомендаций (использовать/не использовать исключения, std::string и т.д.)...
Reply
Reply
Паскаль и создавался для обучения, но не могу его посоветовать, ибо нет ни одной нормальной, современной реализации. Delphi в пень.
с Паскалем я работал последний раз на Turbo Pascal 5.5. если с тех пор строчки остались у него в 255 байт, то опять же не спасут они совершенно.
Reply
Вообще мы ведь говорим о первом языке программирования, а не о серебрянной пуле, не так ли? Вполне вероятно на роль такого языка может претеодовать VB.NET( у майкрософта есть вот такая забавная штука http://msdn.microsoft.com/ru-ru/beginner/cc950524.aspx ). Питон для обучения не подходит - в нём слишком много неочевидного. А вот Ruby мог бы быть неплох.
Хочу напомнить, что я таки занимался преподаванием программирования в школе. Я пробовал преподавать как С, так и C#. И когда я говорю о сложности для понимания начинающими некоторых концепций C, то основываюсь на личном опыте.
Reply
как я ранее ответил, паскаль, действительно, хороший вариант для первого языка, с точки зрения обучения совсем немотивированного человека (читай "студента/школьника") sic! -- идеальный. однако, у него есть несколько минусов:
- сейчас паскаль почти также мертв как smalltalk
- нет достойной, современной реализации (не использовать же Turbo Pascal 5.5)
- потратить свое ценное время на изучение языка, после изучения которого нужно будет сразу же изучать новый язык, чтобы программировать что-то востребованное -- это видится мне непрактичным
последний пункт, как ты понимаешь, не является истинным ( ... )Reply
Leave a comment