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

这不是严格的程序devise,更多关于程序员,所以我很抱歉,如果它不是一个正确的问题,要求在这个论坛(国防部,请删除,如果不是)

我是美国军队的计算机技术人员,一旦出门,我就有八年的工作经验。 我即将通过在线学校获得学位(我仍然可以让军队付钱的唯一方式),我正在认真考虑获得计算机科学学位。

我用电脑很棒。 我可以分开一个,闭上眼睛放回去。 我是A +和Network +authentication的,而且在获得其他CompTIA证书之前, 我可以在Windows上工作,也可以在这个星球上工作,而且我对Linux也不是很糟糕。 电脑工作是我一直想要的。

但是,除了做计算机技术人员之外,似乎现场的每一项工作都需要编程能力。 我喜欢编程作为一种爱好。 我在高中对TI BASIC进行了编程,并且自学Python,但就我的经验而言。 这种问题让我想起了我的问题:

  1. 我一直听说第一语言是最难的,一旦你学好了,那么所有其他的语言都会适合你。 真的吗? 就像,如果我花了接下来的八个月掌握Python,在学习之后的一个月内,我几乎可以在任何其他OO语言中熟练使用它?

  2. 烧坏有多容易? 我害怕的最大的事情就是烧毁编程。 如果我严格按照自己的个人愿望进行编程,我可以整天工作,但是我可以想象,经过几年的编程,到最后期限和某些规范之后,烧坏真的很容易。 特别是如果它是一个涉及十几个不同的devise师的大项目。

  3. 从我告诉过你自己的angular度来看,我是否有资格担任常规技术人员(极客队员或者运行电脑维修店)。

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

  5. 如果你是一个专业程序员,你有没有同样的恐惧?

  6. 你会build议我坚持电脑维修和Python,而不是尝试进入企业编程? (无论如何,从你在这个线程中读到的东西)

感谢您抽出时间阅读所有内容并回答(如果您确实如此)

第一语言是最难的,

第一件事情是最困难的。 尝试从滑雪板切换到滑雪板。

如果我花8个月的时间掌握Python,那么在学习它之后的一个月内,我是否能够至less熟练地使用其他OO语言?

一个月? 没有最后? 是。

烧坏有多容易?

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

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

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

所以? 这是一份工作。 每隔几年就有一项新技术(a)你必须学习,(b)与以前的技术没有太大的区别。

非常失望。 经过35年的编程,我只能说你是对的。 一切都是新的坏事,你已经知道的一切都是好的。

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

不是,你提到的事情都不重要。

害怕犯错误pipe理的公司倒闭。 这是一件要害怕的事情。

害怕新技术? 请。 潜水。找工作。 如果你不喜欢它,build立新的技能,获得其他工作。

你会build议我坚持电脑维修和Python,而不是尝试进入企业编程?

再次,没关系。 从现在开始的30年,这些都不会存在,我们都将用在电影中不存在的用户界面上尚未发明的语言进行编程。

当我开始的时候,我们在纸卡上打了我们的节目。 真。

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

  1. 第一种语言当然是最困难的,因为你还需要像数组,对象集合和程序stream一样学习概念。 你学习的第二语言有很多“哦,这是从语言一,除了微小的差异”

  2. 我无法想象自己烧了编程,但这可能是因为我非常喜欢它,而且我开发了一种方法。 我经常喝水或喝茶,如果我没有取得进展(即:我卡住了),我会rest一下,尽量忘掉我正在编码的东西。 我回来的时候问题会更加清楚。

  3. 在学习了A +和Network +之后,我肯定会说你拥有经营维修店的技能,或者是一个普通的电脑技术人员。

  4. 我还没有学过python(我打算很快),但从我读到的这个东西,它是一个强大的面向对象的语言,有很多现代function。 所以我期望它是一个体面的开始。 我个人从九十年代开始用Java学习C / C ++。 我认为学习Java,C#或C ++(没有特定顺序)作为程序员是非常重要的,因为他们是目前最stream行的语言。

  5. 我很幸运,知道自从我读小学时就想写代码。 所以我不能说我有和你一样的焦虑。

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

我的背景:我是上个学期在滑铁卢大学攻读软件工程专业的计算机科学专业。 我目前正在采访谷歌和亚马逊的后期阶段。 我在RIM和Sybase以及其他一些开发公司实习了两年。

Google研究主pipePeter Norvig在成为一名专业人士方面发挥了重要的作用:

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

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

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

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

  • 程序。 最好的学习是边干边学。 更具体地说,“在给定领域中个人的最高绩效水平并不是自动获得经验的扩展,但是由于有意识地努力改进,即使是经验丰富的个人也能够提高绩效水平“。 (第366页),“最有效的学习需要一个明确的任务,对于特定的个人来说具有适当的难度,信息反馈和重复和纠错的机会。 (第20-21页)“日常生活中的认知实践:心智,math和文化”这一观点是一个有趣的参考。

  • 如果你愿意的话,在大学四年(或更多的研究生院)。 这将使你获得一些需要证书的工作,这会让你对这个领域有更深入的了解,但是如果你不喜欢上学,你可以(有些奉献)在工作中获得类似的经验。 无论如何,仅凭书本学习是不够的。 “新黑客词典”一书的作者Eric Raymond说:“计算机科学教育不能让任何人成为专家程序员,而不是学习画笔和色素可以使某人成为专家画家。 我聘请的最好的程序员之一只有高中学历; 他制作了许多优秀的软件,拥有自己的新闻组,并且有足够的股票select购买自己的夜总会。

  • 与其他程序员一起工作。 成为某些项目的最佳程序员; 对其他人来说是最糟糕的。 当你是最好的时候,你就可以testing你的能力来领导一个项目,并用你的愿景激励他人。 当你最糟糕的时候,你会学到主人做什么,并且你知道他们不喜欢做什么(因为他们让你为他们做)。

  • 在其他程序员之后处理项目。 参与了解其他人编写的程序。 当原始程序员不在的时候,看看需要什么来理解和修复它。 想想如何devise你的程序,使之后维护它的人更容易。

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

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

通往专业软件工程师的经典之路是通过计算机科学学士学位(或软件工程师,但专业化很less),实习你的sophmore和初中暑假。 你有资格启动BSCS并做得很好。

第一种语言是令人费解的,第二种语言是重新学习如何思考,第三种语言是相当微不足道的。

关于Python,这是一个可以接受的第一语言,不要被打喷嚏。 为了保持完整性,在你找工作的时候,你需要知道Assembly / C / C#/(F#,Haskell,Lisp之一)。

我不是一个Python专家,所以我拒绝评论它的OO设施是否合适。

电脑将永远需要修复。 您可能在IT​​ / IS世界中find适合您当前技能的高质量系统支持。 (www.serverfault.com是一个很好的地方看看世界的一部分)。

编辑:

基本的限定词是渴望和你的能力,通过艰苦的东西磨砺,并得到柔软和耐嚼的层。 这是一份工作,这是工作,它可以很有趣,但在一天结束时,工作总是工作。 你想做这项工作还是其他工作? 只有你可以回答。

编程是一个梦幻般的select,对很多人来说,它看起来令人讨厌和沉闷,但这是一个你永不停止学习的工作。

说了这样的话(不想重复别人已经说过的话),如果你想要进入一个公司,那么你必须准备好做好时间 – 你可能不得不从头开始工资待了几年,钱才变好。

你在networking和构build方面的背景将是非常好的,它将使你成为一个非常全面的开发者,因为你已经理解了正常编程世界以外的概念。

  1. 是。 之后你会很容易学习新的语言。 你可以在一个月左右的时间里学习第二语言, 如果你在编程语言中有一些有趣的事情要做,那么你可能会花上好几年的时间,而没有得到它(这是我个人的经验)。

  2. 每个人都随着年龄而变化。 🙂

  3. Yeap,但我(主观上)会试图进入编程世界

  4. 那么你可以开始学习BF,并喜欢之后的任何事情。 我认为Python是非常好的开始,但是可能以后的任何事情都会感觉太冗长。

  5. 还有其他许多人

  6. goto我的答案3

别客气

  1. 学习任何语言都有助于挑选后续的语言,但是每一种语言都有自己的优点和缺点,需要时间来训练。 你可以做的最好的事情就是尽可能多地使用尽可能多的语言。 你肯定会烧掉,除非你有学习每一个的目的,所以不要一次接受二十个,并且每个学习都要确保其背后有一个原因(例如学习JavaScript,以便开发一个基于AJAX的网页。)
  2. 你容忍的倦怠直接关系到你正在为自己所从事的项目工作的积极性,以及在项目中对你不太感兴趣的部分,你的肠道坚韧。 我发现在后面的阶段,我会本能地采取宠物项目,以防止自己无聊死亡,这绝对有帮助。
  3. 我想你是合格的,但这些职业与软件应用程序开发有些不相关。 我的build议是尝试find实际涉及编程的入门级工作; 如果你喜欢计算机科学,我想你会发现整体上更令人满意。
  4. 我开始使用BASIC,然后快速迁移到C和C ++,然后分支到我需要学习的任何东西完成工作。 我的build议(与答案#1有些相关)是,无论你开始,你都继续前进 。 不要“用封面来判断一种语言”,可以这么说; 而是自己学习,并自己得出你喜欢/鄙视的结论。
  5. 没有真正的恐惧; 事实是,公司喜欢find,聘用和留住顶尖的开发人员。 只要你喜欢软件开发,这将反映在你想要聘用的人会注意到的东西上。
  6. 我会尝试一个阶段性的方法。 开始一个你自己的宠物项目,学习Python,熟悉编程,看看你有多喜欢它。 我认为能够回答你提出的问题的最好的人是你自己; 从小处着手,如果你喜欢,可以稍微大些。 从那里撤退或前进,直到你确信一条赛道或另一条赛道是你真正的电脑激情所在。

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

2)烧坏将取决于很多因素,但我很less发现自己烧坏编程。 作为一个程序员,总会有这么多的事情要做,这可能是一个非常不同的工作。 还要考虑到,除非你自己编程,否则这是一个非常互动的工作,需要你和其他程序员以及需要你的技能的商务人员之间的持续沟通。 什么阻止我烧毁是在编程世界中学习和玩的惊人数量:)

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

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

5)作为一名初级程序员,我担心倦怠和“这是正确的职业select”,但这并没有持续很长的时间,因为我意识到我喜欢编程,而且学习和应用的绝大部分财富我快乐和占领。 当然,在工作中,我有些糟糕的时光,我完全不知道自己目前正在从事的工作,但这些都很less见,我非常重视作为程序员的各种机会和挑战。

6)那么,编程是否适合你? 这只是为了您的回答,但您可能想要考虑一些问题:您喜欢编程而不是硬件吗? 除了修理之外,还有其他的方式来雇佣你的硬件人才吗? 例如,你会喜欢电气工程(你可以同时聘用你的硬件人才和基本的编程技巧)?

无论如何,在我的工作地点(大型金融公司),在我看来,程序员可能比计算机技术人员有更多的机会,各种有趣的工作,但这可能是我自己的偏见。跟随。

伟大的问题,并在search中运气好。

首先, 我认为如果你在经验方面提供了一些背景,这将会有所帮助。 我是拥有20多年技术经验的技术经理,但我的激情是在用户界面中,而我目前正在开发一个Flex应用程序的项目。

现在到我的input。

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

2)取决于..我已经做了20多年。 正如我已经告诉过许多人,find你的激情,并遵循它。 当然,对自己的select很聪明是很重要的一部分,但是如果你想要一个机会和长寿,那么对自己所做的事情充满激情是其中的一个重要组成部分。 如果您已经在质疑这个可能性,那么做更多的研究并find一个您真正喜欢的软件领域,并努力学习您在该领域的所有知识。 (对我来说,这是用户界面)。

3)极客队不是软件开发的关键。

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

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

6)find你的激情,并遵循它。 在我看来,这给了你最大的成功机会。 噢,现实。 我想打棒球,但对我来说是不现实的。

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

我自己是一名软件开发人员,我可以理解这种魅力! Python是一门很好的学习语言 – 学习起来相对容易,而且可以很快变得有用。 如果你想快速成为一个经验丰富的开发人员,我build议你学习一些更难的语言 – C和C ++。 他们比Python低得多,他们为你做的工作较less。 这最初会使你的生产力下降,但这意味着它们运行得更快。 从学习的angular度来看,他们会迫使你更多地了解计算机如何运行程序,这将使你成为一个更好的程序员。

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

祝你好运!

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

2)我上了大学,获得了计算机科学学位,并且已经有8年多的软件开发经验。 我没有被烧毁。 恰恰相反…感觉就像我正在进入我的主要:-)

3)当然,你已经准备好了。

4)是的,你正在学习面向对象的语言。 我看到的大部分职位空缺都是面向.NET或Java开发人员的……面向对象的语言。

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

6)你应该做你最喜欢的事情。 对于什么是值得的,与修复计算机相比,你很可能会花更多的钱开发软件。

已经有一些明智的答复。 我只想指出,一个好的计算机科学课程会让你看到很多不同的话题,而不是重复它们。 如果你能find一个具有CSABauthentication的在线程序,那将是非常好的,因为它们所包含的标准是非常明智的。 自己学习python是一个很好的开始,但是有很多你可能认为自己学不到的主题,这些是成为一个非常全面的开发人员的关键,例如:
计算机组织
操作系统
数值分析
algorithm分析
等等

  1. 就像有人说,第一件事情是困难的。 编程没有什么不同,可能需要一段时间才能围绕它进行包装。 事情慢慢地点击到位。
  2. 无法回答这个问题
  3. 最有可能的。 在军队工作确实看起来不错。
  4. 我讨厌它,因为一旦你看着其他的代码,它会让你成为barf。 学习像C#的东西。
  5. N / A
  6. 这听起来你宁愿修理电脑。 我想你可以编程作为一种业余爱好,后来成为一名开发人员,但这需要时间。
Interesting Posts