On 12/16/2010 12:02 PM, Parshwa Murdia wrote: > hi, > > If one has to start from the scratch, from the zeroth level to do the > programing, which programing language one should start with? In the > ocean of the languages, to start with is really very typical. Can one > justify it. Some say Python but again they say it is Perl which is > better every time then the Python. Some say to start with C or C++ but > again some emphasis to use Java or C#. Many say to go for .Net and VB > or COBOL and some say to learn web based programing like HTML, PHP, > ASP.Net. In this ocean who is just starting to learn which one he > should prefer? > > Many say that what is the purpose of learning, then I say that to have > the basic understanding of how exactly we can handle the machines like > the CPU. Not to generate the big projects for the management > processes, not even banking system but to know the basic of programing > like how to handle the machines at the first, for that purpose, for > the the scratch level purpose and for the one which is good even for > Linux, what programing language should one like me, initiate? > > -- > > Regards, > Parshwa Murdia I'm surprised no one has suggested this so far as I've read so I will, but if one is really interested in learning about how the hardware works the most obvious place to start is "assembly" or "machine" language. You don't actually write machine code but rather, "nenomics" that correspond to it. For example "MOV" for "move" followed by a source register and a target register simply loads data from one internal register of the cpu to another. When you are finished writing your program in these symbols it has to be "assembled" and "linked", which ultimately produces an executable file that is loaded into the "code segment" register of the cpu by the operating system. Of course, it is very tedious to write a non-trivial program like this. But higher-level languages like C and Fortran ultimately produce a stream of ones and zeros that correspond to these instructions, source and target registers, and data. Long ago I played with the Microsoft "Macroassembler" or "MASM", which ran under DOS. I did this long before I learned C (though I had some prior experience with Fortran and Basic). You may be able to find that somewhere, or some open and/or free version--possibly for 'nix, or else Dosemu. It should still work on any x86 cpu, though some of the instructions probably won't be there. Then, for an amusing read which may or may not tell you anything about how a computer works, try Douglas Hofstadter's "Goedel, Escher, Bach: an Eternal Golden Braid". If there is one key concept it is that a huge number of trivial tasks, like combining two bits in a NAND gate, can be automated and combined into a non-trivial one. Programming works the same way: higher-level instructions like the floating-point product of two numbers are built up from machine-level instructions, sub-routines functions or classes are built up from instructions, large programs are built up from these smaller programs, etc. Hofstadter's analogy of the collective intelligence of a colony of ants may or may not help you with this. If I misunderstood and you just want to learn the most useful language, it would probably be C. Later you could learn C++ and "object-oriented" concepts. C gives you plenty of opportunity to interact at the hardware-level, with the ability in principle to write significant pieces of software like word processors or operating systems. The books by Deitel and Deitel probably have everything you need to know. -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines