使用云服务器辅助编程学习体验

简介: 本学期选修了南京大学面向对象编程基础这门课。课程主线是学习C++语言和面向对象编程技能,并利用云服务器ECS辅助教学。有了云服务器ECS的帮助,我们可以实现很多Linux上的编程实践。

自我介绍

我是南京大学地理科学(拔尖计划)专业的大一学生,希望日后的专业方向是地理信息科学,因此正在有意识地提高自己在计算机方面的能力。这门课并不是本专业的必修课,而是我选择的跨院系专业课。我高中参加信息学竞赛有一定成绩,对算法很感兴趣,但对于C++语言的其他特性以及写工程不甚了解,选修这门课对此有所弥补。

云服务器实践

  1. 使用云服务器ECS的第一个困难就是命令行界面,尽管曾经接触过Linux,但是远没到熟练的程度,一开始在没有图形界面的情况下操作仍觉不便。同时,学习使用云服务器ECS的过程也促进了我对命令行以及Linux系统的理解。我了解了很多常用命令,包括install,mkdir,ssh,cat,mv等,以及一些常用工具,包括vim,tmux,gdb等,目前基本能够使用bash和zsh完成日常的编程操作。目前我正在自学shell脚本语言,它是很好用的工具,学会应该也不用花太多时间。
  2. 在该课程中,我第一次拥有了某个云服务器的使用权,初步了解到如何租用和选择云服务器,如何利用云服务器协助工作。我印象最深刻的实践课是利用云服务器部署网站,搭建个人博客。该博客是使用hexo在云服务器ECS上搭建的,能够快捷地将markdown文档转化为网站文章。搞定这件事花了我一个上午和半个下午。首先需要开放端口,然后让hexo在tmux上运行,很简单就能得到一个个人网站。之后我折腾了很久的主题更换、发表博文、Latex数学表达式渲染。上网搜索了更换主题教程,并经历了屡次失败后,我大致了解了配置文件各部分的作用和hexo主题更换与部署的注意点。还有文章的发表和更新,也需要一定的流程。在简单了解其工作流程后,我写了一个能够一键更新博客的shell文件,以及一个能够将markdown文件批量转化为hexo博文格式的shell文件,这样发表博文就更方便了。由于我的博客主要发表一些算法题的解题报告,它必须拥有能够渲染Latex数学表达式的功能。这个不难解决,搜索一下就得知需要更换渲染器并开启主题的相应功能。最后,我还在gitee上建了仓库来存放博文和主题,方便以后迁移。做完这些后还是很有成就感的。
  3. 我还学到了如何从本机用rsa秘钥连接云服务器。需要先在本机生成私钥和公钥,然后将公钥添加到云服务器上。我在本机的windows terminal和ubuntu子系统,以及ubuntu虚拟机上都尝试连接了云服务器ECS,效果很好。
  4. 使用云服务器ECS的时候还遇到了一个小问题,就是网络延迟较高,操作略有不适,可能是由于当时不小心选择了离所在位置较远的云服务器,网络传输时间比较长,应该暂时解决不了。

总结与展望

通过近半学期在云服务器上的学习,我从对命令行一窍不通到能够使用Linux基本完成学习任务,从对云服务器毫无概念到能够利用它搭建简单的网站,从对算法竞赛时的C with STL到C++的面向对象特性,收获颇丰。希望能在未来继续利用阿里云学到更多东西,甚至开发一些实用软件。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
缓存 监控 Java
Java Socket编程最佳实践:优化客户端-服务器通信性能
【6月更文挑战第21天】Java Socket编程优化涉及识别性能瓶颈,如网络延迟和CPU计算。使用非阻塞I/O(NIO)和多路复用技术提升并发处理能力,减少线程上下文切换。缓存利用可减少I/O操作,异步I/O(AIO)进一步提高效率。持续监控系统性能是关键。通过实践这些策略,开发者能构建高效稳定的通信系统。
122 1
|
4月前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
3月前
|
Java 应用服务中间件 开发者
【实战指南】Java Socket编程:构建高效的客户端-服务器通信
【6月更文挑战第21天】Java Socket编程用于构建客户端-服务器通信。`Socket`和`ServerSocket`类分别处理两端的连接。实战案例展示了一个简单的聊天应用,服务器监听端口,接收客户端连接,并使用多线程处理每个客户端消息。客户端连接服务器,发送并接收消息。了解这些基础,加上错误处理和优化,能帮你开始构建高效网络应用。
295 10
|
3月前
|
IDE Java 开发工具
从零开始学Java Socket编程:客户端与服务器通信实战
【6月更文挑战第21天】Java Socket编程教程带你从零开始构建简单的客户端-服务器通信。安装JDK后,在命令行分别运行`SimpleServer`和`SimpleClient`。服务器监听端口,接收并回显客户端消息;客户端连接服务器,发送“Hello, Server!”并显示服务器响应。这是网络通信基础,为更复杂的网络应用打下基础。开始你的Socket编程之旅吧!
46 3
|
3月前
|
Java
Java Socket编程与多线程:提升客户端-服务器通信的并发性能
【6月更文挑战第21天】Java网络编程中,Socket结合多线程提升并发性能,服务器对每个客户端连接启动新线程处理,如示例所示,实现每个客户端的独立操作。多线程利用多核处理器能力,避免串行等待,提升响应速度。防止死锁需减少共享资源,统一锁定顺序,使用超时和重试策略。使用synchronized、ReentrantLock等维持数据一致性。多线程带来性能提升的同时,也伴随复杂性和挑战。
76 0
|
3月前
|
安全 Java 网络安全
Java Socket编程教程:构建安全可靠的客户端-服务器通信
【6月更文挑战第21天】构建安全的Java Socket通信涉及SSL/TLS加密、异常处理和重连策略。示例中,`SecureServer`使用SSLServerSocketFactory创建加密连接,而`ReliableClient`展示异常捕获与自动重连。理解安全意识,如防数据截获和中间人攻击,是首要步骤。通过良好的编程实践,确保网络应用在复杂环境中稳定且安全。
77 0
|
4月前
|
监控 Unix 应用服务中间件
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
Android-音视频学习系列-(八)基于-Nginx-搭建(rtmp、http)直播服务器
|
1月前
|
存储 缓存 安全
学习服务器硬件基础知识
服务器是指一种高性能计算机,提供计算、存储和通信服务。通常运行在网络环境中,为计算机、设备或用户提供资源共享、数据存储和处理等服务。服务器可以是专门设计的硬件设备,也可以是在普通计算机上运行的特定软件。
52 6
|
3月前
|
Java 数据安全/隐私保护
深入剖析:Java Socket编程原理及客户端-服务器通信机制
【6月更文挑战第21天】Java Socket编程用于构建网络通信,如在线聊天室。服务器通过`ServerSocket`监听,接收客户端`Socket`连接请求。客户端使用`Socket`连接服务器,双方通过`PrintWriter`和`BufferedReader`交换数据。案例展示了服务器如何处理每个新连接并广播消息,以及客户端如何发送和接收消息。此基础为理解更复杂的网络应用奠定了基础。
48 13
|
2月前
|
Java 数据格式
Java面试题:简述Java Socket编程的基本流程,包括客户端和服务器的创建与通信。
Java面试题:简述Java Socket编程的基本流程,包括客户端和服务器的创建与通信。
37 0