本章导读
本章面向的读者
本章内容面向的读者是纯编程小白。
如果你已经有一些刷题经验,那么可以放心跳过本章的内容。
如果你有熟悉的编程语言,但是从来没有刷过算法题,那么只需要阅读本章的 LeetCode/力扣 解题须知,了解刷题平台的基本用法即可学习下一章的内容。
如果你希望借助 算法可视化面板 来验证自己的算法,但又不熟悉 JavaScript,可以阅读 JavaScript 基础。
本章内容
本章内容是针对刷算法题这个场景定制的编程语言基础。
看完这个基础章节,肯定不能说让你精通这门编程语言,但可以确保你能够开始用这门语言在 力扣/LeetCode 上刷题了。
算法这个东西,本来就和编程语言关系不大,更多的是一种思维方法,甚至说你直接在纸上写字,依然能描述一个精妙的算法实现。
所以刷算法题对于编程语言的要求非常低,只要会用标准库,会用控制语句(if else 这种),代码能跑起来没有语法错误,就可以开始刷题了。
本章包含的内容:编程语言的基本语法、控制语句、标准库的常用数据结构,然后带你使用这门语言去力扣上解决一些简单的算法题作为实践。
至于编程语言的高级用法、语言特性、常用框架、项目开发等内容,都是比较大的话题,不会包含在本章中。
本章学习方法
因为本站的所有代码同时支持 C++/Java/Python/Golang/JavaScript 这几门语言,所以本章会分别介绍这几门语言的基础用法,你可以选择你未来想要使用的语言进行学习。
对于编程小白,本章介绍的编程语言任选一种入门即可,然后快速开始学习数据结构的原理和算法的解题技巧,这部分才是本站的重点。
为什么没有 C 语言
经常有读者问我,大家上学时应该都学过 C 语言,为啥网站不添加 C 语言的代码呢?
主要是 C 语言的标准库太简单了,连一些基本的常用数据结构都没有提供,这对于刷算法题来说是非常不友好的。
因为对于复杂算法,它本身就比较抽象,不容易理解,如果还混杂进去一些底层的编程细节,会进一步增加学习的难度,这对于算法教程来说就舍本逐末了。
如果你非要用 C 语言,可以选择 C++ 作为替代。C++ 是 C 语言的超集,兼容标准的 C 语言,同时也提供了丰富的标准库支持,常见数据结构都有开箱即用的实现,兼顾了性能和实用性,做算法题非常方便。
编程语言的选择
考虑到本章面向的是纯小白,所以简单介绍一下几种编程语言的特点,以及不同编程语言在实际开发中的侧重点。
首先,技术岗可以分为前端和后端两大类,简单说,前端就是和用户直接交互的界面,后端就是处理数据、逻辑的服务端。
对于前端,JavaScript 是必须掌握的,因为它是 Web 前端开发的主力军,也是浏览器的标准脚本语言。
对于后端,技术栈就有很多了,C++/Java/Python/Golang 都是比较常见的选择,JavaScript 其实也可以用 node.js 开发框架来做后端。
比如对于 Web 开发,Java/node.js/Python 后端都是比较常见的选择,云原生开发主要用 Golang,高性能的系统主要用 C++,AI 和数据分析领域,Python 是主流语言。
不过实际工作中,基本上大家都会同时用到多种语言,何况当你跳槽后,新公司和老公司的的技术栈大概率不一样,到时候也得重新学习,所以编程语言只是一个工具,你的职业生涯肯定会涉及到多种语言的。
对于第一门语言,如果你未来想要做前端相关的工作,那么 JavaScript 是必须要学的,你可以选择 JavaScript;如果你未来想要做后端相关的工作,那么要去看看你想从事的细分领域,来选择合适的编程语言。
如果你还没想好,那么我会建议先选择 Python,因为 Python 上手快,实用,平时你需要写个什么自动化脚本之类的,都很方便。
而且还有很重要的一点,目前各种 AI 平台都对 Python 有良好的支持,你让 AI 帮你写 Python 相关的脚本会更方便一些。