Jump to content

What language to learn

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
18 replies to this topic

#1
uperkurk

uperkurk

    Newbie

  • Members
  • Pip
  • 7 posts
Hello all, I want to get into programming but haven't decided on a language yet. I learnt some very basic C++ about a year ago but I dont remember it anymore. Just wondering I cant find any colleges that do programming courses and I have heard that Python is almost as powerful as C++ but alot easier to learn. I can always learn C++ in the future once I grasp the aspects of OOP and programming principles. My goal is to learn a programming language that would be used to create firewalls and security applications ect im not into web or game programming at all. My question is if I learn python are there many jobs out there that want python programmers or would they prefer C++ or C programmers?

I live in london so anyone that knows any colleges that teach programming would be great. Thanks to anyone that can help.

#2
Natrobius

Natrobius

    Programmer

  • Members
  • PipPipPipPip
  • 166 posts
That depends on what field you are going into... There is a great debate going on about this in the thread called, "Dillema... sort of." You'll find it in this board. C/C++ are good for networking, but maybe JAVA is better. This sounds more like JCoder's field. I don't think Python is suited for that task, but someone correct me if I'm wrong.
The Natrobius
http://natrobius.info
CodeCall User

#3
nop

nop

    Newbie

  • Members
  • Pip
  • 6 posts
honestly, it doesn't matter that much. professionally you'll be working with crap you never touched all the time. "C-style" languages have the benefit of being widely understood by most programmers so it's a kind of common ground for explanations, etc. don't listen to sweeping generalizations of the form "language X can do everything language Y can do, but with no effort on your part!" all of these technologies have their place, and they all have a lot in common. one of the real trends is adding abstraction to existing stuff. so you spend less time on algorithms regarding making a list, on more on what you do with that list, etc. however, for starters, you really should be concerned about how to make a list or other low-level simple tasks to learn.

i spent college doing pretty much everything in c++, with classes in java and assembly also. now i'm a .NET developer...a little bit of a shift, but not that difficult.

but if i HAVE to pick......................go with C(++).

good luck.

#4
JCoder

JCoder

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 245 posts
If your goal is to create firewalls - go with C. Pure C. All operating systems have API's for creating things like drivers in C. Firewall must be tightly integrated with the OS network layer, it is usually deployed as a kernel module / driver. In Windows such code is written in C. In Linux, also in C. You have no choice here - the only language you can choose is C (it is possible to pick up C++, but it is asking oneself for problems - C++ code won't run in kernelland in most OSes, and even if so, it will be seriously limited - e.g. no new() allowed, no exceptions allowed etc.).

However, the user interface for a firewall can be written in anything you wish. Python Java or C# all seem good choices.

If you are interested in writing simply secure and stable network applications in userland (not firewalls but e.g. http proxies), the best choice IMHO is any fast managed language. C# or Java are good choices - very high performance and good security control.

#5
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
Python is used a lot by network administrators. C/C++ are used a lot for systems programming. Python would work well for the interface, but the firewall is going to be pretty low-level code.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#6
uperkurk

uperkurk

    Newbie

  • Members
  • Pip
  • 7 posts
Thanks for the replys, so low level code what do you mean by this? Not just firewalls but in general security applications that protect servers abd networks ect. So you recommend C?

#7
JCoder

JCoder

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 245 posts

uperkurk said:

Thanks for the replys, so low level code what do you mean by this? Not just firewalls but in general security applications that protect servers abd networks ect. So you recommend C?

What do you mean by general security applications? Intrusion Detection Systems? Honeypots? If so, than C maybe useful only for low-level traffic observation. The data analysis in IDS is a task better to be done in something high-level (and I treat C++ as middle-level). You can also write a honeypot in Java or Python.

So it would be best to use C for low-level stuff like intercepting packets, and high-level language for the AI / user interfaces. I would use 5% C + 95% Java (great performance, nice to program in and runs averywhere).

#8
uperkurk

uperkurk

    Newbie

  • Members
  • Pip
  • 7 posts
I thought Java was for game programming and graphics? Basically my ideal role would be someone who writes programs that helps protect intrusions into firewalls ect. I'm just trying to get an idea of what languages are most sought after when it comes to firewalls and stuff.

#9
Guest

Guest

    Writes binary right handed and hex left handed

  • Members
  • PipPipPipPipPipPipPipPipPip
  • 3,414 posts
You will probably be working with C programming. The reason for this is that firewalls usually work with the operating system kernel pretty closely.
Root Beer == System Administrator's Beer
Download the new operating system programming kit! (some assembly required)

#10
DarkLordoftheMonkeys

DarkLordoftheMonkeys

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 255 posts
I highly doubt that Python will get you as far as C/C++, considering that most large scale applications, including the Linux kernel and the Windows operating system are written in C/C++. Python is less powerful but easier to read and write, so C/C++ programmers are harder to find and therefore probably have a better chance of finding jobs. As to how powerful Python really is, I don't know. It's not really my area of expertise. But C/C++ are the big thing among professional programmers these days.

#11
uperkurk

uperkurk

    Newbie

  • Members
  • Pip
  • 7 posts
Thanks, I think ill go with C.

#12
so1i

so1i

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 312 posts

uperkurk said:

Thanks, I think ill go with C.

I think that is a good choice. I think there are a lot of languages out there with similarities to C, so once you get a strong background in C, it can help you out if or when you try to learn other things :)

Good luck!