当我写这篇文章时,距离我进入软件工程世界已经 3 年了。我从没想过我上大学的时候会来到这里。仅供参考,我在大学期间学习了物理学(在物理学中,我们学到了一些关于 C++ 的知识,但它没有 CS 学生那么深)。
由于您不了解路线图,因此获得第一份非 CS 学位的软件工程工作可能会让人不知所措。
在本文中,我将根据我之前的经验与大家分享路线图。
学习算法和数据结构
作为一个刚刚获得学士学位的非CS,DSA是我申请工作时被拒绝的最大障碍。毕业时我什至不知道什么是hashmap、linkedlist或时间复杂度,因为我没有学习CS学位。那些日子,由于缺乏 DSA,我收到了几家公司的几次拒绝。我需要大约 3 个月的时间通过练习 leetcode 并观看 youtube 上的教程视频来克服这个问题。
我向初学者推荐两个练习 DSA 的平台:Hackerrank 和 LeetCode。对于没有学习控制台输入输出的完全初学者,我建议去hackerrank。如果你已经有了基本的知识,我建议你去 leetcode,因为很多问题都是编码面试问题。我建议初学者只坚持一种语言。 leetcode 每周都有比赛,可以训练你在公司在线编码测试时应对压力。
如果您需要掌握 DSA 的基础知识,这里是我推荐的学习 DSA 的 youtube 频道之一https://www.youtube.com/channel/UCZCFT11CWBi3MHNlGf019nw
我从零开始学到了很多东西,主要是从那个渠道学到的。每次你从这个视频中学习一个新主题时,都可以在 leetcode 上应用它。它会让你学得更快。
如果您有能力支付更多费用并且您没有太多时间研究基础知识,那么您可以考虑使用 algoexpert 等平台,因为他们已经在那里收集了所有信息。
学习 OOP(面向对象编程)技能
我想说大多数非计算机学位不知道 OOP,即使他们在大学期间有编程课程(例如物理、数学、电气工程使用过程编程)。大多数软件工程项目将使用 OOP,因此如果您能够理解 OOP,它将使您更容易掌握项目代码中发生的事情。
创建软件工程项目
这部分取决于您的目标是前端位置还是后端位置。对于初学者,我建议只选择 1 作为起点。您可以在 youtube 或其他在线课程中找到基本教程。如果您已经掌握了基础知识,请对在线课程代码进行一些修改,然后将它们发布到您的 github 存储库中。不要犹豫,查看其他人的代码以学习良好做法(如果您从 1 个源中窃取,则为剽窃,但如果您从多个源中窃取,则称为研究)。
对于后端位置,除了编码之外,您还需要知道数据库是如何工作的以及如何查询它。我建议初学者坚持使用 MySQL 数据库,你可以从https://www.w3schools.com/学习它的基本知识和https://www.hackerrank.com/domains/sql练习从表中查询数据。
这是我推荐给针对前端或后端位置的初学者的一些示例项目。
前端项目关键词:待办事项列表页面、登录页面、考勤管理页面
后端项目关键字:待办事项API、登录API、考勤管理API
进行模拟面试
如果你想为模拟面试做好心理准备,可以请你的朋友进行模拟面试。如果没有朋友会模拟面试,可以试试https://www.pramp.com 。该平台可以将您与也想要模拟面试的人联系起来。
申请工作
不要犹豫申请。根据我的经验,你永远不会觉得 100% 准备好面试,所以试一试吧。你不会因为被拒绝而死或赔钱。
原文: https://dev.to/dariuschandra/how-to-get-software-engineering-jobs-with-no-cs-degree-no-bootcamp-3efj