Saturday, June 11, 2011

Thoughts on what Makes a Good Programmer

Programmers, at least the ones that are very good, posses skills that allow them to be inner-focused. They are on a mission. They constantly are challenging themselves to be creative, to continually improve by not avoiding the hard stuff, and to view hurdles as opportunities. The teenage computer geek, who knows more than everybody else, is actually very sophisticated. Likely more than magical genius lies beneath their brow.

Adults appear to face similar challenges to being good. The ones who are not successful appear to be constantly making statements of self-doubt. They are not risk-takers. It is a sad thing to realize that they have likely been the same way their whole lives, imprisoned within themselves.

Sunday, November 28, 2010

WebGL

Soo...I was just trying to install WebGL on my computer, and somehow in the thick of things I crashed my Gnome Desktop (e.g. I messed up some settings so it wouldn't load properly).

I count this as a blessing because it was about time to do other things.

Well, later.

Friday, November 12, 2010

Being Smart

I think for a lot of my life I stopped short of doing a lot of the hard stuff that I really wanted to do.
I grew frustrated, thought I was dumb, and then thought enviously of the many other people who seemed to
have such an easy time at it.

I believe now that the many smart people in my life were people who took risks, and maybe were
fortunate to have someone show them where to begin with the hard stuff (or at least support their endeavors).
They were passionate about things, but they were also confident enough to do them.

I labelled them as smart because they seemed to get by with things with such ease. But perhaps they were
just skilled. It is strange how being skilled, in just one area, can facilitate understanding in another.

I never was a National Merit Scholar or a straight A student. I was pretty average, although I did get the
Honor Roll a couple of times. And yes, I did get some really high grades in some classes. I also got some
pretty low grades too :).

I think the people who would be labeled as "smart" are hard workers, centered, and do not back away from a challenge.
By centered I mean they are not emotionally overwhelmed by a situation (e.g. they are able to maintain a
positive outlook), and they do not fall into the the temptation of comparing themselves to others
sucesses and failures. In addition, their centeredness allows them to manage their time, and plan ahead.

I believe these "smart" people are always exploring new things, and they are not all that
bothered by their failures in the past. Things like high grades, and doing really well on the PSAT
are side effects of an overall attitude.

It is not enough to think one is smart. Perhaps, dwelling on this alone is not good because it
is not centered on anything. It can become a source of blindness, and result in many acts of
stupidity (such as giving up things on the grounds that they are below ones intelligence).

To me, being smart more of an action than anything else.

Saturday, October 16, 2010

Learning - 10/15/2010

When you want to learn something on your own, do not rely solely on others to teach you, but instead be unapologetically aggressive in learning all there is to know. Then, perhaps after you know more, perhaps people will reveal more.

Sunday, August 29, 2010

comment about compilers

Hmm...so apparently gfortran on Debian Lenny 5.0, and Visual Fortran on Windows XP produce the same results.

Well nearly. The differences might be explained by the precision of the calculations, which may be affected by the fact that I used different computers for Linux and Windows XP.

Once a Compiler

Okay, this is annoying. g95, gfortran, and Visual Fortran work differently as compilers. I input the same code, and get different results!

Wednesday, July 7, 2010

Computer Programming

My experience with programming has been an interesting one. It has been a journey from curiosity, to fear, to perplexity.

When I was younger, my Dad showed me that QBasic could be accessed from the command prompt. At first I did not know what it was, but I thought that it was interesting that one could access a windows-like program by typing QBasic at C:\. I remember being quite relieved to be out of command prompt mode, because it was scary and confusing.

It was more like thinking what should I type, then trying to type something, and then drawing a total blank. I could have looked at the MS-DOS manual, but that did not happen much. Instead I stuck to low-level commands like C:\, cd, cd.. (maybe), C:\win, C:\SC2000, C:\Sierra (among others that I can’t remember).

In high school, I thought I’d better learn programming, so I took a class. It seemed important, and I wanted to go beyond typing BASIC programs into the computer, and having no idea what they meant (or really how to change them).

But I struggled getting the concepts. So I asked my Dad to buy me a book on C++, only to discover years later that it was actually a superset of C, and I needed to know C first. Hence, I asked my Dad to buy me a book on C. It was a good book, and I started writing some C programs, but I still had trouble gaining ground, and seeing the big picture of how it fit into the day to day computer world.

It wasn’t until graduate school that my lack of skills came to haunt me. It was MATLAB time, and I had no idea what an m file was. And that was just the start of it.

Finally, after few frustrating projects that could involve programming later, I was told basically, “here is a FORTRAN program, I want you to learn how to use it”. So now about 2 ½ years later I am learning about Makefiles, Dynamic Link Libraries, tarballs, and OpenGL.

It is an incredibly bad feeling that it took so long. It makes me think, “why didn’t I??” and is an incredible blow to my pride as well.

Edit: I have spent a great deal of time working with HTML (with extremely limited emphasis on forms), and some time with the mostly non-programming aspects of Flash 5 and MX (except for frame and button controls). I do not consider HTML to really count, but the more I think about it, maybe it does, but isn't like "solve this". What I am saying is, it seems an awful lot more like formatting and referencing than algorithms. It doesn't seem procedural. It doesn't seem very much alive.