Будет ли новичок, изучающий C и Scheme одновременно, считаться плохой практикой? - PullRequest
3 голосов
/ 07 августа 2010

Я работал с языком Си в течение прошлого года (?) До двух месяцев до сегодняшнего дня, когда я решил более серьезно относиться к своему обучению.В некоторых областях языка я чувствую себя комфортно, но я знаю, что по чьему-то мнению я все еще считаю себя любителем и могу многое, гораздо больше узнать.

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

SICP считается одной из самых влиятельных книг, которую каждый программист должен прочитать в соответствии с stackoverflow и множеством amazon рецензирующих комментариев, поэтому, естественно, я выбрал его - совсем недавно приобрел твердый переплет.Я взволнован, чтобы учиться в надежде получить какой-то столь необходимый опыт, но меня беспокоит только то, будет ли это проблемой для кого-то на ранней стадии, так как я пытаюсь выучить два языка с разными парадигмами однажды.Я надеюсь, что изучение Scheme и концепций из этой книги поможет мне мыслить по-другому и более абстрактно, а не путать меня.

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

Ответы [ 8 ]

8 голосов
/ 07 августа 2010

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

Веселитесь!

2 голосов
/ 08 августа 2010

Я не согласен с некоторыми другими ответами.Это не то же самое, что изучать два разных предмета одновременно: вы генерируете один и тот же результат (полезную компьютерную программу) в C или в Scheme, но вы делаете это по-разному.В университетах студенты могут посещать занятия на разных языках одновременно, но теоретически эти учебные программы курируются вдумчивым факультетом, который пытается избежать путаницы среди студентов.

Хотя, безусловно, можно изучать оба языка.и Схема в то же время, они могут оказаться не дополняют вас.Я бы порекомендовал действовать по вашему усмотрению, но как только вы попали в грубый патч, вы можете сосредоточиться на одном за раз.После HtDP это отличная идея, если вы новичок в программировании.Если вы знакомы с программированием в целом и хотите изучать C - это хорошая цель!- тогда вы можете сосредоточиться на том, как писать программы на C. Главное, что вы сначала хотите научиться писать программы , а затем вы можете сосредоточиться на изучении определенных языков.

2 голосов
/ 07 августа 2010

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

Пока вы можете держать их отдельно, важен не сам язык.Вместо этого сосредоточьтесь на том, что делает этот язык и что вы можете с ним сделать.

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

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

2 голосов
/ 07 августа 2010

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

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

2 голосов
/ 07 августа 2010

Я думаю, ты будешь в порядке. Это похоже на изучение математики и химии одновременно, и большинство людей справляются с этим просто отлично. (За исключением людей, которые не понимают математику и химию и поступают в гуманитарные науки;))

1 голос
/ 08 августа 2010

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

0 голосов
/ 09 августа 2010

Обучение C сделало меня лучшим программистом на Scheme и наоборот. Проведя годы со Scheme и Common Lisp, я почти год программировал на C. Когда я возвращаюсь к Scheme, мне гораздо легче выразить себя, потому что я знаю, в каких вещах машина хороша; Си помог мне развить здравый смысл для алгоритмов. Знание Scheme перед тем, как перейти к C, позволило мне развить некоторые нестандартные идиомы, изучая стандартные. Я думаю, что, поскольку эти два способа абсолютно разные, и оба имеют свои преимущества, они являются двумя лучшими языками для освоения.

0 голосов
/ 08 августа 2010

Еще одна причина, по которой вы знакомы как с C, так и со Scheme, - это интерфейсы внешних функций (FFI), предоставляемые почти всеми реализациями Scheme. Вы можете быстро создать прототип продукта в Scheme (или в каком-то другом Lisp), а затем вы можете обнаружить, что вам нужно оптимизировать некоторую часть кода для скорости. Вы можете переписать эту часть в C и вызвать вашу быструю функцию C из Scheme, используя FFI. Или вам может понадобиться связать некоторую библиотеку (GUI, базу данных и т. Д.) Со Scheme. Ваш опыт C в сочетании с FFI поможет вам здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...