• 在你完成了开发之后,比如在你的电脑能跑通一个服务(像是别人的网站一样,有一个界面,界面能和后端交互),这时,我们通常不会在我们的 Windows / Mac 上面跑这个服务,虽然说只要你有公网 ip,那就可以把这个服务跑起来然后放到公网,让所有人都能用得上,但是 windows / mac 作为一个日常使用为目的的系统,对于部署服务的适配 / 性能都不及 linux,因此我们的服务普遍会部署到 linux 服务器(可以像是装 windows 系统一样在你的电脑上装一个 linux 系统,也可以从腾讯云阿里云买一个) ,然后你就需要去接触运维了。比如说最简单的一种方式,就是你把你的写的所有代码都转移到你的 linux 电脑,然后逐步配好语言环境,下载好所有的依赖,然后在你的 linux 上运行你的程序,再设置一下防火墙设置(只要你的服务是暴露在 0.0.0.0 这个 ip(在代码里面设置),然后你又有个公网 ip 的话,你就可以把你的服务部署到公网了),你就可以正式让别人去浏览器上输入你的 ip,然后去访问你的服务啦。当然,这种是非常笨重的方法,现在的普遍做法是把你的服务打包到 docker 里面,然后通过 CI、CD(可以在 Github Action 里面设置,设置好之后,你只要上传你的代码到 Github,然后他就可以自动帮你部署到你的服务器上)自动帮你部署到你的服务器上。而 docker 也是运维其中一个很重要的部分,这个在不少平台上也有教学,大家可以去详细了解一下。

  • 当然,大多数人通常没有自带公网 ip(除了香港家宽自带公网 ip),这个其实是需要购买的,大家可以去腾讯云/阿里云了解一下。公网 ip 会像是 219.66.222.111 这样一串数字的形式。你在浏览器输入这个公网 ip,就可以访问到你的服务。但这时有人就要问了,我平时访问的都是 xk.fudan.edu.cn 这样的网站呀,他怎么就不是一串数字呢。那这个 fudan.edu.cn 就是域名了。不过 edu 在此处不谈,大家通常接触到的 xxx.com 这种,其实都是需要在一些域名提供商那里购买的,大家可以了解一下 CloudFlare、阿里云等等,通过域名绑定公网 ip,实现域名访问服务。

  • 刚才有提到 Github 这个东西,那这个其实是一个储存你代码的平台,因为他比较方便协作(比如说多个人可以同时开发一个项目,大家做过什么更改,都可以查看 Commit 历史来追溯,一个团队成员要提交代码可以在多个分支提交,提交之前必须先交 PR,由项目负责人 Review 过后才通过),所以很多人都会用 Github 去储存自己的代码,很多知名开源项目也都是在 Github 上的。但是交代码等等的操作就需要用到 Git ,Git 在不少平台上也有教学,大家可以去详细了解一下。

学习路径:

  • 为了一个特定目的而学习

    • 看视频?用 AI 学?直接从项目上手?:看个人喜好,看视频的话会有一些比较科班的
  • 平时的碎片化学习

    • 多看看有氛围的社区(v2ex,linux.do,牛客,旦挞开发部)?
    • 看博客:可以的,可以找一些比较知名的博主,可以通过看到他们不少的真实想法,而不是在系统教学里面的一些很科班的东西。并且你可以自己写博客,以整理知识,并输出给他人的方式来学习)
  • 不建议

    • 看书:网上的资源已经很多了。而且不少方向的技术迭代比较快,比如说 NLP 方向,我们实验室组里的一位博士就有打算去写书,但是基本写到一半就发现之前不少内容因为技术迭代已经不适用了 / 不严谨了。等到出版并推行,那更是完全两回事了)
    • 看文档?(建不建议看编程语言的文档?)
  • 遇到困难:

    • AI:现在用自然语言描述问题已经能很好的解决问题了,不需要过多的 Prompt Engineering
    • google,且用英文搜,即使不习惯用英文,也可以用一些翻译插件,毕竟现在有 llm,所以翻译准确度颇高,其实你全程都可以用中文来输入,给你输出的内容也可以全部翻译为中文,但是你搜索本身需要用英文,才能获得更多的信息和更有质量的内容,以及可以合理利用搜索引擎的一些功能,比如说 site:xxx / - xxx。