Личный контекст: я изучал C ++ формально последние 6 месяцев в университете. До этого я баловался JavaScript в течение года. Сейчас я думаю об изучении Python в течение месяца после школы.
Разделив свое внимание на ранних этапах учебного процесса, снижаю ли я эффективность своего обучения? Должен ли я провести месяц, продолжая в C ++? Или никогда не рано изучать новый язык?
programming-languages
learning
efficiency
предвосхищение
источник
источник
Ответы:
Мой опыт работы с Python ограничен некоторым игровым кодом, только немного более сложным, чем hello world, так что это не будет очень детальный ответ для конкретно Python, но я могу сказать вам следующее:
Различия между языками заключаются в деталях, таких как синтаксис, и некоторые особенности языка будут различаться (например, различные способы обработки ошибок, возможности ввода-вывода и то, как компиляторы преобразуют ваш ввод во что-то исполняемое), но C ++ и Python предлагают одинаковое парадигмы, поэтому решение проблем может быть сделано практически одинаково с обоими языками. И C ++, и Python являются императивными и объектно-ориентированными, так что вы, вероятно, довольно быстро освоите python, если освоитесь с C ++, когда освоите новый синтаксис, используя методы решения проблем, которые вы освоили в C ++. Если вы хотите, вы также можете использовать Python для функционального программирования, но я никогда не касался этой части, поэтому я не могу вам многое рассказать об этом.
Это слишком рано? Я не могу точно сказать из вашей истории однозначно да или нет. Вы уже достаточно уверены, чтобы писать полные (GUI) приложения на C ++? (т. е. использовать библиотеки, более сложные языковые функции, такие как дженерики и / или шаблоны и т. д.) Я думаю, что изучение новой языковой парадигмы гораздо сложнее, чем изучение нового языка в той же семье парадигм. Когда вы выходите на новую территорию парадигмы, вам придется потратить гораздо больше времени на то, чтобы получить хорошее представление о том, как решать проблемы с этой парадигмой. Между ОО-языками существуют различия в том, как обрабатывается наследование и как данные передаются в память при передаче параметра / аргумента в функцию, влияющую на производительность. Но, чтобы начать, они, как правило, поначалу беспокоят.
Я предполагаю, что если вы достаточно уверены в C ++, что можете сделать что-то большее, чем просто привет, то все в порядке. Поверхностное изучение многих языков поможет вам понять примеры кода независимо от используемого языка, но создание собственного кода требует более глубокого понимания того, как работают языки и как они отличаются друг от друга.
PS Когда я хочу научиться использовать новый язык поверхностно, я обычно пробую следующие вещи, чтобы понять синтаксис языка и поверхностную работу:
источник
Ну, конечно.
В этом нет сомнений, иногда еще рано изучать новый язык программирования.
Простейший случай - это когда язык эль-стинко выходит и прежде чем кто-либо укажет на его непригодность, изучая его, вы повредите свой мозг. Пара, которая приходит на ум, включает в себя BASIC, FORTH и APL.
Для более сложного случая один из великих компьютерных ученых описал эту проблему, которая очень кратко заявила, что практика становится постоянной, и есть много дисциплин, которые следует изучить, прежде чем изучать компьютерные языки, чтобы язык не искажал более фундаментальное понимание , По его словам:
Противника, который только что увлекся программированием, зовут Эдсгер Дейкстра, и у него была очень выдающаяся карьера. Он был награжден премией ACM Turing со следующей ссылкой:
Документ, в котором он говорит о преждевременном изучении языков программирования:
«О жестокости по-настоящему обучения информатике» http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
Кроме того, пожалуйста, не зажигайте меня, я просто посланник.
источник
Всегда ли рано изучать новый язык?
Я бы сказал, да. Если вы все еще придерживаетесь самой идеи, что компьютер может действительно делать то, что вы говорите, то изучение второго языка, вероятно, просто запутает вас.
Но если вы дойдете до точки, когда вы поймете, что компьютер делает именно то , что вы ему говорите, независимо от того, насколько он глуп, то есть вероятность, что вы достаточно разумно понимаете свой первый язык, который смотрит на второй (и третий !) язык не нарушает ваш фокус
источник
Вы не можете сделать оба? Я хотел бы сделать проект на C ++ и изучить биты Python (только потому, что это так здорово), вы могли бы решать проблемы на ProjectEuler.net, используя Python
В общем, я считаю плохой идеей выучить язык, оставить его и начать изучать новый. Нужно быть гибким, работая с различными парадигмами на ранних стадиях. Но это только то, что я думаю.
источник
Практикующему программисту я безоговорочно сказал бы, что изучение нового языка почти никогда не является плохой идеей. Студенту университета я бы призывала к некоторой осторожности, в зависимости от того, какие уроки идут. Причина в том, что на школьном экзамене вам часто приходится рассказывать детали языка без использования среды компиляции / выполнения, которая легко укажет на ваши ошибки.
Особенно, когда у вас есть опыт работы всего несколько месяцев, очень легко перепутать детали в уме. Если вы заботитесь о своих оценках и берете класс с такими экзаменами, я буду осторожен. В реальном мире это не проблема.
редактировать : я первоначально сказал синтаксис, но несинтаксические детали так же важны для профессоров, и их гораздо больше.
источник
append()
VS.push_back()
для списка, который является чем - то даже опытные программисты должны искать , если они не использовали определенную функцию на определенном языке , в то время. Возможность вспомнить синтаксис на месте, несомненно, помогает, но для подавляющего большинства рабочих мест это никогда не требуется .