零基础-如何高效学编程?

摘要

  • 零基础的人如何快速有效的学习编程?
  • C;JAVA;PHP;JS;Python ……,学习哪种语言对于以后更有帮助?
  • 编程思维是什么?如何养成编程思维?

视频版链接https://youtu.be/sjRkbvRKgX8

如何高效学编程

零基础的人如何快速有效的学习编程?

1. 克服未知的恐惧

  • 很多时候我们会不会做某一件事,并不是因为他本身有多难,门槛有多高,而是,我们根本不了解其具体是怎么回事。
  • 编程的本质目的:是让计算机为我们做事,换句话说就是,告诉计算机该做什么
  • 我们如果想让一个人帮我们做一件事,我们会直接讲给他听,同样,计算机是一个机器,所以也需要他能听懂的一种语音来进行沟通,把这种语言表达出来就是编程的过程

2. 选择一门适合自己的语言

  • 计算机发展到今天已经迭代升级了太多次了
  • 摩尔定律说18个月翻倍一次,实际上的进化速度比这还快
  • 在这个过程中,计算机语言也不断发生变化,所以我们学习语言到底要学习什么语言变成一个很重要的话题,这个问题,我会稍后给大家解答

3. 正确的学习方式

  • 明确目标:对于大部分人来讲,学习一门技能并不是搞学术研究,技能要为应用服务,因此,我们必须把这一点理解深刻,并把基于技能解决问题定为我们真正的目标。目标不同学习的方法也不同

对于学术类研究,其往往要对一门技能做全面的了解,对每一个细节进行剖析,进而才能形成自己的思考;对于应用目标,对其技术本身的深度往往不需要那么高了。
举一个例子:
把编程比作一个机器,我们要掌握的能力是看懂说明书去操作机器,而不是编写说明书。

  • 高效的学习路线:快速掌握必要的基础知识;之后以实例去理解应用

基础知识:每一门语言有其最基本的语法表达方式,这一块常用的内容不多,也就十几种,这一块可以快速掌握,后续牛哥也会在具体的视频里,以一种极度简单,大家都能够理解的方式进行介绍。

  • 适当的指点(少走弯路):无论干什么,我们不要闭门造车,要依托外部的力量,在实际的学习中,往往某个时刻想不明白,或者不确定的事情,有一个经验丰富的人给予适当的指点,不走弯路十分重要。

学习编程的过程不是线性的增长的,而是存在两个平台期:即有两个阶段感觉自己进去非常缓慢

  1. 从基础知识掌握到解决实际问题 :这个是很多初学者都会面对的问题,感觉基础知识都会了,但是实际应用的时候,总是不知道该怎么用。牛哥也经历过这个过程,解决这个问题,快速度过这个平台期最好的方式就是,多看别人怎么做的,这个部分牛哥会安排在实战类相关视频下。就像最初说的,并不是有多难,而是不知道怎么样开始而已。
  2. 从解决了很多实际问题到真正的领悟精髓 :这个过程对于每个人并不是强制要求,就像最初说的,目标不同,选择不同。因此,想清楚了就不必太在意。

如何高效学编程

C/C++;JAVA;PHP;JS;Python ……,学习哪种语言对于以后更有帮助?

目前主流的受众比较多的语言如下:

语言名称诞生日期语言特点主要用途代码示例
C/C++1972年高性能、底层操作、指针广泛使用系统编程、嵌入式系统、操作系统、游戏开发int main() { printf("Hello, World!"); return 0; }
JAVA1995年面向对象、平台无关性、内存管理企业级应用、移动应用、网页应用、服务器端应用public class Main { public static void main(String[] args) { System.out.println("Hello, World!"); } }
PHP1995年简单易学、灵活、广泛的数据库支持网页开发、服务器端脚本<?php echo "Hello, World!"; ?>
JavaScript1995年轻量级、解释执行、支持事件驱动编程网页交互设计、前端开发console.log("Hello, World!");
Python1991年易于学习、丰富的库、适用于快速开发网络应用、人工智能、科学计算、脚本编写print("Hello, World!")

C/C++ : 系统应用领域
JAVA / PHP / JS : 互联网应用
Python : 快速应用,验证实践

关于到底学习什么语言最合适是一个老生常谈的问题,随便一个技术群里,丢出这个问题可能都会引起一番论战

曾经有个段子:如果想让一个技术群打起来,你就上里面说:“XXX 是世界上最好的语言”!~

  1. 面向的应用:上文已经提及,要学习自己感兴趣的方向
  2. 语言是有共通的:就像我们讲话,英语,法语,中文都可以沟通,虽然区别很大,但其本质没有太大的区别。编程语言也是一样,往往学会了一门语言,再去看其他的语言也能快速上手。

如果真正让牛哥来回答这个问题,那么牛哥给的答案是:C/C++

原因如下:

  1. C/C++:是基础语言,年代比较早了,但基本的东西并没有太大变化,这很重要,还没学会,就变了甚至淘汰了很有挫败感。
  2. 更容易理解:是的,很多时候很多人说更新更高级语言比较容易理解,比较简单,这一点是打问号的,高级语言的一个共性优点是库多,需要什么直接用,缺点也是这个,如果没有库,你压根不知道怎么办?如果库的效果不能达到预期,依然不知道怎么办。

C/C++ 相对的库没有那么多,但每一个都是沉淀下来的,并且因其是基础语言,且很多库是有源码的,所以,出现上述问题,大不了就自己动手改库,甚至重新实现

  1. 便于学习其他语言:掌握了C++,那么再去学习其他的语言,比如上述几种,会十分轻松,并且很多时候相较于只学习了某种语言的人,会有一些更深层次了理解。

还是因为C++的基础语言属性,使之对基本数据类型,数据结构等有更深层次的认知,因此对于其他语言里各种封装更容易理解

OK,到这里就剩下一个问题了:都说C++难,那怎么办?
相信牛哥,目标不同,难度就不一样,在后续的视频里,牛哥会带大家真正的零基础,轻松的掌握C++。
之所以有这个自信,因为牛哥真正想分享给大家的是:建立编程思维。

编程思维是什么?如何养成编程思维?

如何高效学编程

  • 理解编程的本质
  • 有效的思考问题

理解编程的本质

结合上文,编程就是基于一种计算机能够理解的方式进行沟通,那么进一步沟通的内容就两个部分:

  1. 数据:计算机,计算机,要算什么?一个数,一张图,一个视频都是数据。
  2. 算法:要对数据做什么?加减运算,查找筛选等等,都是一种算法。

有效的思考问题

所有的编程本身都是 数据算法,我们面对的所有实际问题,最终都要沿着这两点进行思考,最后分解为以下类似的问题:

  • 数据从哪里来?
  • 数据是否符合标准
  • 数据要做什么操作?
  • 有没有特殊情况?
  • 处理后的数据给谁?直接显示?入库?……
  • ……

小结:

以上为本次牛哥关于零基础如何高效学编程的相关分享,到这里不是结束,而且真正的开始,请关注牛哥,后续牛哥会沿着本次分享的思路,整理分享 C/C++ 相关的基础内容及进阶实践。

青春小手点关注,订阅牛哥不迷路https://www.youtube.com/channel/UCFbNqDV1vY7S-eih_eC0OAQ?sub_confirmation=1

站内快搜



联系牛哥

加入牛哥的 TG 群组一起交流

=>>Telegram群组(点我加入)

有特殊情况的,需要单独沟通,可以添加牛哥的 微信 或者 Telegram