精华内容
下载资源
问答
  • web后端开发学习路线My previous article described how you can get into frontend development. It also discussed how the front end can be a place filled with landmines – step in the wrong place and you'...

    web后端开发学习路线

    My previous article described how you can get into frontend development. It also discussed how the front end can be a place filled with landmines – step in the wrong place and you'll be overwhelmed by the many frameworks of the JavaScript ecosystem.

    我以前的文章描述了如何进行前端开发 。 它还讨论了前端如何成为一个充满地雷的地方-进入错误的地方,JavaScript生态系统的许多框架会让您不知所措。

    In this blog article, let's see how you can get into back end development. Along the way, I'll answer some of the most common questions people ask me about it.

    在这篇博客文章中,让我们看看如何进行后端开发。 在此过程中,我将回答人们问我的一些最常见问题。

    什么是后端开发? (What is Backend Development?)

    Front end development involves what a user sees on the screen when they open a specific URL owned by you. Even in a completely static environment (with only HTML/CSS), when someone opens a website, some server on the planet needs to respond to you with those HTML and CSS files.

    前端开发涉及用户打开您拥有的特定URL时在屏幕上看到的内容。 即使在完全静态的环境(只有HTML / CSS)中,当有人打开网站时,地球上的某些服务器也需要使用这些HTML和CSS文件来响应您。

    That server is just a computer, just like the one you use yourself to browse the internet. But it has been tuned for performance, and doesn't have unnecessary components like a mouse or keyboard attached. And it sits with tons of other computers probably in a data warehouse.

    该服务器只是一台计算机,就像您自己用来浏览互联网的计算机一样。 但是它已经过性能调整,并且没有多余的组件,如鼠标或键盘。 它与数以千计的其他计算机一起放置在数据仓库中。

    Programming those computers in some special way is called back end development.

    以某种特殊方式对这些计算机进行编程称为后端开发

    You may think that backend development is called what it is because it runs behind the user's back. A visitor to your website never really "accesses" the back end completely. They just communicate with your server, either directly through ports for very limited access (like transferring HTML/CSS files) or not even that – buried deep under CDNs or firewalls (like Cloudflare).

    您可能会认为后端开发就是所谓的,因为它在用户背后运行。 您网站的访问者永远不会真正完全“访问”后端。 它们只是直接通过端口与您的服务器进行通信,以进行非常有限的访问(例如传输HTML / CSS文件),甚至不进行通信–将它们深深地埋在CDN或防火墙(如Cloudflare)下。

    Now that we have a raw understanding of what back end development means, let's get into some real questions.

    现在,我们对后端开发的含义有了一个初步的了解,让我们进入一些实际的问题。

    后端需要前端编程知识吗? (Is front end programming knowledge required for the back end?)

    TLDR; No.

    TLDR; 没有。

    Back end development, as mentioned above, involves the programming of a computer sitting probably on the other side of the planet responsible for responding to what your users say from their own computers.

    如上所述,后端开发涉及对计算机的编程,该计算机可能位于地球的另一侧,负责响应用户从其自己的计算机发出的信息。

    If you're a full-time backend developer, you do not really need to care about what goes on inside those HTML, CSS and JavaScript files you send to the user's browser. Instead, you've to focus more on the performance of the server, the server code, and throughput.

    如果您是一名全职后端开发人员,那么您实际上不必关心发送到用户浏览器HTML,CSS和JavaScript文件中的内容。 相反,您必须更多地关注服务器的性能,服务器代码和吞吐量。

    后端开发有哪些内容? (What goes into back end development?)

    Well, going by the books, you may say that a person who codes an application that can respond to HTTP requests is a back end developer.

    好吧,按照这些书,您可能会说,编写可以响应HTTP请求的应用程序的人是后端开发人员。

    But in reality, sometimes back end developers are able to do much more than just writing server scripts. They have the knowledge to set up reverse proxy servers (NGiNX/HAProxy), enable compression and other ways to speed up the site, and set up a production docker environment.

    但是实际上,有时后端开发人员不仅可以编写服务器脚本,还能做更多的事情。 他们具有设置反向代理服务器(NGiNX / HAProxy),启用压缩和其他方式以加快站点速度以及建立生产docker环境的知识。

    To qualify as a back end developer, I'd say the bare minimum skills you need are:

    要成为合格的后端开发人员,我想说的是,您需要的最低技能是:

    1. Good knowledge about a programming language in which you can write HTTP servers. Examples: C#, Java, Node, PHP, Python, etc. (there are many!)

      对可以用来编写HTTP服务器的编程语言的丰富知识。 示例:C#,Java,Node,PHP,Python等(有很多!)
    2. Manage to host using cPanel (traditional) or using bash terminal (cloud hosting/traditional)

      使用cPanel(传统)或bash终端(云托管/传统)管理托管
    3. Working with Version Control Systems (VCS) like git for managing and deploying builds

      使用git等版本控制系统(VCS)来管理和部署构建

    Just like every game comes with minimum and recommended specifications, for back end developers, my recommend specifications would be (inclusive of the minimum skills):

    就像每款游戏都有最低要求和推荐规格一样,对于后端开发人员,我的推荐规格将是(包括最低要求):

    1. NGiNX for static file assets and server management

      NGiNX用于静态文件资产和服务器管理
    2. Database Management skills (SQL/NoSQL)

      数据库管理技能(SQL / NoSQL)
    3. Security of backend (Writing safe and robust code, running applications in docker containers with limited privileges, protection against DoS attacks)

      后端的安全性(编写安全可靠的代码,以有限的特权在Docker容器中运行应用程序,防范DoS攻击)
    4. Autoscaling/Load balancing

      自动缩放/负载平衡

    Alright, too much talking about what goes into back end development. But how do you become one?

    好吧,过多地讨论了后端开发的内容。 但是你如何成为一个?

    从最低要求开始 (Start with minimum requirements)

    Like I said, for the back end, just like games, we have a set of minimum requirements and recommended requirements. The minimum requirements consists of 3 things:

    就像我说的那样,对于后端,就像游戏一样,我们有一组最低要求和建议要求。 最低要求包括三件事:

    学习后端编程语言 (Learn a backend programming language)

    When people learn by themselves, they usually do not have a team or anyone who can do front end development. They're all on their own. So you'll often have to create webpages and servers all by yourself, at least in the beginning.

    人们自己学习时,通常没有团队或任何可以进行前端开发的人。 他们全靠自己。 因此,至少在开始时,您通常必须自己全部创建网页和服务器。

    Although there are a lot of choices for back end programming languages, and I cannot think of any popular system language which doesn't support HTTP servers out of the box. The advantage of choosing Node is that your front end JavaScript skills are transferrable to the back end.

    尽管后端编程语言有很多选择,但我想不出任何不支持HTTP服务器的流行系统语言。 选择Node的好处是您的前端JavaScript技能可以转移到后端。

    Nonetheless, you can choose from a variety of languages like Java, C++, C#, Python, PHP, etc.

    但是,您可以从多种语言中进行选择,例如Java,C ++,C#,Python,PHP等。

    How do you pick one, you might ask. The answer is the same as it was in the front end development article: you have gotta try everything initially and see which one clicks the best with you.

    您可能会问,如何挑选一个。 答案与前端开发文章中的答案相同:您必须首先尝试一切,然后看看哪个点击最适合您。

    Node is easy as you might have already done JS programming for the front end. But if you're a Python or Java developer, you might find those easy to pick up. It depends on your profession and taste completely.

    Node很容易,因为您可能已经为前端完成了JS编程。 但是,如果您是Python或Java开发人员,则可能会发现它们很容易上手。 这完全取决于您的职业和品味。

    了解有关管理托管的信息 (Learn about managing hosting)

    Gone are the days when you'll have to manually purchase servers and set them up in your home, connect to your ISP, do all that stuff yourself. This is the era of cloud computing. Now, when hosting your website, you have mainly 2 options:

    您将不得不手动购买服务器并在家里设置它们,连接到ISP,自行完成所有这些工作的日子已经一去不复返了。 这是云计算的时代。 现在,在托管网站时,主要有两种选择:

    1. Going for managed hosting servers like HostGator or GoDaddy.

      用于托管主机服务器,例如HostGator或GoDaddy。
    2. Going for cloud hosting providers like GCP, AWS, or DigitalOcean.

      寻找GCP,AWS或DigitalOcean等云托管提供商。

    What is the difference between the two? In both cases, the servers are owned and operated by the respective companies. But the major difference is that managed hosting is more GUI friendly, has a rich set of tools for seeing the filesystem, monitoring usage, managing your official domain emails, uploading/downloading files from your server, and so on. It's basically a setup for people with less technical skills.

    两者有什么区别? 在这两种情况下,服务器均由各自的公司拥有和运营。 但是主要的区别是托管托管更易于使用GUI,具有丰富的工具集,可用于查看文件系统,监视使用情况,管理官方域电子邮件,从服务器上载/下载文件,等等。 基本上,它是为技术技能较弱的人准备的。

    For that reason, I do not recommend managed sites like HostGator or GoDaddy for seasoned developers. Still, it might be a good platform to make mistakes and learn on, primarily because you usually have prepaid plans for them. You'll also have a nice UI for managing things, which doesn't allow you to accidentally shoot up your bills.

    因此,我不建议经验丰富的开发人员使用托管网站如HostGator或GoDaddy。 尽管如此,它仍然可能是犯错和学习的好平台,主要是因为您通常会为他们预先准备好计划。 您还将拥有一个不错的用户界面来管理事情,这不允许您意外地付账。

    But when you start picking up speed, I recommend that you switch to a cloud provider. This takes away all the nice tools from cPanel that you used to manage files and folders on servers. But at the same time, it will challenge you to level up your skills a lot.

    但是,当您开始加快速度时,建议您切换到云提供商。 这消除了cPanel中用于管理服务器上文件和文件夹的所有漂亮工具。 但是与此同时,它将挑战您大量提高您的技能。

    Today, a lot of cloud providers offer a decent free trial, too, so that you can actually try out their platform before going full in. I host my website for developers - codedamn - on DigitalOcean and find it to be at a sweet balance of site complexity and features.

    如今,许多云提供商也提供了不错的免费试用版,因此您可以在全面试用之前实际试用他们的平台。我在DigitalOcean上为开发人员托管了我的网站-Codedamn,并发现它与网站的复杂性和功能。

    You can use this link to signup on DigitalOcean and get free $100 credits. DigitalOcean instances are as cheap as $5 a month, so you have a runway of about 20 months on that instance, great deal, huh?

    您可以使用此链接在DigitalOcean 上注册免费获得$ 100的信用 。 DigitalOcean实例的价格低至每月5美元,因此您在该实例上的运行时间约为20个月,是吗?

    Anyway, you can choose any cloud provider. Then it's important to learn to manage the server using just the command line by ssh'ing into it.

    无论如何,您可以选择任何云提供商。 然后,重要的是学会通过仅使用命令行来管理服务器。

    了解版本控制系统 (Learn about Version Control Systems)

    There are other solutions apart from Git for VCS. But Git is the most used and simplest to understand.

    除了适用于VCS的Git之外,还有其他解决方案。 但是Git是最常用和最容易理解的。

    As an individual, you might not appreciate it right away. But you'll understand why it is so important the moment you start working either in a team on multiple features simultaneously in your project.

    作为个人,您可能不会立即欣赏它。 但是当您开始在一个团队中同时在项目中同时处理多个功能时,您就会理解为什么如此重要。

    Git allows you to manage your workflow using commits and branches. Commits are like checkpoints in your codebase - the ones you can always revert to if you screw up.

    Git允许您使用提交和分支来管理工作流。 提交就像代码库中的检查点一样-如果您搞砸了,可以随时恢复到这些检查点

    Branches are like alternate realities of your project, where something completely different could happen. These alternate realities can be created from any point in time and can be merged back again at any time.

    分支就像项目的替代现实 ,其中可能会发生完全不同的事情。 这些替代现实可以在任何时间点创建,并且可以随时重新合并。

    If those realities can be merged together with compatibility, then it's fine. But if there's a conflict (like if you're alive in one reality and dead in other), then you have to manually make a choice. Other changes can be merged automatically.

    如果可以将这些现实与兼容性合并在一起,那就很好。 但是,如果存在冲突(例如,您在一个现实中还活着而在另一个现实中死了),那么您必须手动做出选择。 其他更改可以自动合并。

    Git is super interesting, and once you get hang of it, you'll want to use it in every project. You get to keep a history of your work in an efficient manner (it compresses and stores only the difference between commits).

    Git非常有趣,一旦您掌握了它,就可以在每个项目中使用它。 您可以高效地保留工作历史记录(它仅压缩和存储提交之间的差异)。

    It also allows you to create online git repositories on sites like GitHub, which acts as a central source of truth for your website. Sites like GitHub can be configured with special webhooks that can actually update your website whenever you add a new checkpoint (a new commit) without you ever needing to manually go to the server and update it yourself.

    它还允许您在GitHub之类的网站上创建在线git存储库,这是网站真相的主要来源。 可以像GitHub这样的网站配置特殊的Webhook,这些Webhook实际上可以在您添加新的检查点(新的提交)时更新您的网站,而无需手动转到服务器并自行更新。

    I'm a big believer in learning by doing. And the best way to do something comes out of necessity or interest. Once you consider yourself good enough with the minimum requirements, it's time to acquire the recommended skills. This includes all the tools like Docker and NGiNX mentioned above.

    我坚信边做边学。 而做某事的最好方法是出于必要或兴趣。 一旦您认为自己的最低要求足够好,就可以开始学习推荐的技能。 其中包括上述所有工具,例如Docker和NGiNX。

    DevOps is also something which fits in super nicely with back end developers. You could try and explore TravisCI or CircleCI for automated build deployments. Continuous Integration and Deployment (CI/CD) is a topic that could take another whole blog post, so I'll not get into that. In fact, once it is set up correctly, it'll save you a ridiculous amount of developer time!

    DevOps也非常适合后端开发人员。 您可以尝试探索TravisCICircleCI进行自动构建部署。 持续集成和部署(CI / CD)是一个主题,可能需要撰写另一篇完整的博客文章,因此我不再赘述。 实际上,一旦正确设置,它将为您节省大量的开发时间!

    Then comes databases, which I placed in recommended skills. But you're gonna need databases for pretty much any application which involves some sort of data persistence generated by the user.

    然后是数据库,我把这些数据库放在推荐的技能上。 但是,几乎所有涉及用户生成的数据持久性的应用程序都将需要数据库。

    Databases are usually easy to begin working with, but harder to maintain and tweak properly. The best way to start working on a back end tech stack is to have everything together on a single server - the code of your application, the reverse proxy servers, the database, etc. Then as you become more proficient in each thing, you can decouple it from the existing business logic.

    数据库通常很容易上手,但是很难维护和正确调整。 开始在后端技术堆栈上工作的最佳方法是将所有内容整合到单个服务器上-您的应用程序代码,反向代理服务器,数据库等。然后,当您精通每件事时,您可以将其与现有业务逻辑分离。

    By doing this, you're enabling an architecture that can be highly scaled. A database-operation intensive application could have an optimized solution for databases. And a heavy traffic bound site should have a good CDN mechanism to offload static assets, and so on.

    通过这样做,您可以实现高度可扩展的体系结构。 数据库操作密集型应用程序可能具有针对数据库的优化解决方案。 流量受限的站点应该具有良好的CDN机制来卸载静态资产,依此类推。

    结论 (Conclusion)

    There's so much to learn, but it's all achievable if you don't give up. Let me know what you think about this post through my twitter and Instagram handles. It'll mean a lot to me if we connect over there!

    有很多东西要学,但是如果您不放弃,这一切都是可以实现的。 让我知道您对我的TwitterInstagram句柄的看法。 如果我们在那里连接对我来说意义重大!

    Also, if you're interested, checkout codedamn - a developer-focused platform for learning technologies like backend development! I even posted a YT video on spinning up your own simple website server in 2 minutes! Check that out and let me know what you think!

    另外,如果您有兴趣,请签出codedamn-一个面向开发人员的平台,用于学习后端开发等技术! 我什至在2分钟内发布了一个YT视频,介绍了如何旋转您自己的简单网站服务器 ! 检查一下,让我知道您的想法!

    Peace!

    和平!

    翻译自: https://www.freecodecamp.org/news/learn-backend-development/

    web后端开发学习路线

    展开全文
  • 后端需要学习什么

    千次阅读 多人点赞 2020-12-14 14:37:00
    后端需要学习什么? 后端程序员应该需要掌握编程语言、操作系统、数据库、服务器基础、计算机网络协议、数据结构 和算法、开发工具等相关的知识。 开篇声明:本文为尽可能追求专业、公证、准确、全面,以下内容部分...

    后端需要学习什么?

    后端程序员应该需要掌握编程语言、操作系统、数据库、服务器基础、计算机网络协议、数据结构

    和算法、开发工具等相关的知识。

    开篇声明:本文为尽可能追求专业、公证、准确、全面,以下内容部分来源于百度百科、网络,如有侵权请及时与我联系。

    一、编程语言

    后端现目前语言太多太多了,我也没办法一一列举,下图为“2020年12月TIOBE指数”,
    在这里插入图片描述
    目前比较代表性的编程语言就介绍这么多,每一种语言针对不同场景都有其独特的优势,整体的学习难度排序C/C++>Java>C#>PHP>Python。如果你是想要以后从事后端开发的工作,个人建议可以以Java或者C语言作为第一门学习的语言,在工作后期根据实际需求再去拓展其他语言相关知识。如果你只是因为兴趣,想感受一下编程的魅力,建议你可以学习Python。

    无论哪种语言,程序代码只是一个工具,最后真正留下的只有原理、协议、框架、思维。

    二:操作系统

    Windows操作系统

    这个相信是大家最熟悉的操作系统了,基本上使用过电脑的人都知道它。目前已经发展到windows10,它的重要性不言而喻。

    Linux操作系统

    学习Linux操作系统可以更好的掌握计算机技术,更好了解计算机工作的原理,可以很好巩固自身的基础知识,是目前后端必须掌握的操作系统。

    目前服务器端开发的市场基本上都被Linux操作系统占有。例如Android系统就是基于Linux内核开

    发出来的,大数据、云计算等也都支持Linux操作系统。作为成熟的程序员基本上都需要掌握Linux操作系统。

    三:数据库

    1、MySQL

    是一款开源的关系型数据库,属于中型数据库。因为免费、速度、可靠性、适应性等都较好是目前很多项目首选的数据库。市面上很多软件和网站的都是使用的MySQL数据库,目前被Oracle(甲骨文)公司收购。还有一系列分支:

    MariaDB是MySQL原始团队一些人开发,对于server端做了加强,同时能支持更多的引擎。

    nnosqll是网易开发的,使得性能、可靠性得到进一步加强。

    Drizzle高效的内存使用,专为多CPU/多核设计

    Webscaleesql是由Facebook、谷歌、LinkedIn、以及Twitter合作成果专攻海量数据

    2、Oracle

    是甲骨文公司出品的一款关系型数据库,属于大型数据库。它是一种高效率、可靠性好的、稳定性好、适应高吞吐量的大型数据库,主要应用于银行、证券类业务等。因为它后期维护相对麻烦、对硬件要求比较高、崩溃后恢复很麻烦、不免费等缺点主要是一些大型公司在使用。

    3、SqlServer

    也是一款基于服务器端的关系型数据库,属于中型数据库。在处理大量数据的效率、后台开发的灵活性、可扩展性等方面强大,而且其易用性、适合分布式组织的可伸缩性、良好的性价等优势让其

    在数据库的领域占有比较大的份额。

    但它也有因为其开放性弱(只能运行在Windows平台上)、性能稳定性弱、只支持C/S模式等缺点

    也在某些领域开发受到一定的局限性。

    4、Mongodb

    是一个基于分布式文件存储的数据库,介于关系型数据库和非关系型数据库之间的产品,是非关系

    数据库当中功能最丰富,最像关系数据库的。具有实用性好、快速、可用性、负载均衡上的实现非

    常简洁和友好、扩展性强等特性。同时它的缺点不支持事务操作(因此事务要求严格的系统如:银

    行系统就不适用)、占用空间过大、删除记录不释放空间。应用于如游戏、电商、物联网、视频直

    播、社交等方面。

    还有很多的数据库如: Redis、 Memcached、 Riak KV、Hazelcast、 Ehcache 、Memcached、

    Riak KV、Hazelcast、 Ehcache 、Elasticsearch、 Solr、 Splunk、 MarkLogic、 Sphinx 等等就不

    介绍了。

    针对后端的学习目前必须掌握MySQL、Oracle、 SqIServer三个数据库其中-个,根据后期的工作

    学习需要可以进一步增加掌握内容。

    四、服务器基础
    在这里插入图片描述
    服务器也是一种计算机。也称伺服器,是提供计算服务的设备。它的构成和通用的计算机类似,但是因为它需要为响应客户机(可以是移动端、PC端、ATM机等终端甚至可以是飞机、火车等大型设备)的服务请求并进行处理回复,提供可靠的服务。所以在计算处理能力、安全性、可靠性、稳定性、扩展性等方面要求都比较高。

    后端也可以被称为服务器端,服务器是网站、软件安全关键,所以了解服务器基础和作用也是后端

    程序员必不可少的一-方面。

    五、计算机网络协议

    计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接

    起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传

    递的计算机系统。

    而网络协议是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。没有网络协议就根

    本不可能上网,任何和互联网有关的操作都离不开网络协议。我们开发的软件网络是不可缺少的,

    因此计算机协议的相关知识也是不可或缺的。

    六、开发工具

    编程开发工具从宏观角度来分类的话只有两个:编辑器、IDE。

    编辑器(Editor) :最初编辑器的定义就是编辑纯文本的工具,功能简单,打开编辑,编辑完保

    存关闭即可;但随着技术发展的需要,编辑器的功能也越来越丰富,从最初的纯编辑,到现在可

    以实现代码高亮、语法提示、自动格式化等功能,相比最初,编辑器可以说是发生了翻天覆地的

    变化。编辑器软件在运行时系统占用较小,因此使用起来比较流畅。

    常见的编辑器: Vim、Emacs、 Sublime Text, NotePad++等。

    IDE (集成开发环境) :集成开发环境IDE是用于提供程序开发环境的应用程序, . -般包括代码编

    辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调

    试功能等一体化的开发软件服务套件。由于功能非常强大,因此在软件运行的过程中会占用大量

    的系统资源,对电脑配置不高的机器不太友好,容易出现卡死的现象。

    常见的IDE

    Java语言: Eclipse、 IDEA、 MyEclipse。

    C语言: Microsoft Visual Studio、turbo c2.0、visual C+ + 2008。

    Python语言: Pycharm。

    现在的IDE已经不局限于某-种编程语言了,比如Eclipse可以做Java、 安卓、Python的开发。

    编译器相对于IDE功能简单,在编写代码过程中没有那么多提供便捷的功能。如果你选择使用编译

    器书写代码语言那么你学习路线会比较陡峭,当然带来的好处就是熟练使用后纯手敲代码的效率飞

    快,对于代码的理解也更深入。

    IDE相比于编辑器,那就是为程序员提供便捷的方式,只要掌握了使用方法可以提供很多的便利。

    例如:提供代码提示、纠错、调试等。使得让程序员编码的过程非常友好,快捷。

    不管是编译器还是IDE都是属于开发工具让我们的代码可以执行出相应的效果,没有绝对的好与

    坏。你可以根据你选择的语言和自己学习习惯选择适合的开发工具。

    七:数据结构和算法

    有一个说法“程序=数据结构+算法”这是瑞士计算机科学家Niklaus Wirth于1976年出版的一本书

    的书名。这个说法在当时获得了大家的一致赞同。

    虽然随着时代的发展,出现了很多编程语言,也有很多开发工具让我们可以很方便、快捷地开发和

    部署应用程序,逐渐淡化了数据结构和算法的重要性(现在中小学就能学习Python做一 些简单的程

    序),感觉有时候根本就不需要数据结构和算法,但这只是一种片面的想法。随着目前硬件设施的

    能力提升,用户数量的激增,对于软件运营效率要求更高,因此拥有良好的数据结构和算法写出来

    的程序也更简洁、有效。

    举一个简单的例子:目前一个大中型公司每天产生的数据量都是以TB计算,在这个数量级的处理下

    不单纯考研的是对于硬件的运算能力,设计一套优秀的数据结构和算法可能1分钟就能完成任务,而

    垃圾的算法可能需要几倍甚至几十倍的时间。那么对于硬件的损耗、用户体验、软件的稳定性等都

    会造成很大的影响,所以其重要性可想而知。

    在前端领域混了这几年,总结了一套前端学习的精讲视频和学习路线,如果有对前端开发感兴趣的伙伴,不管你是想转行,或是大学生,还有工作中想提升自己能力的web前端党,欢迎大家的加入我的前端开发交流群:603985993 希望大家诚心交流!,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!也可以关注我的微信公众号:【前端留学生】 每天更新最新技术文章干货。

    在这里插入图片描述
    常用的数据结构和算法如下:

    1、线性表

    ●数组

    ●栈

    ●队列

    ●链表

    2、散列表

    ●散列函数

    ●冲突解决.

    位图

    ●动态扩容

    3、树

    ●二叉树

    ●堆

    ●多路查找树

    4、图

    ●存储

    ●路径

    ●拓扑排序

    5、基本算法思想

    ●动态规则

    ●回溯算法

    ●枚举算法

    ●分治算法

    ●贪心算法

    ●穷举算法

    6、排序算法

    ●冒泡排序

    ●插入排序

    ●希尔排序

    ●选择排序

    ●归并排序

    ●快速排序

    ●堆排序

    ●计数排序

    ●桶排序

    ●基数排序

    7、查找

    ●顺序查抄

    ●二分查找

    ●散列表查找

    ●二叉树查找

    8、复杂度

    ●深度

    ●广度

    作为一个成熟的程序员不单纯的懂一-1 门编程语言和数据库就行了,很多内核的东西可能在编程语言学习的过程中就涉及到了(学习Java开发基础过程中就要涉及算法、开发I具),我将学习的内容都单独罗列出来了,如果你是打算在编程行业长期发展,那么我提到的这些内容你一定要掌握,不要只关注开发语言和数据库,这都相当于是工具,学会如何使用不难,但是你一定要了解其内核,研究原理如果让I具可以给你提供更好的程序输出,这是保证你后期发展的关键。

    展开全文
  • 首先要明确后端包括哪些职业:DBA(数据库维护优化专家),Developer(程序猿),Architect(构架师),Scrum master及类似(敏捷开发专家),Project Manager(产品狗),Maintenance&IT support(通讯和服务器相关),当然...

    首先要明确后端包括哪些职业:DBA(数据库维护优化专家),Developer(程序猿),Architect(构架师),Scrum master及类似(敏捷开发专家),Project Manager(产品狗),Maintenance&IT support(通讯和服务器相关),当然这只是一个大致的分类,并没有一个清晰的界限。

    按程序猿内功而言:关系型数据库,领域驱动设计(Domain-Driven Design),设计模式Design Pattern,算法Algorithm,面向对象编程OOP(SOLID),线程安全,事件驱动,测试驱动开发,依赖注入框架,等等。

    对于初学Java并且有志于后端开发的同学来说,需要重点关注以下几个部分:

    基础:比如计算机系统、算法、编译原理等等

    Web开发: 主要是Web开发相关的内容,包括HTML/CSS/js(前端页面)、 Servlet/JSP(J2EE)以及MySQL(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面)。

    J2EE:你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频。

    最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

    开发框架:目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

    因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余?由此也可以看出,这些学习的过程是环环相扣的,如果你任何一个阶段拉下来了,那么你就真的跟不上了,或者说是一步慢步步慢。而且我很负责的告诉你,我在这个阶段的时候,所学习的东西远多于这里所罗列出来的。

    总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容),也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。

    展开全文
  • python后端开发学习内容有哪些?

    千次阅读 2021-04-06 16:36:16
    python后端开发学习内容有哪些? 【导语】Python是一个强大的面向对象的程序设计语言,在人工智能领域,在网络爬虫、服务器开发、3D游戏、网络编程、数据分析、Web开发、运维、测试等多个领域都有不俗的表现,但学习...

    python后端开发学习内容有哪些?

    【导语】Python是一个强大的面向对象的程序设计语言,在人工智能领域,在网络爬虫、服务器开发、3D游戏、网络编程、数据分析、Web开发、运维、测试等多个领域都有不俗的表现,但学习的知识点也很多,实战技巧复杂,那么python后端开发学习内容有哪些呢?

    第一阶段:Python语言基础

    主要学习Python最基础知识,如Python3、数据类型、字符串、函数、类、文件操作等。阶段课程结束后,学员需要完成Pygame实战飞机大战、2048等项目。

    第二阶段:Python语言高级

    主要学习Python库、正则表达式、进程线程、爬虫、遍历以及MySQL数据库。

    第三阶段:Python web开发

    主要学习HTML、CSS、JavaScript、jQuery等前端知识,掌握python三大后端框架(Django、 Flask以及Tornado)。需要完成网页界面设计实战;能独立开发网站。

    第四阶段:Linux基础

    主要学习Linux相关的各种命令,如文件处理命令、压缩解压命令、权限管理以及Linux Shell开发等。

    第五阶段:Linux运维自动化开发

    主要学习Python开发Linux运维、Linux运维报警工具开发、Linux运维报警安全审计开发、Linux业务质量报表工具开发、Kali安全检测工具检测以及Kali 密码破解实战。

    第六阶段:Python爬虫

    主要学习python爬虫技术,掌握多线程爬虫技术,分布式爬虫技术。

    第七阶段:Python数据分析和大数据

    主要学习numpy数据处理、pandas数据分析、matplotlib数据可视化、scipy数据统计分析以及python 金融数据分析;Hadoop HDFS、python Hadoop MapReduce、python Spark core、python Spark SQL以及python Spark MLlib。

    第八阶段:Python机器学习

    主要学习KNN算法、线性回归、逻辑斯蒂回归算法、决策树算法、朴素贝叶斯算法、支持向量机以及聚类k-means算法。

    关于python后端开发学习内容,就给大家分享到这里了,学习是永无止境的,学习一项技能更是受益终身,所以,只要肯努力学,什么时候开始都不晚,大家赶紧加油学习吧!

    展开全文
  • 很多刚开始学习java的小伙伴可能都比较迷茫,不知道从哪里开始,学习过一位up主程序羊的java学习相关视频,跟着把java后端开发学习路线自己整理了一份,供大家参考,大家一起努力!
  • 一文看懂Web后端开发

    千次阅读 多人点赞 2021-03-20 23:53:34
    ”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么才是后端开发。 定义 后端开发(Back-End Development,也称服务端开发、服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称...
  • 转载关于后端开发需要学习的内容

    千次阅读 2019-04-24 21:01:22
    大约1周以前,我们发布了一篇名为“现代前端开发--2018”,同时我们承诺了会发布一篇“后端以及开发运维路线图”。兑现这一承诺,这篇文章就是关于现代后端开发者的。如果你还没有查看过前端开发路线图,可以去瞧瞧...
  • java后端开发需要学什么

    千次阅读 2021-08-14 15:00:52
    java后端开发需要的知识有:1、Java基础语法和oop特性;2、数据库相关知识,例SQL语言、MySQL、非关系型数据库;3、Web基础知识;4、Web主流框架,例Spring、SpringMVC、Mybatis;5、前端知识等。 本篇文章将大致...
  • 想从事Python后端开发的你,不知道如何入门和学习,但首先必须知道什么是“Python后端开发”。 1、什么是“Python后端开发” 刚开始接触软件行业的你,以前可能经常会被人问到:“你以后想走前端还是后端呢?”这...
  • 然而,在网络建设时,网络建设开发师常常为了选择哪一种网络开发语言而发愁,下面小编给您收集整理了一篇《后端开发语言哪一种比较好?》,对目前常见的后端语言进行简单的介绍,希望您能从中选择出一款您满意的后端...
  • JAVA后端应该学什么技术?

    万次阅读 多人点赞 2019-07-01 16:17:34
    Java语言是最常见的后端开发语言之一,Java语言由于自身具备构建多线程的能力,且体系结构比较中立,所以在大型互联网平台的开发中得到了广泛的采用。 目前要想从事Java的后端开发应该学习以下内容: 第一,...
  • java后端开发学习路线

    千次阅读 2020-06-01 10:41:36
    文章目录java后端开发学习路线编程基础java语言语法基础JVM并发/多线程数据结构和算法数据结构算法计算机网络数据库/SQL操作系统设计模式研发工具应用框架后端spring全家桶服务器软件中间件分布式/微服务微服务发现/...
  • Java后端开发学习路线:一文串起所有主流技术点

    万次阅读 多人点赞 2020-05-11 10:45:27
    注:本文已经收录进开源项目:github.com/JavaCollection,有自学路线、面试题和面经、编程资料以及系列技术文章。 前言 这篇想写很久了,原以为一两天搞定,...应该说,基本把Java后端开发主流技术点都串起来了。..
  • 后端都要学习什么

    2020-12-29 06:00:29
    前面那些关于后端学什么的回答都弱爆了!后端都要学些什么?这里强烈推荐一个Github 50K 的项目《后端架构师技术图谱》,看完这个回答其它关于后端的回答都可以不用看了, 因为都包含在这个后端架构师仓库。包含了后端...
  • 是不是很迷茫后端怎么,来看看吧
  • 前两天,在群里收到一个群友...之前有许多读者会在微信上问我,「自学 Python 后端开发什么程度才可以出去找工作?」,由于我本人不从事后端开发,所以无法给出合理的建议。正好借着强哥这篇经验分享,希望能给大...
  • _后端开发PHP7是PHP编程语言全新的一个版本,主要在性能方面获得了极大的提升。官方的文档显示,PHP7可以达到PHP5.x版本两倍的性能。同时还 对PHP的语法做了梳理,提供了很多其他语言流行的语法格式。PHP程序员需要...
  • 后端开发发展学习路线

    千次阅读 2020-03-09 18:14:58
    ## 1、什么后端开发 后端开发是一种不涉及创建生成用户界面的开发。这可能包括后端Web开发,可能也涉及编写API,创建库或和没有用户界面或甚至科学编程系统的系统组件一起工作。 ...
  • Java Web和Java后端开发的学习路线

    万次阅读 多人点赞 2017-03-11 23:14:18
    Web开发: 主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容...
  • 后端开发学习阶段总结

    万次阅读 2018-08-05 11:24:51
    最近开始接触后端开发,学海无涯,对于知识这座高峰,仰之弥高,钻之弥坚,我只能拾级而上,一个阶段来慢慢总结一下。 一、工欲善其事,必先利其器。首先是基本工具的安装: ... ...JDK 、 eclpise(java EE)、 svn ...
  • C++与 java 的抉择为了找工作:选Java...你单纯个java语法,你什么玩意也做不了,java的东西都在java之外。上图仅供娱乐,不过今天我们主要探讨Java与C++间的优劣。基础介绍Java与C++都拥有相当长的历史,且语法相...
  • Java后端开发学习路线和必技术点大梳理,串起Java后端开发主流技术栈
  • 适合学习JAVA后端开发的小白进行学习规划!
  • Java语言是最常见的后端开发语言之一,Java语言由于自身具备构建多线程的能力,且体系结构比较中立,所以在大型互联网平台的开发中得到了广泛的采用。 目前要想从事Java的后端开发应该学习以下内容: **第一,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 209,214
精华内容 83,685
关键字:

后端开发学什么