<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reflections on ENKR's Blog | Jing Hui PANG</title><link>https://blog.enkr1.com/categories/reflections/</link><description>Recent content in Reflections on ENKR's Blog | Jing Hui PANG</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>ENKR</copyright><lastBuildDate>Sun, 19 Apr 2026 17:26:16 +0800</lastBuildDate><atom:link href="https://blog.enkr1.com/categories/reflections/index.xml" rel="self" type="application/rss+xml"/><item><title>Failure is the Learning Mechanism: A Lunch with Prof Jiang</title><link>https://blog.enkr1.com/prof-jiang-growth-mindset/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0800</pubDate><guid>https://blog.enkr1.com/prof-jiang-growth-mindset/</guid><description>&lt;p&gt;Lunch conversation after the tutorial yesterday, nothing formal. Prof Jiang Kan said something that landed harder than the tutorial content itself.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Programming is like life. You learn from the failures you face in tutorials, tests, and exams. The key is to hit failure, to make mistakes; we have to be open-minded to learn from mistakes and grow from that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Paraphrased but close to his words.&lt;/p&gt;
&lt;h2 id="why-it-landed"&gt;Why it landed
&lt;/h2&gt;&lt;p&gt;The Practical Exam a few days earlier came back 20/20. But the 20/20 did not come from getting the answers right the first time. It came from Mock Tests 1 through 9, where every wrong submission taught a specific thing. Off-by-one errors in slicing. Forgetting that &lt;code&gt;.append()&lt;/code&gt; mutates in place. Mixing up &lt;code&gt;return&lt;/code&gt; and &lt;code&gt;print&lt;/code&gt;. The final score was downstream of a lot of local failures I stopped hiding from.&lt;/p&gt;
&lt;p&gt;Prof pointed this out on a specific piece of code. In PE Q4 I used a stack-based iterative solution. He said it should have been recursive: decompose into subproblems, reach for recursion, stop leaning on manual state.&lt;/p&gt;
&lt;p&gt;The 20 marks still came through because the stack worked. But the observation was sharp. My reflex was &amp;ldquo;iterate and track state manually.&amp;rdquo; The better reflex is &amp;ldquo;describe the smaller problem and trust the call.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="what-this-changes-for-finals"&gt;What this changes for finals
&lt;/h2&gt;&lt;p&gt;Final exam is May 4. Same module. This time on Examplify, not Coursemology. Fill in the blanks of provided code. No compiler.&lt;/p&gt;
&lt;p&gt;Two things to carry in:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Recursive thinking as the default mental move when a problem has &amp;ldquo;do X, then do it again on a smaller piece&amp;rdquo; structure. Stop reaching for the stack reflex.&lt;/li&gt;
&lt;li&gt;Mistakes during prep are not &amp;ldquo;fallen behind.&amp;rdquo; They are the medium. The drills are not supposed to be clean. If every mock test goes perfectly, something is wrong with the difficulty.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="to-be-continued"&gt;To be continued
&lt;/h2&gt;&lt;p&gt;A growth-mindset line in a lunch talk can fade into a feel-good quote if I don&amp;rsquo;t tie it to something concrete. For now I&amp;rsquo;m tying it to two things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Re-drilling PE Q4 recursively before the final, as a way of taking the note seriously.&lt;/li&gt;
&lt;li&gt;Keeping the first attempt on any fill-blank practice rough on purpose, and reading the mistakes as data, not judgment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I will come back to this post after the final, and after any failures that show up between now and then.&lt;/p&gt;</description></item></channel></rss>