C development on Linux - Introduction - I. - LinuxConfig.org

What you're just reading is the beginning of series of articles dedicated to development on Linux systems. However, with minor modifications (if any), you will be able to use this knowledge you will get by reading our series on any other system that uses the same tools (OpenIndiana, BSD...). This first article will deal gradually with the intricacies of writing C code on Linux. You are expected to have basic programming knowledge, either on Linux/Unix systems or on other platforms. The idea is that you should know the basics of programming, like what a variable is or how to define a structure.
This is a companion discussion topic for the original entry at https://linuxconfig.org/c-development-on-linux-introduction-i


I heartily disagree. The only thing either edition of K&R is good for is lining the bottom of a bird cage.

C was not terribly useful as a real language until C99 (and even that is not especially a good choice.) The latest bits in C99 and later versions make it an entirely different language from the C as proposed and used by K&R. Pointer arithmetic and other truly horrible practices were very much encouraged by K&R. Now, I would do unmentionable things to any of my engineers who were foolish enough to use such practices.

C-Programs made in the last century work without modifications. The speed and performance is absolutely perfect. But C is not perfect for users - engineers; its made for programmers. If you do not need maximum performance or graphics or access to drivers: why not check Java ?

I am new to programming. Can you try and explain the difference between an engineer and a programmer?
I am a civil engineer irl.

In german language the difference is that an engineer usually works on objects you can touch.
If you are new to programming:
There are many types of programmers. Cobol-programmers (most codelines ever produced !) Visual-basic-programmers, Phyton …
But if eg for AutoCad you have to sort or connect many thousends of lines you should not use one of these. So it makes a difference which programming-language to use.
C and C++ are not really easy to use.

Hi robertdq,

Welcome to our forums.

My explanation will not be perfect, but I’ll try my best.

A programmer is someone who writes computer programs in one or many programming languages that computers can execute and run, which in turn will provide a solution to a problem (like calculating the human DNA) or give a service that is needed for some purpose (like an online shop you can browse with a browser).

An engineer is someone who uses his/her deep knowledge of a given field to create the building blocks of it - like an architect who can design a bridge that will not collapse under the weight of passing vehicles, or a system engineer who can design a system that will run even if a datacenter under it goes offline. There are engineers in many fields, programming included.