> 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.
