C ++和python同时进行。它可行吗?

时间:2010-08-05 15:29:47

标签: c++ python

我对编程完全陌生,好像我在过去10年里拥有博士学位作为分子生物学家。有人可以告诉我:如果我同时注册C ++和python,会难以处理吗?我也是全职员工。这两门课程在同一日期开始和结束,为期3个月。由于各种复杂的原因,今年秋天是我唯一可以学习这两种语言的时间。请指教。 GillingsT

更新 关于我自己的更多细节:正如我所说,我在分子遗传学方面获得了博士学位。我现在希望能够获得编程技能,以便我可以将其应用于生物信息学 - 如序列操作和途径分析。我被告知Python非常适合,但我们的课程不包括初学者的基础知识。我找到了一位Comp Sci教授,他建议我在学习Python之前先学习C ++。所以我陷入了这种困境(加入其他物流)。

8 个答案:

答案 0 :(得分:6)

你的头上会漏洞。

Python的数据结构和内存管理与C ++截然不同。

无论你先“获得”哪种语言,你都会喜欢。另一个你会讨厌的。实际上,你会对一种语言缺乏另一种语言缺乏的奇怪事物感到困惑。一种语言是合理的,合乎逻辑的,并不令人惊讶。另一个将是一堆临时决定和怪癖。

如果你一直学到一个 - 本身 - 你可能会更快乐。

我发现大多数人可以更轻松地将语言添加到专业知识库中。

[不是全部,但是。有些人习惯于他们学习的第一语言,他们挑战新语言的每一个特征都是荒谬的。我有一个Java类的人只想抱怨Java不是Fortran的众多方式。 Java中所有类型特定的东西都适合他。许多讨论都必须缩减,“就是这样。如果你不喜欢它,请与Gosling一起讨论。我的工作不是为了证明Java的合理性;我的工作就是让你能够工作用java。现在可以继续吗?“]

答案 1 :(得分:3)

如果您不熟悉编程,我会说从C ++类开始。如果您掌握了它并享受编程,您可以随时学习Python。几乎所有编程语言都有很多好书和互联网资源,你应该能够在业余时间自学任何语言。我建议在正式课堂上学习第一语言,以便更容易学习编程背后的一般概念。

编辑:为了澄清我想要提出的观点,我的建议是采取更适合初学程序员的课程。首先要学习的重要事项是编程的基本原理。这些几乎适用于任何语言。由于您可以在线或在书店/图书馆获得丰富的资源,您几乎可以自学任何您想要学习的编程语言。但是,首先,您必须掌握基础知识,并且通常(至少在我的经验中)介绍C / C ++类在编写基础知识以及语言本身方面做得很好。

由于您是初学程序员,我不建议您同时学习两种语言(特别是如果您正在尝试同时学习基础知识)。这是很多非常相似(但又非常不同)的信息,可以跟踪你的想法,就像试图同时学习两种全新的口语一样。你可能能够完美地处理它,但至少对于我认识的大多数程序员来说,先掌握一种语言然后开始学习第二种语言要容易得多。

答案 2 :(得分:1)

我认为根据情况(全职员工等)学习一种语言会很难。选择一个,然后再研究另一个。您将从任何一种语言中学习基础知识。

至于“选择哪种语言”......我专注于C ++,并且知道一点python。 C ++更难,更灵活,更适合制作“传统”可执行文件。

我建议从C ++开始。您将学习更多概念(其中一些概念在p​​ython中不存在),并且在C ++之后学习python不会成为问题。

答案 3 :(得分:1)

修改

根据您对this question的评论,Python课程似乎不适合初学者程序员。他们可能会涵盖一些更高级的编程主题,而不涉及程序流程的基础知识,这些基础知识非常重要。因此,如果C ++课程面向初学者,那么我建议您参加C ++课程并自学Python。

There is a wealth Python教程。 official one也非常好。您不必等待学习Python,当然,您可以通过转到任何这些教程来立即学习。我与Alan Gauld联系的第一个教程是针对非程序员而且质量非常高。他也是python tutor list的定期撰稿人/主持人。如果你想真正学习Python,订阅那个列表并在你拥有它们时提出问题,并尽力回答所提出的问题 - 这就是我学习Python的方法,并且我用我的大部分知识和理解来信任这个过程。作为一名博士,你可能已经无数次地看到教别人帮助你更好地保留你的知识并迫使你真正理解这些概念。

当你开始学习时,有一个很棒的Python工具包,名为Python (X,Y),专为进行科学类计算而设计。它有各种各样的好工具。


如果您有任何编程经验,那么您应该能够轻松地处理两门课程。我的意思是,如果您能理解以下两个程序,您应该能够轻松地执行课程加载。

的Python:

elements = ['Sn', 'Pb', 'Au', 'Fr', 'F', 'Xe', 'H']

for element in elements:
   if element == 'Sn':
      print 'Tin'
   elif element == 'Pb':
      print 'Lead'
   elif element == 'Au':
      print 'Gold'
   else:
      print 'Other'

C ++

#include <stdio>
#include <string>
using namespace std;

int main(){
    string name;
    int age = 0;
    cout << "Please enter your name: ";
    cin >> name;
    cout << "Please enter your age: ";
    cin >> age;
    cout << "Hello " << name << "! You are " << age << " years old!" << endl;
    return 0;
}

即使你不确切知道发生了什么,在程序中,如果你有一个想法,你应该做得很好。这些是你期望在课程的前几周看到的典型课程,如果你能看到它们并弄清楚发生了什么,你可能至少比普通学生更好。

如果你看看这两个程序并想一想,“......我真是太困惑了!”,那么你应该只学习Python课程。 Python使得比C ++更容易掌握概念(和编写程序)。您从任何一种语言中获得的知识都可以轻松转换为另一种语言,但您必须在C ++中接触到比Python更多的知识。例如,C ++程序在python中看起来像这样:

name = raw_input("Please enter your name: ")
age = raw_input("Please enter your age: ")
print "Hello", name, "! You are", age, "years old!"

您通常可以一次关注一个概念,而不必担心其他语言功能可能引入的错误。

但是如果你能在5分钟内猜出这两个项目中发生了什么,我会继续学习这两个课程 - 作为一名分子生物学家,你必须做出充分的逻辑思考。对编程至关重要(对于成为高中生而言并非如此重要)。

祝你好运!

答案 4 :(得分:0)

我认为这完全取决于班级的水平或难度,而且语言中的语言本身并没有那么大的差别。

对我来说,编程是95%逻辑,约5%处理语法和实际语言。我开始在高中和大学期间编程(目前是计算机英语大四),重点是了解事物的思维方式,学习如何逻辑思考问题,然后开发解决方案。我们的类很少是基于C ++或Java或Python的类。当然有一些专注于更模糊的语言,如x86 Assembly,但即便如此,这个想法更多的是学习如何攻击问题。作为一名MCB人,你应该没问题。

对于其他5%,即实际语言,以两种不同语言学习两门课程将导致交叉。当然,你在两者中学到的很多内容都可以应用于其他内容,例如循环,条件,类等。但是语法会让你感到困惑。当你不想要的时候,你会发现自己正在编写另一种语言的语法。简单的事情,如if语句

的Python:

if x > y

C ++:

if (x > y)

但除语法问题外,我认为所有语言都差不多。当然人们会不同意,是的,不同的语言比其他语言更好,但如果你没有参加研究生课程,这些都是非常基本的入门课程,你学到的东西实际上可以补充你正在学习的其他课程。

但当然,你要考虑的最大问题是时间。即使是一个全日制学生参加多个繁重的编程课程也不聪明。通常,作业的时间比预期的要长,或者比首次实现的要困难得多。因此,如果您要处理多个涉及编码的长期项目,您可能只想挑选一个类。特别是看到你在其中学到的很多内容很容易被翻译成另一个,反之亦然。

答案 5 :(得分:0)

我认为你自己几乎回答了这个问题:

  

有人告诉我Python很棒,但我们的课程不包括初学者的基础知识。

换句话说,Python课程不是一门入门课程 - 它假设您已经知道编程的基础知识。这可能就是教授建议你先学习C ++课程的原因。

答案 6 :(得分:0)

我来自计算数学背景,并且已经在C ++和python中编写了相当大的(商业和学术)程序。它们是非常不同的语言,我可能会先学习一个(或只有一个)。

哪一个取决于你希望能用语言做什么。

如果你想用你的语言构建有用的东西(不是过度)计算或数据量很大,那么使用python,你会更快地得到一些有用的东西。

如果你需要做一些有用的计算重或数据量很大的东西,那么你可能需要使用C ++。但是你需要更长的时间来完成你需要做的事情 - 学习C ++需要一段时间,然后有时间来有效地编写数据量大或计算量大的代码。

现在有些人会说python可以很好地处理数据/计算繁重的工作......但在分子生物学中,“重”可能意味着非常重。

话虽如此,如果可以,我的建议是使用python。

答案 7 :(得分:0)

您必须了解您所在领域的人员正在编程,以便您可以利用现有的库/ API /项目。如果你的领域有一些标准的酷酷的FORTRAN库,那么你不会用C ++或Python来重新发明这个轮子。 (而且,如果是这样,上帝帮助你,我很抱歉。)无论如何,你谈到的CS教授可能不知道计算分子遗传学家使用什么。