Re: About programing, a general question

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

 



On Tue, 2010-12-21 at 13:28 +0530, Parshwa Murdia wrote:
> On Mon, Dec 20, 2010 at 10:43 PM, William Case <billlinux@xxxxxxxxxx>
> wrote:
> 
>         Parshwa, Two basic questions: 1) Do you want to use
>         programming as a way
>         to understand the inner workings of your computer? Or, 2) Do
>         you want to
>         acquire a programming language primarily to have the most
>         used/useful
>         programming skills in order to write a program? (at least
>         useful to
>         you).  Both these objectives may be intertwined, but which is
>         your
>         primary goal now?  Different goals, different programs.
>         
>         --
>         Regards Bill
> 
> 
> The primary interest for which the latest software technology has
> lured me much is to know about how I can efficiently write the code
> (despite of my job of other field) but simultaneously I would be
> pleased if the same piece of code and its generation becomes the
> reason of knowing how exactly the world of communications is  working!
> That much of the knowledge I am having that the entire world is
> working on '0' and '1' as everything is going to convert to it and
> then to electromagnetic signal (for communications) but the only thing
> to know at first is how to write the code. Secondary things (at later
> stage) would be that how that program is getting converted into a
> sting of '0' and '1' which only the computer understands and transmits
> through wire (as an EM wave). So at times, and it is the high time,
> that despite of the fact I get very less time, this technology has
> become a driving force for me that it makes me to think how a code is
> working?
> 
I am not a programmer, but I wanted the answer you seem to want.  How
does the damn thing work?  More explicitly: 

How does human understandable information get converted by a machine
into electrical data; then store it; may or may not, transform, compare,
and/or relocate the data; and then re-present the data as information
meaningful to humans?

I found the answer in "The C Programming Language" by Brian W. Kernighan
and Dennis M. Ritchie.  This book is such a basic that it is often
referred to just as K&R.  If you try to simply use this book as a
tutorial for the C language it is too difficult.  Almost every sentence
contains a new concept.  But K&R and 'C' are closest to the metal.  It's
description and particularly its appendices are used by programmers
mainly as a reference.  It really is a text on how to best write code so
that the compiler can use your 'C' code by translating it into machine
language. It is also, therefore, basic instructions for compiler writers
on how they have writer their compilers.

A big however!  I found that when I took my time, and worked each new
concept through, with liberal use of google and some tutorial sites,
with some contemplation on my part, with some reference to the the basic
electrical properties of transistors, capacitors, Direct Current and
crystals, I was able to come to a fairly complete (or at least useful)
understanding of how my computer worked and what the text instructions
that I was imputing were doing. 

In addition, I spent a couple of afternoons exploring assembly language
and the IS-32 instruction set.  Looking at how compilers work, and how
they translate your text code into machine code (the '1' and '0's you
mentioned) from libraries makes the need for precise instructions (text
syntax) clear and less of a burden.

I found that by using K&R as a course outline rather than a final all
knowing, all teaching, tutorial book I was able to drill to the bottom
of everything that was happening inside my computer.

If you, like me, look for those Eureka! moments in life, you will find
exploring the capabilities of your computer through the 'C' language is
a wonderful voyage of discovery.  The ingenuity and creativity over the
last 50 years that has gone into making the metal, the electricity, and
the programming of a computer is truly a marvel.

If this is the kind of approach that you are interested in respond to
this post, and I will give you some hints and tricks about uncovering
the programming process.  If I happen to steer you wrong, I am sure
there are lots of people on this list who will jump in with corrections.

-- 
Regards Bill
Fedora 14, Gnome 2.32
Evo.2.32, Emacs 23.2.1

-- 
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]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux