Beginning C Programming Advice!

Hello everyone,
I've finally decided to begin programming and would like to do in my future career.
My first language I have decided to choose was the C languages all though i haven't started yet i am filled with curiosity and thought this forum could help me and get me starting.
I've got a numerous amount of question and would appreciate any answers which can lead to me to the right path.

Where is the best place/book to learn the C language(i would appreciate a source book or website dosent matter but it should teach me good habits and teach me the language well and is easy for a beginner.

Another question I have in my mind is.
What jobs do C programmers have ?
I heard they work on Drivers and low level interfaces but what are Drivers and other stuff which C programmers do as a career.

Thank you for reading!
Any reply's will be grateful to me!
Please mind any grammar mistakes.
closed account (z05DSL3A)
A few books you may find useful...

Programming in C
by Stephen G. Kochan

21st Century C
by Ben Klemens

Mastering Algorithms with C
by Kyle Loudon
closed account (EwCjE3v7)
Maybe go with C++. It is more advance than C
Thank you for the suggestions I would appreciate some more !
And grey wolf the book you have suggested should I read them in the order you wrote them ?
And Fr0zen1 I would like a language which is better for beginners and low level.
closed account (EwCjE3v7)
C++ is a nice beginner language, just depends on which source you learn from.
I would go with C++ if I were you. But at the end of the day its you choice.

Here is what I got on Google:

http://www.durofy.com/10-major-differences-between-c-and-c/
Last edited on
closed account (z05DSL3A)
...should I read them in the order you wrote them?
Probably. Programming in C* would defiantly be the book to start with (out of the ones I've listed).

_______________________________________
* looks like a new edition, it may cover some of the same areas of modern C as 21st Century C.
I would like a language which is better for beginners
C and C++ should be threated as different programming languages. I would say that C++ is better suited for beginners.

and low level
Well, this is a valid argument.

what are Drivers and other stuff which C programmers do as a career.
Any company which creates hardware (computer parts, controllers, anything electrical) need programmers to write drivers and firmware. And most popular language for these tasks are C and assembly.
If you want to go to the system programming, you will need assembly knowledge in addition to C.
Thank you for so many answers
@MiiNiPaa
do you have any experience with systems programming ?
I would like to do systems programming so I will start with C them go to assembly :)


Is systems programming a good career path ?
And what was the book name you recommend me to start with I could use a link

Thank you for all the answers once again would appreciate more book suggestions and information about systems programming
Thank you grey wolf I will take that book recommendation to consideration one question for you grey wolf
Have you read the C book you recommended me if so how was the back or the pat editions you may have read ??
closed account (z05DSL3A)
Have you read the C book...

Yes, I will only recommend (or otherwise) books that I have read at least in part.
I suggest 'look inside' at Amazon, read a few pages to see if you like the style.


Another book to keep at the back of your mind for later on
Expert C Programming: Deep C Secrets
by Peter van der Linden
Last edited on
Sorry for private messaging you didn't see that you replied bad timing on my part but would be happy if you helped me with my questions on pm on this thread
What is C used for ?
C is a middle-level language which maintains balance netween abstraction from hardware and being able to do low-level operations.

What is embedded programming and systems programming ?
System programming is developing service programs which are needed for system functionality: drivers, services, parts of OS, etc.
Embedded programming is developing for embedded systems. That it: for every complex electronical device. Do you have a router? If so, it has a complex program inside which controls it. It is an embedded system. There is a great chance that your TV has one too.

How can I get started with embedded or systems after I learn the C language ?
You can try to fiddle with programmable controllers, like Arduino.

The most important question is how will I get started with systems programming and what it consist of and what it involves and what skills are required
System programing has way more strict requirements than usual. If your program leaks memory, it might go unnoticed or deemed not worth to fix. If your thread sheduler leaks memory, your OS is unusable. Ifyour program randomly hangs you might just say: "restart it if that happens". If your network card river does that...

Also before I start learning my first programming language should I know anything extra such as how a computer works or bits and bytes storage space etc because I know none of that any links would be appreciative
You won't need it before you start learning language. Some things you will learn in process, and others you will need to learn after you learn language.
closed account (z05DSL3A)
Mizanyo,

It would be better for you to ask such questions in the open forum as you will more likely get a wider view of the questions you ask. So I will post your questions here.

Mizanyo wrote:
What is C used for ?
What is embedded programming and systems programming ?
How can I get started with embedded or systems after I learn the C language ?

Also before I start learning my first programming language should I know anything extra such as how a computer works or bits and bytes storage space etc because I know none of that any links would be appreciative

What is C used for? The impression I get is mainly low level, close to the metal code but I know physicists that use C for their HPC simulations. I know others that use it for application programming (they have used it for years and they are very good at it)

What is embedded programming and systems programming? Embedded programming...think of the things that have some form of electronic control. They are likely to have a form of microcontroller or processor that needs to have code running on them. They have very limited resources and are not necessarily easy to update. Systems programming, in my opinion, is things like writing drivers and commands for more operating system level.

How can I get started with embedded or systems after I learn the C language? as you read around the subject you find out what you need to know and study it. I recently (for the fun of it) bought three books and a couple of TI ARM Launch pad boards to play with. I can't say how good the books are at the moment, only had them a few days, but they form the basis of a course on embedded systems. They look like they cover a lot of basic 'computer' things and introduce you to programming.

The books are:
Embedded Systems: Introduction to ArmĀ® Cortex(TM)-M Microcontrollers: 1
Embedded Systems: Real-Time Interfacing to ArmĀ® Cortex(TM)-M Microcontrollers: 2
Embedded Systems: Real-Time Operating Systems for Arm Cortex M Microcontrollers: 3
by Jonathan W. Valvano
Thank you guys so much
You have helped me alot I am grateful
Topic archived. No new replies allowed.