学编程太枯燥太难怎么办?

2023-11-11

大家好,我是老三,和大家分享一些我学编程的经历。

那年二十,头发浓密如野狗,夏日炎炎,枯坐机房如木头,一根指头,颤颤巍巍如老叟,敲下了第一行“Hello World”,开启了编程学习生涯。

刚开始,参加的是学校的一个夏季编程训练营,起初是有学长学姐讲课的,奈何学长学姐,教学心切,跟着课件念完,敲遍代码就完事了,一天讲环境,一天讲基本语法,一天讲常用api……

两三周就讲完Java SE,然后基本无人看管了。

那学地怎么样呢?

某日午后,等待机房开门,前面有个学长在对学妹吹水:“今天有个大**,代码跑不起来,少写了大括号,那么大的提示看不懂,还问我是不是空指针、数组下标越界,哈哈哈……”

回头一看,发现大**就在身后呢……
在这里插入图片描述
那时候,不知道怎么学,也不知道学什么,网上找的资料,东一点西一点,跟着慢慢敲,可是常常面临着学不会、学不懂、忘地快,枯燥、茫然、挫败……

后来甚至一度放弃编程,咬牙了很多次才坚持下来。每次回想学编程的经历,不胜唏嘘,当年我们一起学编程的不知道有几个在吃这碗饭。

但是在我痛苦的时候,汤姆室友却很快乐,因为他们每天忘情地打游戏到半夜,我就忍不住想,要是编程像打游戏一样多好,那不得起飞!
在这里插入图片描述

直到最近,我发现了一个网站:

https://codegym.cc/

竟然真的有网站可以像打游戏一样学编程!

游戏
这个网站把Java学习做成了升级游戏!

游戏的背景就很有意思,银河系狂奔号 (Galactic Rush) 船员坠毁在一个未知的星球上,这个星球上有成千上万的野生机器人,但是机器人还比较蒙昧,船员们想出一个主意,教会机器人编程,让机器人来帮助船员们修复飞船。
在这里插入图片描述

于是Java学(游)习(戏)之路就开始了!

主线任务是需要帮助角色从1级升级到40级,喽,就是下面那个靓仔(你)。

主角

在学(游)习(戏)的过程中,导师会不断地指导你去学习Java相关的知识,然后给你分配任务(编码)。
在这里插入图片描述

每次,你都要把学到的知识用到任务(编码)中。
在这里插入图片描述

Java的知识就像游戏里的一个个地图,等着你去探索和通关。
在这里插入图片描述

这样的任务,一共有1000多个!它们涉及到:Java 语法、Java核心、Java多线程、Java集合、SQL……分为40个级别,由浅入深,由易到难。

通关这些任务,你的Java基础一定会非常扎实。

不仅如此,CodeGym还有很多小游戏——你可以自己来开发实现它们,包括经典的贪吃蛇、俄罗斯方块、太空射击等等!
小游戏

一个人学习枯燥了怎么办,还有来自全球的,当然也包括中国的“玩家”陪着你一起通关!

在这里插入图片描述

还可以直接通过群组交流,更加方便!说不定,你还能在里面碰到回炉的老鸟哦!
在这里插入图片描述

好了,介绍了这么多,想必大家也都知道CodeGym是一个好用、好玩的网站。

  • 如果你是一个小白,你在这里可以收获知识
  • 如果你是一个老鸟,你可以在这里收获快乐

不多叨叨,网址在这里,点击也可直达,快来探究竟吧!

https://codegym.cc/zh/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学编程太枯燥太难怎么办? 的相关文章

  • 非常大的 JTable、RowFilter 和额外负载

    我想请求澄清 RowFilter 的使用及其对性能的影响 我通过 include Entry 方法实现了一个过滤器 对于每一行 只需检查模型中其对应值是否设置了布尔标志 如果是 则返回 true 否则返回 false 现在 我拥有的 JTa
  • 如何创建一个在给定范围内随机打乱数字的 int 数组[重复]

    这个问题在这里已经有答案了 基本上 假设我有一个可以容纳 10 个数字的 int 数组 这意味着我可以在每个索引中存储 0 9 每个数字只能存储一次 如果我运行下面的代码 int num new int 10 for int i 0 i l
  • Java 中的原始数据类型是线程安全的吗

    原始数据类型是这样的吗int shortJava 线程安全 我执行了以下代码 有时看不到预期结果 500 public class SampleThree extends Thread static long wakeUpTime Syst
  • API 级别 15 的印地语字体(又名 Android 4.0.2)

    我有一个基于印地语内容的 Android 应用程序 并使用了 Android API 16 SDK 中的 devangiri 字体 并重命名为印地语 ttf 文本在 API 级别 16 和 17 上渲染良好 但在 Android API 级
  • Java:无法从未命名的模块读取包?

    在将项目转移到 Gradle 时 我停止使用 org json 的自定义构建 该构建安装了 module info java 以符合模块系统 现在 我通常通过 Maven 使用它 并且由于 org json 默认情况下不是一个模块 因此它被
  • 启动jetty服务器时出现NoClassDefFoundError

    我正在尝试在码头服务器中托管我的网络应用程序 spring 我将 war 文件复制到 jetty 服务器中的 webapp 文件夹中 我并不是想嵌入jetty服务器 而是试图在jetty内托管应用程序 如tomcat 我没有安装jetty
  • System.out 什么时候不会出现在 Java 控制台中?

    我明白任何要标准化的东西 System out 将出现在 Java 控制台窗口中 启用时 我在某个地方发现 在某些情况下可能无法尝试这样做 例如 在 Swing 应用程序中 是这样吗 基本上 什么情况或设置我不希望在控制台中看到标准输出 例
  • 查找“”之间的字符串的正则表达式是什么

    我有一个字符串如下 http 172 1 10 1 3 http 192 168 15 2 6 http 192 168 1 100 1 2 8 内的字符串是一个标签 内的字符串是前面标签的值 返回我的正则表达式是什么 标签 http 17
  • 如何在 Intellij IDEA 中为 Apache Tomcat 指定自定义 JRE 路径?

    问题是如何指定自定义JRE路径为Apache tomcat in Intellij IDEA 当从以下位置启动应用程序时IDEA 看来 只需配置它的路径 路径jvm dll in Apache Tomcat监视器没有帮助 还有其他想法或方法
  • 如何更改鼠标进入/鼠标退出时按钮的图标图像?

    我想更改鼠标输入和鼠标退出时按钮的图标图像 private void jButton1MouseEntered java awt event MouseEvent evt this jButton1 setBackground Color
  • 根据条件更改 JSlider 的最小值和最大值

    我正在 Netbeans 中创建 Swing GUI 此 GUI 的目的是打开一个 缓冲 图像 在 JLabel 中作为图标 并对其应用仿射变换 现在我正在做 4 个转换 如下所示 现在 每个变换都需要两个滑块来更改 X 和 Y 值 但旋转
  • 如何在应用程序级别管理只读数据库连接

    我们使用的是Java Spring Ibatis MySql 有没有办法利用这些技术在应用程序级别管理只读连接 我希望在只读 MySql 用户的基础上添加额外的保护层 如果 BasicDataSource 或 SqlMapClientTem
  • 如何在android中格式化长整型以始终显示两位数

    我有一个倒计时器 显示从 60 到 0 的秒数 1 分钟倒计时器 当它达到 1 位数字 例如 9 8 7 时 它显示 9 而不是 09 我尝试使用String format B 02d B x 我将 x 从 long 转换为字符串 它不起作
  • 使用当前日期时间的 RecyclerView 的动态节标题

    我将使用 RecyclerView 作为节标题 我想在 SQLite 数据库中插入每个日期和时间数据时创建节标题 我按照以下链接获取了此解决方案 但没有成功 请参考下图 对于上面的图像数据 使用以下代码或部分是静态的 List
  • 使用 lambda 或 Stream API 合并流以生成交替序列

    我有一些按预期返回 Stream 的代码 但也许可以用某种类型的 lambda 或 stream 操作替换它 而不是耗尽 a 中的迭代器while loop 它只是一种交替流中元素的方法first and second当其中一个元素耗尽时停
  • JJWT依赖混乱

    我继承了一个java项目 在POM xml中有这个
  • 在文件中查找一行并将其删除

    我正在寻找一个小代码片段 它将在文件中找到一行并删除该行 不是内容而是行 但找不到 例如 我在以下文件中 我的文件 txt aaa bbb ccc ddd 需要有这样的功能 public void removeLine String lin
  • 使用 HttpClient 在 java 中进行连接池 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何使用 HttpClient 创建连接池 我必须频繁连接到同一台服务器 值得创建这样一个池吗 是否可以保持 HTTP 连接处于活动状
  • MongoDB 和 upsert 问题

    我有两个模型 1 资源假期 Id private String resourceID private List
  • Android 并获取 id 转换为字符串的视图

    在 Android 项目的 Java 代码中 如果您想要视图资源的引用 您可以执行以下操作 View addButton findViewById R id button 0 在上面的 R id button 0 不是一个字符串 是否可以通

随机推荐

  • oracle获取某一天某个时间点

    例如每个月12号18点时间 trunc add months last day FBizDate 1 12 18 24
  • Python之第九章 组织文件

    一 shutil模块 shutil 或称为 shell 工具 模块中包含一些函数 让你在 Python 程序中复制 移动 改名和删除文件 要使用 shutil 的函数 首先需要 import shutil 1 复制文件和文件夹 gt gt
  • Linux下Gcc生成和使用静态库和动态库详解(转)

    原文地址 http my chinaunix net space php uid 23592843 do blog id 223539 一 基本概念 1 1什么是库 在windows平台和linux平台下都大量存在着库 本质上来说库是一种可
  • Pip源地址和.condarc(conda 配置文件)

    1 pip源 清华源地址 https pypi tuna tsinghua edu cn simple 阿里源地址 https mirrors aliyun com pypi simple 官方源地址 https pypi python o
  • 使用动态链接库的好处

    1 可以采用多种编程语言来编写 2 增强产品的功能 3 提供二次开发的平台 4 简化项目管理 5 可以节省磁盘空间和内存 6 有助于资源的共享 7 有助于实现应用程序的本地化 更多内容请看C C 动态链接库 DLL 详解 来源 孙鑫 VC
  • 真正的人工智能支付时代已经来临

    我国就开始掀起人工智能热潮 随着互联网推动数字化的普及以及计算能力的进一步提高 真正的人工智能时代已经来临 刷脸支付基于人脸识别这种人工智能技术 已经广泛应用于商超 零售 医疗 景区等各大生活场景 刷脸支付做为2019年的迸发元年 嗅到商机
  • vue:分页跳转页面详情,返回记住当前点击第几页

    背景 项目中从列表页跳转到详情页返回的时候会默认跳转到分页的第一页 不利于用户的体验 所以需要返回到当前页 实现方法 方法一 Vue2提供了组件级路由钩子函数 分别是beforeRouteEnter beforeRouteUpdate be
  • 解决gbk转utf8乱码

    解决GBK字符转UTF 8乱码问题 gbk转utf 8 奇数中文乱码 一 乱码的原因 gbk的中文编码是一个汉字用 2 个字节表示 例如汉字 内部 的gbk编码16进制的显示为c4 da b2 bf utf 8的中文编码是一个汉字用 3 个
  • opencv VS 环境搭建 读取显示图像 访问像素

    1 opencv 下载 Releases OpenCV 这两个都可以 一个是安装包 一个是压缩吧 安装包也就是个解压的东西 没啥区别 若下载速度慢考虑翻墙 不然就等等 解压之后 source是opencv源码 build 是opecv 的源
  • SQL Server数据的Aes加密存入与解密取出

    最近在做winfrom的毕设 边做边学 由于这个东西折磨了我一天 所以写一篇学习心得记录一下这天的收获 顺便吐槽一下这个气人代码 由于本人是个菜鸡所以如果有缺陷或不足的地方欢迎大佬指出 另 项目环境为 VS2022 SQL Server 2
  • python绘制频谱图_使用python进行傅里叶FFT-频谱分析详细教程

    目录 一 一些关键概念的引入 1 离散傅里叶变换 DFT 2 快速傅里叶变换 FFT 3 采样频率以及采样定理 4 如何理解采样定理 二 使用scipy包实现快速傅里叶变换 1 产生原始信号 原始信号是三个正弦波的叠加 2 快速傅里叶变换
  • 关于plt.imshow()显示彩图问题

    https blog csdn net cnnmena article details 79613531 转载于 https www cnblogs com weststar p 11539800 html
  • fabric.js 怎么将 Group 中的元素包装在一个容器元素中,然后绑定事件到group元素的某个子元素上...

    你可以这样做 在 Group 中添加一个容器元素 比如一个矩形或圆形 将 Group 中的其他元素添加到容器元素中 使用 Group 对象的 on 方法绑定事件到容器元素上 例如 创建一个 Group var group new fabri
  • 操作系统:主存储器空间的分配和回收

    主存储器空间的分配和回收 预习报告 一 实验内容 主存储器空间的分配和回收 二 实验目的 一个好的计算机系统不仅要有一个足够容量的 存取速度高的 稳定可靠的主存储器 而且要能合理地分配和使用这些存储空间 当用户提出申请存储器空间时 存储管理
  • 【千律】C++基础:析构函数

    报错strcpy不安全 解决方法 项目 gt 属性 gt C C gt 预处理器 gt 预处理器定义 添加 CRT SECURE NO DEPRECATE CRT NONSTDC NO DEPRECATE include
  • 机器学习(第一章)

    第一章 绪论 1 1 引言 根据训练数据是否有标记可将训练任务分为 有监督学习 supervised learning 和 无监督学习 unsupervised learning 前者有回归和分类 后者有聚类 泛化能力 模型适用于新样本的能
  • 创建节点和用法

    创建节点 appendchild 的用法 效果如下 insertBefore 的用法 效果 removeChild 的用法 效果 replaceChild 的用法 效果 search 方法用于查询指定的字符串的初始位置 并获取它的下标 se
  • 研究生必备:从0到1使用Zotero

    一 初识zotero 文献导入与引用 1 安装地址 https www zotero org 点击下一步一直安装 编辑 首选项 高级 选择语言为中文 2 文献导入 1 在我的文库下面可以新建文件夹 在中间标题部分可以拖进去本地下载的PDF
  • STL——(8)set/ multiset 容器和pair对组

    set multiset 容器和pair对组 1 set基本概念 2 set构造和赋值 3 set大小和交换 4 set插入和删除 5 set查找和统计 6 set和multiset区别 7 pair对组创建 8 set容器排序 1 set
  • 学编程太枯燥太难怎么办?

    大家好 我是老三 和大家分享一些我学编程的经历 那年二十 头发浓密如野狗 夏日炎炎 枯坐机房如木头 一根指头 颤颤巍巍如老叟 敲下了第一行 Hello World 开启了编程学习生涯 刚开始 参加的是学校的一个夏季编程训练营 起初是有学长学