[CALUG] studying CS

Gary Knott knott at civilized.com
Mon Nov 14 15:27:01 CST 2005


Dear Rajiv,

Learning programming effectively means to learn
how a computer works.  Thus, you need so-called
assembly language to start - but assembly language is
overly complex and tedious - especially for designs like the
x86 family, and C is still close
enough to the machine to understand what a C program is
"really" doing.  Perl et al, allow shorter programs, but the
understanding effort is quite a bit more daunting.


Rajiv Vyas wrote:
> Dear Gary:
> 
> Thanks for the tips. I didn't get your second point or part of the
> second point -- then while he writes and debugs some simple C programs
>  - (Not any other language at first!!).
> 
> My interpretation is that you are suggesting he learns C first and not
> python or perl, right? Aren't the latter two more easier to learn? If
> so, why begin with C? Just curious.
> 
> Thanks again,
> 
> Rajiv
> 
> 
> 
> 
> 
> 
> On 11/13/05, Gary Knott <knott at civilized.com> wrote:
> 
>>Dear Rajiv,
>>
>>The best way to learn to code is:
>>1. get a copy of "The Art of Computer Programming, Vol 1 (by DE Knuth)
>>    and start reading it and doing some of the exercises.  (Later
>>scan Vol 2 and Vol 3)
>>
>>2. Find a good programmer to sit with your friend as he learns
>>to use emacs or vi, and then while he learns how to control make, and
>>then while he writes and debugs some simple C programs  -
>>(Not any other language at first!!)
>>
>>For example write a program to read the numbers in a text file, and
>>add them together and print out the average.  Then extend this program
>>to tabulate a histogram of the numbers and print it out.
>>After enough practice, and some reading  (check out some "programming on
>>Linux" books too.) he will feel confident.
>>
>>After a couple of successful programs, he can progress by himself, with
>>just a consultation now and then.
>>
>>Later he will need to struggle with X-windows graphics programming,
>>since data mining involves drawing graphs.
>>
>>This whole process can take a lifetime, but a year ought to be
>>enough to get to competent beginners level.
>>
>>I suggest he take a look at the math/stat software I wrote
>>(called MLAB) - which can do many things that might be of interest
>>to him.  (see www.civilized.com)
>>
>>---------------------------------------------------------------
>>
>>
>>Rajiv Vyas wrote:
>>
>>>Let's say he has BS level understanding of stats and math. where and how
>>>does he pcik up programming experience?
>>>
>>>Rajiv
>>>
>>>
>>>On 11/9/05, *Gary Knott* <knott at civilized.com <mailto:knott at civilized.com>>  wrote:
>>>
>>>    If your friend wants to be able to "mine data", then
>>>    programming is only one part.  He should of course learn
>>>    to code, and learn some basic algorithms and data-structures,
>>>    but the way to do that does not require pursuing
>>>    a CS degree.
>>>
>>>    It is more important in this context, in my opinion, to
>>>    study math through the BS level, and most directly applicable,
>>>    to study statistics - regression, bayesean methodology, stochastic
>>>    processes, etc.
>>>    --
>>>    ==============================================================
>>>    | Spoken: Gary D. Knott      Email: knott at civilized.com
>>>    <mailto:knott at civilized.com>       |
>>>    | Phone: (301) 962-3711      MIME mail welcome                |
>>>    |                                                             |
>>>    | web: www.civilized.com <http://www.civilized.com>  (Please look at
>>>    our HomePage!)      |
>>>    | USPS: Civilized Software Inc., 12109 Heritage Park Circle,  |
>>>    |       Silver Spring, Maryland 20906, USA                    |
>>>    ==============================================================
>>>
>>>    _______________________________________________
>>>    Columbia, Maryland Linux User's Group (CALUG) mailing list
>>>    CALUG Website: http://www.calug.com
>>>    Email postings to: lug at calug.com <mailto:lug at calug.com>
>>>    Change your list subscription options:
>>>    http://calug.com/mailman/listinfo/lug
>>>    <http://calug.com/mailman/listinfo/lug>
>>>
>>>
>>
>>
>>--
>>==============================================================
>>| Spoken: Gary D. Knott      Email: knott at civilized.com       |
>>| Phone: (301) 962-3711      MIME mail welcome                |
>>|                                                             |
>>| web: www.civilized.com  (Please look at our HomePage!)      |
>>| USPS: Civilized Software Inc., 12109 Heritage Park Circle,  |
>>|       Silver Spring, Maryland 20906, USA                    |
>>==============================================================
>>
>>
> 
> 



-- 
==============================================================
| Spoken: Gary D. Knott      Email: knott at civilized.com       |
| Phone: (301) 962-3711      MIME mail welcome                |
|                                                             |
| web: www.civilized.com  (Please look at our HomePage!)      |
| USPS: Civilized Software Inc., 12109 Heritage Park Circle,  |
|       Silver Spring, Maryland 20906, USA                    |
==============================================================



More information about the lug mailing list