>     When I learn new technology, I put myself a project or task so
> that it will cover almost all the features of that technology. I have
> been working with PHP (version 4 in early days) and java. When I see
> and learn PHP5, I am too mush fascinated with its OO and java like
> syntax and behaviour. I want to put an open source project to have me
> a practical feel of use and power of PHP 5 and for that I want some
> good topic. 

I get many mails asking me the same or similar question. And i usually
end up saying the same thing to all of them. Hence this reply to the
list. Please note, all of the below is IMHO and i am not trying to put
you off from mailing me or anything... everyone is most welcome to
mail me and ask questions, i mail people all the time bugging them to
their wits. So do keep mailing even if you don't agree with what i
say[1].

Getting back to the point, all most all request for a help on new
project are composed of a standard structure.
Part one: I like technology X
Part two: I have worked on technology Y 
Part three: I want to know a situation Z where X can be applied
instead of Y or I want to know a good project where i can apply X.

In my opinion this is the most wrong way to learn any new technology.
In fact technology or a new language is always just a new tool. And a
tool is a tool is a tool. A tool all by itself is not important at
all. So an argument i want to "learn object oriented technology" is as
important as saying I want to learn "how to hold a pen". Its not
holding the pen that counts, its the writing. Yes holding a pen
properly is important to have good writing skills. But the fundamental
thing to learn is how to communicate effectively using the available
means. Not the usage of pen. And once you know how to hold one kind of
pen, you hardly need to learn about other types of writing aids.

When i started to learn computers. It was not because i liked the
flashy names it used like OOPS or "extreme computing". I learnt it
because it solved my day to day problems. The first code i wrote in
basic was when i wanted a journal ling application. I hated to use
paper and pen, and my handwriting was(is) extremely bad. Keeping my
journal on a computer was a good solution. So i learnt QBASIC and
wrote an app which published my daily notes into a shared dos
directory. I fell in love with BASIC not because of its cute IF THEN
syntax. but because it helped me solve a practical problem.

Similarly a new computer science student should start not by choosing
an interesting tool, but by choosing an interesting problem. The thing
to learn here is how to solve problems using computers. Unless you
learn that, no amount of tool knowledge is going to make you a good
hacker. A good hacker will never stick to one particular tool. He
knows there is no silver bullet. A hacker's most important virtue is
his ability to diagnose a problem and selecting the best tool for it,
not the other way round. People are rarely called 'c' hacker or perl
hacker [2] (unless they are actually working on developing c or perl).
But usually they are called as kernel hacker or a database wizard etc.
The point is that the problem is the focus here and the solution you
provide for it is important not the knowledge of the tool you use.
Hackers don't mind using any tool, and they aren't afraid of nething.

So coming back to the question of how should i start a new project, i
will quote ESR 'start with a problem that interests you'. Chose your
area of interest, do you like operating system design? or are you
fascinated by the databases and datamining, or do you like to web
enable everything? Then chose a specific problem, preferably something
you are facing, but an made up one will do too.. important point is to
have a practical problem and then to fit a solution around, dont start
with a solution and try to fit a problem to it.

So next time you mail about getting a new project, try using the
following structure.

Section one: I am trying to develop a solution for situation Y
Section two: The problem X is the main culprit here in Y
Section three: I have looked at tools P,Q and R and these are the
possible solutions(you do your homework first don't you?) and have
finally fixed on a combination of Q and R in the form of Z. What do
you say? Can you suggest a better alternative?


BAIN

[1] most of the times when i give my standard reply to people, 90%
threads abruptly end there with the person never replying back. May be
its the arrogant sound my reply usually takes.

[2] Many people do call themselves this, but i don't consider them
real hackers. If you are calling yourself a perl hacker i expect you
to hack perl interpreter code, anyone else isn't a perl hacker IMHO.
--
______________________________________________________________________
Pune GNU/Linux Users Group Mailing List:      ([email protected])
List Information:  http://plug.org.in/mailing-list/listinfo/plug-mail
Send 'help' to [EMAIL PROTECTED] for mailing instructions.

Reply via email to