>So you want to be a better programmer?
>- Have you ever READ a program written by Bill Gates?
Read Bill Gates? No, unfortunately - it can be very hard to find source code
from him in all the Windows joke source code on the Net, and do you think
he's an open-source kind of guy? <laugh>
But Larry Wall, yes. Linus Torvalds, yes. Those guys over at Sun, sure - I
look at the Java source all the time to see how things are implemented. That
does mean I'll never get to work on kaffe, though.. <pout>
I love reading through source, which is why I'm glad Doc Mana has source
CDs. RedHat shipped us binary and source CDs of 6.1, which means I have lots
of things to play with now! =) I need to free up some space, though - I'll
move most of the Windows things off my laptop, since I hardly use Windows
except for mail while at home. Haven't figured out how to configure my
annoying internal (Win?)modem, but we're wired at the dorm and with a lot of
help from William and a little fiddling around with the pcmcia_cs package,
we got my LAN card to work. =) Anyway...
I like going through other people's code (well-formatted and commented,
hopefully!), trying to piece together how the program works, holding the
structures in my head.. Sometimes I get a headache because I can't chunk it
enough to fit, but most of the time I can get it more or less sorted out,
and if I don't get lost in the pointers I
should do fine. =) I learn so much from that - I get to know how programs do
their magic! <g>
I don't like treating programs as black boxes - I want to know what goes on
inside them, how they do things. That's how I've always worked, ever since
grade school. It's really cool!
Besides, it seems a lot of programmers are fond of easter eggs, and the
comments (and even variable/function names!) in source code make it sooo
much fun to read. <g> After the first few files of the Linux source code I
caught myself reading more for the comments than for the code! <laugh> Even
the C header files contain little jokes, like strfry and memfrob - man them
to see, or check out string.h. =)
The idea of open source is absolutely fantastic! =D
>- Have you ever READ the original papers by Edsger Dijkstra, Fred Brooks,
> C.A.R. Hoare (who is he?)
C.A.R. Hoare's a bit heavy on the math side and I'm putting his papers aside
until I understand my discrete math book a bit more. I'm not ready to grasp
the unifying theory of math and CS, although his discussion of top-down,
bottom-up, and meeting-in-the-middle looks really intruiging. I've got to
ask Doc Mana to explain some things to me, though.
Fred Brooks' "The Mythical Man Month" and "No Silver Bullet" (which can also
be found in our library's copy of the 20th anniversary edition) was very
useful. "No Silver Bullet", in particular, was rather apt because of all the
hype surrounding Java and 4GLs.
I found it really interesting how Fred Brooks and Steve McDonnell agreed on
the order of magnitude difference between novice and expert programmers.
Expert programmers are around ten times more productive than novice
programmers, and they produce smaller, cleaner, faster, and more
maintainable code. Wow! Compare that with the minimal improvement brought
about by "more intuitive" developing environments - sometimes these tools
make it even harder to program. 10 times.. imagine that. That's such a wide
gap between average programmers and expert programmers, wider than in any
other profession perhaps - not even athletes regularly get that sort of
difference. That's why I really want to focus on programmer productivity!
That's my area of interest, and I want to work on that in both the academe
and the industry! =) What do you think about that topic?
Dijkstra's funny! What a controversy "GOTO Statement Considered Harmful"
started, and all those other little things he said.. <laugh!> It'll take me
_quite_ awhile to finish all his papers, though - man, that guy wrote a
_LOT_, and I still don't have access to many of them... I got really curious
about him in high school because of his shortest-path algorithm, and since
then he's been one of my heroes. =)
I'm saving some money for an ACM subscription so that I don't have to ask my
parents to sponsor me on that one, because I really want access to the
Digital Library. I want to read papers like the Psychology of Programmers
and all those other things I flagged for future reading. Can't wait to save
up $15, and I want to join SIGCPR, SIGCHI and SIGCSE too. With the peso
rapidly depreciating, though, it'd be reaaally nice if other people would
like to <ahem> "adopt" me, lend me books, take me to conferences... ;-)
In the meanwhile, I've been making do by reading the archives of the
Communications of the ACM - pretty old stuff, though, but it gets really
funny at points: would you imagine that the SIGGRAPH had a really serious
article on _Jello?!_ =) (And in the same volume, I think, yet another
discussion on dining philosophers.. =) )
>- Have your professors ever shown you an example of code written by
> the professionals themselves (EMACS, the TCP/IP Protocol stack
> (BSD port),etc)
Funny you mentioned EMACS! <laugh> I'm playing around with EMACS and LISP
because I want to modify the behavior of sgml-mode. I like my HTML neatly
indented, and unfortunately sgml-mode doesn't behave
like c-mode. I'm thinking of making TAB permanently mapped to
indent-according-to-major-mode and as usual my NEWLINE's mapped to
newline-and-indent, but I still have to figure out how to change the indent
type of that major mode. I want it to do nesting! =) Anyway, if I can't
figure it out before sem break ends, I'll post a question here about it.
And best of all, I get to pick up a little LISP along the way. =) It's one
of the languages I've been planning to learn for a long time. Thank goodness
the Emacs Lisp programming manual is clear. =)
>I once had the pleasure of being a student of UP PhD guy named Dr. Abaya.
>He was teaching at that time Digital Communications and one occasion he
>was teaching directly off the ORIGINAL 1940s(?) paper by Nyquist (Nyquist
>Theorem). This made a big impression on me because this was the only
>time in my whole college life that somebody went to the pain of getting
>the ORIGINAL research paper instead of relying on the "usual" books.
<impish grin> Your professor had to get it for you. ;b It's fun browsing
through the papers yourself, too. I can't wait to borrow the book of Turing
award speeches from the library. It wasn't on the shelf last time I checked,
so I went for one of the volumes of Programming Productivity instead (must
be the nth time I've borrowed that book of essays)...
I also wanted to read through the theses and dissertations in the library,
but unfortunately they're for graduate students only. <pout> I can't wait to
graduate and start working on my research! =) But then again, I also can't
wait to work in "the real world.." <laugh!>
There must be something I can do about my interests even if I haven't
graduated yet. I mean, even as a sophomore, there's got to be some way I can
(a) improve myself to become one of those 'expert programmers' eventually,
and (b) help others do the same!
>There is no need to look for a mentor. Everything is available online,
>some for free (e.g. Linux source) and some for a fee (www.acm.org,
>www.ieee.org, www.computer.org). It only takes a matter of aptitude and
Maaaaybe you misunderstood that little request there. If you think about it
that way, I've got the best mentors in the world. That's why I really enjoy
reading ACM stuff and all those biographies - people like Torvalds and
Dijkstra and Countess Ada Lovelace give me someone to look up to and try to
emulate (.. errr... <insert more appropriate term here - emulate just..
<laugh!> >). I want to make that kind of a difference. Their achievements -
hey, it's enough to give me one heck of an inferiority complex! <laugh> But
at least I know that it's possible to have that kind of an effect on the
world. <g>
Anything I need to learn, I know I can probably figure out if I studied.
After all, people made computer science, so people can understand it. =) I
might not be a genius, but I think everything - at least in this field - can
be accomplished by hard work and determination. <g> It's a matter of finding
the information, understanding it, and applying it. I know I can't possibly
master everything about computer science, but I want to make a major
contribution especially when it comes to productivity - maybe a little psych
on the side? =)
It'd be really nice to have a mentor, though - I mean, someone who also
looks out for my development and can guide me towards opportunities I might
not otherwise have known about and taken advantage of. That's what I think
mentors are for - so that we could exchange knowledge and ideas and support!
I also want to be a mentor to others, although I think I need to be a little
better before I can do that. <g>
It's so easy for people to tell me that I can't make a difference, because
they've never tried. I want to find someone who can tell me that I can do it
because he or she is _also_ working on making a difference. =)
That's why I try to meet as many people as possible. I learn something from
everyone, and hopefully I get to share something with them too. =) That's
also why I really enjoy this mailing list, although I realize I'm getting a
liiiiitttlle off-topic here. (Hey, I mentioned open-source, Linus and
emacs - still OK? <g>)
I want to do computers for the rest of my life. It's my life-goal. <g> I
want to do that because that's the way I can really help people and make a
difference. I have no excuse for _not_ making a difference, since I think
that with a strong will and plenty of work I should be able to overcome
whatever disadvantages and limitations I have! <laugh>
>persistence on whether a person would want to play CounterStrike or
>spend time reading professional code. Unfortunately, most
>students would prefer to play CounterStrike.
I don't even play Doom. <impish grin>
>"Use the source Sacha, Use the source"
Just a little thing, Ambo: students aren't as lazy as people might think
they are. ;)
Aside: I like Yoda more. <laugh!> He's cute!
Have a great day! =)
Sacha 8)
2 BS CS Ateneo geek
_
Philippine Linux Users Group. Web site and archives at http://plug.linux.org.ph
To leave: send "unsubscribe" in the body to [EMAIL PROTECTED]