成为专业的程序员/软件工程师

时间:2010-04-15 21:03:13

标签: repair

这不是严格的编程,更多的是关于成为程序员,所以我很抱歉,如果它不是在这个论坛上提出的正确问题(mod,请删除,如果不是)

我是美国陆军的计算机技术人员,一旦我出去,我将有8年的工作时间。我即将通过在线学校开始攻读学位(在我还在的时候,我可以让军队支付费用的唯一方法),我正在认真考虑获得计算机科学学位。

我很喜欢电脑。我可以把一个人拆开,然后闭着眼睛把它放回去。我是A +和Network +认证的,在我离开之前我还有其他几个CompTIA证书。我可以和这个星球上的任何人一样工作Windows,而且我对Linux并不陌生。计算机工作是我一直想要的。

但是,除了作为一名计算机技术人员外,该领域的每项工作似乎都需要编程能力。我喜欢编程作为一种爱好。我在高中编写了TI BASIC,我正在自学Python,但就我的经验而言。那种问题让我想到了我的问题:

  1. 我一直听说第一语言是最困难的,一旦你学得很好,那么所有其他语言都适合你。真的吗?就像,如果我在接下来的八个月里掌握Python,那么在学习它或其他任何一个月内,我是否能够在任何其他OO语言中获得至少公平的熟练程度?

  2. 烧坏有多容易?我害怕的最重要的事情就是烧掉编程。如果我严格按照自己的个人愿望编程,我可以整天走,但我可以想象,经过几年的编程,截止日期和某些规格,它很容易被烧掉。特别是如果它是一个涉及十几个不同设计师的大项目。

  3. 从我告诉你的事情来看,我是否有资格担任普通技术人员(极客小组或可能经营电脑维修店)。

  4. Python是一个很好的学习基础吗?我听说它让你讨厌其他语言,因为他们在学习时感觉更复杂,但它也是一种很好的初学者语言。

  5. 如果您是专业程序员,您是否也有同样的恐惧?

  6. 您是否会建议我坚持使用计算机修复和Python而不是尝试进入企业编程? (只是从你在这个帖子中读到的内容,无论如何)

  7. 感谢您花时间阅读所有这些并回答(如果您这样做)

13 个答案:

答案 0 :(得分:23)

  

第一种语言是最困难的,

第一个任何是最困难的。尝试从滑雪板切换到滑雪板。

  

如果我在接下来的八个月中掌握Python,那么在学习它或其他任何一个月内,我是否能够在任何其他OO语言中获得至少公平的熟练程度?

一个月?不,最终?是。

  

烧坏有多容易?

这是一份工作。在任何工作中燃烧都有多容易?

  

Python是一个很好的学习基础吗?

这让你讨厌其他语言,因为他们在学习时会感到更加复杂。

所以?这是一份工作。每隔几年就有一项新技术,(a)你必须学习,(b)与之前的任何技术都不能很好地比较。

对此表示糟糕。经过35年的编程,我只能说你是对的。一切都是新事物,你所知道的一切都更好。

  

如果你是一名专业程序员,你有同样的恐惧吗?

没有。你提到的所有事情都不重要。

害怕犯罪管理不善的公司倒闭。这是值得害怕的事情。

害怕新技术?请。潜入。找一份工作。如果你不喜欢它,建立新技能,获得其他工作。

  

你会建议我坚持使用电脑维修和Python而不是尝试进入公司编程吗?

同样,没关系。 30年后,这一切都不存在,我们都将使用尚未在电影中甚至不存在的用户界面上发明的语言进行编程。

当我开始时,我们在纸卡上打了我们的程序。真。

如果你害怕未来,你就害怕生命本身。别担心。尽可能快地建立新技能。

答案 1 :(得分:5)

  1. 第一种语言肯定是最困难的,因为您还需要像数组,对象集合和程序流一样学习概念。你学到的第二种语言有很多“哦,从语言一开始就是这样的,除了差别很小”

  2. 我无法想象自己会烧掉编程,但那可能是因为我真的很喜欢它并且我开发了一种方法。我经常喝水或喝茶,如果我没有取得任何进展(即:我被困住了),我休息一下,试着忘记我正在编码的东西。我回来时问题会更清楚。

  3. 我自己研究过A +和Network +,我当然会说你有经营维修店或成为普通PC技术员的技能。

  4. 我还没有学过python(我计划很快),但从我所读到的,它是一种强大的面向对象语言,具有许多现代功能。所以我希望它确实是一个不错的开始。我个人在90年代开始用Java开始学习C / C ++。我认为学习Java,C#或C ++(没有具体的顺序)作为程序员很重要,因为它们是目前最流行的语言。

  5. 我很幸运,因为我在小学时就知道我想编码。所以我不能说我和你有同样的焦虑。

  6. 在做出决定之前,您应该学会编码。一旦你开始进入它,你会看到它是否适合你。我会寻找技术工作,花时间或个人时间学习编程。如果你喜欢它而不是修理,那就去潜水吧。

  7. 我的背景:我上个学期是滑铁卢大学软件工程专业的计算机科学专业。我目前正处于与谷歌和亚马逊面谈的后期阶段。我在RIM和Sybase以及其他一些开发公司实习时间相当于2年。

答案 2 :(得分:5)

Google的研究主管彼得•诺维格(Peter Norvig)在成为专业人士方面发表了一篇很好的文章:

http://norvig.com/21-days.html

以下是他的文章中的一些要点(直接引用,彼得的话):

  • 对编程感兴趣,并做一些因为它很有趣。确保它保持足够的乐趣,以便你愿意花十年时间。

  • 与其他程序员交谈;阅读其他程序。这比任何书籍或培训课程都重要。

  • 程序。最好的学习方式是边做边学。更具技术性地说,“特定领域中个人的最高绩效水平不能作为扩展经验的函数自动获得,但即使是经验丰富的个人,由于经过深思熟虑的努力,也可以提高绩效水平。 “。 (第366页)和“最有效的学习需要明确定义的任务,并为特定的个人提供适当的难度级别,提供信息反馈,以及重复和纠正错误的机会。” (第20-21页)“实践中的认知:日常生活中的思想,数学和文化”一书是对这一观点的一个有趣的参考。

  • 如果你愿意,可以在大学学习四年(或者在研究生院学习更多)。这将使您能够访问一些需要凭据的工作,这将使您更深入地了解该领域,但如果您不喜欢上学,您可以(有一些奉献精神)获得类似的工作经验。无论如何,单靠书本学习是不够的。 “计算机科学教育不能让任何人成为专业程序员而不仅仅是研究画笔和颜料可以使某人成为专家画家”,新黑客词典的作者Eric Raymond说。我雇用的最好的程序员之一只有高中学位;他制作了很多很棒的软件,有自己的新闻组,并且有足够的股票选择来购买他自己的夜总会。

  • 与其他程序员一起完成项目。成为一些项目中最好的程序员;在其他一些人身上是最糟糕的。当您处于最佳状态时,您可以测试自己领导项目的能力,并通过您的愿景激励他人。当你最糟糕的时候,你会了解大师的所作所为,并了解他们不喜欢做什么(因为他们会让你为他们做的)。

  • 在其他程序员之后开展项目工作。参与理解其他人编写的程序。当原始程序员不在时,看看理解和修复它需要什么。考虑如何设计您的程序,以便让那些将在您之后维护它的人更容易。

  • 学习至少六种编程语言。包括一种支持类抽象的语言(如Java或C ++),一种支持函数抽象(如Lisp或ML),一种支持语法抽象(如Lisp),一种支持声明性规范(如Prolog或C ++模板),一种支持协同程序(如Icon或Scheme),支持协方程(如Sisal)。

  • 请记住,“计算机科学”中有一台“计算机”。知道计算机执行指令需要多长时间,从内存中获取一个字(有和没有缓存未命中),从磁盘读取连续的字,并寻找磁盘上的新位置。 (这里的答案。)

答案 3 :(得分:3)

通往专业软件工程师的经典途径是通过计算机科学学士学位(或软件工程师,但专业化很少),实习期为sophmore和初级暑假。您有资格启动BSCS并且表现良好。

第一种语言令人难以置信,令人沮丧,第二种语言重新学习如何思考,第三种语言相当琐碎。

关于Python,它是一种可接受的第一语言,不会被打喷嚏。为了完整起见,当你去找工作时,你会想知道汇编/ C / C#/(F#,Haskell之一,一个Lisp)。

我不是Python专家,所以我拒绝评论其OO设施是否符合要求。

计算机总是需要修复。您可以在IT / IS世界中找到一个适合您当前技能的高质量系统支持的利基市场。 (www.serverfault.com是一个了解世界这一地区的好地方)。

编辑:

基本限定符是欲望和你磨练硬物并进入柔软和耐嚼层的能力。这是一项工作,它的工作,它可以很有趣,但在一天结束时,工作总是有效的。你想做这项工作还是其他工作?只有你能回答这个问题。

答案 4 :(得分:3)

编程是一个很棒的选择,对很多人来说它看起来很怪异而且沉闷,但这是一个你永远不会停止学习的工作。

话虽如此(并且不想重复其他人已经说过的话),如果你想进入公司,那么你必须准备好做你的时间 - 你可能不得不从最底层开始在一个废话的工资,并在钱变得好的几年前做。

你在网络和建设方面的背景将会非常好,它将使你成为一个非常全面的开发人员,因为你已经理解了正常编程世界之外的概念。

答案 5 :(得分:2)

  1. 是。之后您将轻松学习新语言。您可以在一个月左右的时间内学习您的第二语言,如果您在该编程语言中有一些有趣的任务,否则您可能需要花费数年时间才能获得它(这是我的个人经历)。< / p>

  2. 每个人和年龄不同。 :)

  3. 是的,但我(主观上说)会尝试进入编程世界

  4. 嗯,你可以开始学习BF并热爱那之后的任何事情。我认为Python开始时很棒,但是可能之后的任何事情都会让人感觉太过冗长。

  5. 以及其他许多人

  6. goto我的回答3

  7. 欢迎你

答案 6 :(得分:2)

  1. 学习任何语言都有助于学习后续语言,但每种语言都有自己的优点和缺点,需要时间来理解。您可以做的最佳事情就是尝试尽可能多地使用尽可能多的语言体验。你肯定会烧坏,除非你有学习每一个的目的,所以不要一次拿20个,每个你学习确保它背后的原因(例如,学习JavaScript所以你可以开发一个基于AJAX的网页。)
  2. 你容忍倦怠直接与你正在进行的项目的动机有关,以及你在项目中对你不感兴趣的部分的坚韧。我发现在后期阶段我会本能地采用宠物项目来防止自己厌倦死亡,这无疑是有帮助的。
  3. 我认为你是合格的,但这些职业与软件应用程序开发有些无关。我的建议是尝试找到一个实际涉及编程的入门级工作;如果你喜欢计算机科学,我认为你会发现它更令人满意。
  4. 我开始使用BASIC,然后迅速迁移到C和C ++,然后分支到我需要学习的任何东西来完成工作。我的建议(与答案#1有些相关)是,无论你从哪里开始,继续。不要说“用封面来判断一种语言”,可以这么说;而是为自己学习,并得出你自己的喜好/鄙视它的结论。
  5. 没有真正的恐惧;事实是,公司喜欢寻找,聘用和留住顶级开发商。只要你热爱软件开发,就会反映出你所制作的东西,这些东西会被想要雇用的人注意到。
  6. 我会尝试分阶段的方法。开始自己的宠物项目,学习Python,熟悉编程,看看你有多喜欢它。我认为能够回答你在这里提出的问题的最好的人就是你自己;从小处开始,如果你喜欢,可以大一点。从那里撤退或前进,直到你确信一条轨道或另一条轨道是你真正的计算机激情所在。

答案 7 :(得分:2)

1)其他语言将更容易实现,因为在很多方面它们实际上只是围绕编程概念的语法。一旦你理解了这些概念,剩下的就是理解一种语言的细微差别和语法,这种语言变得更容易,因为每种语言作为概念在语言之间并没有真正改变太多,所以不会妨碍你学习语法。

2)倦怠取决于很多因素,但我很少发现自己在编程上倦怠。作为一名程序员,总有很多事情要做,这可能是一项非常多样化的工作。另外要考虑的是,除非您自己编程,否则这是一项非常互动的工作,需要您自己,其他程序员和需要您技能的业务人员之间的持续沟通。阻止我消磨的是在编程世界中需要学习和玩耍的惊人数量:)

3)看起来你很有资格做这样的工作。但是,更相关的问题是,你想做什么?

4)我不是蟒蛇专家,但我确实知道一点。每种语言都有其细微差别,而python也不例外。我认为学习编程和成为专家的合理选择将使你很好地学习其他面向对象的语言。如果您正在认真考虑编程职业,那么Java或C#可能是更好的选择,因为这些是企业界使用的两种最常用的语言。它们在句法上也非常接近。

5)作为一名初级程序员,我确实担心职业倦怠,“这是正确的职业选择”,但这并没有持续很长时间,因为我意识到我喜欢编程,而且需要学习丰富的东西并申请让我高兴和占领。当然,我在工作中度过了糟糕的日子,我完全厌倦了我目前正在做的工作,但这些很少见,我非常重视作为程序员所带来的各种机遇和挑战。

6)嗯,编程适合你吗?这只是你的答案,但你可能想要想到的一些问题:你喜欢编程而不是硬件吗?除了维修之外,还有其他方法可以聘用您的硬件人才吗?例如,您是否喜欢电气工程(您可以同时兼顾您的硬件才能和基本编程技能)?

在我的工作地点(大型金融公司),在我看来,程序员可以获得比计算机技术人员更多的机会,丰富多彩和有趣的工作,但这可能是我自己的偏见:)跟你一起去,其余的将随之而来。

很棒的问题,祝你搜索顺利。

答案 8 :(得分:2)

首先关闭。如果您根据经验提供了一些背景信息,我认为这会有所帮助。我是一名技术经理,拥有20多年的各种技术,但我的热情是用户界面,我目前正在开发一个开发Flex应用程序的项目。

现在转到我的输入。

1)您希望从提供免费工具的结构化语言开始。在我看来,Java是一个很好的。如果你想从事这个事业并且听起来像你那么,那么学位是一个很大的优点。我没有任何Python经验,但根据我的经验,它通常不是一种很好的学习语言。

2)取决于..我已经做了20多年了。正如我告诉很多人,找到你的激情并遵循它。当然,对你的选择很聪明起着很大的作用,但如果你想要一个机会和长寿,那么对你所做的事情充满激情就是其中很重要的一部分。如果您已经在质疑这种可能性,请进行更多研究,找到您真正喜欢的软件领域,并努力学习该领域的所有知识。 (对我来说是UI)。

3)Geek小队不是软件开发的内容。

4)在我看来......我会从Java开始。

5)不。我从Pascal到C / C ++再到Java再到Flex。对于具有开放思想和灵活性的人来说,这个领域有机会。大多数开发商最担心的是离岸。绝对是生活中的事实,而且我职业生涯中最令人沮丧的事情完全不在实际编码之内。这是一个过程以及它如何与通常吸引最大痛苦的企业合作。

6)找到你的激情并遵循它。在我看来,它给你最大的成功机会。哦..并且是现实的。我想打棒球,但对我来说不太现实。

答案 9 :(得分:1)

听起来你已经可以在维修店或大公司的IT部门找到工作。从那里开始,总有可能移动其他职位。

我自己是一名软件开发人员,我可以理解其中的魅力! Python是一门很好的学习语言 - 它相对容易学习,而且你可以很快地变得有用。如果你想快速成为一名经验丰富的开发人员,我建议你为下一种语言学习更难的东西 - C,然后是C ++。它们比Python低得多,它们对你的工作量更少。这使您最初的工作效率降低,但这意味着它们运行得更快。从学习的角度来看,它们将迫使您更多地了解计算机实际运行程序的方式,这将使您成为更好的程序员。

最重要的是,你已经拥有了一些你无法购买或学习的东西。你对这个领域充满热情,学习如何在自己的时间编程,并且你关心做好工作。这给了你一些(可悲的)许多专业开发人员不再拥有的东西。

祝你好运!

答案 10 :(得分:1)

1)是的,学习第一语言将是最困难的。学习未来的语言肯定会更容易,虽然它仍然需要一些工作。

2)我上大学并获得计算机科学学位,现在已经是软件开发人员超过8年了。我绝不会被烧掉。恰恰相反......感觉我正在进入我的鼎盛时期: - )

3)当然,你准备好了。

4)是的,你学习面向对象的语言真是太好了。我看到的大多数职位空缺都是针对.NET或Java开发人员的......都是面向对象的语言。

5)我最担心的是,在第一次学习时,我不会对程序员足够“好”。让我们面对现实,编程可以是一个复杂的世界,但很有趣。我们都有恐惧。如果你喜欢编程并且你是自我激励的,那么你就会成功。

6)你应该做你最喜欢的事。对于它的价值,与修理计算机相比,你很可能会在开发软件时获得更多的支持。

答案 11 :(得分:1)

已经有一些明智的回复。我只想指出一个好的计算机科学计划会让你接触到许多不同的主题,而不是重复它们。如果您能找到一个具有CSAB认证的在线计划,那将是非常好的,因为他们所包含的标准都是非常明智的。自己学习python是一个很好的开始,但是你可能不会想到自己学习的很多主题是成为一个非常全面的开发人员的关键,例如: 计算机组织
操作系统
数值分析
算法分析

答案 12 :(得分:0)

  1. 就像有人说的那样,第一件事情很难。编程没有什么不同,可能需要一段时间才能绕过它。事情慢慢地点击到位。
  2. 无法回答这个
  3. 最有可能。为军队工作肯定在简历上看起来很好。
  4. 我讨厌它,因为一旦你看了其他代码,就会让你成为barf。学习类似C#的东西。
  5. N / A
  6. 听起来你宁愿修理电脑。我想你可以编程作为一个爱好,后来成为开发人员,但这需要时间。