Programming learning tip: Stop copy-pasting
Posted on May 3, 2018When 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 …
Categories: Programming, Teaching
What makes a great student? They don't need to be spoon-fed
Posted on May 2, 2018I've been a teacher of computer programming for a while now. I've taught people on how to code and how to think like a programmer. Over the years, I've noticed students who would become leaders in their field.
There are a lot of ways a student can learn from a teacher. These are my essays on the subject.
# Motivated students don't wait for instructions
For an average teacher, it would be great if the students listen intently to everything you say and do what you tell them to. This is fine for an average student, but …
Categories: Essays, Teaching
What makes a great teacher? They can teach a complicated subject and make it accessible to other people
Posted on May 1, 2018I've been a teacher of computer programming for a while now. I've taught people on how to code and how to think like a programmer. Over the years, I've been developing strategies and philosophies on teaching. I've decided to put them in writing.
There are a lot of ways to become a great teacher. These are my essays on the subject.
>
> Matt Striker is a teacher who wrestles. ...or is he a wrestler who teaches?
# Great teachers can teach the fundamentals of a complicated subject
The first step in simplifying a hard topic is …
Categories: Essays, Teaching
My suggested Hello World for introducing programming to non-programmers
Posted on April 1, 2018[read more]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 …
Categories: Programming
How I teach Python's Anonymous functions
Posted on March 1, 2018A 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 …
Categories: Programming, Python
Python Philippines is a diverse community
Posted on Feb. 21, 2018Philippines is a country. Metro Manila is a part of the Philippines.
We started Python Philippines in Manila because a lot of tech companies operated here. It also helped that the region is where most of the board of trustees worked, making it easy to host meetups. By PyCon 2016, we've done 3 Python Conferences at Manila.
But the Philippines country is large and diverse with different cultures. We don't want Python Philippines to be primarily known as a Manila group. We want to spread the programming language to other parts of the country.
Different region in the …
[read more]
Categories: python philippines
Why I love playing at the Global Game Jam
Posted on Jan. 23, 2018The Global Game Jam is held every January, usually at the last weekend of the month. A Game Jam is basically a Hackathon1 where you have roughly 48 hours to make a game. To make things interesting, your game should align with a theme that will be revealed once the event start. There are no prizes to be won except the glory of making a game under a deadline.
At the game jam, you can join as an individual or as a team. Preferably, you make a new team at the event itself. This will help you make new …
Categories: Essays, Global Game Jam
Global Game Jam 2010: Programming
Posted on Jan. 16, 2018Join 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 …
Categories: Programming, Global Game Jam
Global Game Jam 2010: Psychic Fighters
Posted on Jan. 16, 2018
Deception-based Fighting Game. Two Psychics slug it out!!
# Game description
Psychic Fighters is a two player game of deception. The goal is to outsmart your opponent with feints. The game is played in turns, with one player being an attacker and the other player being the defender.
# How to run
1. To play, first download or clone the game from my Github repo.
1. Download Python (preferably Python 3.4+). Either put the python executable in your path or include the path when running the shell commands
1. Change directory to the game. If you downloaded as a zip file …
Categories: Games, Global Game Jam
Global Game Jam 2010: My Experience
Posted on Jan. 16, 2018
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.
# Global Game Jam (GGJ)
I was an admin for the Manila Chapter of IGDA (International Game Developers Association) during 2009 - 2011, and we were coming up of ways to promote the local game industry. One of the admins have just heard …