算法训练营 重编码_编码训练营与大学

算法训练营 重编码

Software engineering is a high demand job nowaday. There are currently about 1.5 million jobs for software engineers, and they are projected to grow by an astonishing 22% from 2019 to 2029 [1]. That means by 2029, about 33 million jobs will be added. It is a stable job to have, and it can come with great perks! The compensation is great. You can get unlimited PTO, reimbursement for phone bills and WiFi bills, etc. You can see why more and more people are pursuing a career in this space.

如今,软件工程是一项高要求的工作。 目前,软件工程师大约有150万个工作岗位,并且从2019年到2029年,预计将以惊人的速度增长22%[1]。 这意味着到2029年,将增加约3300万个工作岗位。 拥有这是一项稳定的工作,并且可能会带来很多好处! 补偿很大。 您可以获得无限的PTO,电话费和WiFi费的报销等。您可以了解为什么越来越多的人在这个领域从事职业。

Recently, coding bootcamps have sprung up and have gained a huge attraction due to their affordability and flexibility. Since 2013, coding bootcamps have grown by 11x, with around 23 thousand graduating by the end of 2019 [2]. More and more people are attending them to jumpstart their careers as software developers. However, are these coding bootcamps more effective and more cost-efficient than academic institutions? Can they truly get anyone a software engineering job?

最近,编码训练营如雨后春笋般涌现,并因其价格适中和灵活而倍受青睐。 自2013年以来,编码训练营已经增长了11倍,到2019年底将有大约23000名毕业生毕业[2]。 越来越多的人参加他们,以开始他们作为软件开发人员的职业生涯。 但是,这些编码训练营是否比学术机构更有效,更具成本效益? 他们能真正给任何人提供软件工程工作吗?

To give you some background, I went to Cornell University for my Bachelor’s in Information Science and Master of Engineering in Computer Science. I have been a software engineer for quite some time, working at companies like Salesforce, Amazon, and Twitter. On the side, I also tutor people to prep them for software engineering interviews.

为了给您一些背景知识,我去了康奈尔大学,获得了信息科学学士学位和计算机科学工程硕士学位。 我担任软件工程师已有相当一段时间,曾在Salesforce,Amazon和Twitter等公司工作。 在一边,我还辅导人们为他们进行软件工程面试做准备。

In my freelancing experience, I have worked with over 100+ clients, which include those who have gone to coding bootcamps and those who have to colleges. I have seen both sides, so my opinion is not biased.

在我的自由职业经历中,我与100多个客户合作,其中包括那些去过训练营的人和那些去过大学的人。 我见过双方, 所以我的看法没有偏见

TL; DR (TL;DR)

If money is tight, I suggest going to a coding bootcamp or an online program associated with an accredited university. Otherwise, go to a university to receive formal instruction because you will develop a more thorough understanding of computer science. This will pay off in the long term. This is because you will learn to think for yourself when tackling challenging problems and be exposed to various applications of computer science. These skills will be helpful in career promotions.

如果资金紧张,我建议您去参加编码训练营或与认可大学有关的在线课程。 否则,请去一所大学接受正式的指导,因为您将对计算机科学有更全面的了解。 从长远来看,这将获得回报。 这是因为您在解决挑战性问题时会学会思考,并会接触计算机科学的各种应用。 这些技能将有助于职业晋升。

If you do decide on coding bootcamp, please supplement it with extra reading material that focuses on data structures and algorithms. In addition, I would recommend taking extra courses on platforms like Coursera that specialize in topics, such as machine learning, databases, threading, etc.

如果您确实决定对训练营进行编码,请以针对数据结构和算法的额外阅读材料作为补充。 另外,我建议在像Coursera这样的平台上选修额外的课程,这些课程专门研究诸如机器学习,数据库,线程等主题。

Image for post
Photo by Darya Tryfanava on Unsplash
照片由 Darya TryfanavUnsplash拍摄

1.大学-传统的,守旧的方式 (1. University — Traditional, Old Schooled Way)

Universities — the number one advantage is the resources and breadth of the courses offered. You can have conversations with professors about how they are leveraging computer science to tackle real-life problems. A lot of these professors are pursuing cutting-edge research, and you can get hands-on experience in that research if you join his/her lab. When I was in undergraduate and graduate school, I joined a ubiquitous computing research lab, and it was really cool to see how to leverage computer science to mitigate issues in healthcare. I was able to get valuable experience that I could not get anywhere else.

大学-第一优势是所提供课程资源和广度 。 您可以与教授进行对话,讨论他们如何利用计算机科学解决现实生活中的问题。 这些教授中有许多正在从事前沿研究,如果您加入他/她的实验室,您将获得有关该研究的实践经验。 当我在大学读研究生时,我加入了一个无处不在的计算机研究实验室,看到如何利用计算机科学来缓解医疗保健方面的问题真是太酷了。 我获得了宝贵的经验,而我无法获得其他任何地方。

Computer science is not learning the syntax of languages. That’s the easy part. The hard part is understanding the fundamental concepts and theories and learning how to apply them in various settings. The breadth of courses offered at universities allows you to gain a well-rounded understanding of computer science as you can deep dive into several aspects of it. In a university, you can take classes in fields that range from machine learning to database design to robotics to system security, etc. There is no coding bootcamp out there that will do this!

计算机科学不是在学习语言的语法。 那是容易的部分。 困难的部分是理解基本概念和理论,并学习如何在各种环境中应用它们。 大学提供的广泛课程使您可以深入了解计算机科学,从而全面了解计算机科学。 在大学里,您可以在从机器学习到数据库设计再到机器人技术再到系统安全等领域上各种课程。那里没有编写代码的训练营!

Coding bootcamps are designed to give you practical training to help you get a job as an entry level engineer. They are not designed to teach you the theoretical and higher-level concepts.

编码训练营旨在为您提供实践培训,以帮助您找到入门级工程师。 它们的目的不是教您理论和更高层次的概念。

The second advantage is that you get an accredited degree. This plays a huge role in the resume screening of job interviews. A good chunk of software engineering jobs requires you to have an undergraduate degree. However, there is a trend that more and more companies are shifting away from this requirement and just instead focusing on project and work experience.

第二个优点是您获得了认可的学位 。 这在求职面试的简历筛选中发挥着巨大作用。 大量的软件工程工作需要您拥有本科学位。 但是,有一种趋势是,越来越多的公司不再使用此要求,而只专注于项目和工作经验。

The third advantage is the career network. A lot of these universities will have established company connections, and as a result, these companies tend to recruit heavily from that school. For instance, Workday, Google, and Facebook recruited heavily from my school. Most schools have an event called “Career Fair” in which hundreds of companies come to the school to recruit for that particular day. In some cases, interviews are done the very next day.

第三个优势是职业网络 。 这些大学中许多将建立公司联系,因此,这些公司倾向于从该学校大量招募人才。 例如,Workday,Google和Facebook从我的学校大量招聘。 大多数学校都有一个称为“职业博览会”的活动,在该活动中,有数百家公司来学校招募该特定的日子。 在某些情况下,访谈是在第二天进行的。

好的,听起来很棒。 这里有什么收获? (Okay, that sounds awesome …. What’s the catch here?)

Going to these universities is a big investment! If you’re going for a 4-year undergraduate school, this is how much you would have to pay total:

去这些大学是一笔巨大的投资! 如果您要去四年制的本科学校,这是您需要支付的总金额:

Image for post
EducationData.org [3] EducationData.org收集的数据[3]

So, the range is between $87,800 to $199,500 USD depending on what type of school you go to. Loans may be needed to help pay your tuition, which may require several years to pay off. As a result, it may be difficult to increase your savings and net worth rapidly while trying to pay the loans off.

因此,范围在$ 87,800到$ 199,500 USD之间,具体取决于您选择的学校类型。 可能需要贷款来帮助支付您的学费,这可能需要数年才能还清。 结果,在试图还清贷款时可能很难Swift增加您的储蓄和净资产。

那研究生院呢? (What about graduate school?)

Now, there are some people who have already received a Bachelor’s degree specialized in non-tech but want to pursue software engineering. For those people who are considering graduate school, I recommend that a PhD is not necessary to get into the industry. A Master’s will do just fine, and this is how much it would cost annually:

现在,有些人已经获得了非技术专业的学士学位,但是想要从事软件工程。 对于那些正在考虑研究生院学习的人,我建议无需博士学位即可进入该行业。 硕士学位会很好 ,这是每年需要花费多少:

Image for post
Peterson’s [5] 彼得森 (5)收集的数据

Now, one thing to consider is that there are some schools that grant you a Master’s degree after 1 year or after 2 years. Thus, depending on the program, tuition can range from $30,000 to $60,000 USD for a public university and $40,000 to $80,000 USD for a private university.

现在,要考虑的一件事是,有些学校在一年或两年后授予您硕士学位。 因此,根据课程的不同,公立大学的学费在30,000美元到60,000美元之间,而私立大学的学费在40,000美元到80,000美元之间。

The difference between the 1-year program and 2-year program is that the 2-year program places more emphasis on a research project and that the course schedule is not as heavily packed as the 1-year program.

1年制课程和2年制课程之间的区别在于,2年制课程更加注重研究项目,课程安排没有1年制课程那么繁重。

这还是很多钱! 我还有其他选择可以获得认可学位吗? (This is still a lot of money! Any other alternatives for me to get an accredited degree?)

Yes, there is! Recently, MOOCs (Massive Open Online Course) have become extremely popular in sites such as Udacity or Coursera. Some universities have started to partner up with these platforms. A famous example is Georgia Tech’s online program for Master of Science in Computer Science. That program costs a total of $7,000 USD. If not being on campus and not being able to interact with professors on a 1:1 basis are acceptable for you, then this may be a suitable option for you.

就在这里! 最近, MOOC(大规模开放式在线课程)在Udacity或Coursera等网站上非常受欢迎 。 一些大学已经开始与这些平台合作。 佐治亚理工学院的计算机科学理学硕士在线程序就是一个著名的例子。 该计划的总费用为7,000美元。 如果您可以不在校园内并且不能与教授进行1:1互动,那么这可能是适合您的选择。

2.训练营-非传统方式 (2. Bootcamp — Nontraditional Way)

Bootcamps are so cheap compared to a 4-year university; that’s why they are so popular. They tend to cost anywhere from $5000 to $20,000 USD [4]. Now, if you cannot pay that initially or you are nervous that you cannot land a job after graduating from bootcamp, bootcamps have another payment plan called deferred tuition. Deferred tuition allows you to pay no upfront cost or little cost, and once you land a job after bootcamp, a fixed amount from your salary will be used toward paying off the bootcamp.

与四年制大学相比, 训练营是如此便宜 。 这就是为什么它们如此受欢迎。 它们的价格通常在5000美元到20,000美元之间[4]。 现在,如果您最初无法支付这笔费用,或者担心从新兵训练营毕业后无法找到工作,那么新兵训练营还有另一种付款计划,称为延期学费 。 延期的学费使您无需支付前期费用或支付很少的费用,一旦在新兵训练营后找到工作,薪水中的固定金额将用于偿还新兵训练营。

The second advantage is that bootcamps are also shorter, as they can last from 8 to 12 weeks. Instead of graduating in years from universities, you graduate in weeks. The time investment is low compared to going through the traditional way.

第二个优点是训练营也较短,因为它们可以持续8到12周 您可以在数周内毕业,而不用从大学毕业多年。 与传统方式相比,时间投资少。

太棒了! 便宜又短! 但是,这里的问题是什么? (Fantastic! Cheap and short! But then what’s the issue here?)

Attaining a job right after bootcamp is not an easy task. A Stack Overflow study revealed that around 9% of graduates never found a software engineering job [2]. 22% of graduates said it took about a month or longer to get a job, and 7% said it took 6 months or longer.

在训练营结束后立即找到工作并非易事。 一项Stack Overflow研究表明,大约9%的毕业生从未找到过软件工程工作[2]。 22%的毕业生表示需要大约一个月或更长时间才能找到工作,而7%的毕业生则表示需要6个月或更长时间。

为什么会这样呢? (Why is this happening?)

The focus of bootcamps is teaching their students skills to land an entry-level software engineering job. So they will teach them the full-stack languages (HTML, CSS, Javascript) and teach them backend (Python, Java, MongoDB). Because of the focus on these languages, these students tend to have a weak foundation in computer science fundamentals, which I have noticed countless times.

训练营的重点是教学生技能,以从事入门级软件工程工作。 因此,他们将教他们全栈语言(HTML,CSS,Javascript)并教他们后端(Python,Java,MongoDB)。 由于专注于这些语言,因此这些学生往往在计算机科学基础方面的基础较弱, 我注意到了无数次。

Their understanding of data structures and algorithms is super weak.

他们对数据结构和算法的理解非常薄弱。

Bootcamp graduates struggle in evaluating time complexity of a coding problem. They do not know how to perform recursion or graph traversals. They are not comfortable tackling coding challenges. Why this is an issue is, unfortunately, companies like Facebook, Google, Amazon, Twitter, etc ask these types of questions for phone interviews and onsite interviews. For these competitive companies, the level of technical questions asked on these topics ranges from medium to hard difficulty.

训练营的毕业生努力评估编码问题的时间复杂性。 他们不知道如何执行递归或图遍历。 他们不愿意应对编码挑战。 不幸的是,这是一个问题,为什么像Facebook,Google,Amazon,Twitter等公司会在电话采访和现场采访中询问这些类型的问题。 对于这些有竞争力的公司,在这些主题上提出的技术问题的级别从中等难度到困难难度不等。

I have witnessed numerous clients that graduate from bootcamps fail coding interviews. I would say more than 70% of my clients who are bootcamp graduates have failed or would have failed these Facebook-rigor interviews.

我目睹了许多从训练营毕业的客户未能通过编程面试。 我要说的是,超过70%的训练营毕业生的客户都失败了,或者将使这些严格的Facebook采访失败。

Now what’s unfortunate is that some of these bootcamp graduates find out the tough way through constant rejections at these super competitive companies. They then enroll in another coding bootcamp designed to help with interview prep, which can cost around $5,000.

现在不幸的是,这些训练营的毕业生中的一些人发现了在这些超级竞争公司中不断遭到拒绝的艰难方法。 然后,他们报名参加另一个旨在帮助面试准备的编码训练营,费用约为5,000美元

So what ended up maybe being a $10,000 investment now becomes a $15,000 investment.

因此,最终可能是10,000美元的投资现在变成了15,000美元的投资。

Not all software engineering interviews are as hard as Facebook’s. Startups and smaller companies tend to have a lower bar for hiring engineers. However, if you are trying to aim for competitive companies, then my recommendation to overcome this weakness is to find supplemental reading materials and videos that focus on algorithms and data structures.

并非所有软件工程采访都像Facebook那样艰苦。 初创公司和较小的公司往往对雇用工程师的门槛较低。 但是,如果您要瞄准竞争性公司,那么我克服这一弱点的建议是找到针对算法和数据结构的补充阅读材料和视频。

最后的想法 (Final Thoughts)

There is no one right way of learning how to become a software engineer since each person has different needs. It also depends on what kind of software engineer you want to come. If you want to aim for a front-end position versus a backend position, then that will require you to focus less on higher-level software engineering concepts and focus more on web frameworks and technologies.

因为每个人都有不同的需求,所以没有一种正确的方法来学习如何成为软件工程师。 这也取决于您想成为哪种软件工程师。 如果您要定位在前端位置而不是后端位置,那么这将需要您少关注高级软件工程概念,而更多关注Web框架和技术。

Learning to become an excellent software engineer is a journey. To this very day, I am still learning new concepts. Your journey doesn’t stop at coding bootcamp or university.

学习成为一名优秀的软件工程师是一段旅程。 直到今天,我仍在学习新概念。 您的旅程不会止步于对训练营或大学进行编码。

翻译自: https://towardsdatascience.com/coding-bootcamps-vs-universities-54b482fc58a7

算法训练营 重编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值