How to learn C programming

I have been using only C for 5 years. So I'm sure I know C grammar, but I don’t know how to promote programming skills.

There are many books for modern languages ​​(for example, C ++, Java) for learning programming skills, such as refactoring or template, software architecture. But not a single book is written in C. The author of the book says that his / her book does not depend on the language, but I don’t think so.

How can I promote my programming skills? Should I learn modern language and read books? Are there any books on software development or programming skills written with C?

+6
c
source share
9 answers

I do not believe that anyone who knows only one programming language (whatever language) could call himself a significant programmer. You should try to at least get to know as many languages ​​as possible (then you can "specialize" in one or two if you want), but limiting yourself to only one of them is a bad service, IMO.

So go out and learn Java, C #, Lisp, Haskell, Python, Perl, Lua, SQL, Javascript ... the list of possibilities is endless, really.

+4
source share

Try some problems with programming ACM programming with C (acm.uva.es). Try to code data structures and strive for maximum efficiency - this means the least use of resources to achieve the goal.

+3
source share

One great book on advanced C programming is Peter van der Linden's "C Programming Experts . "

You even have an app with funny interview stories :)!

+2
source share

Your goal seems to be:

How can I promote my programming skills?

But you only ask for something very specific:

But the book is not written in C.

In my opinion, the most important programming skills are language independent.

I would suggest you open your mind to opportunities other than C.

Why do you limit yourself to just C? If the answer is that you spent 5 years on this, let me make you feel better by saying that these are not years spent.

Are there books on software design or programming skills written with C?

Of course there is .


I would really like you to ask yourself where you want to be a software developer in a few years, and then post a new question about how you can get there , describing what exactly is there. Depending on what exactly you want, we can help you on the right track.

Also, C ++ and Java these days are also not considered the most modern.

+1
source share

A really good book that I just found (via Stack Overflow) in C, Expert C , which delves into a real detail in C, However, if you are interested in learning common programming methods (and not just advanced C), I I would recommend learning another language, for example, Python or Java, since it is much easier to understand concepts such as algorithms, data structures, and design patterns in higher-level languages.

+1
source share

I suggest reading any operating system code, such as Linux kernel code, and tracing its path from application to hardware. Thus, you will not only recognize the different data types and patterns that are used in different layers, but also how they are implemented. Rgds, Softy

+1
source share

If you want to advance while staying close to c, try C ++ and python or ruby.

This should give you several different perspectives of programming. Higher-level languages ​​provide data structures and algorithms, so you do not need to worry about their implementation, as in c. This means that you can focus on solving problems instead of including a linked list or implementing sorting.

There are many interesting books about programming, you should look at the book "programming language". Browse web pages for software development blogs.

If you know which domain you want to focus on, try creating your own application.

Btw 5 years is fine, you have to start from scratch and end up with fully functional software.

Like others, try an online coding contest or look at sample questions and try to implement them.

Since you are here, check out http://www.joelonsoftware.com/

0
source share

I think you need to program some projects from your own idea or you can use the help of the Internet, which can increase the level of programming.

0
source share

Even when you work as a “hardware device and firmware developer,” learning other languages ​​and tools can be very useful. Reading about various building tools such as GNU Automake or CMake, automatic unit testing and pragmatic programming will help you move forward and still be useful when you use only C.

0
source share

All Articles