Walking uphill

June 12, 2009

I don’t belong here / I gotta move on dear

Filed under: Uncategorized — walkenji @ 5:58 pm

I’m back on track again, with a two-part post. I’ve been rather distracted with real life, which has interfered with my programming. And I’m also overwhelmed by the amount of information on the internet, which I feel that I should understand… right now.

Learning:

I really want to develop my skills, and I can only do that by using them. I struggle to find the time, and this is because I need to prioritise my goals. I’ll start by listing what my current goals are (in terms of computers).
1. Become a competent C programmer, with the ability to debug programs and understand the low level design.
2. Become proficient in Python and complete the Python challenges and Project Euler.
3. Get my websites up and running, since one doesn’t exist anymore and the other is just sitting there, as well as posting regularly to this blog, of course.

To do this, I just need to accept that is ok to forget about the other priorities for an hour or two at a time, and just focus one thing. The bigger picture can be so distracting sometimes, but we start our learning by becoming an expert in one area and then building on that.

Work:

I’m really enjoying my work right now. I’ve just gotten back from a week off and I’m recharged and ready to focus again. My work can be challenging at times and involves supporting legacy systems which are written in C. This is one of the main reasons I want to develop my C skills.
I really admire the people that I work with, but I need to accept the fact that they are (A) older than me and (B) have been working/programming for longer than me. Instead of being overwhelmed by their knowledge/skill, I just need to slowly work on improving myself and ignore the gap between us. At some point in the past, they were where I am and so I can achieve what they have to.
One workmate is incredibly organised and has neat folders for each application he works on. While I admire that, I also accept the fact that I’m not organised. If I had those folders, I honestly would never open them or look at them, and it would be a struggle to maintain them with any meaningful information. I can incorporate the things that he does that would help me in the way that I work. I tend to keep a lot of things in my head, but this is not always good in terms of documentation. Basically, he is setting a good benchmark for me to work towards.
The other workmate I admire (ok, I work with a lot of smart people, but I’m only focussing on two right now), is really really good at programming. He writes really complicated programs with reusable code and has a deep understanding of C and .NET. But as I’ve said, he’s had years of experience doing this. So when I think about improving my programming skills, I’m thinking about improving to the point where I can work at his skill level, or the level of other talented programmers out on the internet. Being around people like this, in the workplace as well as cyberspace, makes me realise how much I want to learn. But then it also makes me want to do everything and try everything at once. My focus for now is to pick one area and work on improving my skills in that area first. So for now, Python for fun and C for work are the two programming skills I want to focus on.

And on a final note, I’ve just completed a good week at work. I’m working on putting together a .NET program to view parts of images, which calls a C dll. I’m having fun with getting the C dll to return a struct, which also contains an pointer to an array of structs. However, it feels really good to be writing something again from scratch, planning the design of the program and solving problems in the development phase. I’ve had some fun moments such as when I sat there wondering “How do I add a menu bar to this form?”, simply because most of tasks have been supporting existing programs, and I haven’t really written any .NET code from scratch since uni days. But it’s all coming back to me, and so is my love of coding.

Advertisements

May 4, 2009

I will move fast/I will move slow/Take me where I have to go

Filed under: Uncategorized — walkenji @ 9:48 pm

I’ve been struggling to find time to get back into programming. Life has gotten really busy for me. I was really sick for a week after Easter and I’m still struggling to get my health back to 100%. I need to prioritise taking care of myself so I get better faster.
I’ve downloaded the book “How to Think Like a Computer Scientist: Learning with Python” by Allen Downey to help get me back on track. The python challenges are good, but I’m too worried about accidentally finding a solution to seriously google the challenges. So I’m going to try and get a good base understanding of python before moving forward with the challenges.
I’ve just completed working through Chapter 2. I’m really enjoying how this books takes me back to basics and it is in a readable format and is an interesting easy read.
Another book I’m looking at is Dive into Python by Mark Pilgrim. The following page has a lot of links to different books which are available.

Basically, my biggest problem is real life gets in the way of coding. I have to prioritise the time for coding if I want to improve.

Mirror’s Edge – Lisa Miskovsky

March 26, 2009

‘Cause I was all up in a piece of heaven/While you burned in hell, no peace forever

Filed under: Uncategorized — walkenji @ 8:27 pm

I am currently working my way through the Python challenges, I manage  to beat the first one once I saw one of hints I opened while randomly trying to suceed.

I’m currently halfway thru the 2nd one. I know how to beat it, but I’m still working on it.
But the best part is the fact that I’ve progressed from using the PythonWin interface to actually running a python program from the command line… and printing out “Hello World”. Then just to be different I added “Are you my Mummy?”.. bonus points if you know what I am referring to!!

In other news, I’ve just discovered Cal Newport’s blog. It has a lot of good information that would have been useful to know in uni. I just finished submitting a job application this morning, and it was a bit of a nightmare. I automatically fell back into my uni habits, assumed that it wouldn’t take that long to do, and so I left it to the last minute. The worst part is I’ve known it was due today for about least the last 4-6 weeks. So here I was, wasting my working day trying to get it completed, feeling really disorganised and stressed, only getting 3 1/2 hrs sleep last night and I just completed it about 1 1/2 hrs before the deadline.

My actions frustrate me sometimes. Especially when I realise the impact it has on my life and my motivation without me being aware it… Cal Newport’s blog got me thinking.

First: His advice about using pen and paper to put down ideas. I love using pen and paper (btw, today I tried out the mini fountain pen my friend gave me and it’s pretty cool). I find that it helps me brainstorm and get my thoughts out and allows me a more physical, hands-on interaction with my thoughts. Using a computer screen frustrates me a bit because I can’t touch it, I can’t move it, I’m so limited by the tools that I’m using that it just wastes my time. Paper on the other, leads to a free flow of ideas and inspiration….

Second: Boredom. The article talks about how we don’t achieve anything because the instant we get bored or something becomes too much effort, we rush off to get an insta-fix of some sort of entertainment, be it facebook, tv or hanging out with friends. Personal and skill development is under-rated nowadays and everyone is in it for the immediate rewards. But the real satisfaction comes from putting in the effort and seeing a job well done and knowing at the end that you’ve changed yourself the way you wanted to.

Thirdly: Scheduling productivity. Cut down on the number of projects you are doing hits home for me. I am always trying to do to much at the same time, and as a result, I don’t get anything or much done. The solution is for me to step back and prioritise what I want to get done, and then go ahead and do it. And I love Cal’s idea of starting early. My conscious, but definitely not subconscious goal, as I always sabotage myself.

Cal has so many useful articles that I’ll have to take my time and look through. One that has jumped out at me is 5 thought experiments. I think I’ll write this one up when I get the time.

Finally, I just got back from my Tae Kwon Do lesson tonight, and I’ve been working on my 1st pattern, Taeguk Il Jung, for grading in two weeks time.¬† And I just realised how much more coordinated I’ve become since starting Tae Kwon Do. I am so much more flexible (someday I’ll be able to do the splits) and I’m really good at changing directions and moving on my toes. And I don’t lack power, but I do have control issues. I’ve still got lots to learn, but I have to remember to celebrate what I’ve achieved so far.

My last note for this is procrastination. I’m putting in all this effort typing this blog message, when I really should be packing for my hike tomorrow, deciding what I’ll buy to eat, doing my dishes and getting an early night to catch up on sleep.

March 20, 2009

…and don’t ever think, ever think, ever think too much…

Filed under: Uncategorized — walkenji @ 8:55 pm

I was searching for ways to become a better programmer…. and I found the following site…

http://stackoverflow.com/questions/47898/good-practice-projects-to-improve-programming-skills

http://stackoverflow.com/questions/4002/code-katas

The 2nd page has the following quote (from Jeff’s code kata). http://www.codinghorror.com/blog/archives/001138.html

I don’t have a long list of effortful study advice like Steve and Peter and Dave do. I’m far too impatient for that. In fact, there are only two movements in my book of code kata:

  1. Write a blog. I started this blog in early 2004 as a form of effortful study. From those humble beginnings it has turned into the most significant thing I’ve ever done in my professional life. So you should write blogs, too. The people who can write and communicate effectively are, all too often, the only people who get heard. They get to set the terms of the debate.
  2. Actively participate in a notable open source project or three. All the fancy blah blah blah talk is great, but are you a talker or a doer? This is critically important, because you will be judged by your actions, not your words. Try to leave a trail of public, concrete, useful things in your wake that you can point to and say: I helped build that.

When you can write brilliant code and brilliant prose explaining that code to the world — well, I figure that’s the ultimate code kata.

My first action on reading his advice above was to create this blog. Writing is a skill I need and want to have and I want to get involved in the virtual world. I’ve been absent since my uni days when I was actively involved in online tv show/movie forums.

As a taekwondo practitioner (I received my yellow belt at the end of 2008), I love the analogy of comparing coding practice to katas (or in TKD, patterns). Last week, the instructor emphasized how critical it was to practice, even if only once a day, even if only in your mind, because it built up the muscle memory. And once you got that muscle memory, then you could start focusing on doing the patterns with more speed and power.

Reading further into Jeff’s article, he references articles by Steve Yegge and Peter Norvig that I haven’ t yet had time to read.

After reading the links listed above, I think I will look into the python challenge site.. it looks like a good place to start and whet my appetite. http://www.pythonchallenge.com/

And I also want to have a closer look at codekata (http://codekata.pragprog.com), since this concept is still quite novel and new to me.

Random point: I just finished listening to ‘Deadsong’ by ‘Before the Dawn’… they are a very average band. I wouldn’t really listen to another song.

On the other hand, I listened to ‘The Zutons’ for the first time yesterday and I am hooked. I am really impressed by Abi Hardings awesome saxophone playing. It is so inspiring and the songs are so catchy and have a really seductive rhythm.

Will you call them gods, or will you call them freaks

Filed under: Uncategorized — walkenji @ 7:00 pm

I’ve finally started organising myself, not just at home, not just at work, but in my computer and the internets (hey, it’s a cool sounding word!).

My first step was to get an openid (which I did at Verisign – I was surprised to find out it was run by Verizon). The following site had lots of good advice about openids ( http://www.supersatellite.com/2008/01/23/getting-into-openid/)

I’ve tried several times to get more involved in the internet, but I just don’t follow through. Last year I even bought two domain names… which I briefly used on free websites and rarely updated. So this time, I’m starting cheap, I’m starting simple and I’ll build on it when the commitment starts to appear.

This has been triggered in part by my work. I work with some really smart people who I am in awe of and aim to be like. I’ve just started work on a .NET project which has an Oracle backend with pl/sql in the middle. My first day into this and I’ve realised how little I really know about development. Yes, I can fix and maintain things… but any code monkey can learn to do. Development is a whole new arena for me (well, since I finished uni 2 years ago), and now I am free to design this program however I want. I’m suddenly researching good development skills on the internet as I want to improve myself and become a competent developer.

To do this, I want to start practicing my programming skills in my free time. Since I do IT work all day, I haven’t bothered doing computer stuff at home, outside of net-surfing and watching tv shows/movies. My very active personal life also does not help. But, if I want to improve my skills, I have to put in the effort and I want to put in the effort.

I worked out that on average, I would watch at least 14 hours of television a week. I am constantly trying to keep up with everyone and trying to find new shows to watch. But while it’s fun, it doesn’t leave me with a good feeling. It does not help me to be more organised and my life is more than a bit out of control at this point.

In fact, I have friends over tomorrow and I should be cleaning and cooking, but somehow, looking at IT stuff on the net is more interesting. But.. back on topic.

To succeed, my goals are:

1. Pick a new programming language and then select a small project/task, such as developing a simple computer game. (considering writing a game in Python, especially since I found out Miro was written in python).

2. Set up a central account to do everyone (check.)

3. Set up a blog/Wordpress account to record things regularly (check).

4. Organise my computer… it is incredibly full of duplicate files and random files I’ve saved and old programs I’ve never deleted and random files and music my brother put on there. The computer is 5 years old (my plans to upgrade will be saved for another post) and I have 3 hard drives in this PC. They haven’t been defragged in the last two years, so if I want a fast running decent computer (and I want to install and play Portal), then I’ll have to clean it up.

That’s enough for now or I’ll end up with too many goals to do. My final comment is…. delicious…. wow. I signed up for the first time today. I mean, I’m not a caveman, I had heard of it, and I knew what it did, but I had never used. Four tags later, I am massively impressed.

Create a free website or blog at WordPress.com.