算法训练营 重编码_完成编码训练营后的第一年,我学到了教训。

算法训练营 重编码

by Mario Hoyos

通过马里奥·霍约斯(Mario Hoyos)

完成编码训练营后的第一年,我学到了教训。 (Lessons I learned the first year after completing a coding bootcamp.)

从那以后,帮助我成为更好的程序员的资源。 (And the resources that have helped me become a better programmer since.)

关于我 (About me)

Hello, there. If you don’t care about my background, feel free to skip this section to get a summary of some lessons I’ve learned as well as some resources that have helped me along the way.

你好。 如果您不关心我的背景,请随时跳过本节,以总结我所学的一些课程以及在整个过程中对我有帮助的资源。

I graduated from a coding bootcamp about a year ago. Like many others who choose to attend one of these programs, I was very dissatisfied with my job at the time and was looking for a career change.

我大约一年前从编码训练营毕业。 就像许多选择参加其中一个计划的其他人一样,我当时对我的工作非常不满意,并且正在寻找职业转变。

Prior to making the leap, I was working as a pharmacist. Unlike most people who sign up for a bootcamp hoping to increase their income, I went into it knowing very well that I was not likely to land a job with a comparable salary, at least for a while. I wrote about it at length here if you want to read more.

在取得飞跃之前,我曾是一名药剂师。 与大多数报名参加希望增加收入的训练营的人不同,我进入该课程是非常清楚的,至少在一段时间内,我不太可能找到一份薪水可比的工作。 如果您想阅读更多,我在这里详细介绍了它 。

This is not an article about how to be successful at a bootcamp or whether you should attend one; each of those topics merits their own post. Instead, I want to share with you what my experience has been like in my first year after graduation and to recommend some resources that I believe have helped me in “leveling up”.

这不是一篇关于如何在训练营中取得成功或是否应该参加的文章。 每个主题都有自己的职位。 相反,我想与您分享毕业后第一年的经历,并推荐一些我认为可以帮助我“升级”的资源。

My first year as a professional programmer might look nothing like your first year looked, or will look. Please keep in mind that everything you will read here is biased and subjective.

我作为专业程序员的第一年可能看起来不像或看起来会像第一年。 请记住,您在此处阅读的所有内容都是有偏见和主观的。

前四个月 (The first four months)

Like many other bootcamps, the one I attended usually hires one or two students from each cohort to serve as mentors for the next group of students. This allows the students to have a mentor who was just in their shoes and is still intimately familiar with the difficulty of learning to program. As I neared the end of my 13 weeks as a bootcamp student, I decided to apply for one of these student mentor positions.

像许多其他训练营一样,我参加的训练营通常会从每个队列中雇用一两个学生,以作为下一组学生的导师。 这使学生可以有一个只穿鞋的导师,并且仍然非常熟悉学习编程的困难。 当我进入训练营学生的13周快要结束时,我决定申请其中一个学生导师职位。

My reasons for making this decision were simple: I would have more time to digest the material I had just devoured over the past few months, I would get to learn by teaching, I wanted to give back to the program, and most importantly I needed to pay the bills.

我做出这个决定的原因很简单:我将有更多的时间来消化过去几个月里我刚吃掉的材料,我可以通过教学来学习,我想回馈该计划,最重要的是我需要支付账单。

The pay for being a mentor was a pretty long ways from the Bay Area salaries that bootcampers get stars in their eyes about, but that’s not where I saw the real value in this opportunity. Staying in this environment for a few months allowed me to go back over all of the things I had just learned with fresh eyes. I caught things that I glossed over when I was a student because I now had a better context for where all the pieces fit.

作为指导者的薪水与湾区薪金相差很远,而新手将在湾区看到明星,但这并不是我看到此机会的真正价值所在。 在这种环境下呆了几个月,使我得以重新审视刚刚学到的所有东西。 当我还是一个学生的时候,我捕捉到了一些我遗忘的东西,因为现在我对所有部分的位置有了更好的了解。

I was forced to deep-dive into topics so I could teach them to other newbies. I got to debug not just my code, but also that of other individuals who think very differently from myself. Not only that, but I was able to work on some internal company software, which gave me an opportunity to continue building cool things and to get a taste of some real-world development. I spear-headed the revival of a project that had gone stale and got to present an alpha version to the big bosses. It wasn’t perfect software, but I learned much in the process.

我被迫深入研究主题,以便可以将其教给其他新手。 我不仅要调试我的代码,还要调试其他与我自己有很大不同的人。 不仅如此,而且我还能够开发公司内部的某些软件,这使我有机会继续构建有趣的东西并尝试一些实际的开发。 我率先恢复了一个已经过时的项目,并向大老板们展示了Alpha版本。 它不是完美的软件,但我在此过程中学到了很多东西。

As my mentorship contract came to a close, it was time to face the dreaded job-hunt. I set myself up for success the best I could. I made sure my Linkedin looked spiffy, I set up a portfolio website, I tried to make sure my Github profile was full of green dots, I attended tech meetups, I attended my bootcamp’s job-fair event, and I even got some business cards made. I did any and everything I could think of to get my foot in the door because the reality is that finding your first job as a developer is likely to be extremely tough.

由于我的指导合同即将结束,是时候面对可怕的求职了。 我竭尽全力为成功做好准备。 我确保自己的Linkedin看起来很漂亮,我建立了一个投资组合网站,我试图确保我的Github个人资料中充满绿点,参加了技术聚会,参加了训练营的招聘会,甚至还买了一些名片制作。 我做了我想做的所有事情,因为事实是要找到作为开发人员的第一份工作可能非常艰难。

With my internet persona ready for the application process, I did what we all do even though we are told not to: I started spamming my resume to any company that was hiring for any job even remotely close to what I was looking for. I didn’t keep very good records of how many applications I put out there, but it was more than I would care to share anyway.

我的互联网角色已准备好应聘流程,尽管我们被告知不要做,但我还是做了所有事情:我开始将简历发送给正在招聘任何工作的公司,甚至离我要找的工作也很近。 我没有很好地记录我在那里发布了多少个应用程序,但是无论如何我都不想分享。

Much to nobody’s surprise, hardly any of the applications I threw into these black holes got traction.

没人感到惊讶的是,我投入到这些黑洞中的应用程序几乎没有受到关注。

So how did I end up with a job?

所以,我怎么最终有一个工作吗?

Networking.

联网。

You’ve heard it before and now you’re hearing it again. Attending meetups, reaching out to folks on Twitter and Linkedin, and building real relationships was what ultimately got me a seat at the table.

您以前曾经听过,现在又听到了。 参加聚会,在Twitter和Linkedin上与其他人建立联系并建立真实的关系最终使我在桌面上坐了下来。

Out of the interview processes that ended in a job offer (three of them), a grand total of ZERO were from a blind application. All of them were from internal referrals, job fairs, or connections I made at meetups.

在最终以工作机会形式面试的过程中(其中三个),零零零零零零八零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零零七点零八零零零零零零零零零零零零零零零零零零零零零零零零零零零一件数个二少男 所有这些都来自内部推荐,招聘会或我在聚会中建立的联系。

You would think that at this point I would have learned my lesson about throwing applications around like mad, but keep reading and you’ll see I don’t even take my own advice.

您可能会认为在这一点上我已经学到了关于疯狂地扔应用程序的课程,但是如果继续阅读,您会发现我什至没有接受我的建议。

后四个月 (The second four months)

I took my first “real” job at an early stage startup, which proved to be an awesome learning experience. Because our team was so small, I was getting to work on many things that most juniors don’t typically get to do.

我在早期的初创公司担任了第一份“实际”工作,事实证明这是一次了不起的学习经历。 因为我们的团队很小,所以我要从事很多大多数大三生通常不会做的事情。

I configured our Azure cloud infrastructure and wrote mission-critical code that served as an interface between our application and the blockchain. I was also the only dev on our team with frontend experience so I was in charge of our React frontend. I worked remotely half the week and had access to an endless supply of free coffee. What more could I ask for?

我配置了Azure云基础架构并编写了关键任务代码,将其用作应用程序和区块链之间的接口。 我也是我们团队中唯一具有前端经验的开发人员,因此我负责我们的React前端。 我在半个星期的时间里远程工作,可以无休止地供应免费咖啡。 我还能要求什么?

Like any job, however, there were upsides and downsides. Though I enjoyed doing tasks that were above my pay-grade, I sometimes wished that there would have been more senior developers on the team to learn from. Since the company was so young, I was working as an independent contractor, which means no benefits. I’m not including this to complain, because I genuinely enjoyed 90% of my job, but I believe it’s important to paint a realistic picture.

像任何工作一样,也有弊端。 尽管我喜欢完成薪水以上的任务,但有时我还是希望团队中会有更多的高级开发人员可以学习。 由于公司还很年轻,所以我一直是独立承包商,这没有任何好处。 我并没有抱怨这一点,因为我真的很喜欢我工作的90%,但是我认为描绘真实的画面很重要。

The worst part of this experience came four months into working at the company. I was called into an office at our coworking space and told that there wasn’t enough money left to pay me or the other developers. This is a known risk when working for a startup, but it still sucks when it happens.

这种经历中最糟糕的部分是在公司工作了四个月。 我被叫到我们共享办公空间中的办公室,并告诉我没有足够的钱支付我或其他开发人员的钱。 在初创公司工作时,这是一个已知的风险,但是在发生时仍然很糟糕。

To make a long story short, with a little more experience under my belt, I was on my way back into the job market!

长话短说,在我的带领下,我有了更多的经验,正要回到就业市场!

最近四个月 (The last four months)

This time around, I proved to be no wiser than I previously was. I updated my resume, my portfolio, and my business cards then sent off a hundred online applications that got me absolutely nowhere.

这次,我证明自己比以前更明智。 我更新了我的简历,投资组合和名片,然后发送了一百个在线申请,这些申请令我一无所获。

If you learn nothing else from reading this, believe me when I say that networking is the way to get a job.

如果您从阅读本文中学到的东西没有别的,请相信我,当我说网络是找到工作的方式时。

Strangers on the internet can be surprisingly supportive when it comes to helping those who are down on their luck, and I benefited greatly from people reaching out on Twitter, Linkedin, and in meetups.

在帮助那些不幸的人时,互联网上的陌生人可能会出人意料地提供支持,而人们在Twitter,Linkedin和聚会上的接触使我受益匪浅。

After getting to the final round of interview with a few companies, I opted to work for another early-stage startup. You would think I had been burned so badly I wouldn’t trust another startup again, but I believed in the team and was excited to work with them. I knew that I would get to call many of the technical shots and get to design, write, and ship code. I am still working at this startup and can say with absolute certainty that I’m a better developer now than when I started here.

在接受了几家公司的最后一轮采访之后,我选择为另一家早期创业公司工作。 您可能会以为我被烧得很厉害,以至于我不再信任另一个创业公司,但我相信团队,并为与他们合作感到兴奋。 我知道我将获得很多技术支持,并开始设计,编写和发布代码。 我仍然在这个初创公司工作,可以肯定地说我现在比在这里开始时是一个更好的开发人员。

Learning by doing has been the name of the game for me and without senior developers on my team to turn to, I have had to turn to other resources. An integral part of being a developer is being able to self-teach, but realizing that there are more experienced people to learn from is equally important. I’m writing this article to pass on resources that I have found helpful, they can be found below.

边做边学一直是我的游戏名称,没有团队的资深开发人员,我不得不求助于其他资源。 成为开发人员的一个不可或缺的部分是能够自学,但是意识到有更多有经验的人可以学习也同样重要。 我写这篇文章是为了传递我认为有用的资源,可以在下面找到它们。

TLDR (TLDR)

I finished my bootcamp a year ago, worked as a mentor at the bootcamp for a few months, endured a grueling job search process where I ultimately succeeded by networking, took a job at a startup that would go under a few months later, survived another job hunt where I was again saved by networking, and am currently working at a job that I enjoy far more than what I was doing pre-bootcamp.

一年前,我完成了新兵训练营,在新兵训练营担任导师几个月,经历了艰苦的求职过程,最终我最终通过网络获得了成功,在一家创业公司工作了几个月,随后又幸免于难。找工作使我再次被网络挽救了,目前我从事的工作比我在新兵训练营前的工作要快乐得多。

Life is truly unpredictable.

生活确实是不可预测的。

得到教训 (Lessons Learned)

In one year’s time, I’ve learned more than I feel I had in my lifetime combined. I’m learning something new every day and I love it. I couldn’t possibly hope to delineate every little lesson I’ve learned over the past year, but I’ve tried to distill some of the major ones below. I have separated them into business, development, and personal lessons in case you are only interested in certain areas!

在一年的时间里,我学到的东西比我一生的总和还多。 我每天都在学习新东西,我喜欢它。 我不可能希望描述过去一年中我学到的每一个小教训,但是我试图提炼出以下一些主要的教训。 如果您只对某些领域感兴趣,我会将它们分为业务,开发和个人课程!

商业 (Business)

  • Learn to value yourself properly. Recognize that whether you like it or not, employment is to some degree a business decision, and just like you want to maximize your worth, companies want to get you as cheap as they can. Be confident in what you can and can not deliver, and research what other people in your market are getting paid for similar skill sets.

    学习正确地珍惜自己。 认识到,无论您是否喜欢,就业在某种程度上都是一项商业决策,就像您想最大化自己的价值一样,公司也希望尽可能地让您便宜。 对您可以提供和不能提供的东西充满信心,并研究您市场上的其他人会因类似的技能而获得报酬。
  • If it is not in your contract, do not expect it to be true. Promises are free to make and expensive to keep.

    如果不在您的合同中,请不要期望它是真实的。 承诺是免费制作的,而且保存成本很高。
  • When applying for jobs, put lots of effort into networking as it is what will most likely get your foot in the door. I’ve tried spamming applications many times and it never got me anywhere.

    申请工作时,请尽最大努力进行网络连接,因为这很可能会使您步入正轨。 我已经尝试过垃圾邮件发送应用程序很多次,但从未成功。
  • Use the coding challenges you are given as part of an interview process as opportunities to teach yourself something new. This will allow you to develop your skills and become more valuable in the market even if you don’t get the job.

    将您在面试过程中遇到的编码挑战用作自学新知识的机会。 即使您没有找到工作,这也将使您能够发展自己的技能并在市场上变得更有价值。
  • Learn to love whiteboarding; it’s not going away anytime soon. Getting put on the spot is scary, but if you prepare ahead of time you can leverage this as an opportunity to separate yourself from the pack.

    学会热爱白板; 它不会很快消失。 被当场吓坏了,但是如果您提前做好准备,您可以利用它作为将自己与众不同的机会。

Development

发展历程

  • Read the docs.

    阅读文档。
  • Document your work as you go. Seriously, future-you will love you for it.

    随时记录您的工作。 认真地说,未来-您会为此而爱。
  • When you have the resources to do so, try and practice test-driven development at some level. By shortening your feedback loop, you will be able to write better code and ship with more confidence.

    如果有足够的资源这样做,请尝试并实践某种程度上的测试驱动开发。 通过缩短反馈循环,您将能够编写更好的代码并更加自信地发货。
  • Prototype, prototype, prototype! When you need to learn a new technology, or are testing technologies to see if they solve your problem, don’t just read the docs (notice I said JUST, you should definitely read the docs) but also build small prototypes that mimic your use-case. You will be able to find pain-points this way and can make better-informed decisions.

    原型,原型,原型! 当您需要学习新技术或测试技术以查看它们是否可以解决您的问题时,不仅阅读文档(我刚说过,您绝对应该阅读文档),还可以构建模仿您的用法的小型原型。 -案件。 您将可以通过这种方式找到痛点,并做出更明智的决策。
  • Don’t re-solve solved problems when you don’t have to. StackOverflow is your friend, but please make sure you understand the code and tailor it to what you’re trying to accomplish accordingly.

    不必时不必解决已解决的问题。 StackOverflow是您的朋友,但是请确保您了解代码并根据您要尝试完成的工作对其进行定制。
  • Learn how to use Git. You don’t need to know every fancy command, but knowing the basics will get you a huge return on your time investment.

    了解如何使用Git。 您无需了解每一个花哨的命令,但了解基础知识将使您的时间投资获得丰厚的回报。

个人 (Personal)

  • Failure is inevitable, learn to accept that fact and learn from your mistakes. It’s very cliche, I know, but that’s because it is true. Every time that I’ve fallen on my face, I have learned something that has proven useful in the future.

    失败是不可避免的,学会接受事实并从错误中学习。 我知道这是非常陈词滥调,但这是因为这是事实。 每当我跌倒我的脸时,我就会学到一些将来被证明有用的东西。
  • Keep in touch with your mentors. I’m still in touch with mentors from my days as a pharmacist, even. These relationships are highly rewarding. I would also encourage you to look for opportunities to mentor others. We always learn from teaching and making a positive impact on somebody else is one of life’s biggest pleasures.

    与您的导师保持联系。 甚至我还是药剂师时代的导师。 这些关系是非常有益的。 我也鼓励您寻找机会指导他人。 我们始终从教学中学习,对他人产生积极影响是人生最大的乐趣之一。
  • Find some sort of balance in your life. It’s super easy to get caught up trying to improve your skills and climb the career ladder as quickly as possible, but it’s important to take a step back sometimes and nurture the other areas of your life that make it worth living. Build your relationships, partake in your favorite hobbies, and get some sleep.

    在生活中找到某种平衡。 尽快提高自己的技能并尽快爬上职业阶梯非常容易,但是重要的是有时要退后一步,培育生活中值得一去的其他领域。 建立人际关系,参加自己喜欢的爱好,并入睡。
  • Exercise. Doctors everywhere give you this advice for a reason. I can promise you it will make you a better person and a better developer.

    行使。 各地的医生为您提供此建议都是有原因的。 我可以向您保证,它将使您成为更好的人和更好的开发人员。
  • Money isn’t everything. I learned this lesson the hard way and that has gotten me to where I am today. This is true of life in general, but also something to consider when you are looking for your perfect job. Perks such as mentorship, remote work, and PTO are worth their weight in gold.

    金钱不是一切。 我通过艰难的方式学到了这一课,这使我到达了今天的状态。 总的来说,这是事实,但在寻找完美工作时也要考虑一些事情。 诸如指导,远程工作和PTO之类的福利值得在黄金中发挥作用。

面试准备材料 (Interview preparation materials)

Unfortunately, nobody wants to hire us without making sure we are able to do what we say we do. Preparing for an interview can be the difference between your dream job or unemployment. Below are some of the resources that I have turned to in preparation for interviews.

不幸的是,没有人愿意雇用我们而不能确保我们能够做到我们所说的那样。 准备面试可能是您理想工作或失业之间的区别。 以下是我准备面试时使用的一些资源。

CodeWars (CodeWars)

Codewars: Train your coding skillsCodewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest…www.codewars.com

Codewars:培训您的编码技能 Codewars是开发人员通过挑战来掌握代码的地方。 在道场的kata上训练,到达最高峰…… www.codewars.com

As programmers, most of us dread having to answer algorithm questions on the fly. Most of us would use references in the real world anyway, right? Well, employers are still likely to whiteboard you so just accept it and get really good at it. There’s no better way to get good at something than by practicing it. Attempt as many problems as you can (I really mean attempt them, don’t just jump straight to the solutions) and learn from the solutions that other programmers have come up with.

作为程序员,我们大多数人都害怕不得不即时回答算法问题。 我们大多数人还是会在现实世界中使用引用,对吗? 好吧,雇主仍然有可能将您白板化,因此只需接受它并真正做到这一点即可。 没有什么比练习更好的方法来变得更好。 尝试尽可能多的问题(我的意思是尝试它们,而不是直接跳到解决方案),并从其他程序员提出的解决方案中学习。

技术面试手册 (Tech Interview Handbook)

yangshun/tech-interview-handbook? Algorithms study materials, behavioral content and tips for rocking your coding interview …github.com

阳顺/科技采访手册 算法研究资料,行为内容和技巧,帮助您进行编码面试…g ithub.com

This nifty repository contains all sorts of goodies to help you prepare for the types of questions you are likely to face in an interview. The easiest question to answer is a question you’ve seen before.

这个漂亮的资料库包含各种好东西,可帮助您为面试中可能会遇到的问题类型做准备。 最容易回答的问题是您以前见过的问题。

编码面试大学 (Coding Interview University)

jwasham/coding-interview-universityA complete computer science study plan to become a software engineer. - jwasham/coding-interview-universitygithub.com

jwasham / coding-interview-university 成为软件工程师的完整计算机科学学习计划。 -jwasham / coding-interview-university github.com

This repository is chock-full of links to resources to learn about everything from compilers to web application architecture. Depending on what you are interviewing for it may benefit you to dive deeper in some areas than others, but it never hurts to be well-rounded, either.

该存储库充满了指向资源的链接,以了解从编译器到Web应用程序体系结构的所有内容。 根据您要面试的内容,使您在某些领域比其他地方更深入地学习可能会有所裨益,但是全面学习也不会有任何伤害。

图书 (Books)

I love reading. It’s super cool to me that there are people out there who have done all the things that we aim to do and are even willing to write it all down for us. Even though I believe that the best way to learn is by getting your hands dirty, I also believe in learning from the experience of others. We simply don’t have enough time to make all the mistakes ourselves!

我喜欢阅读。 对我来说,这真是太酷了,有些人已经完成了我们打算做的所有事情,甚至愿意为我们写下全部。 即使我认为最好的学习方法是弄脏双手,但我也相信从他人的经验中学习。 我们根本没有足够的时间自己犯所有错误!

Below are some programming books and non-programming books that I have read in the past year which I feel have helped me to be a better developer as well as a person. I would include a short blurb about each one, but more eloquent folks have already done it for me all over the Amazon links below.

以下是我在过去一年中阅读的一些编程书籍和非编程书籍,它们对我个人和职业发展都有帮助。 我会在每篇文章中都简短介绍一下,但是在下面的亚马逊链接中,更多有才华的人们已经为我做过。

I, regrettably, do not stand to profit in any way from you clicking any of these links.

很遗憾,我不会以任何方式从您单击任何这些链接中获利。

编程书籍 (Programming Books)

The Pragmatic Programmer — Andrew Hunt & David Thomas

实用程序员– Andrew Hunt和David Thomas

More than just advice about how to be a better programmer, this book teaches you concepts that can make you better at just about anything else as well.

本书不仅提供有关如何成为一名更好的程序员的建议,而且还教给您一些可以使您在其他所有方面都变得更好的概念。

Domain Driven Design — Eric Evans

域驱动设计— Eric Evans

If you’ve been programming for any amount of time you know how easy it is for software to get messy. In this book, you will learn how to better communicate with domain experts in order to reach an unambiguous solution to a domain problem. Long but excellent read.

如果您已经进行了一段时间的编程,那么您就会知道软件变得混乱起来是多么容易。 在这本书中,您将学习如何与领域专家更好地沟通,以便达成对领域问题的明确解决方案。 长而优秀的阅读。

The Robert C. Martin Clean Code Collection — Robert C. Martin

罗伯特·C·马丁清洁法规典藏馆—罗伯特·C·马丁

This is actually two books. One is about writing cleaner code, and the other one is about how to be a better developer from a professional standpoint, rather than a skill standpoint. Both books offer unique value and I would definitely recommend them.

这实际上是两本书。 一种是关于编写更简洁的代码,另一种是关于从专业角度而非技能角度如何成为更好的开发人员。 这两本书都具有独特的价值,我绝对会推荐它们。

The Mythical Man-Month — Frederick P. Brooks

神话人月-弗雷德里克·布鲁克斯(Frederick P. Brooks)

This book is a classic for a reason. Though some of the examples are dated, the concepts are timeless. If you plan to be managing development of any sort, you should definitely give this a read.

这本书是经典之作。 尽管其中一些示例已过时,但这些概念是永恒的。 如果您打算管理任何类型的开发,则绝对应该阅读一下。

Programming Pearls — Jon Bentley

编程珍珠—乔恩·本特利

This collection of tips will open you up to new ways of thinking about solving problems.

这套技巧将为您打开解决问题的新思路。

Code Complete — Steve McConell

代码完成—史蒂夫·麦康奈尔

This might be my favorite programming book. In this book you will learn everything from properly naming variables, using code comments, and properly designing classes. It’s a bit long but it is so worth it.

这可能是我最喜欢的编程书。 在本书中,您将学到正确命名变量,使用代码注释以及正确设计类的所有知识。 它有点长,但是非常值得。

You Don’t Know JS — Kyle Simpson

你不懂JS —凯尔·辛普森(Kyle Simpson)

If you are doing JavaScript development you should definitely be reading this series. If not for the fact that it will give you a deeper understanding of the language, then at least because it is available for free.

如果您要进行JavaScript开发,则一定要阅读本系列文章。 如果不是因为它会让您对语言有更深入的了解,那么至少是因为它是免费提供的。

Eloquent Javascript — Marjin Haverbeke

雄辩的Javascript — Marjin Haverbeke

This book, which is also free, has recently been updated to its third edition. It is great for learning JavaScript, starting with variables and moving on to building simulations and learning about Node.

这本书也是免费的,最近已更新为第三版。 这对于学习JavaScript来说非常有用,它从变量开始,然后继续构建仿真并学习有关Node的知识。

非编程书籍 (Non-Programming Books)

Getting to Yes: Negotiating Agreement Without Giving In — Roger Fisher

达成协议:不放弃就达成协议进行谈判-Roger Fisher

I’m not great at confrontation. Negotiating can often feel adversarial. I would recommend this book to anybody who is in the same shoes, and wants to ensure they don’t sell themselves short when it comes time to talk salary.

我不擅长对抗。 谈判常常会引起对抗。 我将这本书推荐给所有穿着同一双鞋的人,并希望确保在谈论薪水时不要卖空自己。

I Will Teach You To Be Rich — Ramit Sethi

我会教你变得富有— Ramit Sethi

The book of this title is horrible, but it has generally solid and approachable advice about how to manage your money. My family never had much money growing up, and now that I make a decent amount I want to make sure I’m educated on how to handle it. Though Ramit isn’t for everybody, I think this book should be required reading for high school students about to hit the real world.

这个标题的书太可怕了,但是对于如何管理您的资金,它通常具有扎实而平易近人的建议。 我的家人从没有长大的钱,现在我赚了很多钱,我想确保自己受过如何处理的教育。 尽管Ramit并非适合所有人,但我认为应该为即将进入现实世界的高中学生阅读这本书。

The Hard Thing About Hard Things — Ben Horowitz

关于困难的事情的艰辛—本·霍洛维兹

Do you have dreams about founding a startup? Then you should give this a read and make sure you know what you’re getting into.

您有关于创办初创公司的梦想吗? 然后,您应该阅读一下并确保您知道自己正在进入什么。

Tools of Titans — Tim Ferriss

泰坦工具-蒂姆·费里斯

This book is more or less like taking a bunch of small self-help books and cramming them into one. Unlike many self-help books, however, instead of telling you what you should be doing this book talks about what people at the top of their game are doing already. This is an interesting read even if you don’t intend to use any of the information.

这本书或多或少就像拿了一堆小的自助书,然后将它们拼凑成一本书。 但是,与许多自助书不同的是,本书没有告诉您应该做什么,而是谈论处于游戏顶端的人们已经在做什么。 即使您不想使用任何信息,这也是一个有趣的阅读。

在线课程 (Online courses)

As a developer, you will be learning new things every single day from now until you stop being a developer. This is part of what makes this field so fun! The good news is that you don’t always have to teach yourself from scratch. There are people far smarter than us out there putting together courses so that we can learn from their experience. I love taking online courses and have highlighted some of my favorites below. I’ve divided them up into free courses and paid courses (many of which fall under the FrontEndMasters umbrella since I have a subscription with them). If you know other good ones, please leave a comment below!

作为开发人员,从现在开始直到停止成为开发人员为止,您每天都会学习新事物。 这就是使该领域变得如此有趣的原因! 好消息是,您不必总是从头开始学习。 有些人比我们那里聪明得多,他们会安排课程,以便我们可以从他们的经验中学到东西。 我喜欢参加在线课程,并在下面重点介绍了一些我的最爱。 我将它们分为免费课程和付费课程(由于我已经订阅了其中的许多课程,因此它们属于FrontEndMasters)。 如果您知道其他不错的,请在下方留言!

免费课程 (Free Courses)

What’s better than a free education? Nothing.

有什么比免费教育更好? 没有。

Javascript 30 (Javascript 30)

JavaScript 30Build 30 things with vanilla JS in 30 days with 30 tutorialsjavascript30.com

JavaScript 30 在30天内使用Vanilla JS构建30样东西,并附带30个教程 javascript30.com

This is a great course for those looking to learn some JavaScript fundamentals, and have fun doing it. Learn something new about JavaScript every day for thirty days, for free. What more could you want?

对于那些希望学习一些JavaScript基础知识并且乐在其中的人来说,这是一门很棒的课程。 每天30天免费学习有关JavaScript的新知识。 你还能想要什么?

CSS网格 (CSS Grid)

CSS GridLearn all about CSS Grid with Wes Bos in this free video series!cssgrid.io

CSS Grid 在这个免费视频系列中,了解有关Wes Bos的 CSS Grid的 全部知识! cssgrid.io

If you’ve written any CSS you have likely encountered frustrations when trying to build the layout for a website. The relatively new CSS Grid specification aims to solve this problem. If you are looking to get up to speed and see what the hype is about, this is a great option.

如果编写了任何CSS,则在尝试构建网站布局时可能会遇到挫折感。 相对较新CSS Grid规范旨在解决此问题。 如果您想加快速度,看看炒作是什么,这是一个不错的选择。

哈佛大学的CS50 (Harvard’s CS50)

Course | CS50 | edXcourses.edx.org

课程 CS50 | edX course.edx.org

Like most bootcampers, I came out of my program with a lot of practical skills but a pretty poor knowledge of computer science. In order to try and build on this weakness, I ended up taking this introductory course and I would highly recommend it to anybody looking to pick up programming. Plus, you can sort of say you went to Harvard.

像大多数新手一样,我从程序中脱颖而出,虽然具有许多实践技能,但对计算机科学的了解却很差。 为了尝试弥补这一弱点,我最终学习了此入门课程,并强烈推荐给任何希望学习编程的人。 另外,您可以说您去过哈佛。

The best investment you can make is an investment in yourself. If you find yourself with some disposable income and want to sharpen your skills, I would recommend any of the courses below. (Obviously, most are technology specific so pick the ones that make sense for you).

您可以做出的最佳投资就是对自己的投资。 如果您发现自己有一些可支配的收入,并且想提高自己的技能,我将推荐以下任何课程。 (显然,大多数是特定于技术的,因此请选择对您有意义的技术)。

高级React和GraphQl (Advanced React & GraphQl)

Advanced React & GraphQLBuild Full Stack Applications with React and GraphQLadvancedreact.com

Advanced React&GraphQL 使用React和GraphQL构建全栈应用程序 advancedreact.com

If you can’t tell, I love just about any course that Wes Bos puts out. If you are looking to get better at React or looking to dip your toes into the GraphQL world, this course is a great way to do so.

如果你不能说,我几乎喜欢韦斯·波斯(Wes Bos)开设的任何课程。 如果您想在React上做得更好,或者想将自己的脚步浸入GraphQL世界,那么此课程是一种很好的方法。

使用JWT对Web应用程序和API进行安全身份验证 (Secure Authentication for Web Applications & APIs with JWT)

Secure Authentication for Web Applications & APIs with JWTLearn to set up authentication in your single page apps. Learn the anatomy of JSON Web Tokens, how to use JWT to…frontendmasters.com

使用JWT进行Web应用程序和API的安全身份验证 了解如何在单页应用程序中设置身份验证。 了解JSON Web令牌的剖析,如何使用JWT来... frontendmasters.com

Picture this: You want to authenticate users in your application but you don’t want to add state to your backend. This is precisely the type of situation where using a JSON Web Token shines. Learn all about how to do this effectively and securely in this course.

想象一下:您想对应用程序中的用户进行身份验证,但又不想在后端添加状态。 这正是使用JSON Web令牌的一种情况。 在本课程中,学习有关如何有效且安全地执行此操作的所有信息。

与Kent C. Dodds学习测试实践和原则 (Learn Testing Practices and Principles with Kent C. Dodds)

Learn Testing Practices and Principles with Kent C. DoddsLearn the principles and best practices for writing maintainable test applications to catch errors before your product…frontendmasters.com

与Kent C. Dodds一起学习测试实践和原则。 在编写可维护的测试应用程序以在产品出现错误之前捕获错误的原理和最佳实践…… frontendmasters.com

Kent Dodds is an engineer at PayPal and a fantastic teacher. I used to hate writing tests. This course was instrumental in changing my opinion about them, and I would recommend it to anybody looking to dip their toes into the test-driven development world.

肯特·多德斯(Kent Dodds)是PayPal的工程师,也是一位出色的老师。 我曾经讨厌写测试。 这门课程有助于改变我对它们的看法,因此我建议所有希望将他们的脚趾插入测试驱动的开发世界的人使用。

学习使用Jest,react-testing-library和Cypress测试React应用程序 (Learn to Test React Applications with Jest, react-testing-library and Cypress)

Learn to Test React Applications with Jest, react-testing-library and CypressFix errors before your app reaches the end user by writing maintainable unit test & integration tests for your React…frontendmasters.com

通过为您的React编写可维护的单元测试和集成测试, 学习在Jest,react-testing-library和Cypress Fix错误 下测试React应用程序, 直到您的应用程序到达最终用户为止 。frontendmasters.com

Once you’ve convinced yourself that tests are worth writing, you’ll want to know how to write them for your stack specifically. If you use React, this course does a great job outlining a pragmatic way to test your application.

一旦您确信测试值得编写,就将想知道如何为您的堆栈专门编写测试。 如果您使用React,那么本课程将很好地概述实用的方法来测试您的应用程序。

由Kent C. Dodds在本课程中学习高级React组件模式 (Learn Advanced React Component Patterns in this Course by Kent C. Dodds)

Learn Advanced React Component Patterns in this Course by Kent C. DoddsSimplify large React applications by separating your component logic, state and display properties to make React…frontendmasters.com

由Kent C在本课程中学习高级React组件模式 。Dodds通过分离组件逻辑,状态和显示属性以使React简化来简化大型React应用程序 。frontendmasters.com

If you have a basic understanding of React and are looking to take your chops up a notch, this is a great course for sharpening your skills.

如果您对React有基本的了解,并希望将自己的技能提高到一个新的水平,那么这是提高技能的绝妙课程。

学习使用React工具(例如JS中CSS,代码拆分和TypeScript)扩展React (Learn to Scale React using React Tools such as CSS in JS, Code Splitting & TypeScript)

Learn to Scale React using React Tools such as CSS in JS, Code Splitting & TypeScriptBuild scalable React applications using the tools and techniques available in the React ecosystem. You'll test your…frontendmasters.com

了解如何使用React工具(如JS中CSS,代码拆分和TypeScript) 扩展React,使用React生态系统中可用的工具和技术构建可扩展的React应用程序。 您将测试您的… frontendmasters.com

Brian Holt is a terrific engineer who knows how to teach concepts in an approachable manner. Though the title of this course is basically buzzword soup, the content is delicious.

Brian Holt是一位了不起的工程师,他知道如何以平易近人的方式讲授概念。 尽管该课程的名称基本上是流行语,但内容很好。

用布莱恩·霍尔特(Brian Holt)在5个小时内学习四个计算机科学学期 (Learn Four Semesters of Computer Science in 5 Hours w/ Brian Holt)

Learn Four Semesters of Computer Science in 5 Hours w/ Brian HoltWe’re going to tackle some big topics in just five hours: Algorithms and Big O Analysis, Recursion, Sorting, Data…frontendmasters.com

布莱恩·霍尔特(Brian Holt) 在五个小时内 学习计算机科学四个学期, 我们将在五个小时内解决一些重要主题:算法和大O分析,递归,排序,数据… frontendmasters.com

If you do not have a CS degree but would still like to be able to talk about some of the fundamentals intelligently, this course is a great way to learn some of the basics. This is not intended as a substitute for a four-year college degree.

如果您没有CS学位,但仍然希望能够智能地讨论一些基础知识,那么本课程是学习某些基础知识的好方法。 不能替代四年制大学学位。

了解AWS的构建和部署应用程序的能力 (Learn AWS’ Capabilities for Building and Deploying Apps)

Learn AWS' Capabilities for Building and Deploying AppsLearn how to deploy your next passion project online or your organization's next-generation client-side application…frontendmasters.com

了解AWS的构建和部署应用程序的能力 了解如何在线部署下一个激情项目或组织的下一代客户端应用程序…… frontendmasters.com

If you’ve heard of the up-and-coming cloud platform that is Amazon Web Services (heavy sarcasm) and you’ve wanted to leverage their infrastructure for your web application, then look no further. While the AWS docs can be a real pain, this course feels so good.

如果您听说过即将兴起的云平台,即Amazon Web Services(沉重的讽刺意味),并且想将其基础架构用于您的Web应用程序,那么就再也没有。 虽然AWS文档可能是一个真正的痛苦,但本课程感觉很好。

学习JavaScript:困难的部分—深入研究JavaScript以解决复杂的挑战 (Learn JavaScript: The Hard Parts — Dive Deep into JavaScript to Solve Complex Challenges)

Learn JavaScript: The Hard Parts — Dive Deep into JavaScript to Solve Complex ChallengesTake your JavaScript to the next level. Gain an understanding of callbacks, higher order functions, closure…frontendmasters.com

学习JavaScript:困难的部分-深入研究JavaScript以解决复杂的挑战 将您JavaScript提升到一个新的水平。 了解回调,高阶函数,闭包… frontendmasters.com

Will Sentance is hilarious. Honestly, this is worth watching for his personality alone. If you happen to want to understand JavaScript better, however, the course is also pretty okay for that.

威尔·森坦斯(Will Sentance)很搞笑。 老实说,这值得一看他的个性。 但是,如果您碰巧想更好地了解JavaScript,那么这门课程也还不错。

了解JavaScript的新难部分:异步ES6 +功能 (Learn the New Hard Parts of JavaScript: Asynchronous ES6+ Features)

Learn the New Hard Parts of JavaScript: Asynchronous ES6+ FeaturesDevelop an intuitive understanding of the new features of JavaScript in ES6+: iterators, generators, promises, and…frontendmasters.com

了解JavaScript的新困难部分:异步ES6 +功能 对ES6 +中JavaScript的新功能有直观的了解:迭代器,生成器,promise和… frontendmasters.com

If after taking the last course you didn’t get enough of Will’s antics, then strap in for this version where he tackles some of the newer features of JavaScript.

如果上完最后一门课程后您对Will的滑稽动作没有足够的了解,那么请尝试使用此版本,他将在其中介绍JavaScript的一些较新功能。

学习Visual Studio Code增强Web开发效率 (Learn Visual Studio Code to Super Charge Your Web Development Productivity)

Learn Visual Studio Code to Super Charge Your Web Development ProductivityVisual Studio Code is a modern, full-featured code editor built from the ground for the needs of web developers …frontendmasters.com

学习Visual Studio Code来提高Web开发的效率 Visual Studio Code是一种现代的,功能齐全的代码编辑器,完全为Web开发人员的需求而构建…… frontendmasters.com

If you are in web development and not using VS Code, then you are wrong. Once you’ve gone ahead and installed everyone’s favorite editor, you may as well learn to use it properly. I learned some pretty neat tricks by watching this course.

如果您正在进行Web开发并且未使用VS Code,那么您错了。 安装并安装了每个人都喜欢的编辑器后,您还可以学习如何正确使用它。 通过观看本课程,我学到了一些漂亮的技巧。

编程工具 (Programming Tools)

Part of being a good developer is learning to pick the right tool for the job. Thankfully for us all, there are developers whose job it is to make tools for other developers. I wrote two articles that go in depth on the tools I have found useful as a programmer, find them below:

成为优秀开发人员的一部分是学习选择合适的工具来完成工作。 值得庆幸的是,有些开发人员的工作是为其他开发人员制作工具。 我写了两篇文章,深入介绍了我发现对程序员有用的工具,请在下面找到它们:

我希望在开始编码时就已经知道的工具 (Tools I wish I had known about when I started coding)

Tools I wish I had known about when I started codingIn the tech world, there are thousands of tools that people will tell you to use. How are you supposed to know where to…medium.freecodecamp.org

我希望当我开始编码时就已经知道的工具 在技​​术世界中,有成千上万的工具会被人们告诉您使用。 您应该如何知道在哪里… medium.freecodecamp.org

我希望在开始编写代码时就已经知道的工具:已复习 (Tools I wish I had known about when I started coding: Revisited)

Tools I wish I had known about when I started coding: RevisitedA few days ago, I wrote this article for freeCodeCamp which has since gone on to be read more times than I could have…medium.freecodecamp.org

我希望我在开始编码时就知道的工具:再次访问 几天前,我为freeCodeCamp撰写了这篇文章,此后的阅读次数比我能读的还要多…… medium.freecodecamp.org

播客 (Podcasts)

A year or two ago, I hardly listened to podcasts. Then I found some that I enjoyed and I’ve been hooked ever since. If you are looking for web development podcasts that you can listen to while you commute, exercise, or even write code, then I would highly recommend the two below!

一两年前,我几乎没有收听播客。 然后我发现了一些我喜欢的东西,从那以后我就迷上了。 如果您正在寻找可以在上下班,锻炼甚至编写代码的同时收听的Web开发播客,那么我强烈建议您使用下面的两个!

句法 (Syntax)

Potluck - Typescript × E-commerce platforms × Job-hopping × Working for agencies × more - Syntax…Full Stack Developers Wes Bos and Scott Tolinski dive deep into web development topics, explaining how they work and…syntax.fm

Potluck-打字稿×电子商务平台×跳槽×为代理商工作×更多-语法… 全栈开发人员Wes Bos和Scott Tolinski深入探讨了Web开发主题,解释了它们的工作原理和语法。

Wes Bos and Scott Tolinsky team up to deliver some tasy web development treats twice a week. This show has a little something for everybody and is definitely my favorite development-related podcast.

Wes Bos和Scott Tolinsky合作,每周两次提供一些时髦的Web开发服务。 该节目对每个人都有一些帮助,并且绝对是我最喜欢的与开发相关的播客。

ShopTalk (ShopTalk)

ShopTalkA live podcast about front end web design and UX.shoptalkshow.com

ShopTalk 有关前端Web设计和UX的实时播客。 shoptalkshow.com

Dave Rupert and Chris Coyer have been delivering web development advice far longer than I’ve even been in the game. If you are looking for an informative and entertaining podcast which features lots of guests, I would recommend this one.

Dave Rupert和Chris Coyer提供的网络开发建议的时间远远超过了我在游戏中的工作时间。 如果您正在寻找一个内容丰富且有趣的播客,其中有很多嘉宾,我会推荐这一播客。

在线社区 (Online Communities)

Hey, you there. Are you a developer, or an aspiring developer? Do you often feel like you don’t belong? Do you have impostor syndrome? I have good news for you. There are thousands of people in your shoes. The internet provides easy access to supportive communities who exist solely to help us reach our goals. I would highly recommend you tap into at least one of the communities below.

你在吗。 您是开发人员还是有抱负的开发人员? 您是否经常觉得自己不属于自己? 您有冒名顶替综合症吗? 我有个好消息要给你。 你的鞋子里有成千上万的人。 互联网使人们可以轻松访问支持社区,这些社区的存在仅仅是为了帮助我们实现目标。 我强烈建议您使用以下至少一个社区。

freeCodeCamp (freeCodeCamp)

Learn to code with free online courses, programming projects, and interview preparation for…Learn to code with free online courses, programming projects, and interview preparation for developer jobs.www.freecodecamp.org;’

学习免费的在线课程,编程项目和面试准备的 代码, 以…… 学习免费的在线课程,编程项目和面试准备开发人员的代码。 www.freecodecamp.org ;'

Without this organization, you likely wouldn’t even be reading this article. freeCodeCamp is so much more than a FREE online coding bootcamp. They offer interview preparation help, they are at the center of #100DaysOfCode, and they bring in thousands of aspiring developers together.

没有这个组织,您甚至可能不会阅读本文。 freeCodeCamp不仅仅是一个免费的在线编码训练营。 他们提供面试准备帮助,他们在#100DaysOfCode的中心,并将成千上万有抱负的开发人员聚集在一起。

代码新手 (CodeNewbie)

CodeNewbieCodeNewbie started as a weekly TwitterChat to connect people learning to code by Saron. Since then it's grown into a…www.codenewbie.org

CodeNewbie CodeNewbie最初是一个每周的TwitterChat,用于将Saron学习的人与代码联系起来。 从那时起,它成长为一个…… www.codenewbie.org

This is one of the most inclusive organizations in the universe. Not only are they responsible for multiple podcasts which aim to give a voice to aspiring developers from all walks of life, but they foster that same community on other platforms like Twitter. I highly recommend checking out their site and getting plugged into their supportive community.

这是宇宙中最具包容性的组织之一。 他们不仅负责多个播客,目的是向各行各业的有抱负的开发人员表达自己的意见,而且他们在Twitter等其他平台上培育同一个社区。 我强烈建议您查看他们的网站并加入他们的支持社区。

结论 (Conclusion)

Programming is hard and getting good at it takes years of time and effort. Though I’m much further along than I was a year ago, I’m now better aware of all that I do not know, and acknowledge that I have a long path ahead of me.

编程很难,而且要精通它需要花费大量时间和精力。 尽管我比一年前走得更远,但现在我对自己所不知道的一切有了更好的了解,并承认我还有很长的路要走。

I do feel like I have learned a lot in the past year, however, and I hope that you found something useful in this long, long, post.

但是,我确实觉得我在过去一年中学到了很多东西,并且希望您在这篇漫长而漫长的文章中找到有用的东西。

I’m always open to learning new lessons from others as well, so if you have advice or resources please leave a comment and I’ll try to answer as promptly as I can.

我也总是乐于从别人那里学习新课程,因此,如果您有任何建议或资源,请发表评论,我会尽快回答。

Godspeed, dear reader.

Godspeed,亲爱的读者。

希望您今天学到了一些新知识! 如果您能丢一些,我将不胜感激。 或在下面发表评论! 另外,请随时关注我的T witter和Medium :) (I hope that you have learned something new today! I would appreciate it if you could drop some ? or leave a comment below! Also, feel free to follow me on Twitter and Medium :))

翻译自: https://www.freecodecamp.org/news/lessons-i-learned-the-first-year-after-completing-a-coding-bootcamp-4ef3800fd1f8/

算法训练营 重编码

你可能感兴趣的:(大数据,编程语言,python,人工智能,面试)