Thursday, July 05, 2018

Learning new things for fun

In the last week or so, I've been learning programming. I've done programming in the past using an ancient computing language typically used in old ancient physics or engineering lab (Fortran, if you must know) back in my university days. This time, it's a new age computing language called Python.

I've never been so excited about learning new things for a long while. One fine day, I just decided I wanted to continue my coding journey, so I just picked a language and started reading about it. I downloaded the python software (free) and started working on it. The time that I usually spent playing games is now replaced with learning and playing with Python.

The very first thing that I did is to code this algorithm I came up with 3 yrs ago here. I've been thinking about this problem for quite a long while (easily 6 to 8 yrs), but chanced upon the most efficient way to mathematically describe the problem 3 yrs ago while teaching some new subjects to a new student. Once I know the math behind it, the next logical step is to code it in this new language.

Next, I tried to code this problem that I knew will be somewhat challenging to me at my current skill level. I want the user to key in the birth month and date, then the program will be able to give the appropriate astrological signs (e.g. Taurus, Aquarius, Libra etc). I like the challenge of transforming a simple idea into something concrete and I was definitely in the flow yesterday as I came up with the process. 3 hrs flew by and I didn't even notice!




A few interesting insight:

1) This is the first few times I do something first before knowing something. What do I mean? I have an objective in mind. I just try coding it immediately. I fail because there are some things I don't know. Then I'll read up and search around, and try again until I succeed. This problem-based learning makes it frustrating but it's this frustration that the thing is nearly within your grasp that pushes you to dig a little deeper. This exponentially increases the way I pick up and retain new knowledge. This iterative process is usually not the way I learn something.

2) I didn't learn this for work purposes, nor for some certification. I did this purely for fun. I'm actually dreaming up interesting projects every now and then, and try seeing if I can succeed. Actually I'm not so interested in the actual coding part, but more about how to come up with the algorithm of doing things. Might be useful in life, but hey, I'm having fun, and that's the most important!

3) A student asked innocently if I teach coding. Hmm, maybe this might turn out to be a money making hobby after all. Totally unexpected and I definitely didn't plan it this way, so it's quite a bonus for me if I did make some income out of it.

4) How come I didn't sign up for those courses at Udemy or skillsfuture? I don't know. I am 'iron-teeth' (colloquial slang for stubborn) perhaps, wanting to do things my own way. I just got a textbook and jumped straight in. I think structured courses makes life easier, but I prefer charging up the hill. The learning is more robust, more practical to my needs and also more open ended. It's important for me to feel like a total newbie trying to master a new skill, based on my own effort. Puts me deep in the seat of a beginner, and so I can understand the difficulties of learning new things. As a tutor, it's important for me to experience being a beginner every now and then. This will put me in the right perspective when I'm teaching.

5) I'm definitely playing. How do I know this? I didn't just code it, I played with the code. I tried ways to make it more efficient, or set my own limiting constraints. Basically I don't just want to see a program done, I want to keep working on it until it's no longer fun. If I just want to get it done, I'll have paid a small sum and used fiver or other freelancing work to outsource it to an expert.


With the internet and google plus youtube, all the information in the world is out there waiting for an interested student to read it and learn.

7 comments :

hydrogenperoxide said...

If me, I would just use a table reference and build the range for each horoscope lol.. :P

la papillion said...

Hi H2O2,

The range is actually the hard thing, because have to convert dates into numbers. I'll love to find out how to do a matrix kind of thing for python, but I'm not there yet. Definitely something to improve in next version of the program haha

Singapore Man of Leisure said...

LP,

What you were playing with Python was the equivalent of my "distraction" ;)

I didn't even noticed it became 6 weeks!?



I had fun; I let it go :)



la papillion said...

Hi SMOL,

Do have more of it, but must inform in your website so others won't be worried :)

The break is needed to walk a longer journey. It's very easy to see who is a long time blogger. Just see who returns from a long hiatus :) Most leave and never come back haha, whereas those who are serious will blog and blog and blog.

Waiting for kyith to take a long break though :)

Jes said...

Hi LP,

I studied engineering and all of us were required to learn basic programming in C language. I hated every second of it, just lucky I never fail haha. Glad you like coding and found your own way to appreciate the joy of learning, that's something we cannot find in students now.

Jes said...

Hi LP,

I studied engineering and all of us were required to learn basic programming in C language. I hated every second of it, just lucky I never fail haha. Glad you like coding and found your own way to appreciate the joy of learning, that's something we cannot find in students now.

la papillion said...

Hi Jes,

I studied engineering too and also did my stint of programming :) But I really like it, and after all these years, I still like it enough to want to know more haha