当前位置: 首页 > news >正文

惊!初中生也来卷了……

大家好,我是良许。

前两天在抖音直播的时候,突然来了一位不速之客……

他自称是初中生,一开始我还有点不太相信,直到跟他连麦,听到他还略带一些稚嫩的声音,我才知道,他没有骗我……

file

他说他想学编程,问我第一门编程语言应该学 C 语言还是 Python 。

我都有点惊呆了,初中生,此时已经三月底了,这个时候不是应该备战中考吗(如果初三的话)?

他自信地跟我讲,中考 750 分的试卷,他能考 650 分以上。

这个分数,真的是可以称得上学霸级的成绩,但毕竟隔着屏幕,也没法确认真实性。

所以,在叮嘱他初中生还是以学业为主的同时,对于他的问题我还是给了一些我自己的看法。

file

如果是成年人,我肯定是建议大家一定要把 C 语言当作入门语言。

为什么呢?其实很简单,C 语言是很多编程语言的鼻祖,把 C 语言弄明白了,再去学习其它编程语言,就会非常快,毕竟语言都是相通的。

另外,C 语言是一门非常贴近底层的语言,学好 C 语言,你会对操作系统、数据结构、算法,乃至编译原理等等基础知识,都会有更加深刻的理解。

别小看计算机基础知识,这些不起眼的东西,才是程序员内功的真正体现。

特别是指针,它是 C 语言的灵魂,同时也是很多程序员的恶梦。

指针用得好的话,就可以像魔法师手里的魔杖一样,随心所欲操纵内存;如果不熟悉指针的操作,分分钟给你 OOM !

而 Python 是比 C 语言更高级的语言,屏蔽掉大部分底层接口,让你更加专注于应用的开发。

所以 Python 学习起来相对要简单很多,也更加容易理解,比较接近人类语言。但这也导致了学习 Python 会让你脱离基础知识,对于程序员内功的修炼不友好。

所以,程序员的第一门语言,强烈建议学习 C 语言,不管你后面有没有用到它。

但如果是小孩的话,那我更建议学习 Python 。

原因也很简单,Python 简单易学,正反馈比较快,容易坚持学下去。有一些城市甚至都在小学阶段就开设了 Python 课程。

而 C 语言更底层,学习起来更难,没有一定知识积累的话,学习起来会非常费劲,不仅打击自信心,还可能很快就放弃。

不过话又说回来,小初高阶段,还是把要重心放在学业上,编程顶多作为一个课外爱好,否则顾此失彼就得不偿失了。

当然,现在也不少神童级别的人物,从小就开始学习编程,比如最强大脑选手 Vita 君(没错,我是最强大脑资深粉丝),从 4 岁开始学习编程,如今已经有 4 年编程经验,就问你怕不怕?

file

但这种人毕竟是现象级人物,而我们普通人还是老老实实认清自己的定位,上课好好听讲,作业好好完成,学有余力再去做其它事情。

同时家长也不要硬逼孩子学这学那,过早让孩子学习不是这个年龄阶段的知识,只会揠苗助长,百害而无一利!

(想想我的童年还是挺幸福的,画画、做手工、做收音机、捉泥鳅、打鸟蛋、玩弹珠……80 后农村孩子该有的我都有,哈哈)


学习编程,千万不要急于求成,一定要多读一些经典书籍,多看源码,多下苦功夫去死磕代码,这样技术才能长进。给大家分享一些程序员必读经典书籍,一定要多读几遍:

file

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

推荐阅读:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 刷题 | LeetCode算法刷题神器,看完 BAT 随你挑!

欢迎关注我的博客:良许Linux教程网,满满都是干货!

相关文章:

  • 第一天 初识CUDA和显卡(含代码)
  • 钓鱼客服到拿下服务器全过程(重点在于钓鱼添加img src)
  • Java 面试常见项目问题回答
  • Linux【进程理解】
  • c---冒泡排序模拟qsort
  • 浏览器主页被hao123劫持的解决方案
  • C++单例模式实现
  • java八股系列——依赖注入的方式
  • 前端基础知识
  • MDK Keil5 创建Stm32工程-理论篇(这里以Stm32F103Zet6为例)
  • 电路模型和电路定律(2)——“电路分析”
  • C++中的利器——模板
  • Python绘图
  • 【Linux】-- 基本指令
  • 核心 Android 调节音量的过程
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 10个最佳ES6特性 ES7与ES8的特性
  • angular2开源库收集
  • js 实现textarea输入字数提示
  • JSONP原理
  • Mac转Windows的拯救指南
  • node入门
  • React中的“虫洞”——Context
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue ES6 Jade Scss Webpack Gulp
  • 记录:CentOS7.2配置LNMP环境记录
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 如何设计一个比特币钱包服务
  • 树莓派 - 使用须知
  • 双管齐下,VMware的容器新战略
  • 想写好前端,先练好内功
  • raise 与 raise ... from 的区别
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # Maven错误Error executing Maven
  • (2)nginx 安装、启停
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)jdk与jre的区别
  • . Flume面试题
  • .libPaths()设置包加载目录
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • [AIGC] SQL中的数据添加和操作:数据类型介绍
  • [android] 看博客学习hashCode()和equals()
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [C++] new和delete
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [flask]http请求//获取请求头信息+客户端信息
  • [HDU3710]Battle over Cities