摘要
- 零基础的人如何快速有效的学习编程?
- C;JAVA;PHP;JS;Python ……,学习哪种语言对于以后更有帮助?
- 编程思维是什么?如何养成编程思维?
视频版链接:https://youtu.be/sjRkbvRKgX8
零基础的人如何快速有效的学习编程?
1. 克服未知的恐惧
- 很多时候我们会不会做某一件事,并不是因为他本身有多难,门槛有多高,而是,我们根本不了解其具体是怎么回事。
- 编程的本质目的:是让计算机为我们做事,换句话说就是,告诉计算机该做什么
- 我们如果想让一个人帮我们做一件事,我们会直接讲给他听,同样,计算机是一个机器,所以也需要他能听懂的一种语音来进行沟通,把这种语言表达出来就是编程的过程
2. 选择一门适合自己的语言
- 计算机发展到今天已经迭代升级了太多次了
- 摩尔定律说18个月翻倍一次,实际上的进化速度比这还快
- 在这个过程中,计算机语言也不断发生变化,所以我们学习语言到底要学习什么语言变成一个很重要的话题,这个问题,我会稍后给大家解答
3. 正确的学习方式
- 明确目标:对于大部分人来讲,学习一门技能并不是搞学术研究,技能要为应用服务,因此,我们必须把这一点理解深刻,并把基于技能解决问题定为我们真正的目标。目标不同学习的方法也不同
对于学术类研究,其往往要对一门技能做全面的了解,对每一个细节进行剖析,进而才能形成自己的思考;对于应用目标,对其技术本身的深度往往不需要那么高了。
举一个例子:
把编程比作一个机器,我们要掌握的能力是看懂说明书去操作机器,而不是编写说明书。
- 高效的学习路线:快速掌握必要的基础知识;之后以实例去理解应用
基础知识:每一门语言有其最基本的语法表达方式,这一块常用的内容不多,也就十几种,这一块可以快速掌握,后续牛哥也会在具体的视频里,以一种极度简单,大家都能够理解的方式进行介绍。
- 适当的指点(少走弯路):无论干什么,我们不要闭门造车,要依托外部的力量,在实际的学习中,往往某个时刻想不明白,或者不确定的事情,有一个经验丰富的人给予适当的指点,不走弯路十分重要。
学习编程的过程不是线性的增长的,而是存在两个平台期:即有两个阶段感觉自己进去非常缓慢
- 从基础知识掌握到解决实际问题 :这个是很多初学者都会面对的问题,感觉基础知识都会了,但是实际应用的时候,总是不知道该怎么用。牛哥也经历过这个过程,解决这个问题,快速度过这个平台期最好的方式就是,多看别人怎么做的,这个部分牛哥会安排在实战类相关视频下。就像最初说的,并不是有多难,而是不知道怎么样开始而已。
- 从解决了很多实际问题到真正的领悟精髓 :这个过程对于每个人并不是强制要求,就像最初说的,目标不同,选择不同。因此,想清楚了就不必太在意。
C/C++;JAVA;PHP;JS;Python ……,学习哪种语言对于以后更有帮助?
目前主流的受众比较多的语言如下:
语言名称 | 诞生日期 | 语言特点 | 主要用途 | 代码示例 |
---|---|---|---|---|
C/C++ | 1972年 | 高性能、底层操作、指针广泛使用 | 系统编程、嵌入式系统、操作系统、游戏开发 | int main() { printf("Hello, World!"); return 0; } |
JAVA | 1995年 | 面向对象、平台无关性、内存管理 | 企业级应用、移动应用、网页应用、服务器端应用 | public class Main { public static void main(String[] args) { System.out.println("Hello, World!"); } } |
PHP | 1995年 | 简单易学、灵活、广泛的数据库支持 | 网页开发、服务器端脚本 | <?php echo "Hello, World!"; ?> |
JavaScript | 1995年 | 轻量级、解释执行、支持事件驱动编程 | 网页交互设计、前端开发 | console.log("Hello, World!"); |
Python | 1991年 | 易于学习、丰富的库、适用于快速开发 | 网络应用、人工智能、科学计算、脚本编写 | print("Hello, World!") |
C/C++ : 系统应用领域
JAVA / PHP / JS : 互联网应用
Python : 快速应用,验证实践
关于到底学习什么语言最合适是一个老生常谈的问题,随便一个技术群里,丢出这个问题可能都会引起一番论战
曾经有个段子:如果想让一个技术群打起来,你就上里面说:“XXX 是世界上最好的语言”!~
- 面向的应用:上文已经提及,要学习自己感兴趣的方向
- 语言是有共通的:就像我们讲话,英语,法语,中文都可以沟通,虽然区别很大,但其本质没有太大的区别。编程语言也是一样,往往学会了一门语言,再去看其他的语言也能快速上手。
如果真正让牛哥来回答这个问题,那么牛哥给的答案是:C/C++
原因如下:
- C/C++:是基础语言,年代比较早了,但基本的东西并没有太大变化,这很重要,还没学会,就变了甚至淘汰了很有挫败感。
- 更容易理解:是的,很多时候很多人说更新更高级语言比较容易理解,比较简单,这一点是打问号的,高级语言的一个共性优点是库多,需要什么直接用,缺点也是这个,如果没有库,你压根不知道怎么办?如果库的效果不能达到预期,依然不知道怎么办。
C/C++ 相对的库没有那么多,但每一个都是沉淀下来的,并且因其是基础语言,且很多库是有源码的,所以,出现上述问题,大不了就自己动手改库,甚至重新实现
- 便于学习其他语言:掌握了C++,那么再去学习其他的语言,比如上述几种,会十分轻松,并且很多时候相较于只学习了某种语言的人,会有一些更深层次了理解。
还是因为C++的基础语言属性,使之对基本数据类型,数据结构等有更深层次的认知,因此对于其他语言里各种封装更容易理解
OK,到这里就剩下一个问题了:都说C++难,那怎么办?
相信牛哥,目标不同,难度就不一样,在后续的视频里,牛哥会带大家真正的零基础,轻松的掌握C++。
之所以有这个自信,因为牛哥真正想分享给大家的是:建立编程思维。
编程思维是什么?如何养成编程思维?
- 理解编程的本质
- 有效的思考问题
理解编程的本质
结合上文,编程就是基于一种计算机能够理解的方式进行沟通,那么进一步沟通的内容就两个部分:
- 数据:计算机,计算机,要算什么?一个数,一张图,一个视频都是数据。
- 算法:要对数据做什么?加减运算,查找筛选等等,都是一种算法。
有效的思考问题
所有的编程本身都是 数据 和 算法,我们面对的所有实际问题,最终都要沿着这两点进行思考,最后分解为以下类似的问题:
- 数据从哪里来?
- 数据是否符合标准
- 数据要做什么操作?
- 有没有特殊情况?
- 处理后的数据给谁?直接显示?入库?……
- ……
小结:
以上为本次牛哥关于零基础如何高效学编程的相关分享,到这里不是结束,而且真正的开始,请关注牛哥,后续牛哥会沿着本次分享的思路,整理分享 C/C++ 相关的基础内容及进阶实践。
青春小手点关注,订阅牛哥不迷路:https://www.youtube.com/channel/UCFbNqDV1vY7S-eih_eC0OAQ?sub_confirmation=1