View Full Version : Career Guidence:C++ with unix flavor

10-25-2008, 03:35 AM
I am interested in pursuing career as C++ network programmer for Unix.

What's the perquisite for such career?

What should I know for network/driver programming for Unix?

please guide me :)

best regards,

10-25-2008, 09:32 AM
I doubt that the average network application programmer ever gets near to the driver code, and many of the guys/gals writing the networking drivers will never write anything particularly fancy in the networking applications side - because writing drivers is a different type of programming than writing applications. Yes, the basics of it is similar, it's just like driving a normal car, a race-car or a lorry/big truck - the basics is the same, but once you get to the details, there's some real differences.

Note also that I'm not aware of any networking driver for a Unix-like OS that is written in C++. Linux is certainly not allowing any C++ in kernel mode, and Windows is a struggle to use C++ in the kernel too. I don't believe there's much C++ inside the Solaris, AIX or HP-UX kernels either, but I'm not quite so familiar with those kernels.

As to what you need to know, depends on who you are looking to be employed by, I suppose. Understanding basic concepts such as sockets and how networking in general works is obvious, but beyond that, it would depend on what your future employer is actually doing - networking filters are a different area from for example a networking server.


10-25-2008, 11:23 AM
thanks matps , you are my bro :)

I actually wanted to know what domain should I learn to do powerful network programming.

one more question, how do we write cisco's protocols in c++?

I tried hard in google but could not find anything special. please brief me about it. :)

10-25-2008, 12:07 PM
I'm pretty sure Cisco doesn't have their own protocol - they are most likely using either UDP or TCP/IP to transfer information across the network.

Of course, Cisco probably has it's own layer ON TOP of that for management of their switches and routers. But that's pretty much the same knowledge as any other TCP/IP based specific protocol - you need to know how to send packets with specific content over a link of some sort.


10-25-2008, 12:14 PM
Cisco does have proprietary protocols such as CDP.

But as far as writing programs that adhere to protocols, you need to read the documentation on the protocols (RFCs and such) and then work on your own implementations.

10-25-2008, 02:45 PM
I see... So I have to strong TCP/IP and UDP knowledge.

10-25-2008, 03:00 PM
TCP, IP, and UDP are just three of most well known protocols. There is a whole lot more going on as far as protocols go. If you want to see what all protocols are involved with the connection and data transfer between systems. You need to learn the OSI model and the protocols associate with each level.

Examples of protocols include: ARP, CDP, ICMP, RIP, RIP2, EIGRP, IGRP, IS-IS, BGP, SMB, etc etc.

10-26-2008, 12:05 AM
Hmm... looks like I have to learn a lot for this programming. ;)

I am Java programmer and bored doing web stuff in Java because every six months or so you have to learn new framework which is boring as hell.

Creating your own Apis is better than learning already existing Apis. :)

I want to become network/socket programmer please help me to decide which platform
I should choose.I made up my mind to choose between windows socket programming
and Unix socket programming.

please help me to decide ,by the way, currently I am Jobless :(

10-26-2008, 12:16 AM
It's not about creating the API... the API is just some way to interface with something. That "something" should be the thing to interest you.

Don't try and be a "network programmer" just because you like what it is, you should like what they do. You should be trying to get as much experience with networking as possible accross mulitple; platforms, hardware, configurations, protocols etc.

10-26-2008, 02:05 AM
Zachs:What you tried to tell me I understand that it's not easy task.

What's the market of network programming ? I am currently jobless and want to change my
career path.I know c/c++ in dos(turboC++).

I don't like VC++ and windows programming.I can never think about writing commercial
application in c++.I can't do driver programming because it will take years to learn domain knowledge for that kind of programming(as I am 24yrs old now).

Should I change my career path or stick with Java? please help.
You people have lots of experience , I badly need your help to decide.

best regards,

10-26-2008, 02:13 AM
I'm only 19, and a software engineering student.

I've been told to both, keep my options open (ie be broad) and to specialize. But there are a lot of jobs in Java, not all are web-related. Perhaps try move that way since you already have experience in that area? That is, if you enjoy it too. Then you could learn networking in your own time, experiment a bit and perhaps move to a networking job, perhaps in C or C++. Certainly don't ditch Java if you already have a grasp of it.

Other members with industry experience will probably reply, but that's my $0.02.

And if someone asked you to work on a project in Turbo C/C++, then you probably shouldn't go for the job ;) -- unless they had a good reason.

10-26-2008, 02:41 AM
thanks for your reply zacs , I am not from CS/SE background but management background so
your reply was profitable.

I am desperately waiting for masters' replies. :D

best regards,

10-26-2008, 11:42 AM
There aren't many networking gurus on these boards, and I'm not one of them. But I do know where you could start. In the networking forum, there is a sticky with links to resources there. One commonly recommended site is Beej's. Read that. If you want to invest some dough, books by Richard Stevens are commonly recommended.

10-26-2008, 12:04 PM
If you want to learn about networking in general. Try to download the CCNA (Semesters 1 - 4) coursework. That is a good start.

10-26-2008, 01:49 PM
thanks for suggestions but you did not advise me about my career path.

please do that :)

10-26-2008, 02:30 PM
What sort of advice were you looking for?

1. Get job
2. Study/take classes on other job
3. Get other job

10-27-2008, 12:28 AM
For Choosing between unix network programming with c++ and Java EE.

I have no experience in unix but 1yr experience in Java.I am bored doing web stuff(dealing with
xml,webserver etc.) in Java so I want to change my career.

Is that wise decision?

best regards,

10-27-2008, 02:50 AM
If you put enough energy into something, it can always be done ;)
And if you don't wanna work with what you do now then, if you can, change to what you do want to work with ;)

10-27-2008, 08:48 AM
Like Akkernight says, you can do it. But if you're going to base your job on that, then you'd have to know it pretty well, and learning that might take some time. That's why I said "Get job" first.

10-27-2008, 11:29 AM
thanks , I got you brother :)