What to do after learning C programming ??
Posted by Kindly_Jump_7642@reddit | learnprogramming | View on Reddit | 28 comments
I have learned C from the very beginning upto intermediate level and have also made few projects to test my skills. I am about to complete my journey of C in around 15-20 days.
I wanted to know that are there any fields where I can directly apply C programming, like after learning C++ /C# , one can start game development, python is used in data analysis and web, java in application development.
Where can I apply my knowledge of C?? I am thinking about Computer Graphics but don't know if it's too hard or not. Any other suggestions??
SelfPsychological826@reddit
Is this a troll post? You haven't even learned the bare basics of C in the first 20 days. Genius or not. Try 1-2 months for a good understanding of the basics THEN MAYBE you are stepping into the intermediate part of C/C++ and that's IF you are already gifted intellectually.
_realitywarp@reddit
If you want another challenge, try assembly language
STEM_Dad9528@reddit
The answer to your question depends on what you want to do as a programmer. You already listed some programming specialties, and some of the languages associated with each.
What programming specialties interest you the most? Pick 2-3 specialties
Of those, pick ONE specialty that you think you want to focus on first. Then, pick a programming language that goes with that.
[Keep the other specialty/ies in mind for later, in case you want to do something else on the side, or want to change tracks.]
If you don't pick a programming area that interests you, then you will just end up trying things to see if you like them or not. While some people have to do that, to find their career path, the frustration of switching from one thing to another to another can be discouraging.
Kindly_Jump_7642@reddit (OP)
It was very helpful reading this. Thanks
STEM_Dad9528@reddit
I've been there, not knowing what programming language to focus on. When I was in college, most of my classes required coding in C, but I never got very good at that language. I couldn't understand why they focused their degree program so much on C, when at the time the most talked about languages were Java, Python, C#, and Objective-C.
I found my career niche in IT, not programming. So, I don't even look at code 99% of the time, much less write any. (In my current job, I sometimes work with SQL. But mostly I work with users of my employer's proprietary software and the hardware that works with it.) It's important for me to understand software, but I bridge the gap between users and developers.
Still, I want to create some apps on my own time. So, I know that I'll have to dive back into programming to do so.
owp4dd1w5a0a@reddit
Dude, you don’t get to intermediate level in C in a month… use the language heavily for a couple of years and then come back.
Kindly_Jump_7642@reddit (OP)
You are right mostly but I know that C is used in RTOS and embedded systems. Robotics I was not aware of. Thanks for that.
I was looking for purely software applications for now as I don't have hardware to practice all the other stuff. Do you have any ideas on that??
Thanks for your help.
syklemil@reddit
C used to be the main programming language for the various UNIX-like operating systems, including Linux. As time went on it became less and less common, and by now it's mainly used in the kernel, some low-level systems, and some classic applications, while software that people can name is written in a bunch of different languages.
Which is to say, you can use it for anything, even if most people choose not to.
As in, if you just want to learn C for your own sake, then you can write practically any software you have running on your machine in it. Probably you'll find command-line utils a manageable place to start. E.g. uutils started off as someone learning a new language by rewriting the coreutils in that language.
If you want to learn C to get a job with it, then your options are a lot more limited.
HashDefTrueFalse@reddit
You can build anything with it, really. E.g. arbitrary data processing, signal processing, audio programming, graphics programming, embedded (microcontrollers, RTOS), bootloaders, hobby OSs, programming languages and DSLs (compilers/interpreters), image manipulation, networked application software...
Kindly_Jump_7642@reddit (OP)
I would love to do audio programming and processing. Can you guide me further on this??
I also would like to do signal processing and image processing. These are the things I faintly remember from my bachelors (I have done bachelors in electrical engineering)
I am not looking for embedded stuff but thanks for your help
HashDefTrueFalse@reddit
I've done bits of audio/signal but it's not my current field. I simply googled for resources once upon a time. Image processing basics were taught as part of my degree, so nothing specific I can link.
Dazzling_Music_2411@reddit
What do you mean by "computer graphics"? Something like Cairo? Or OpenGL in general? They tend to be their own thing (lang independent), and can be hard. Are you looking for something easy?
Continue to improve your C. You probably haven't reached a skill level yet to apply it usefully. Simple embedded stuff, like Arduino, may be a good starting point.
Kindly_Jump_7642@reddit (OP)
As of now, I only know OpenGL. I agree with you that maybe I have not reached a level in C to apply it but now I am a feeling a bit of stagnation by learning the same concepts over and over.
I don't have the skills and money to learn hardware. I was looking more on software side. Do you have any ideas regarding software??
To answer your question, I don't know what I should look for. I just want to make something that I can share with people and maybe solve and implement real world concepts
Dazzling_Music_2411@reddit
Fair enough, but do be aware that an ESP32 costs less than $10, Arduino development IDE is free, and then maybe another $10 for some breadboarding stuff, you're not talking major expenses or skills, really.
Dazzling_Music_2411@reddit
If you've already done the basics, then you've reached a level where everything will now be more technical.
I would definitely recommend you learn stuff like flex and yacc or bison, the usual beginners project is a command-line calculator where you can input and solve something like
If you already know OpenGL, then definitely start applying it, why not? Otherwise (or also) learn Cairo, that is pretty much a standard C graphics library. You are spoilt for choice on what to do, really. You can make a ton of stuff, for no cost at all.
Start experimenting with new stuff, absolutely no need to feel stagnation, that's plain silly.
MR_LAW11@reddit
Honestly C opens more doors than it looks like at first, just not the flashy beginner ones. You can go into embedded systems, OS stuff, networking, compilers, databases, cybersecurity, even parts of game engines and graphics programming.
Computer graphics is definitely hard, but “hard” doesn’t mean don’t try it. I’d probably first ask what part of programming you actually enjoy. If you liked understanding memory, pointers, and how things work under the hood, C + systems programming is a really solid path. C also makes learning C++ later feel way easier.
Kindly_Jump_7642@reddit (OP)
It was very helpful reading this but as of now, I will not learn C++. I already know Python and Java so I would look to further my understanding of that
SchemeWestern3388@reddit
You can use the parallel port of an old computer and a simple breadboard to drive servo motors and the like. Thats kinda fun. Embedded stuff also.
Kindly_Jump_7642@reddit (OP)
I am not looking for embedded electronics. I have done my bachelors in electrical, so I know what you are talking about but it's no fun for me. I am looking for something purely in software
Thanks for your suggestion though. Have a nice day
Equivalent_Release31@reddit
Microcontrollers, you use C to program microcontrollers, that and Sqlite3 extensions.
Kindly_Jump_7642@reddit (OP)
I don't have the money and skills for hardware. I was looking for something in software. Thanks for your suggestion
Dazzling_Music_2411@reddit
Have you worked with parser generators yet? Bison, yacc, that sort of thing?
Kindly_Jump_7642@reddit (OP)
Not as of now.
Espfire@reddit
Unfortunately, you don’t “complete” a programming language per se. You’d need to keep making stuff.
If you’re familiar with C, I’d say the natural path is C++ in my opinion.
xoriatis71@reddit
Honestly, after C I learned Java, and I am not sure I would have had it any other way in hindsight. Nowadays, C++ is C in name only.
Kindly_Jump_7642@reddit (OP)
I know basic Java as I studied in school for 4 years. I would love to give C++ a try but I find it's syntax a tad confusing
iMagZz@reddit
Continue working with C, but if you want to give other languages a try for fun I would recommend Java and C++.
You can also get into Python too of course, but that can just as well come later down the line. You are on your way to build a super solid base and understanding!
Kindly_Jump_7642@reddit (OP)
I know basic Python and Java. I studied Java at school for 4 years. Didn't understood much then but now I can explain logic.