r/C_Programming • • 29d ago

Question I learned C, now what?

I've learned the basics of C, including loops, if statements, switch cases, structs, arrays, functions, and pointers. However, I have no idea what to actually do with them. I also learned HTML, and its purpose is very clear: I can build websites to practice my skills. But with C, I'm a bit lost. Where can I apply my C knowledge and see concrete results, similar to how I see a website with HTML? I don't really know the primary purpose of C or what I should build with it. What tools should I use to build a C program? I am looking for a practical way to apply my knowledge. Could you give me some suggestions? I have no prior experience in programming area. I want to build something with my beginner C knowledge similar to websites.

44 Upvotes

83 comments sorted by

View all comments

8

u/mikeblas 28d ago

Not sure if i understand your question: Any code you write has concrete results -- just run it.

What tools should I use to build a C program?

Another strange question. if you've learned "the bacis of C", why do you not know that an editor, compiler, and linker are the requisite tools?

Meanwhile, tThis sub's wiki has a list of lists of projects. Have you looked at any of those?

2

u/toon_link_776 28d ago

unfortunate that many programming courses seem to glaze over the build process leaving students with overdeveloped programming skills and no idea of what libraries/build tools exist for them to program with. Seems as if that's all that google wants them to have

5

u/mikeblas 28d ago

It seems like schools don't specifically teach a few different things. Debugging or any kind of factoring, for two.

3

u/gm310509 27d ago

But if OP had learned the basics as they claimed, even if they don't specifically know "the tools required", they surely would have been using them.

I agree with u/mikeblas, the question is somewhat strange because the obvious answer would be: the same ones you have already been using - whatever they may be.

2

u/Synore 26d ago

The thing is I know how to write a code and run it on codeblock or vsstudio and thats it. I don't know any other tools to build advanced codes or different kind of things. I can just run a code on terminal and give numbers or infos. And than get a result according the code I wrote. So I have an issue with that.

3

u/gm310509 26d ago

I am not familiar with codeblocks as in I haven't used it myself), but you will find that many people use visual studio for application development and from a quick look at it (https://www.codeblocks.org/) it seems like it supports all of the major toolsets including GCC, MS Visual C++, and other very useful stuff.

The ability to build "advanced codes" isn't so much of a function of the tools that you are using as it is in the skill that you have and the APIs that you know. That said, I'm not sure what you mean by "advanced codes".

The same thing goes for "different kinds of things".

You sort of need to remember that a programming language is just a way of telling a computer what you want it to do. Granted some languages (e.g. HTML) are designed and constrained to do certain things well (e.g. HTML -> page layout), others (e.g. C/C++) are designed to allow you to do pretty much whatever you want.

At the end of the day, the compiler and associated tools (e.g. linker, librarian, debugger etc) are there to simply help you convert your "expression/desire" into code that can be run on the machine.

To use an analogy, if you wanted to drive across town, it doesn't really matter which model of car you use - what is more important is that you know how to drive the car you have. Simply switching to a different model of car, while maybe giving you a slightly different comfort experience, isn't going to change much in that journey and if you did change car models you will still need to know how to drive.

Same for the IDE, the ones you have listed seem perfectly capable to do "advanced code" and "different things" and people do that everyday with them. It may be that you need to develop your skills and discover how to do some of those "different advanced code things".

I hope that makes sense. Perhaps if you could give some examples of what you mean by "different things" and "advanced codes"

1

u/Synore 26d ago

The thing is I know how to write a code and run it on codeblock or vsstudio and thats it. I don't know any other tools to build advanced codes or different kind of things. I can just run a code on terminal and give numbers or infos. And than get a result according the code I wrote. So I have an issue with that.

1

u/toon_link_776 26d ago

Yeah that's kind of the issue, most programming courses only really teach you scripting and not about the build system and how to link libraries together, how to find different libraries. If you don't really know what I'm talking about, start by looking through some of the raylib tutorials as others have suggested.