探索编程之旅:新生入门编程的浅见
探索编程之旅:新生入门编程的最佳路径
- 一、认识编程与编程语言
- 1.1 编程的本质
- 1.2 编程语言简介
- 1.2.1 Python
- 1.2.2 Java
- 1.2.3 C语言
- 1.2.4 C++
- 1.2.5 Rust语言
- 二、学习心态
- 2.1 明确学习目标
- 2.2 分阶段学习
- 2.3 避免常见盲目跟风和急于求成
- 2.4 不能忽视实践
- 2.5 不能闭门造车,学习利用资源和交流
- 三、学习资源
- 3.1. 在线编程学习平台
- 3.2. 编程社区和问答网站
- 3.3. 代码托管和协作平台
- 3.4. 编程教程和文档网站
- 3.5. 在线编程挑战和竞赛平台
- 3.6. 其他推荐资源
- 四.总结
在当今这个数字化时代,编程能力已逐渐成为大学生乃至全社会不可或缺的技能之一。它不仅是计算机科学专业的核心,也广泛应用于经济学、医学、艺术等多个领域,成为连接技术与各行各业的桥梁。但其实所谓编程,其实和我们平时生活中的其他知识技能一样,是学习和科研研究的工具,因此所谓的编程入门,最好的心态应该把它当作工具来用,而非当作课程来学。
一、认识编程与编程语言
1.1 编程的本质
编程,简而言之,就是编写指令(即代码)让计算机执行特定任务的过程。这些指令遵循一定的语法规则和逻辑结构,通过编译器或解释器转换为计算机可以直接理解的形式执行。编程不仅是对技术的掌握,更是一种思维方式的锻炼,它要求学习者具备逻辑思维、问题解决能力和创新思维。
1.2 编程语言简介
编程语言种类繁多,每种语言都有其独特的应用场景和优势。以下是一些较常见的语言简介。
1.2.1 Python
Python 是一种广泛使用的高级编程语言,以其简洁的语法、清晰的代码风格、丰富的库支持和强大的社区支持而著称。它支持多种编程范式,包括面向对象、命令式和函数式编程。Python 的设计哲学强调代码的可读性和清晰的语法,这使得 Python 成为初学者的理想选择,同时也受到专业开发者的青睐,特别是在数据科学、机器学习、Web 开发、自动化运维、游戏开发、网络安全等多个领域。
特点
- 易读性高:Python 的代码风格强调简洁和一致性,使用缩进来定义代码块,这有助于减少代码中的错误,并使得代码更加易于阅读和维护。
- 丰富的标准库和第三方库:Python 拥有一个庞大的标准库,涵盖了网络编程、文件处理、文本处理、数据库接口、GUI开发等众多功能。此外,还有大量的第三方库和框架可供选择,如 Django(Web 框架)、NumPy/Pandas(数据分析)、TensorFlow/PyTorch(机器学习)等。
- 跨平台:Python 代码可以在多种操作系统上无缝运行,包括 Windows、Linux 和 macOS。
- 可扩展性:Python是一种解释型语言,但它也支持将性能敏感的代码段用 C 或 C++ 编写,并通过 Python 接口进行调用,从而提高了程序的整体性能。
- 面向对象:Python 支持面向对象的编程范式,使得程序的组织和复用更加灵活和高效。
免费和开源:Python 是一种开源软件,可以免费使用和分发。其源代码可以在 Python 的官方网站上找到,并遵循 PSF(Python Software Foundation)的许可证。
应用领域
- 数据科学:Python 是数据科学领域的首选语言之一,得益于其丰富的数据分析和可视化库,如 NumPy、Pandas、Matplotlib和 Seaborn。
- 机器学习:Python 提供了强大的机器学习库,如 Scikit-learn、TensorFlow 和PyTorch,使得构建和训练机器学习模型变得简单高效。
- Web 开发:Python 拥有多个 Web 开发框架,如 Django 和 Flask,它们提供了构建 Web 应用程序所需的所有工具。
- 自动化运维:Python 脚本广泛用于自动化脚本编写、系统管理任务、网络爬虫等。
- 游戏开发:虽然 Python 不是游戏开发的首选语言(因为性能限制),但它仍被用于一些游戏开发项目和游戏引擎(如 Pygame)中。
- 网络安全:Python 脚本用于网络扫描、渗透测试、自动化漏洞利用等网络安全任务。
Python以其简洁易读、功能强大著称,广泛应用于数据分析、机器学习、Web开发等领域,是初学者的理想选择。
1.2.2 Java
Java是一种广泛使用的、基于类的、面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年5月推出。Java语言简单易用、安全可靠,自问世以来,与之相关的技术和应用发展迅速,在计算机、移动电话、家用电器等多个领域都有广泛应用。
特点
- 简单性:Java的语法简洁清晰,易于掌握。它去除了C++中一些复杂的特性,如指针运算和操作符重载,降低了学习难度。
- 面向对象:Java是一种纯粹的面向对象编程语言,提供了类、接口和继承等原语,支持动态绑定和垃圾回收机制,使程序设计更加灵活和高效。
- 分布式:Java支持分布式处理,可以方便地访问网络上的对象,实现远程方法调用(RMI)等功能。
- 健壮性:Java使用安全指针模型,可避免内存冲突和数据损坏,编译器能在编译时检测出许多错误,提高了程序的稳定性和可靠性。
- 安全性:Java专为网络环境设计,投入了大量精力保障安全性。它没有指针,外界不能通过伪造指针指向存储器,同时提供了安全的存储分配模型,可构建防病毒、防篡改的系统。
- 跨平台性:Java通过虚拟机(JVM)以及字节码实现跨平台。Java程序只需编译一次,就可以在任何支持Java虚拟机的平台上运行,实现了“一次编写,到处运行”。
- 可移植性:Java规定了数据类型的大小和运算方式,消除了在不同平台上移植时的困难,使得Java程序可以在多种操作系统上无缝运行。
- 多线程:Java支持多线程,允许多个任务并发执行,提高了程序的执行效率和响应速度。
- 高性能:Java字节码可以动态翻译成特定CPU的机器码,提高了执行速度。同时,Java虚拟机(JVM)也在不断优化,以提高Java程序的性能。
应用领域
- 网站开发:Java在网站开发领域占据了重要地位,许多医疗、保险等行业的部门网站都是以Java为基础来开发的。
- 移动互联:在移动领域,Java也有广泛应用。许多Android应用都是用Java语言编写的,尽管在Android开发中通常使用Android
SDK提供的API和工具,但底层代码仍然基于Java。 - 软件开发:Java是开发各种软件和应用程序的常用语言之一。它被广泛用于开发桌面应用程序、企业级应用程序、嵌入式系统等多个领域。
- 大数据技术:在大数据处理领域,Java也有一定应用。许多大数据处理框架和工具都是基于Java开发的,如Hadoop、Spark等。
- 科学应用:Java在科学计算、模拟仿真等领域也有广泛应用。其高效、稳定的性能使得Java成为科学研究的理想工具之一。
版本和平台
Java平台体系主要包括三个版本:Java SE(标准版)、Java EE(企业版)和Java M(小型版)。每个版本都针对不同的开发市场和需求提供了相应的解决方案。
- Java SE:标准版,为开发普通桌面和商务应用程序提供的解决方案。它包含了Java最核心的类库和API,是Java平台的基础。
- Java EE:企业版,为开发企业级应用程序提供的解决方案。它包含了Servlet、JSP、JavaBean、JDBC等多种技术和规范,支持复杂的企业级应用开发。
- Java ME:小型版,为开发电子消费产品和嵌入式设备提供的解决方案。它主要用于小型数字电子设备上软件程序的开发,如手机、家用电器等。
1.2.3 C语言
C语言是一种较早的、广泛使用的计算机编程语言,诞生于1972年的贝尔实验室,由Dennis Ritchie设计。C语言最初是为了编写UNIX操作系统而设计的,但它后来发展成为一种广泛使用的通用编程语言。随着时间的推移,C语言的标准不断更新,包括C89(ANSI C)、C99、C11等版本,最新的标准是C23。
特点
- 面向过程:C语言是一门面向过程的编程语言,与C++、Java等面向对象的语言有所不同。
- 高效性:C语言能以简易的方式编译、处理低级存储器,并产生少量的机器语言,执行效率高。
- 可移植性:C语言支持多种硬件平台和操作系统,具有较高的可移植性。
- 语法简单:C语言的语法清晰明了,易于阅读和理解。
- 支持模块化编程:C语言支持函数和结构体等模块化编程方法,有助于控制程序的复杂性。
- C语言的标准库提供了丰富的函数和数据类型,支持文件操作、字符串处理、数学计算等多种功能。
应用领域
C语言广泛应用于底层开发,如操作系统、驱动程序、嵌入式系统等。也常用于开发需要高性能的应用程序,如游戏、数据库等。
开发工具
C语言的开发工具种类繁多,包括Visual C++、Clang、GCC、Turbo C等编译器,以及Visual Studio、VSCode等集成开发环境(IDE)。
1.2.4 C++
C++(C plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)在AT&T贝尔实验室研发。1979年,本贾尼·斯特劳斯特卢普在AT&T贝尔实验室开始设计开发C++,最初命名为“带类的C”(C with classes)。1983年,该语言被正式命名为C++。C++经历了多次修订和标准化,包括C++98、C++03、C++11、C++14等标准,最新的标准是C++20。
特点
- 面向对象:C++完全支持面向对象的程序设计,包括封装、抽象、继承和多态等特性。
- 泛型编程:C++支持泛型编程,通过模板(Templates)等机制实现代码的复用和类型安全。
- 高效性:C++继承了C语言的高效性,同时提供了更丰富的编程特性和更高的抽象层次。
- 跨平台:C++代码可以在多种操作系统和硬件平台上编译和运行,具有良好的可移植性。
- 静态类型:C++是一种静态类型的编程语言,在编译时进行类型检查,有助于减少运行时错误。
应用领域
C++几乎可以创建任何类型的程序,包括但不限于:
- 游戏开发:C++因其高效性和对硬件的直接操作能力,在游戏开发中占据重要地位。
- 设备驱动程序:C++常用于编写需要直接操作硬件的设备驱动程序。
- 高性能计算(HPC):C++的高效性和可移植性使其成为高性能计算领域的首选语言之一。
- 云计算:C++在云计算领域也有广泛应用,用于开发云服务和云应用。
- 桌面应用:C++可用于开发各种桌面应用程序,包括图形用户界面(GUI)程序。
- 嵌入式系统:C++因其高效性和可移植性,在嵌入式系统开发中也有广泛应用。
标准库和模板库
- 标准库:C++标准库提供了大量的函数和数据类型,用于支持文件操作、字符串处理、输入输出等常用功能。
- 标准模板库(STL):STL是C++标准库的一部分,提供了丰富的数据结构和算法模板,如向量(vector)、列表(list)、映射(map)等,极大地提高了编程效率和代码复用性。
开发工具
C++拥有多种集成开发环境(IDE)和编译器,如Visual Studio、Code::Blocks、Eclipse CDT、GCC等,这些工具为C++开发者提供了强大的编程和调试支持。
1.2.5 Rust语言
Rust语言是一种由Mozilla Research开发的系统编程语言,旨在提供安全、高性能和并发性的编程体验。作为Mozilla的私人项目在2010年首次发布,后来于2015年5月15日发布稳定版本Rust 1.0。
特点
- 内存安全:
Rust通过所有权(ownership)和借用(borrowing)等机制,在编译时就能消除空指针解引用、数据竞争等常见的内存错误,从而避免了C/C++中常见的内存泄漏、悬挂指针等问题。
Rust的所有权系统确保了每个值在任意时刻都只有一个所有者,负责其生命周期内的内存管理,从而简化了内存管理的复杂性。 - 高性能:
Rust代码可以在多个平台上编译成本地机器代码,性能与C/C++编写的程序相当。
Rust通过零成本抽象(zero-cost abstractions)和高效的内存管理,确保了高性能的同时,也提供了高级别的编程抽象。 - 并发编程:
Rust天生支持并发编程,通过消息传递和无数据竞争的并发模型,保证了线程安全。
Rust的并发特性使得编写并发程序既安全又简单,适合开发需要高并发处理的应用。 - 实用性和灵活性:
Rust支持函数式、并发式、过程式以及面向对象的编程风格,使得开发者可以根据需要选择最合适的编程范式。
Rust的标准库和第三方库支持丰富,覆盖了从系统编程到Web开发等多个领域。 - 跨平台性:
Rust是跨平台的,可以在Linux、Windows和MacOS等操作系统上运行,并都提供完整的工具链和库管理。
应用场景
Rust因其安全、高性能和并发性的特性,被广泛应用于以下领域:
- 系统编程:Rust可用于开发操作系统、文件系统、驱动程序等系统级应用。
- 网络服务和云计算:Rust的高性能和并发性使其适合开发需要处理大量并发请求的网络服务和云计算应用。
- 游戏开发:Rust的高性能和内存安全性使其成为游戏开发领域的有力竞争者。
- 嵌入式系统:Rust可以用于嵌入式编程,编写需要直接操作硬件的嵌入式系统。
Rust语言以其独特的内存管理机制、强大的并发支持和高效的性能,成为了现代软件开发中的一股重要力量。
二、学习心态
2.1 明确学习目标
在开始学习之前,明确自己的学习目标至关重要。是希望掌握一门编程语言进行项目开发,还是希望通过编程提升逻辑思维能力?不同的目标将决定你的学习路径和侧重点。
2.2 分阶段学习
- 基础阶段:学习编程语言的基本语法、数据类型、控制结构等基础知识,通过编写简单的程序巩固理解。
- 进阶阶段:深入学习面向对象编程(如果适用)、数据结构与算法、设计模式等高级概念,并尝试解决更复杂的问题。
- 实践阶段:参与开源项目、完成个人项目或参与竞赛,将所学知识应用于实际开发中,提升实战能力。
2.3 避免常见盲目跟风和急于求成
编程学习需要时间和耐心,切勿急于求成,试图一步到位。脚踏实地,一步步打牢基础,才是通往高手之路的正确途径。不要盲目追求热门技术或语言,应根据自己的兴趣、学习目标和职业规划选择合适的编程语言和技术栈。
2.4 不能忽视实践
理论知识固然重要,但实践才是检验真理的唯一标准。只有通过不断的编程实践,才能真正掌握编程技能,提升解决问题的能力。
2.5 不能闭门造车,学习利用资源和交流
编程不是孤军奋战,加入编程社区,参与讨论,分享经验,可以帮助你更快地成长。同时,也能在遇到难题时获得他人的帮助。
三、学习资源
学习编程的网站和资源非常丰富,涵盖了从基础知识到高级技能的各个方面。以下是一些值得推荐的学习编程的网站和资源。
3.1. 在线编程学习平台
- Codecademy:一个受欢迎的在线编程学习网站,提供交互式的编程学习环境,涵盖多种编程语言(如Python、JavaScript、Java等)和Web开发技能。适合初学者入门和提高技能。
- Coursera:一个提供大规模开放在线课程(MOOC)的教育平台,与顶尖大学和组织合作,提供多种编程课程,包括数据库、Web开发、数据科学等领域的知识。大部分课程免费,部分高级课程付费。
- edX:由哈佛大学和麻省理工学院共同创立的非营利性MOOC平台,提供多种编程课程,以及Web开发、数据分析、人工智能等领域的知识。大部分课程免费,完成课程后可获得证书。
3.2. 编程社区和问答网站
- Stack Overflow:全球最大的编程问答网站,每天产生大量编程技术问题讨论。几乎所有的编程问题都能在这里找到答案或解决方案。
- SegmentFault:中文的开发者社区及媒体,提供技术解答、博客、活动等内容,是中文编程社区的重要资源。
- 开源中国(OSCHINA):国内最大的开源技术社区,传播开源理念,推广开源项目,为IT开发者提供发现和交流开源技术的平台。
- CSDN:全称“Chinese Software Developer Network”,中文意思为“中国开发者网络”,是一个中文资讯技术知识服务网站,创立于1999年,隶属于北京创新乐知网络技术有限公司。CSDN致力于为中国软件开发者提供知识传播、在线学习、职业发展等全生命周期服务。
3.3. 代码托管和协作平台
- GitHub:全球最大的代码托管平台,提供Git代码仓库托管、讨论组、在线文件编辑器等功能。适合学习开源项目、提交自己的代码和参与开源社区。
- Gitee:国内领先的代码托管平台,提供安全稳定的代码托管服务,类似于GitHub,适合国内用户。
3.4. 编程教程和文档网站
- W3Schools:专业的编程入门学习及技术文档查询网站,提供HTML、CSS、JavaScript等前端技术的教程和参考手册。
- MDN Web Docs:由Mozilla公司提供的Web开发教程和资源网站,内容丰富且深入,适合各种水平的开发者。
- 菜鸟教程:完全免费的编程课程教学网站,提供多种编程语言的基础知识教程,适合编程初学者。
3.5. 在线编程挑战和竞赛平台
- LeetCode:提供大量算法题目用于练习,支持多种编程语言,以题库丰富、题目质量高而著称,是准备技术面试的重要资源。
- Codewars:编程挑战平台,提供各种难度的编程题目,帮助提高解决问题的能力和编程技能。
- HackerRank:在线竞赛平台,提供多种编程挑战,适合提升编程技能并参加编程竞赛。
3.6. 其他推荐资源
- B站(哔哩哔哩):中国颇具影响力的在线视频网站,拥有大量编程教学视频和直播内容,适合通过视频学习编程。
- 中国大学MOOC:爱课程网携手网易云课堂打造的在线学习平台,提供众多985高校的大学课程,适合系统学习编程知识。
以上推荐的网站和资源涵盖了编程学习的各个方面,从基础知识到高级技能,从在线课程到社区交流,从代码托管到在线挑战,都可以满足不同学习阶段和需求的编程爱好者。
四.总结
之前说到,语言只是工具,虽然那众多语言种类繁多,语法规则却也多有相通之处,在学习掌握基础知识的过程中,更应该体会规则中传递出来的面向对象的,模块化的思维逻辑。如果把一个项目比作人,清晰的思路是骨架经络,有了骨架经络 ,选择合适的语言便是具象化人像的血肉。因此,一定不能为了学习编程语言而学习,而是要基本实际的需求、待解决的问题,去在应用中学习成长。运用工具解决问题,是人类高级文明的本质象征。
相关文章:
探索编程之旅:新生入门编程的浅见
探索编程之旅:新生入门编程的最佳路径 一、认识编程与编程语言1.1 编程的本质1.2 编程语言简介1.2.1 Python1.2.2 Java1.2.3 C语言1.2.4 C1.2.5 Rust语言 二、学习心态2.1 明确学习目标2.2 分阶段学习2.3 避免常见盲目跟风和急于求成2.4 不能忽视实践2.5 不能闭门造…...
kickstart自动安装脚本
当安装Linux操作系统时,安装过程会需要回答很多关于设定的问题 这些问题必须手动选择,否则无法进行安装。当只安装1台Linux系统,手动选择设定工作量比较轻松,当安装多台Linux,这些设定需要重复多次,这些重复…...
golang快速入门
golang快速入门可以按照如下步骤进行 阶段一: 附8小时快速入门语法文档版:https://www.yuque.com/aceld/mo95lb 看完文档后可看gin框架,推荐看官方文档 链接如下:https://gin-gonic.com/zh-cn/docs/ 后续可以看下context…...
文件处理库的基本功能
os库主要对目标和文件操作 方法描述os.name返回操作系统类型os.environ以字典形式返回系统变量os.putenv(key, value)改变或添加环境变量os.listdir(path’.’)列表形式列出目录下所有目录和文件名os.getcwd()获取当前路径os.chdir(path)改变当前工作目录到指定目录os.mkdir(p…...
Lambda 表达式(也称为匿名函数)-在java,javascript,python
Lambda 表达式(也称为匿名函数或 lambda 函数)是一种简洁地表示可以在需要函数对象的地方使用的单表达式的方法。它们是在许多现代编程语言中引入的,包括 Python、Java、C# 和 JavaScript 等,用于编写更简洁、更易于阅读的代码。 …...
中间证书缺失如何发现和修复
一、背景 微信小程序等功能在发送后台请求时一般都会要求证书齐全,否则就会导致请求发送失败。 一般来说,如果中间证书不齐全,在不同设备上表现不一样,一般PC端可能不会有太大问题,仍然认为你的证书可信,但…...
【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,使用 Code::Blocks 17.12 创建工程 2,移植文件至该工程下: 移入的文件为: 被移入的文件介绍: 更改代码: 向工程添加文…...
Unity Camera
课程目标 1. 了解摄像机(camera)不同视角的设计与实现;2. 感受在不同摄像机视角下观察虚拟场景。 喜欢玩游戏或者看3D动漫的朋友可以回忆在虚拟场景中摄像头的运动变化带来的视觉感受,例如:摄像头给场景中的主角来个…...
“八股文”究竟是程序员职场的助力还是绊脚石?
“八股文”在实际工作中是助力、阻力还是空谈? 在当今的IT行业中,“八股文”已成为程序员面试中的常见考察内容。这些精心设计的技术问题通常涉及计算机基础知识,如算法、数据结构、操作系统等,被广泛用于筛选和评估候选人的技术…...
在Ubuntu 14.04上安装Cassandra并运行单节点集群的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Cassandra,或者说是 Apache Cassandra,是一个高度可扩展的开源 NoSQL 数据库系统,在多节点设置…...
软设之网络诊断命令
ping 用于检查网络是否连通 检查错误时,使用由近及远的原则,首先使用ping 127.0.0.1检查本机TCP/IP协议栈,能ping通,说明本机协议栈无问题 tracert:用于确定ip数据包访问目标所采取的路径,若网络不通,能定…...
32.x86游戏实战-使用物品call
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…...
【Bigdata】什么是三层SPI模型
这是我父亲 日记里的文字 这是他的生命 留下留下来的散文诗 几十年后 我看着泪流不止 可我的父亲已经 老得像一个影子 🎵 许飞《父亲写的散文诗》 三层SPI模型是指软件过程改进(Software Process Improvement, SPI)中常…...
LinkedList接口源码解读
LinkedList 接口源码解读 前言 因为追求质量,所以写的较慢。大概在接下来的三天内会把LinkedList源码解析出完。已经出完啦!废话不多说,正片开始! (文章最后面有后记哦~) 大家都知道,LinkedL…...
Linux 系统下载 wgent
目录 1. yum 命令 2. 下载 wget 操作系统安装软件的方式有很多种,一般分为: (1)下载安装包自行安装; (2)系统的应用商店内安装; Linux 系统同样支持这两种方式: 另…...
Chainlit快速实现AI对话应用项目定制化配置教程
概述 当你运行 chainlit run ... 或者 chainlit init 命令时会创建 .chainlit/config.toml 文件。这个文件允许你配置你的 Chainlit 应用并启用或禁用特定的功能。 项目配置 [project] # 是否开启遥测功能(默认:true)。不会收集任何个人资料。 enable_telemetry true# 每个…...
Ubuntu配置Ngbatis学习环境
引言 经过考虑,我感觉与NebulaGraph交互的ORM框架还是Ngbatis好。因为现在这个框架开发的比较完善,而且还在不断更新,社区活跃的用户多。从今日开始学习,首先要配置一下环境。 1.安装maven和jdk 选择的版本是maven3.8和jdk17.以…...
PySide6/PyQT学习笔记(很杂)
QGroupBox样式:科技机甲 QGroupBox { border: 2px solid #333; /* 深色边框,类似金属质感 */ border-radius: 8px; /* 轻微的圆角 */ background-color: #222; /* 暗色背景,模拟机甲内部或科技界面 */ color: #fff; /* 字体颜色为白色&a…...
【MSYS】Windows Terminal 集成
Windows Terminal 集成 MSYS2安装在默认位置C:\msys64打开Windows Terminal打开JSON配置文件文件。 添加如下配置: "profiles": {"defaults": {},"list": [{"guid": "{71160544-14d8-4194-af25-d05feeac7233}"…...
苹果电脑玩的游戏有哪些 Mac电脑怎么玩Windows游戏 苹果电脑可以装模拟器玩游戏吗
苹果电脑虽然在游戏生态上可能不及Windows平台那么广泛,但其强大的硬件和macOS系统的优化,足以支持一系列高质量游戏的流畅运行。从策略游戏《文明VI》到动作冒险游戏《黑暗之魂III》,再到解谜游戏《传送门2》和角色扮演游戏《神界࿱…...
主题巴巴WordPress主题合辑打包下载+主题巴巴SEO插件
主题巴巴WordPress主题合辑打包下载,包含博客一号、博客二号、博客X、门户一号、门户手机版、图片一号、杂志一号、自媒体一号、自媒体二号和主题巴巴SEO插件。...
聊聊跨境电商平台与固定IP的那些事
IP地址网络地址(网络号)主机地址(地址号),IP地址是一台电脑在网络中的唯一标识,可分为固定IP与动态IP。那么IP地址的分类有哪些?什么IP适合亚马逊/eBay/速卖通等平台运营时使用? A类…...
Go语言中 ioutil.ReadAll 已被弃用 替代方法献上
Go语言中 ioutil.ReadAll 已经被弃用了 有什么替代方法吗?研究了很久,终于找到了替代方法,这里直接献上。 ioutil.ReadAll函数在Go 1.16版本中已被标记为已弃用。推荐使用io.ReadAll函数替代。 我们只需将ioutil.ReadAll替换为io.ReadAll即可。其他部…...
网络编程相关
关于ipv4和v6 ipv4小细节-------公网和私有地址 端口 InetAddress 协议 UDP、TCP UDP通信程序 发送(单播): 接收(单播): UDP三种通信方式 单播和广播代码几乎相同,就是将: InetAddr…...
你还在为PDF文件烦恼吗?试试这四款合并工具吧!
每天应对工作都是一个头两个大的,其中pdf的文件问题就是恼人的工作量之一了,这几年的工作经历下来也找了各种可以帮助解决PDF文件问题的工具,好在使用了一些助力我高效工作的软件,今天针对其中遇到的解决pdf合并问题的四款宝藏工具…...
【C#】 使用GDI+获取两个多边形区域相交、非相交区域
一、使用GDI获取两个多边形区域相交、非相交区域 在 C# 中使用 GDI(Graphics Device Interface Plus)处理图形时,你可以使用 System.Drawing 和 System.Drawing.Drawing2D 命名空间中的类来操作区域(Region)。下面是一…...
未来计算机的类型和特点:量子计算、光子计算、生物计算
未来的新型计算机将涵盖多种概念和技术,包括量子计算、光子计算、生物计算等。这些新型计算机不仅在性能上有所突破,还在能效、智能、安全等方面进行了优化。下面将具体讨论这些未来计算机的类型和特点: 量子计算 基本概念:量子计…...
模型优化学习笔记—动量梯度下降
一、mini-batch 梯度下降(gradient descent): SGD(stochastic GD)随机梯度下降:对一个样本做梯度下降 batch梯度下降:使用所有样本做梯度下降(做一次又叫epoch) mini…...
破解PyCharm插件更新难题:让IDE焕发新生
破解PyCharm插件更新难题:让IDE焕发新生 PyCharm作为业界领先的集成开发环境(IDE),其丰富的插件生态是其强大功能的重要来源。然而,插件无法更新的问题可能会困扰许多用户,影响开发体验。本文将详细介绍如…...
纳秒级网络库【四】接口设计
代码发布在GitHub - QuarkCloud/quark-daemon: 低延迟网络库 写在正文之前,很多人不理解,为什么要专门提到接口设计。关键原因在于三点: 1、因为要控制延迟,所以并没有太多的腾挪空间。接口设计已经很大程度体现出系统底层设计思…...
打靶记录6——靶机EvilBox---One
靶机下载地址 https://www.vulnhub.com/entry/evilbox-one,736/学习记录 在进行目录爆破和文件爆破的过程当中,如果有发现新的路径,一定要对新的路径再次进行更深层次的爆破虚拟机出现问题就删除掉,重新导入虚拟机 目标: 获取两个flag&am…...
C++——哈希结构
1.unordered系列关联式容器 本节主要介绍unordered_map和unordered_set两个容器,底层使用哈希实现的 unordered_map 1.unordered_map是储存<key,value>键值对的关联式容器,其允许通过key快速查找到对应的value,和map非常相似&#x…...
Python脚本实现USB自动复制文件
USB驱动器作为常见的数据存储设备,经常用于数据传输和备份。 然而,我们在手动处理文件复制可能效率低下且容易出错。 因此,我们可以利用Python编写脚本来自动化这一过程,提高效率和数据安全性。 准备工作 首先,我们需…...
代码随想录算法训练营第三十五天 | 0-1背包问题 二维、0-1背包问题 一维、416. 分割等和子集
一、0-1背包问题 二维 题目链接:46. 携带研究材料(第六期模拟笔试) (kamacoder.com) 文章讲解:代码随想录 (programmercarl.com)——0-1背包问题 二维 视频讲解:带你学透0-1背包问题!| 关于背包问题&#x…...
python中,jsonpath提取数据的时候出现TypeError: ‘bool‘ object is not subscriptable怎么解决
json格式如下: { success: True, result: { codeInfo: { code: 0, msg: 成功 }, uploadToken: { resId: rzJRpo, endpoint: https://sit-api-ypsx-resource.ypsx-internal.com/r…...
django 编写cms管理系统
django 编写cms管理系统 准备: 安装Python。安装Django框架。 创建项目: 使用django-admin startproject命令创建一个新的Django项目。 设计数据库模型: 根据写字楼小程序的需求,设计数据库模型,例如:用户、…...
网页保护用户 小tips
在使用创建web开发的过程中,直接使用用户名url,容易造成用户信息的被攻击,例如对方直接访问 ../../.../username 的网页,可以窃取用户信息,然而把usename变成一堆乱码就安全的多 效果: 代码:…...
【TwinCAT3教程】TwinCAT3 PLC 简单程序编写与调试
一、PLC 简单程序编写 1.1 新建TwinCAT3项目 (1)打开 TwinCAT 3,点击 New TwinCAT Project 新建 TC3 项目。 (2)选择 TwinCAT Project,输入项目名称和项目保存路径,然后点击确定。 1.2 添加PLC项目 1.2.1 步骤 (1)在树形资源管理器右键点击 PLC,选择 添加新项 新…...
【仓颉】入门文档代码圆周率估算代码补正
项目实现前实现后代码组织方式模块/包 二级结构包/子包 树形结构没有父包的包称为 root 包,root 包及其子包(包括子包的子包)构成的整棵树称为 module编译单元包包(每个子包单独编译)访问修饰符public:可修…...
重磅!Stable Diffusion创始团队推出FLUX.1:一夜颠覆MJ v6,DALL·E 3,SD3!
前言 Stable Diffusion 大家已经很熟悉了,是由 CompVis 团队开发的,这是一个隶属于德国慕尼黑大学的计算机视觉研究小组。该团队由多个研究人员和开发者组成,包括 Patrick Esser、Robin Rombach 和 Bjrn Ommer 等人 现在团队核心开发人员Rob…...
【Vue3】组件通信之$parent
【Vue3】组件通信之$parent 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的…...
【包邮送书】码农职场:IT人求职就业手册
欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…...
8.4 字符串中等 443 String Compression 467 Unique Substrings in Wraparound String
443 String Compression 注意:这里是按照顺序压缩,不忽略顺序就不能用字母表计数再还原了。 如果char num 1 只需要压入char本身 num > 1 时还需要压入char的个数 按字符压入 class Solution { public:vector<char> Push(vector<char>&a…...
开源模型应用落地-LangChain高阶-记忆组件-ConversationTokenBufferMemory正确使用(七)
一、前言 LangChain 的记忆组件发挥着至关重要的作用,其旨在协助大语言模型(LLM)有效地留存历史对话信息。通过这一功能,使得大语言模型在对话过程中能够更出色地维持上下文的连贯性和一致性,进而能够像人类的记忆运作方式那样,进行更为自然、流畅且智能化的交互。 它仿佛…...
django学习-数据表关系
文章目录 一、数据表关系1. 一对一关系2. 一对多关系3. 多对多关系 一、数据表关系 一个模型对应数据库的一张数据表,但是每张数据表之间是可以存在外键关联的,表与表之间有3种关联:一对一、一对多和多对多。 1. 一对一关系 一对一关系存在…...
与用户有关的接口
1.获取用户详细信息 跟着黑马程序员继续学习SpringBoot3Vue3 用户登录成功之后跳转到首页,需要获取用户的详细信息 打开接口文档 使用Token令牌解析得到用户名 我们需要根据用户名查询用户,获取详细信息 但是请求参数是无,由于都需要携…...
如何使用nodejs的fsPromise.access()判断文件权限
同学们可以私信我加入学习群! 正文开始 一种错误示范fsPromise.access正确的书写总结 一种错误示范 我们操作文件的时候,经常需要提前判断文件的状态:文件是否存在、文件是否可读、文件是否可写。 查看官网介绍后,按照我们平时的…...
微信小程序中Component中如何监听属性变化
1.在父组件的.json文件中引入子组件: "usingComponents": {"articleList":"../../components/articleList/articleList",}2.在父组件中给子组件绑定数据 <articleList num"{{number}}"></articleList>3.子组…...
防止xss(跨站脚本攻击)
1、输出数据时进行转义:这是最基本的预防措施。确保在输出数据到HTML时对特殊字符进行适当的转义,以防止它们被解释为HTML或JavaScript代码。PHP中可以使用htmlspecialchars()、strip_tags()、htmlentities函数来实现这一点。 echo htmlspecialchars($d…...
detr论文解读
参考:https://www.bilibili.com/video/BV1md4y1s7nW/?spm_id_from333.788&vd_source156234c72054035c149dcb072202e6be 补充:decoder更关注边缘特征 补充: spatial pos.enc.:空间位置编码。包含encoder和decoder的空间位置…...