[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