путь программиста

Mar 20, 2011 19:09

недавно меня спросили: "какой язык программирования начать изучать?". автоматически я дал ответ: С ( Read more... )

Leave a comment

Comments 15

bekabaka March 20 2011, 22:45:32 UTC
Я из-за такого подхода бросил software engeneering. Ведь программирование в конце концов только инструмент. Ни в какой больше области не учат пять лет, как пользоваться инструментом. Освоить четыре-пять вложенных уровней условновстей... и зачем? Должна же быть какая цель. Или "учиться программировать чтобы научиться программировать"? Абсурдно ведь.
Программирование не должно быть ради программирования, это не искусство. Это должен быть удобный способ донести свою идею компьютеру. Того же пайтона для этого, по-моему, хватает с головой. Где я не прав?

Reply

denq March 21 2011, 09:37:22 UTC
>Ни в какой больше области не учат пять лет, как пользоваться инструментом.
медиков учат 7 лет.
водителей пассажирского транспорта несколько лет.
художников учат всю жизнь.

программирование -- это именно искусство. прикладное, но искусство.

искусство программирования прежде всего заключается в умении мыслить абстракциями на эффективном уровне, а не в знании какого-то конкретного языка. приведенная мной последовательность "C -> Smalltalk -> C#/Java/C++ -> Lua, Scheme, Python" направлена на развитие правильного мышления программиста: "алгоритмы и данные -> абстракции -> прикладное использование абстракций -> смена парадигмы для расширения доступных абстракций".

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

Reply


kukuk March 21 2011, 09:23:28 UTC
или сразу выучить шарп \ экшн скрипт и зарабатывать столько же
сколько сишник через 20 лет :)

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

луа и питон без вопросов, конечно

Reply

denq March 21 2011, 10:15:32 UTC
да, в краткосрочной перспективе C# и AS быстрее позволят получать незаслуженное вознаграждение, но позже наступит непреодолимый порог, перейти через который можно будет только полным изучением всего с 0.

С++ -- язык мастеров. неокрепшие умы пишут на нем такие ужасы, что остается только горько смеяться. C# безопаснее в этом плане. текущая 4-ая редакция C# избавила язык от большинства детских проблем. раньше я бы лучше отрезал себе ногу, чем порекомендовал C#. если изучать C++ и С# одновременно, то первый начинает казаться архаичным нагромождением боли и страдания: ручная работа с памятью, разделение описания и реализации класса по разным файлам, мешанина стилей в стандартных библиотеках, увеличение времени компиляции в 100 раз при любом чихе в сторону шаблонов, миллионы противоречащих друг другу рекомендаций (использовать/не использовать исключения, std::string и т.д.)...

Reply


ext_68620 March 22 2011, 20:52:41 UTC
Имхо С в качестве первого языка не слишком хороший вариант. Он построен на чрезмерно низкоуровневых абстракциях, которые только усложняют понимание того, а что вообще происходит в программе. Работа со строками для начинающего программиста слишком хардкорна. Тут тебе и понятие указателей, массивов, терминирующий символ, а если хочется чуть более сложный пример, то и управление памятью. Тот же Паскаль в качестве учебного яыка подходит гораздо больше.

Reply

denq March 24 2011, 18:18:58 UTC
ой, я тебя только по твоему трек-листу на last.fm опознал... маскируешься! :)
Паскаль и создавался для обучения, но не могу его посоветовать, ибо нет ни одной нормальной, современной реализации. Delphi в пень.
с Паскалем я работал последний раз на Turbo Pascal 5.5. если с тех пор строчки остались у него в 255 байт, то опять же не спасут они совершенно.

Reply

ext_68620 March 24 2011, 21:09:21 UTC
А что ты имеешь против дельфей?

Вообще мы ведь говорим о первом языке программирования, а не о серебрянной пуле, не так ли? Вполне вероятно на роль такого языка может претеодовать VB.NET( у майкрософта есть вот такая забавная штука http://msdn.microsoft.com/ru-ru/beginner/cc950524.aspx ). Питон для обучения не подходит - в нём слишком много неочевидного. А вот Ruby мог бы быть неплох.

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

Reply

denq March 25 2011, 07:35:26 UTC
мой пост большее отношение имел к практике самостоятельного изучения -- формальное обучение имеет в этом отношении другие моменты. в этом контексте, если взять практически любую книгу по С, то научишься нормально программировать на С, а если взять книгу по Delphi, то, скорее всего, ничему не научишься. изучающего программирование не должен формировать инструмент, должно быть достаточно текстового редактора и компилятора. поэтому я не могу одобрить Delphi.

как я ранее ответил, паскаль, действительно, хороший вариант для первого языка, с точки зрения обучения совсем немотивированного человека (читай "студента/школьника") sic! -- идеальный. однако, у него есть несколько минусов:
  • сейчас паскаль почти также мертв как smalltalk
  • нет достойной, современной реализации (не использовать же Turbo Pascal 5.5)
  • потратить свое ценное время на изучение языка, после изучения которого нужно будет сразу же изучать новый язык, чтобы программировать что-то востребованное -- это видится мне непрактичным
последний пункт, как ты понимаешь, не является истинным ( ... )

Reply


Leave a comment

Up