MrValdez's Blog

Coding a Slide Presentation in Ren'py

Posted on Sept. 19, 2020

For PyCon APAC 2020, I would be giving a talk on Ren'Py, a visual novel game engine built on top of Python and pygame. I want to show that Ren'Py is flexible enough that you can make unique games from it. I also like surprising people in my talks.

So I made my presentation as a visual novel.

You can find the source code to my talk here ( and once PyCon APAC 2020 releases the video, I'll link here so you can see how I gave the presentation.

Subgenre in Visual Novels ...

[read more]
Categories: Programming, Ren'py

Reasons to use Python

Posted on May 12, 2018

I'm a polyglot computer programmer. I am proficient with C, C++, Visual Basic 6.0, C#, PHP, and Python. I have basic knowledge with Java, Go, and Pawn[1], but I am very confident I can code with these if I have the manual available.

I personally like Python the most. In this post, I'll point out the advantage of using Python.

Miss Kobayashi's Maid Dragon is an anime where the main character is surprisingly not a teenager but a young adult who have a job as a programmer. Her using Python is just a nice bonus ...

[read more]
Categories: Programming, Python

My choice of Programming IDE: Notepad2

Posted on May 6, 2018

I've been programming since I was a kid. I've experienced saving my code in numerous ways: using the blue IDEs (Turbo C), "copy con <filename>", visual studio (Visual Basic and C++), emacs, vi, and notepad2.

For the last 7+ years, I've been using notepad2 almost exclusively for Python programming. There is a method to my madness.

Before I started teaching programming to college students, I was an emacs user. The idea of having an IDE that you can program appeals to me. I like the idea of an IDE that is custom made to my own intuition ...

[read more]
Categories: Programming

Projects for Python beginners

Posted on May 5, 2018

(updated May 6, 2018)

After going over some beginner-level programming projects, its time to level up and evolve out of being a beginner. Its time to take you out of your comfort zone and become a Python programmer [1].

These Python projects are selected with the following in mind:

  • You can use the skills you've learned from these projects as a foundation for other projects.
  • You will learn the basics of a specific IT subject. If you are going to college, you can use these as your basis.
  • These projects can help show potential clients/employers that they should ...
[read more]
Categories: Programming, Python

Projects for Programming Beginners

Posted on May 4, 2018

As a teacher, beginners often ask me these project-related questions:

  • I've just learned the syntax of this new programming language. What do I do next?
  • I want to be a programmer. What software should I make next?
  • I am applying for a job. What projects should I build to get hired?
  • I want to be the very best. Like no one ever was. Tell me what to make.

Learning a new skill is relatively easy. You just need to study the basics, the mechanics, the terminologies, and your stance while doing that skill (think of a stance like the ...

[read more]
Categories: Programming, Python

Programming learning tip: Stop copy-pasting

Posted on May 3, 2018

When I am learning a new library or programming language, I don't copy-paste. I type the code snippet manually.

In order of importance, the benefits of typing code are:

  • You are actively thinking what you are typing. You are unconsciously learning the code as you read the text.
  • You get extra time thinking how the copied code fits in your existing code.
  • You get typing practice

I strongly believe that copy-pasting inhibits learning, that when I teach programming, I intentionally write on the whiteboard to force the students to type.

If I have an extra monitor, I would move ...

[read more]
Categories: Programming, Teaching

My suggested Hello World for introducing programming to non-programmers

Posted on April 1, 2018

In accordance with the ancient traditions of our people, we must first build an app that does nothing except say "Hello world".

-- React Native's tutorial

"Hello world" is very useful as an introduction to a library or a programming language. The reasons for this are:

  • Almost all programs need to output to screen.
  • It tests that the library or programming language is working. (this simple test is called a black triangle)
  • By focusing on one thing, you can have a simple understand of how the code is written, what tools are needed to execute, and satisfaction that you've ...
[read more]
Categories: Programming

How I teach Python's Anonymous functions

Posted on March 1, 2018

A lot of people switching to Python tells me that they don't understand lambda or anonymous functions. For the purpose of teaching programming beginners this, I make sure that they first understand the following fundamentals:

  • data types
  • lists
  • list.sort()
  • functions

The fundamentals of anonymous functions

Data types

While its basic, I need to check that my students have at least a basic knowledge on this. This is what I cover before the first hour of class is over.

Lists data type

Whether the students know of data type from previous programming languages or not, I'll introduce lists ...

[read more]
Categories: Programming, Python

Global Game Jam 2010: Programming

Posted on Jan. 16, 2018

Join me as we look at what went right and what went (hilariously) wrong on the technical side

Like I mentioned in my experience on GGJ2010:

I've always wanted to be a game programmer. I will directly attribute my skills (and blind spots) on coding to my early attempts at making a game engine.

Too bad I've never made an entire game. Its always demos and proof of concepts for my engine. That changed when I joined the Global Game Jam on 2010.

This is the first time I made a non-demo game in python and pygame. Frankly ...

[read more]
Categories: Global Game Jam, Programming