ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have a 10 +years Networking Experience. I don't have any programming background. I am interested in layer 3 and layer 2 Networking protocol development (programming).
Kindly suggest the step bye step detail plan for the same.
looking forward to your valuable opinion and suggestions.
Start from the ground up and learn programming. C language is a great place to start.
This is a big topic, not something you can spend a weekend at and become a master of it.
If you can, find ways to obtain programming assignments as part of your job so that you can learn with a goal in mind and the pressure of needing to accomplish something useful and desired within your work arena.
Choosing independently to write programs to assist in your work environment is a gray area in that if you're effective and churn out useful utilities in short order, especially ones which enhance your effectiveness and assist others, then great and it might help to get it noticed that you're putting in efforts at becoming a programmer. But if you end up being a person always looking to say, "Look at this cool utility I wrote!", and no one, especially the boss, doesn't care ... that would be the darker side of the gray area where the boss may be wondering what exactly you're doing.
As far as starting.
Google for C programming instruction guides and note that in the PROGRAMMING forum there is a sticky post offering exactly that:
Start with fundamental programs, as well as scripts, grow from there
Begin writing network based programs and utilities, look for things which may enhance your current job, a utility that maybe already exists, but you can mimic
Look at protocol standards and attempt to write your own copy of a known protocol where you can test it live
To back up, this is a Linux forum my first and foremost recommendation is that C programming in Linux is easy and great to perform because you can use the command line, a text editor, and the GNU tools, GCC for building the code, GDB for debugging the code, become familiar with those things and grow your knowledge there
Be capable of filtering some things which you don't fully understand. I.e. in learning GCC, that itself is a huge topic as is the topic of Make and Makefiles. Maybe learn the minimum you need to be able to compile a program, for now and when you've started to improve your programming skills, and find you need to understand compiler directives or the structure of a Makefile, then at that point put in more effort to learn about those topics. Because right now a main focus would be to just get started with programming.
Once you've started down the road expressed by rtmistler, at least enough so that you can read the C language, you will find code in the Linux network stack worth reading. There are quite a few good books to use as maps of the protocol stack. "Understanding Linux Network Internals" from O'Reilly is one example.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.