1 前言
由于每个人的学习目标并不相同,因此本文给出的只是一个大致的方向,该方向的目标是最终成为全栈工程师,也就是和作者差不多:一个什么都会点的人。
1.等级划分
学习编程本身是一个漫长的路程,尤其是想要深入编程这一领域,就更是艰难万分了,一般来说都需要花费数年时间才可,所以在学习之前,你需要有长期学习的心理准备。
从我个人的经验来看,想要成为一个全栈工程师,大致需要经历以下几个过程:
- 初级:了解编程基本语法结构,可以用编程语言做一些算法题
- 中级:可以用编程语言写一些特定于系统、较为实用的程序
- 高级:对编程语言有深入的认识,进入一通百通境界,可以快速入门全新编程语言并完成一般性程序开发任务。
- 精通:从底层二进制到上层程序运行的整个过程有自己的认知,对各大主流编程语言特性有自己的见解,对至少一个操作系统有着深入的编程经验,同时对其它主流操作系统有一定的认知,能够完全独立的开发一个成熟的、可被用户使用的程序。
- 大师:常年混迹于github之类的专业社区,时刻了解、学习当下前沿的各类技术,并将其完善进入自己的全栈知识体系之中,能够在软件开发之前完成整体架构的选择与应用、以及整个软件开发周期的规划。
正如你所看到的,在上面我所列出来的五个阶段中,并没有特定于某个编程语言,而是从一个相对比较宏观的角度看待编程语言的学习历程。
所以从理论上来说,你学习任何语言都是可以的,只是难易程度不同而已,相较而言,C/C++是最合适的入门语言,在其基础之上学习其它语言,可以快速提升自己的实力与见识。
2.学习方法
本站的教材主要聚焦于初级、中级、高级这三个阶段,至于最后的精通、乃至大师境界,则需要自己不断的去学习、成长了,因为这两项可以说是因人而异的,并没有过于绝对的学习路线。
其中本站的《C/C++实战入门到精通》系列文章,便涵盖了初级、中级的内容,如果你顺利学完、并能完全从零构思、实现一个自己的程序,那么你便突破中级,来到了高级。
如果你觉得学起来有些困难,那么可以参考《C/C++基础》《C/C++进阶》这两个专栏,其目的是让你能够对编程语言有更深入的理解与领会。
虽然其中仅仅只是介绍了C/C++,但其实当你以后学习其它编程语言时就会发现,都差不多的。
而《通用知识》便是进入高级领域的系列文章,编程语言可以变,但其中的核心理念在不同语言中却是保持一致的,这便是一通百通的核心。
而本站的其它系列文章,比如《Windows编程》《Vue3教材》《rust基础入门》《python基础入门》等等等等,则可以看作是从高级迈入精通的几个台阶,你可以随便挑自己感兴趣的学习。
你将从这些教程中认识到,如何针对某个系统进行编程,不同语言之间到底有什么区别、不同语言、框架的应用场景、作用意义,依据这些去发挥想象开发有实际意义的程序应用。
最后,当你已经开始不满足于这些广泛、常见的语言框架后,你便需要开始自行探索前言领域的知识,在学习、开发中不断的积累编程经验,不断的去探索编程语言与框架在各个领域、各个功能的极限所在,不断的稳固精通领域,缓缓踏入大师领域。
3.学习内容
上面说的有些空乏,没有一定的编程认知应该不太好理解其中的内容。
所以这里再具体的讲解一下有哪些是我认为的必要的学习内容:
- 使用C/C++开发基于Windows的控制台、GUI程序,并学习开发linux程序。
- 了解、学习不同类型的编程语言:汇编、C/C++、go、rust、python、Java、C#、kotlin等等。
- 深入了解各大主流操作系统的核心可编程的功能:windows、linux、mac等等
- 学习前端:html、css、js语言与vue、react等前端框架
- 学习后端:http等网络协议、flask等框架、mysql等数据库、REST API设计思想等等
- 云原生:docker、k8s、微服务等等
列举出来的内容可能并不完全,但均为我认为值得你去了解或学习的内容。