在你完成了开发之后,比如在你的电脑能跑通一个服务(像是别人的网站一样,有一个界面,界面能和后端交互),这时,我们通常不会在我们的 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。