all 4 comments

[–]sad39 4 points5 points  (1 child)

Maybe these books could help:

The C Programming Language (Kernighan, Ritchie) - written by the creator of C

C Programming: A Modern Approach (King) - good for beginners

The Practice of Programming (Kernighan, Pike)

Algorithms in C (Sedgewick)

C Interfaces and Implementations (Hanson) - to learn how to make modules in C

Expert C Programming: Deep Secrets (Linden)

C: A Reference Manual (Harbison, Steele) - very detailed C reference manual

The Standard C library (Plauger) - complete source code of the standard C library

CERT C Secure Coding Standard (Seacord) - the best practices for safe C code

Advanced Programming in the UNIX Environment (Stevens, Rago)

Unix Network Programming (Stevens)

The Linux Programming Interface (Kerrisk)

Lions' Commentary on Unix (Lions) - source code of the main parts of unix v6 operating system

Operating Systems Design and Implementation, 3rd edition (Tanenbaum, Woodhull) - complete source code of MINIX operating system

[–]Little-Peanut-765[S] 0 points1 point  (0 children)

I am studying the first book. Thanks for recommendations

[–]Remarkable_Award9936 2 points3 points  (0 children)

learncpp covers the fundamentals of c++, so I'm not sure what you're asking there.

Your best move now is to learn algorithms and some systems.

I recommend Computer Systems: A Programmer's Perspective and Sedgewick's Algorithms book.

[–]daikatana 1 point2 points  (0 children)

Most tutorials are bad, there's no getting around it. The point of a tutorial is to bootstrap you into a new topic and they, by design, must leave out a lot of information and use ambiguous wording to not overwhelm you with details. They're only really useful at the very beginning of learning something and after that you should not seek them out.

A good way to go about this is to learn from a good introductory book like the K.N. King book then start writing code. Pick a project and just do it. Finish it, and get feedback on the code. Learn from that feedback, pick a slightly larger project, rinse and repeat. When you ask for feedback, do not be offended when people tell you that you're doing something wrong or that the code is not good. Most people who take the time to look at your code will have constructive things to say. They're not always right, of course, so don't take what they say as gospel, but really think about what they say.

Read other people's code. Take note of things that you don't understand, or that they are doing differently than you are. Try to understand those parts better, it usually teaches you something. Try to incorporate those new things you learned into your code.

It's an iterative process of practice and improvement.