从迷恋电子游戏,到迷恋电脑编程

作者:Duffy  于 2023-6-20 16:38 发表于 最热闹的华人社交网络--贝壳村

作者分类:祖孙生活|通用分类:子女教育|已有2评论

 


从迷恋电子游戏,到迷恋电脑编程


我的外孙子
Aaron参加了湾区许多城市为喜欢编程(Coding)的中学生举办的Codeforces 课程和升级考试。它是一种“ITMO Academy: pilot course” The course will contain a set of lessons on various topics related to competitive programming. Lessons are prepared by teachers of ITMO University.The top rated有十个等级,最高一级获得者名为Beng,考分3783.

 

Aaron 今年才上高一。他从小就被认为是个患“多动症”的孩子,每时每刻,无论在家里,还是在学校,都要搞出些怪事,闹出些动静。学校好几次打电话要家长到校长室去把Aaron领回来。其实也没什么了不起的事,净是些鸡毛蒜皮的小事,譬如课堂上老师正讲着课,他会突然打个惊天动地的“嗝”,引得哄堂大笑。在家里,他的姐姐正在作功课,他会冷不丁地悄然把台灯给关上。惹得姐姐追他,打他,他却高兴极了,一边抵挡,一边哈哈大笑。后来咨询了医生 ,医生说Aaron这样的小男孩儿,不能算“多动症”,只能算是喜欢吸引人注意,爱出风头,表现欲强,好胜心强,这种性格具有两面性,引导不好就会净干坏事,引导的好会出类拔萃。

初中开始,Aaron迷上了电子游戏,你看他埋头几个小时在电脑上,以为他在做作业,哪知竟然一有空就在电脑上玩儿电子游戏,甚至上课时也玩儿。他妈妈给他的电脑上加了个软件时间锁,限制他每天玩游戏时间。哪知这小子竟在网上学习到如何把锁打开。

有了手机,就更是如鱼得水,晚上躺在被窝里把头蒙上,一玩儿就几个小时。

 

Aaron的妈妈和朋友们交流时,朋友建议她还不如试试把他的兴趣引导到编程方面来。于是给他报了个coding的业余课程,谁知他一下子就迷上了,整天废寝忘食,还自己到处找coding的题目加强练习。受coding课上的朋友引导,后来参加到Codeforces学校,这可是正规的大学入门课程。最近一次考试,竟能和高三同学媲美,受到学校表彰,还采访了他们母子,录制了一档节目“如何把你的孩子从迷恋电子游戏引导到迷恋电脑编程”,迷恋电子游戏可是个困扰了许多家庭的大问题。

几天前,AaronCodeforce网站上,发表了他的第一篇博客,谈Codeforce初学者的Tips,全文如下,后附Chat GTP的中文译文供参考:


AlwaysAcing's blog

Motivation and Tips for Beginners!

By AlwaysAcing, 5 days ago

 

Are you a beginner in the exciting world of competitive programming? Are you just learning the basics and foundations of competitive programming? Are you ready to face the exciting yet challenging obstacles of competitive programming? Look no further! In this blog post, we shall dive into some valuable tips and tricks in order to help you get started on Codeforces. Whether you're aiming to improve your problem-solving skills or climb up the ranks and surpass Benq, these tips will set you on the right path for success.

First and foremost, practice is key! Regular activity on Codeforces will improve your coding abilities significantly and expose you to unique algorithms and data structures. Start with simpler problems and gradually progress to more challenging ones. It is always important to understand the logic behind each solution and analyze the efficiency of your code.

Next, familiarize yourself with common algorithms and data structures. Algorithms like binary search, sorting, and dynamic programming, along with data structures such as arrays, maps/dictionaries, and graphs, form the building blocks of competitive programming. Study their properties, time complexities, and implementation details. This could be done by going out of your comfort zone to look for problems while also learning new algorithm and data structures that associate with problems that are challenging for you. Understanding problem statements thoroughly is a very crucial step to solving a problem. Read them multiple times to learn the requirements accurately. Identify the input and output constraints, edge cases, and potential traps that come your way >:D. Break down complex problems into smaller subproblems (yes this is a dynamic programming reference), and consider writing pseudocode before diving into the implementation. Developing a structured approach will help you avoid common mistakes and save time debugging (ew!).

During contests, time management plays an extremely vital role. Spend sufficient time on each problem based on their difficulty. If you're stuck on a problem, don't waste too much time on that problem. Move onto unattempted problems and come back later in order to gain new insights to help you solve them.

Sometimes, solving more straightforward problems first can boost your confidence, provide valuable hints for other tougher problems, and build a basic foundation for your coding path. Actively participate in the Codeforces community.

Interacting with fellow programmers through discussions, forums, and virtual contests can accelerate your learning. Analyze the solutions of top performers in contests to understand their strategies and techniques. Don't hesitate to ask questions to the awesome (and supportive!) community or seek help when you're stuck on challenging problems :c. Remember, learning from others is an key part of your coding journey.

Lastly, maintain a positive and growth mindset. Competitive programming can be challenging (extremely at times!), and obstacles are inevitable. Use failure as opportunities in order to further learn, improve, and enhance your coding skills. Celebrate your successes, no matter how small they may seem (even after solving a problem!). Consistency and perseverance are key to long-term progress and improvement. Believe in yourself and keep pushing your boundaries for improvement. As you embark on your competitive programming journey on Codeforces and other platforms, remember that it's a marathon, not a sprint (metaphor!). Embrace the learning process, practice diligently, and stay motivated. With time, lots of dedication, and these tips in your mind, you'll gradually unlock new levels of proficiency and achieve your goals! Good luck on your competitive programming career, and make sure to reach out to me if this either helped or motivated you!

ChatGPT

AlwaysAcing's blog

Motivation and Tips for Beginners!

By AlwaysAcing, 5 days ago

你是竞技编程世界里的新手吗?你刚开始学习竞技编程的基础知识吗?你准备迎接竞技编程中激动人心却具有挑战性的障碍吗?别再寻找了!在这篇博文中,我们将深入探讨一些宝贵的技巧,帮助你在Codeforces上入门。无论你是想提高问题解决能力,还是冲刺排行榜超越Benq,这些技巧都会为你成功奠定正确的道路。

首先,实践至关重要!在Codeforces上的定期活动将大大提升你的编码能力,并使你接触到独特的算法和数据结构。从简单的问题开始,逐渐进阶到更具挑战性的问题。了解每个解决方案背后的逻辑以及分析你的代码的效率都非常重要。

接下来,熟悉常见的算法和数据结构。二分查找、排序、动态规划等算法,以及数组、映射/字典和图等数据结构,构成竞技编程的基石。研究它们的特性、时间复杂度和实现细节。通过走出舒适区寻找问题,同时学习与你挑战性问题相关的新算法和数据结构来实现这一点。

彻底理解问题陈述对于解决问题来说是非常关键的一步。多次阅读问题陈述以准确了解要求。确定输入和输出限制、边界情况以及可能遇到的陷阱 >:D。将复杂的问题分解为较小的子问题(是的,这是动态规划的参考),在实现之前考虑编写伪代码。制定一种有结构的方法将帮助你避免常见错误,并节省调试时间(呃!)。

在比赛中,时间管理起着极其重要的作用。根据问题的难度,给每个问题足够的时间。如果卡在一个问题上,不要在那个问题上浪费太多时间。转而去尝试未解决的问题,并在稍后回来获取解决问题的新见解。有时,先解决一些较简单的问题可以增加你的信心,为其他更困难的问题提供有价值的提示,并为你的编码之路打下基础。

积极参与Codeforces社区。通过讨论、论坛和虚拟比赛与其他程序员互动


高兴

感动

同情

搞笑

难过

拍砖

支持
1

鲜花

刚表态过的朋友 (1 人)

发表评论 评论 (2 个评论)

1 回复 8288 2023-6-21 03:01
现在有的小学就有Python课程
1 回复 Duffy 2023-6-21 04:10
是的,python等一般编程在之前的coding课程中已经学过,Codeforce则是以大学数学和软件专业的基础,学习二分查找、排序、动态规划等算法,以及数组、映射/字典和图等数据结构,构成竞技编程的基石。研究它们的特性、时间复杂度和实现细节。通过走出舒适区寻找问题,同时学习与你挑战性问题相关的新算法和数据结构来实现这一点。一阶一阶攀登竞技编程的挑战。

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

关于本站 | 隐私政策 | 免责条款 | 版权声明 | 联络我们 | 刊登广告 | 转手机版 | APP下载

Copyright © 2001-2013 海外华人中文门户:倍可亲 (http://www.backchina.com) All Rights Reserved.

程序系统基于 Discuz! X3.1 商业版 优化 Discuz! © 2001-2013 Comsenz Inc. 更新:GMT+8, 2023-8-11 18:47

倍可亲服务器位于美国圣何塞、西雅图和达拉斯顶级数据中心,为更好服务全球网友特统一使用京港台时间

返回顶部