如何成为一名软件工程师(become a software engineer)

随着技术的发展和成为日常生活中更大的一部分,对技术专业人员的需求也是如此。软件工程师设计并指导计算机程序的开发,使我们的生活变得更容易。...

方法1 方法1的2:进入计算机科学作为你的第一个职业

  1. 1获得计算机科学或相关领域的学位。大多数软件工程师的职位要求有学士学位。主修计算机科学将为设计和完善软件提供最有用的背景。大多数情况下,面试官会问一些侧重于数据结构和算法的问题,所以传统的计算机科学学位所提供的理论背景最能让你做好准备。然而,你很可能需要在课堂之外花相当多的时间来编写软件,以了解你所学的理论概念如何在编写真正的软件的实践中得到应用。有可能以副学士学位或甚至只靠自学的经验就被雇用。追求这条路线,你应该在Github这样的网站上有一个强大的已完成的功能性项目集,以证明你的技能。如果你没有自己的概念,你也可以追求开放源码项目,为其提供修复和新功能。开源意味着一个软件的代码(源)是可以公开查看的(开放)。通常情况下,这允许任何人向一个项目提交代码,但需要得到项目维护者的批准。在你建立了一个基本的技能组合后,找到一个有热情的开发者社区的开放源码项目可以大大加快你的技能。专家提示 Gene Linetsky, MS 创业公司创始人& 工程总监 Gene Linetsky是旧金山湾区的一个创业公司创始人和软件工程师。他在计算机科学行业工作了30多年,其经验涵盖了工程团队的人员配置和管理、游戏设计和开发、通信协议、销售自动化等方面。他还参与了将计算机科学课程纳入高中的工作,开发教育软件,并且是一本计算机科学教科书的共同作者。他目前是Poynt的工程总监,这是一家为企业建立智能销售点终端的技术公司。Gene Linetsky, MS创业公司创始人& 工程总监 学习任何科学学科都可以帮助你更好地编码。管理着一个软件工程师团队的Gene Linetsky说:"一些最好的工程师来自电子工程项目,因为它教给他们精神纪律。软件工程是一门艺术,不能容忍艺术家的心态--它真的需要这种纪律。"
  2. Image titled Become a Software Engineer Step 1Gene Linetsky, MSGene Linetsky, MS
  3. 2开始编程。即使你还在上小学,你也可以通过自学编程给自己一个巨大的开端。软件工程并不完全侧重于编码,但你至少需要知道几种语言,并对它们的功能有更深的了解。关于哪种语言最有用并没有广泛的共识,但这些都是流行的选择:PythonRubyJavaScriptC#JavaC++请注意,有些语言比其他语言更能解决一些问题。没有一种语言比另一种语言更好。没有一种语言客观上比另一种语言更容易。大多数语言在编写时都考虑到了某些类型的问题,在解决这些问题时更有优势,而在解决其他问题时则较弱。实验并获得对自己风格的感觉。一开始,只专注于让最基本的程序在一种语言中运行。一旦你适应了一种语言,就开始尝试使用第二种语言。没有必要学习所有的语言。找到你的专长,并在此方面变得出色!对于年轻人来说,麻省理工学院(MIT)创建了网站和编程工具Scratch。这个工具使用视觉队列而不是令人生畏的文字来教授编程概念。它对成年人也很有用,他们会觉得关注视觉元素而不是抽象的概念和文字更舒服。
  4. Image titled Become a Software Engineer Step 2
  5. 3研究数据结构和算法。"算法 "只是指解决一个问题的公式或过程。常见的例子有:寻找两点之间最短距离的路径搜索,在一大堆数据中寻找一个特定的数据项,以及按某种顺序排列数据的排序。数据结构 "是一种组织数据的方式,使其更容易解决某些问题。常见的例子是数组,它只是按某种顺序一个接一个地包含数据项,而哈希表则按某种 "键 "而不是列表中的某个位置存储数据。专注于发展和保持你的技能,以便在你获得软件工程师的职位后做到最好。(可选)学习数学。数学将是任何计算机科学专业的一部分,许多算法和数据结构的知识都源于数学。虽然不是绝对必要,但拥有强大的数学背景会让你在分析和设计新算法时拥有更强的核心技能。如果你的目标是做尖端研究和开发的公司,数学将是必须的。如果你想要一份舒适的公司工作,你可能可以略过更高层次的数学。离散数学是一个特别有用的研究领域,任何涉及软件的数学课程都是如此。
  6. Image titled Become a Software Engineer Step 3
  7. 4.补充你的学习。教育系统往往是过时的。教科书的修订速度比软件的更新速度慢。教育机构提供的理论概念和思维方式可能对你的成功至关重要,因此不应打折扣。然而,能让你得到报酬的是能够将理论应用于现实世界的软件。这就是对你的学习进行补充的地方。浏览StackOverflow。StackOverflow是一个面向开发人员的问题和答案网站。你可以通过标签搜索来确定你想要改进的技术、问题空间或语言。看到别人的答案会让你深入了解工程师如何解决问题。将聪明的解决方案加入书签,也会帮助你建立解决问题的工具箱。像CodeWars和CodinGame这样的网站为你提供了数以千计的问题来测试你的技能。找到一个真实世界的社区来帮助你保持灵感,发展联系,并给你指导如何集中学习。像Meetup这样的网站可以成为寻找软件工程师和了解这个职业的好地方。如果你很难找到一般的工程聚会,可以尝试专注于特定的语言或技术。也可以查看社交媒体网站。
  8. Image titled Define a Problem Step 4
  9. 5构建软件。提高技能的最好方法是使用它们。无论是专业项目还是个人项目,设计和编码软件会让你学到很多东西。对许多雇主来说,动手能力的成就比GPA或理论知识更重要。除非你打算将你建立的软件货币化,否则就把它放到网上去吧!让潜在的雇主看到你所创建的项目和为其提供动力的代码,使他们能够评估你的技能。这也是一个获得反馈的好方法,有助于提高你的技能。
  10. Image titled Become a Software Engineer Step 4
  11. 6寻找一个实习机会。许多软件工程师学生在完成学业的同时担任实习生。这可能是获得实践培训和与潜在雇主建立联系的绝佳方式。通过招聘网站和网络寻找实习机会。
  12. Image titled Become a Software Engineer Step 5
  13. 7寻找工作机会。软件工程是一个快速发展的领域。你有很好的机会立即就业,尽管你可能会从程序员开始,一直到软件开发的工作。在你的学位结束之前就开始寻找:大学通常会帮助他们的校友获得一个职位。与你的教授、系里的工作人员和职业服务办公室讨论如何寻找工作机会。利用你的个人联系,并通过职业聚会和会议认识该领域的人。定期查看求职网站。在专业网站上建立个人档案并发布你的简历,并利用它们来建立网络以及申请工作。
  14. Image titled Become a Software Engineer Step 6
  15. 8考虑你的职业目标。软件行业一直在变化。通过提高你的知识和实践技能,你会有很多机会来塑造你的职业方向。这里有几个方法可以改善你的工作前景:加入一个专业组织,以获得交流的机会。如果你在这个领域有长期计划,可以考虑获得硕士学位。虽然不是大多数职位的要求,但硕士学位可以大大提高你为行业领导者工作、担任管理职位或从事嵌入式软件的机会。硕士学位还可以在你职业生涯的早期给你带来相当大的薪酬提升。认证在一些子领域和地区是有用的,但在其他领域可能会降低你的受欢迎程度。在你报名参加这些课程之前,请与你的专业领域的其他工程师交谈。通常情况下,传统的企业环境偏爱证书,但初创企业和高度进步的公司会认为它们是浪费时间。然而,总是有例外的。一些国家对证书的看法也不一样,所以要尝试与软件工程师联系,了解你所在地区的行业如何运作。
  16. Image titled Become a Software Engineer Step 7

方法2方法2:转行做软件工程师的职业

  1. 1了解你的就业前景。软件开发领域有很好的就业增长。与基础编程相比,软件工程是一个特别理想的重点。在美国,软件开发人员的年收入中位数大约为8万-10万美元。
  2. Image titled Become a Software Engineer Step 8
  3. 2学习编程。实际的软件设计和编码应该是你的首要任务。有各种各样的方法来获得这种经验。通过在线教程或愿意教你的朋友自学编程。参加大规模开放式在线课程(MOOC)。如果你已经有一些经验,在GitHub上与其他程序员合作。如果你愿意投入金钱和空闲时间,编码训练营是最快的学习方式之一。只是一定要做研究,因为有些训练营在业界的口碑不好,可能不值得花钱。
  4. Image titled Become a Software Engineer Step 9
  5. 利用你的经验。软件可能是一门专业学科,但你以前的职业不一定非要涉及计算机才能使你具有优势。软件工程可以在很大程度上依赖分析技能、解决问题和团队合作。此外,对某一行业的熟悉可能有助于你为该行业设计软件。即使是爱好和副业也可以开辟人际关系的机会,或者至少为你的工作增添激情。游戏应用程序,数字音乐套件,或商业软件都是例子。建立工具来加快任务,使事情变得更容易。软件工程的核心是解决问题。编写软件只是一个软件工程师选择的解决问题的方法。你周围已经有很多问题了!你没有理由不从现在开始。
  6. Image titled Become a Software Engineer Step 10
  7. 4报名参加学位课程(可选)。在一年或两年的副业经验后,甚至在有足够的奉献精神的情况下,几个月就可以找到一份编程工作。如果你已经有了任何学科的学士学位,以及一些编码技能,可以考虑直接攻读软件工程的硕士学位。请注意,这是一个非常昂贵的选择。然而,如果你很难自我激励,而且加入社区或尝试一个爱好并不坚持,这可能是最有效的选择。
  8. Image titled Become a Software Engineer Step 11
  9. 5通过网络找到工作。几乎每个行业都需要软件开发人员,所以你以前的工作网络是非常有价值的。还可以考虑加入一个专业协会,如IAENG软件工程协会,IEEE计算机协会软件工程技术委员会,或计算机协会。此外,还可以研究一下当地的聚会或在线社区。软件世界可能出乎意料的小,找到正确的联系可以打开无数的机会。
  10. Image titled Become a Software Engineer Step 12

职业道路流程图

软件工程师的职业道路流程图

  • 这个行业的工作头衔并不规范。"软件开发人员 "是一个广泛的总括术语。虽然 "软件工程 "应该涉及更多的设计和专业知识,但一些公司用这个头衔来修饰低级别的编程工作。
  • 如果你想为某家公司工作,请直接查看他们网站的职业页面。
  • 走老路!在跳进电脑之前,先在纸上练习写代码吧!
  • 工作面试经常会在白板上进行,所以找一些朋友,在白板上舒适地写代码。有些公司可能会关心你的代码是否会完全按照写的那样运行,但很多公司不会。
  • 发表于 2022-03-08 20:29
  • 阅读 ( 116 )
  • 分类:教育

你可能感兴趣的文章

如何我能成为生物医学工程师吗?(i become a biomedical engineer?)

...些对生物科学和工程感兴趣的人来说,成为一名生物医学工程师是一个伟大的决定。生物医学工程师开发概念,将医生、生物学家和康复治疗师的想法转化为设备、材料、治疗、仪器、程序和技术,对患者和医学界有用。生物医...

  • 发布于 2022-02-12 12:43
  • 阅读 ( 165 )

如何我成为一名技术支持工程师?(i become a technical support engineer?)

... 要成为一名技术支持工程师,你通常至少需要一些大学水平的课程,尽管一些雇主可能接受证书和在职培训。对于较大的组织来说,通常需要有学士学位。完成一个信息技术(IT)领域的学位...

  • 发布于 2022-02-13 13:02
  • 阅读 ( 77 )

如何我成为一名设计工程师?(i become a design engineer?)

... 设计工程师为各种类型的事物制定设计计划,如医疗设备、汽车、电话、计算机系统和通信。这项工作包括阅读工程文章,与其他工程师商讨,分析测试信息,并帮助制定项目...

  • 发布于 2022-02-13 14:06
  • 阅读 ( 227 )

如何我成为一名建筑工程师?(i become a construction engineer?)

... 建筑工程师执行计划,建造道路、桥梁、建筑物或水坝等,以便在满足法律规范要求的情况下安全施工。建筑工程师还进行成本估算,订购建筑材料,并选择设备。建筑工程师...

  • 发布于 2022-02-13 16:18
  • 阅读 ( 190 )

如何我成为一名钢铁工程师?(i become a steel engineer?)

...天大楼,钢铁是大多数国家日常生活的一个重要方面,而工程师帮助创造每一种类型的钢结构、设备或部件。如果你想成为一名钢铁工程师,你将需要大量的设计和冶金知识。在你获得适当的经验和才能后,你将能够建造一系列...

  • 发布于 2022-02-13 16:25
  • 阅读 ( 115 )

如何我成为一名语音工程师?(i become a voip engineer?)

... 想成为VoIP工程师的人必须对计算机和互联网技术有热情。VoIP技术允许互联网服务提供商在互联网连接上传输电话。VoIP是一个缩写,代表互联网语音协议,或者换句话说,互联网上...

  • 发布于 2022-02-13 16:33
  • 阅读 ( 121 )

如何我成为一名计算机工程师?(i become a computer engineer?)

... 计算机工程师为企业、政府机构和其他组织看管计算机系统。他们通常专攻硬件或软件工程。要成为一名计算机工程师,通常需要有大学教育,最低水平是学士学位。更高的学位...

  • 发布于 2022-02-13 16:43
  • 阅读 ( 103 )

如何我成为一名自动化测试工程师?(i become an automation test engineer?)

...。这种软件在准备使用之前需要大量的开发和测试。测试工程师是一个验证和测试软件代码功能的人。要成为一名自动化测试工程师,个人需要了解基本的计算机硬件、软件和业务流程。大多数测试工程师拥有商业或信息系统的...

  • 发布于 2022-02-13 21:13
  • 阅读 ( 211 )

如何我成为一名助理软件工程师?(i become an associate software engineer?)

... 准软件工程师通常是入门级或初级软件工程师,他们在这个行业的工作经验通常少于三年。要成为一名准软件工程师,通常需要至少拥有软件工程、计算机科学或相关领域的学士...

  • 发布于 2022-02-13 22:16
  • 阅读 ( 160 )

如何我成为一名机电一体化工程师?(i become a mechatronics engineer?)

... 机电工程师的工作是利用工程、数学和科学的组合来设计、规划和开发产品。为了完成他的工作,这个领域的人可以使用电气、计算机和机械工程以及软件设计。如果你想成为...

  • 发布于 2022-02-13 22:32
  • 阅读 ( 159 )
cs734826
cs734826

0 篇文章

相关推荐