devops開發模式流程圖
There are many ways you can go about picking up the skills you need to become a developer.
您可以采用多種方法掌握成為開發人員所需的技能。
There are linear curriculums that teach you a bit of everything - like freeCodeCamp's full stack development curriculum.
有線性課程可以教給您很多知識,例如freeCodeCamp的全棧開發課程。
And then there are massive lists of skills - and sometimes lists of resources - you can use to "choose your own adventure" through the learning process.
然后是大量的技能列表,有時還有資源列表,您可以用來在學習過程中“選擇自己的冒險”。
One of the best such list of skills is Kamran Ahmed's Developer Roadmap, which he regularly updates.
卡姆蘭·艾哈邁德 ( Kamran Ahmed)的開發人員路線圖是此類技能中最好的一種,他會定期進行更新。
This is no ordinary list of resources. Kamran has painstakingly mapped out all the skills he feels are essential to breaking into different fields of development.
這不是普通的資源列表。 卡姆蘭(Kamran)精心設計了他認為對進入不同發展領域必不可少的所有技能。
I've written about his roadmap in the past. And to celebrate us all being half way into 2020, I'm going to share his entire roadmap here - all three of them.
我過去曾經寫過關于他的路線圖的文章。 為了慶祝我們進入2020年的一半,我將在這里分享他的整個路線圖-所有這三個路線圖。
That's right - he has lists of tools and resources that are required for the following paths:
沒錯-他提供了以下路徑所需的工具和資源列表:
- Front end web development 前端網頁開發
- Back end web development 后端網頁開發
- DevOps (also known as "site reliability" - this is sort of an evolution of the old System Administrator role) DevOps(也稱為“站點可靠性”-這是對舊系統管理員角色的一種演變)
所有開發人員都需要的技能,無論他們的專業是什么 (The skills all developers need regardless of their specialization)
In addition to these paths, Kamran also recommends everyone who wants to work as a developer learn the following skills:
除了這些途徑之外,Kamran還建議所有想成為開發人員的人學習以下技能:
Git-版本控制 (Git - Version Control)
Git is a powerful version control system that as of 2020 is used almost universally. If you don't know it - yes it's related to GitHub and GitLab, and you can learn how to use those tools, too.
Git是一個功能強大的版本控制系統,截至2020年幾乎已普遍使用。 如果您不知道-是的,它與GitHub和GitLab有關,您也可以學習如何使用這些工具。
基本終端用法-Bash命令行,SSH和其他技能 (Basic Terminal Usage - The Bash Command Line, SSH, and other skills)
This could be the terminal on a Mac, a Windows DOS prompt, or Bash/ZSH. Note that regardless of which operating system you use, you should probably learn Linux. Even if you're not using it for your laptop/desktop environment, you'll almost certainly use it for servers.
這可能是Mac上的終端,Windows DOS提示符或Bash / ZSH。 請注意,無論使用哪種操作系統,都應該學習Linux。 即使您不在筆記本電腦/臺式機環境中使用它,也幾乎肯定會在服務器上使用它。
數據結構與算法 (Data Structures and Algorithms)
The freeCodeCamp curriculum covers these in-depth. You'll probably want to learn these by solving lots of algorithm problems on freeCodeCamp, CodeWars, Project Euler, or another drilling website. I personally recommend doing this in either JavaScript or Python but if you're up for a challenge and have lots of time on your hands, doing it in C wouldn't hurt.
freeCodeCamp課程涵蓋了這些內容。 您可能想通過在freeCodeCamp,CodeWars,Project Euler或其他鉆探網站上解決許多算法問題來學習這些知識。 我個人建議使用JavaScript或Python進行此操作,但是如果您面臨挑戰并且有很多時間在手,那么使用C進行操作不會有任何傷害。
了解網絡的工作原理:HTTPS和API (An understanding of how the web works: HTTPS and APIs)
There are a lot of other concepts you can learn. I recommend working through a good entry-level computer science course to get started. Here's all of Harvard's CS50 course lectures ad-free on freeCodeCamp's YouTube channel.
您還可以學習很多其他概念。 我建議您完成一門入門的入門級計算機科學課程。 以下是所有在freeCodeCamp的YouTube頻道上進行的無廣告的CS50課程講座 。
設計模式,YAGNI,KISS,SOLID (Design Patterns, YAGNI, KISS, SOLID)
I don't think beginners need a deep understanding of these, but it wouldn't hurt.
我認為初學者不需要對此有深入的了解,但這不會有任何傷害。
Design Patterns are basically time-tested ways to implement different types of software systems and coding structures. You can learn these gradually as you progress.
設計模式基本上是經過時間考驗的方法,用于實現不同類型的軟件系統和編碼結構。 您可以隨著學習的進行逐步學習。
As for the alphabet soup, here's what these stand for:
至于字母湯,這些代表:
YAGNI - Ya Ain't Gonna Need It - The philosophy that most of the code you think you'll need to write and the features you'll need to implement will actually turn out to be unnecessary
YAGNI-不需要-您認為您需要編寫的大多數代碼以及需要實現的功能的哲學實際上是不必要的
KISS - Keep it simple, silly! - The simpler you keep your projects the easier your life will be when it comes to maintenance.
吻-保持簡單,愚蠢! -保持項目越簡單,維護工作就越輕松。
SOLID - This is a mnemonic for "Single responsibility,??Open–closed, Liskov substitution, Interface segregation, Dependency inversion". Yeah - not beginner's stuff, but look into this if you're curious.
SOLID-這是“單職責,??開閉,Liskov替換,接口隔離,依賴倒置” 的助記符 。 是的-不是初學者的東西,但是如果您好奇的話,請研究一下。
前端Web開發路線圖 (Front End Web Development Roadmap)
Kamran's first roadmap focuses on front end web development.
Kamran的第一個路線圖側重于前端Web開發。
Here's his Front End Roadmap in its entirety:
這是他完整的前端路線圖:
我對前端路線圖的想法 (My thoughts on the Front End Roadmap)
This is a solid list of fundamental skills.
這是基本技能的可靠清單。
As a front end developer, you will definitely be working with HTML, CSS, and JavaScript - lots and lots of JavaScript.
作為前端開發人員,您一定會使用HTML,CSS和JavaScript-大量JavaScript。
The only things I think are unnecessary here:
我認為這里唯一沒有必要的事情是:
CSS Preprocessors. These use to be necessary, but CSS itself has added many of the features that made these preprocessors so useful. freeCodeCamp currently teaches Sass, but we are in the process of phasing that out as well.
CSS預處理器。 這些是必需的,但是CSS本身添加了許多功能,使這些預處理器變得非常有用。 freeCodeCamp當前正在教授Sass ,但是我們也在逐步淘汰它。
- CSS Architecture: I don't think these are necessary unless you designing CSS systems is a big part of your day-to-day job. CSS體系結構:除非您設計CSS系統是您日常工作的重要組成部分,否則我認為這些不是必需的。
A bit of a nitpick: TypeScript is a promising way to reduce bugs and code with confidence. We're adding this to Version 7.0 of the freeCodeCamp core curriculum. I think this should be even more prominent on the roadmap, but it is on there.
有點挑剔:TypeScript是一種有希望的減少錯誤和代碼的信心十足的方法。 我們將其添加到freeCodeCamp核心課程的7.0版中 。 我認為這應該在路線圖上更加突出,但是它就在那里。
- Web Assembly is a nice-to-have in my opinion. Developers are starting to do exciting things with it, but it will be a while before this technology really becomes ubiquitous. 在我看來,Web Assembly是一個不錯的選擇。 開發人員開始使用它進行令人興奮的事情,但是要真正使這項技術普及還需要一段時間。
后端Web開發路線圖 (Back End Web Development Roadmap)
Kamran's second roadmap focuses on back end web development. If you combine this with his front end map, you get a pretty good path to becoming a full stack developer.
Kamran的第二個路線圖側重于后端Web開發。 如果將此與他的前端圖結合起來,您將成為成為全棧開發人員的絕妙途徑。
Here's his entire Back End Roadmap:
這是他的整個后端路線圖:
我對后端路線圖的想法 (My thoughts on the Back End Roadmap)
I agree with everything here.
我同意這里的一切。
是的,您應該學習SQL和關系數據庫 (Yes you should learn SQL and relational databases)
I want to strongly agree with his recommendation that you learn a relational database.
我非常同意他關于您學習關系數據庫的建議。
Yes - databases like MongoDB and Neo4j can do a lot for you, and are better suited to certain types of applications than relational databases.
是的-MongoDB和Neo4j等數據庫可以為您做很多事情,并且比關系數據庫更適合某些類型的應用程序。
But you should still learn SQL and understand how relational databases work.
但是您仍然應該學習SQL并了解關系數據庫如何工作。
I recommend PostgreSQL (which we use for several projects at freeCodeCamp), but other relational databases are pretty similar.
我建議使用PostgreSQL(我們在freeCodeCamp的幾個項目中使用了PostgreSQL),但是其他關系數據庫卻非常相似。
Here's freeCodeCamp's free 4-hour course on SQL, which will teach you the basics.
這是freeCodeCamp 關于SQL的4小時免費課程 ,它將教您一些基礎知識。
And if you want to dive even deeper, here's our free 8-hour course on relational database design.
如果您想更深入地學習,這是我們有關關系數據庫設計的8小時免費課程 。
如何選擇正確的后端開發編程語言 (How to choose the right back end development programming language)
I also want to add a note on choosing a language.
我還想添加關于選擇語言的注釋。
Even though there are many languages - and you can do essentially anything with any language - I strongly recommend learning either Node.js (JavaScript) or Python as your first language.
即使有許多種語言-而且您幾乎可以用任何一種語言做任何事情-我還是強烈建議您學習Node.js(JavaScript)或Python作為您的第一語言。
Here is a detailed guide to which programming language should you learn first.
這是您應該首先學習哪種編程語言的詳細指南。
DevOps路線圖 (DevOps Roadmap)
Finally, Kamran covers how to become a DevOps, or Site Reliability Engineer. This involves working with a lot of cloud services and overseeing infrastructure.
最后,Kamran介紹了如何成為DevOps或站點可靠性工程師。 這涉及使用大量云服務和監督基礎架構。
Here's his entire DevOps roadmap:
這是他的整個DevOps路線圖:
我對DevOps路線圖的看法 (My thoughts on the DevOps roadmap)
Linux, Linux, Linux.
Linux,Linux,Linux。
Also, I would recommend working as a developer first, then gradually coming to specialize in DevOps.
另外,我建議先作為開發人員工作,然后逐漸專注于DevOps。
Here's a quick 30-minute introduction to the field of DevOps that should give you a better idea of whether DevOps is something you're interested.
這里是對DevOps領域的30分鐘快速介紹,它應該使您更好地了解DevOps是否是您感興趣的東西。
That's all. What do you think? Did Kamran leave out any essential skills or technologies? Leave a comment and let's hash this out.
就這樣。 你怎么看? Kamran是否遺漏了任何必不可少的技能或技術? 發表評論,讓我們對其進行散列。
Also, if you have any resources that have worked really well for you learning these skills, share them below as a comment.
另外,如果您有任何資源對您學習這些技能非常有用,請在下面以評論的方式分享。
Happy coding!
編碼愉快!
– Quincy
–昆西
翻譯自: https://www.freecodecamp.org/news/web-developer-roadmap/
devops開發模式流程圖