怎样学习C++,Python,Java等高级程序设计语言
我个人在学习高级程序设计语言过程中的学习笔记。
除此之外,还有个人在开发过程中踩过的一些坑以及对应的解决方案.
前言
高级程序设计语言的体系庞大,各类学习视频、学习资料也鱼龙混杂,导致初学者迷茫在信息的海洋中,做了无用功,没能解决问题。
本系列repo尝试提供一个适宜而完备的高级程序设计语言学习框架,试图解决一些新手常见的问题,
即“如何学高级程序设计语言?”“重点学啥?”“学习过程中会遇到哪些坑?怎么解决?”
各科目录下的 高级程序设计语言学习路线图 是学习路线的总纲,会介绍"如何系统的自学高级程序设计语言语言?","初学者到底需要学习什么?" 建议先把它浏览一遍再来学习高级程序设计语言
在页面下方的 学习方法、学习笔记 等小节中,我重点说明了一下正确的学习高级程序设计语言方式,虽然它并不一定适合每个人,但也请初学者仔细阅读。这能让你的学习路途少一些弯路。
本pages附带的文章集,里面是我开发过程中的一些感悟,踩过的一些坑,以及转载的一些新人环境配置方面常见问题的解决方法,有兴趣可以阅读。
学习配套书目
学习高级程序设计语言基础知识,可供选择的书很多,但它们大都有着一个缺点,那就是内容庞杂,有些内容脱离实际,甚至是过时。
为此,本博客书本推荐
Java
《Java核心技术 卷I》 第11版 中文翻译版本
《Spring实战》第四版
C++
《C++ Primer》
《C primer plus》
Python
入门:《Python学习手册》
进阶:《Python核心编程》
高级:《Python cookbook》
主要是体系完整,实例多,可操作性强。但对初学者,我一般是只讲前6章,也就是下面的内容:
1. 高级程序设计语言程序设计概述
2. 高级程序设计语言程序设计环境
3. 高级程序设计语言的基础程序设计结构
4. 对象与类
5. 继承
6. 接口与内部类
- 郑重提醒:笔记仅做提醒记忆功能,更详细的还请阅读原书。
学习方法介绍
我们要明确学习的方法
1. 用项目来驱动
2. 更少“浪费”与更多回报
学习过程中,要多写demo、多做笔记。同时在一定的学习阶段后,我们需要用项目来驱动,就“实战”学习高级程序设计语言。
高级程序设计语言的体系庞大,不是所有内容都能在日常工作中用到,具体来说,在内容选编上秉持着 “有用”的原则,有利于读者理解高级程序设计语言原理,对实际工作有用。
对于初学者,我们要做到对于一些内容详细理解原理,对于另外一些内容先进行一遍详读,留下笔记,然后在日后实际的代码中再加深理解。
关于学习笔记
因为你是自学,不像在企业中学了就能够实践,印象自然特别深刻。而自学因为没有实践的及时反馈,所以记笔记就显得特别重要。因为记笔记就像写作一样,是整理思路的绝佳方法。同时学习笔记也是你以后开发,面试的绝好资料。
学习编程,人跟人是不一样的,别人觉得难理解的东西,对你却不一定;而你觉得难理解的东西,别人可能又会觉得特简单。而学习笔记就是自己专有的“难点手册”,有点像高考时的“错题本”,以后无论是在面试前,还是在日常工作中,随时都可以翻出来看看,自是获益匪浅。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。但要记住,在笔记中留下一个标记,日后返回时你会有更深的理解。
使用Markdown写你的笔记
从这里开始,有时间的初学者可以先去了解一下Markdown语法,简洁的语法与排版,会是程序员记笔记的首选。如果不感兴趣,可以先跳过这,将笔记先存到word文档或者文本文档中
请分门别类保存你的demo
学习笔记是很好的文字资料,但编程界有句话说的特别好,所谓“no code, no text”,意思就是说:千言万语都没有一段代码来的实在。
以我的经验,在你在学习的过程中,就某个知识点,无论当时理解的多透彻,调试的多棒,只要时间一长,等到了实用的时候,肯定会碰到各种各样的问题,一些看似简单的东西,此时死活就是调不通,正所谓人到事中迷。这个时候,如果你手头恰有运行良好的demo,打开参考一下(甚至直接拷贝过来),问题自然迎刃而解。而且因为这些demo都是你亲手调试出来,印象自然特别深刻,一碰到问题,在脑子中自会立刻涌现。
所以说,在学习的过程,一定要善待你调通的demo,千万不要用完了就扔,等后来碰到困难,想要用时却找不到,追愧莫及。正确的做法就是把所有调通的demo,分门别类的保存起来,到时候查起来自是得心应手。
人都说“书到用时方恨少”,其实代码也是这样,所谓“demo用时方恨少”。
忠告
因为你是自学,所以建议你一定要把其中的代码都调通,课后的作业尽量去做。除此之外,还有两点特别重要:
初学者不需要把整本书都学一遍,高级程序设计语言的体系是很庞大的,除了上面列出的这些,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作或者写项目中边用别学。