Re: About programing, a general question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux