tags:

views:

111

answers:

4

What is a good language to learn/start with? I've mostly been a network guy up to this point, took a qbasic class in college. However I want to start programming.

I want to be able to write my own security tools oneday. Some people say go with perl, others say C. Which should I do? What is the best to learn for my goal(s)?

A: 

C might be too hard for a beginner. Go with something like Python or Ruby.

Dev er dev
+1  A: 

Previously.

BeefTurkey
+1 I knew I'd seen this question before but couldn't find it (curse the SO search)
cletus
A: 

Security comes in many flavors, it's impossible to say which language is the best one for it.

If you want to be serious about writing security tools, you end up knowing enough about programming that your first language choice quickly becomes irrelevant.

So, in the short run, pick the one that satisfies your immediate need. In the long run, you'll end up knowing both intimately.

(Side note: Depending on your need, it's probable that you'll even have to mix and match. For example, I've mixed Perl and assembler in the same tool. It all depends.)

A: 

Tough question. Hope it wouldn't start a flame war here. Anyway, different security applications require different tools. E.g, manipulating network packets (by tapping to the NIC) might be difficult in higher level languages (perl, python) but rather simple in C. On the other side, Python and Perl would be way faster (to write, not to run) if your intention is to analyze files (contents and properties) or simulate some traffic. You should be more specific.

I think that in the end, you'll find yourself learning more than one language.

Final note - if you care about investigating vulnerabilities in other people code, than learning about tricky stuff such as pointers would be necessary. In order to do so, C would be better. But this means you should UNDERSTAND C and not program with it.

Moshe