Security Basics mailing list archives

Re: Programming


From: miguel.dilaj () pharma novartis com
Date: Thu, 10 Feb 2005 12:49:14 +0000

Hi Ben,

Well... you've received any possible imaginable answer so far ;-)
I can tell you that any widely used language will be a good start. The 
idea is to get INTO programming and THINK like a programmer.
In my opinion you can start with a high-level one like any flavour of 
BASIC or similar, move down to medium-level with C, and then, if you're a 
bit masochist, to the lowest level with assembler. Please note that at all 
the higher levels you don't have to worry too much about the 
microprocessor you're using, but assembler will be different on different 
architectures. With the current gcc compiler, any good C program will 
generate very nice and fast machine code, so assembler is required only if 
you're going into the guts of systems (shellcode, binary analysis, reverse 
engineering, etc. ;-)
There's plenty of books out there. Many times even F1 (or whatever your 
"Help" key is) will provide enough material to start. That's the case if 
you're going to code in Visual Basic or Visual Basic for Applications (the 
"advantage" of the latest is that you don't need the Visual Basic package, 
just use Excel or Access and code some macros).
THE FIRST book for C language is "The C Programming Language" by Kernighan 
and Ritchie. Perhaps is not too advanced, but will definitely teach you 
about C coding if you follow all the examples and exercises. After 
mastering that you can move to "Advanced Programming in the UNIX 
Environment" by Stevens, but don't take that step too soon, the first 
example in this book is a small command interpreter ;-)
For x86 assembler I think that "The Art of Assembly Language" by Hyde is 
quite a good book. Of course for other architectures this book won't help.
An advantage of the combination C and Linux is that you've the source code 
of everything, 99.99% of it in C. You can give your first steps in C by 
looking at the code of very simple programs like 'cat', 'more', etc.
If you wonder MY learning ladder with coding, it was like:
1) BASIC 2.0 in the glorious Commodore 64
2) Assembler for the Motorola 6510 in the glorious Commodore 64 (it wasn't 
possible to do anything in BASIC!)
3) Other flavours of BASIC, with strong involvement in VBA, mainly in 
Excel and Access
4) C, first using Lattice C in an Amiga computer, then gcc (under Linux 
and Cygwin) in x86 machines
5) x86 assembler (technically, I'm still LEARNING this one ;-)

Just my £0.01
Cheers,

Miguel Dilaj (Nekromancer)
Vice-President of IT Security Research, OISSG
www.oissg.org







dayz () planet nl
09/02/2005 08:17
Please respond to dayz

 
        To:     security-basics () securityfocus com
        cc:     (bcc: Miguel Dilaj/PH/Novartis)
        Subject:        Programming


Hi,

I want to begin with learning programming to increase my knowledge about
security, but I don't know where to begin. Can someone tell me which
programming language is good to start with, and pherhaps what book
and/or online guides I should take a look at?
It would be nice that if I learn a programming language that it
shouldn't be much work to understand another one.

I am on Linux and Windows.

Thanks for the help.

Regards,

Ben




Current thread: