T O P

Trying to learn C

Trying to learn C

Almasry00n

Go straight for Microsoft Word


tube32

I think as a beginner he should write it on a stone tablet using a hammer and nail. That will really help op get a hold of the syntax. He can scan the code using Google lens and run it.


Orangutanion

Hook up a stationary bike to your computer. Every full rotation forward inputs 0 and every full rotation backwards inputs 1; your handbrake backspaces the entire byte.


tube32

Backspaces will help op rectify his mistakes. That isn't good practice for beginners as they might get used to it and be relient on using the backspace. Hope you understand.


Orangutanion

Every backspace spanks your ass with a paddle. May start off kinky but you get over it quickly and suddenly programming quite literally becomes a pain in the ass.


DeviousDaddy

Why do you keep invoking a function called harderDaddy?


SkollFenrirson

Username checks out


badgerandaccessories

Fucking triggered. I had a math teacher that didn’t allow erasers. If you made any mistake you had to start from the beginning. She would rip the eraser out of your pencil.


FxHVivious

This is the worst fucking approach to learning, much less math, I have ever heard. Mistakes are important to the learning process. Students fear it enough thanks to the way the school system is structured, no reason to crank it up to 11.


AlpayY

She probably didn't understand it correctly. We had something similar, but we were supposed to not use erasers so she can see our learning progress when it came time to hand in the notes of the past few weeks. When we made a mistake we were supposed to cross it out instead of erasing it. This was so she could see what we did wrong and how we tried to fix it. It's quite common among teachers that like to go the extra mile actually.


FxHVivious

I had a couple of professors who did that. That's different from making students start over from scratch when they make a mistake.


newtoid18

Math teachers have a lot to answer for. Mine was a drunk. He'd regularly show up to class smelling of beer after lunch. After I left school, any time our paths crossed in local pubs he'd loudly call out my name followed by "typical underachiever".


slant__i

Wow at least she was generous with her OCD


aShittierShitTier4u

stationary bikes come with brakes? Why?


hobbseltoff

[Why Microsoft Word is the best IDE for programming](https://www.youtube.com/watch?v=X34ZmkeZDos)


I-heart-java

Nah nah nah nah, what am I made of, money? Word pad for the low income homies


dancinadventures

Notepad might be better


TXK_Nemesis

C is for Confused


brunovich00

C++ is for C++onfused


SirAxelotl

Donfused?


Proxy_PlayerHD

nah that would be for [D](https://en.wikipedia.org/wiki/D_\(programming_language\))


ShipRekt101

I’m somehow surprised, but not surprised that that actually exists


konstantinua00

D was C++11 before C++11 now it's "Rust 0.1alpha" it just wasn't lucky enough to work on its own


UnclothedSecret

Nah, C++ is post-incremented. You might be thinking of (++C)onfused…


CSsharpGO

C# is for C#onfused


fernser

Or for D♭onfused.


Jamesin_theta

Or for B𝄪onfused.


carb0n13

My mind was blown when I learned that C# was supposed to look like C with 4 +s


MrHyperion_

I dont believe you


ManEatingSnail

I'm a beginner learning C#, it seems pretty straightforward to me.


CSsharpGO

It is.


ZeroG_0

C# is Microsoft's answer to Java ultimately. So yeah, a completely different thing than C++. It's also IMHO pretty great.


LaLiLuLeLo_0

He’s not confused, he’s merely feeling undefined behavior


The-Big-Bill

R is for Rough


[deleted]

JS is for Jerma Sus 😳


emma_charlotte

Jesus


xaranetic

He died for our sins


MrKirushko

So you don't have to.


Kyll_Iano451

Nah he died of ligma


xaranetic

Java, Sort-of


the_fat_whisperer

I actually only learned recently that Javascript was given a different name originally that would have led to less confusion for beginners but in the mid 90's when js was first being implemented, while Java was a popular new way to accomplish a lot of coding projects, it was given the name to liken its ease of use to the Java language.


IHeartBadCode

`char * const (*(* const bar)[5])(int)` This isn't even my final form!!


kushangaza

everything changed when the function pointers attacked


KRAndrews

Just glancing at this gave me PTSD from my days programming C


OrdinaryCorrect3161

I legit thought I was ready to attempt grad school this year but then that reminded me It’s not worth going back.


zuck-

I went through grad school without using C. You can still do it!


KRAndrews

Legit some of the worst days of my life were caused by CS college projects + procrastination haha. Nothing is worth doing that again!


Impeesa_

May your signals all trap May your references be bounded All memory aligned Floats to ints rounded Remember … Non-zero is true ++ adds one Arrays start with zero and, NULL is for none For octal, use zero 0x means hex = will set == means test use -> for a pointer a dot if its not ? : is confusing use them a lot a.out is your program there’s no U in foobar and, char (\*(\*x())\[\])() is a function returning a pointer to an array of pointers to functions returning char


dyingpie1

What is bar?


IHeartBadCode

If you ever need help, [here's a tool](https://cdecl.org/?q=char+*+const+%28*%28*+const+bar%29%5B5%5D%29%28int%29).


salvoilmiosi

Being honest, I used it to respond to him because I was as lost.


skeleton-is-alive

The trick in C is to always read the type right-to-left. Still can be tricky deducing function pointers tho


BakuhatsuK

I think the actual rule is inside-out in a spiral, but in most cases that corresponds to right-to-left. Also, east-const helps when reading types in this manner, specially when it involves pointers. int const* // pointer to constant int (you can mutate the pointer) int *const // constant pointer to int (you can mutate the int) The inside-out spiral thing comes up usually when there are parentheses in the type.


inconspicuous_male

I'd like one that works in reverse


physix4

It actually does, but you need to be very precise in your description


thekidxp

http://c-faq.com/decl/spiral.anderson.html this is by far the best explanation I've seen for how to decode C types in case you want to check it is. It's short.


ScrithWire

Holy batman!


salvoilmiosi

An array of 5 pointers to function pointers of int returning char \*const Something like: `typedef char *const (*fn_ptr)(int);` `fn_ptr *bar[5];`


archysailor

If I am not mistaken this is a *pointer to a const array* of 5 pointers to functions taking int and returning a pointer a const char. The declaration with the typedef factored out should be `fn_ptr (*bar)[5]` (disregarding `const`s). Edit: yep, the website tool thingy agrees. Edit 2: Read the reply.


Prawn1908

Wouldn't it be a const pointer to an array of ...? (Also returning const pointers to char.) Or am I misremembering the direction of the spiral rule? EDIT: looked it up, I was right.


archysailor

If you have a `const int *a` then something like `++a` is perfectly legal, it is just that `++*a` (mutating the int) is disallowed (still unfortunately compiles but is undefined).


Prawn1908

Are you sure you're replying to the right person?


chicametipo

I was thinking to myself “is that 5 index arbitrary” but then I realized after reading your comment that of course not, it’s C


Orangutanion

why 5?


Ietsstartfromscratch

Because [5] at array declaration means 5 elements.


coolfleshofmagic

That's the name of the variable.


kingvolcano

I mean in 99.9999% of the time in c you never have to write that


mrheosuper

And if you have that line in your code, you shouldn't


no_ragrats

As if thats any different than the rest of my code


terivia

I use C because the java garbage collector deletes my commits.


ilovereposts69

Still, while C is a great langauge, its type notation is quite garbage


Monochromics

.... did you tag golang on accident then?


user_8804

So those * are all multiplications, r-right?


xaranetic

Only on Wednesdays


CaptainNeedleMouse

What about leap years?


xaranetic

We don't do those here. We're programmers.


user_8804

Don't forget time zones


892ExpiredResolve

These are easy to decypher. You just need to use the spiral rule. That's where I go into an alcoholic spiral when encountering such things in my code.


Diligent-Teacher3521

Please, tell me this is true. 😂😂


Vercidium

Yep haha it wasn’t the reply I expected


Diligent-Teacher3521

C is one of my favourite languages along with its brother C++, I really hope u overcome ur confusion and learn to program in it.


Tsu_Dho_Namh

I too am a masochist


Diligent-Teacher3521

Now I program on C (pure C) as a job so at least it pays off? BTW how do you put many traits in this subreddit?


Tsu_Dho_Namh

On the right hand side, under "About Community", click the down arrow next to "Community options", then "Use Flair Preview" should have a pencil symbol next to it for editing. Those are the instructions for desktop anyways. If you're on mobile you're on your own.


Nathan2508

It only allows 1 selection as far as I can tell Edit: I ended up doing a cut and paste each time I added a new one


Tsu_Dho_Namh

The radio buttons are fucked. You have to trick it into doing what you want. The little smileyface in the textbox should give you better luck. Funny that the flare for r/ProgrammerHumor is buggy as hell :P


Last-Woodpecker

It's not a bug, it's a feature!


TotallyTiredToday

It’s a filtering mechanism!


overclockedslinky

surely by pure C you mean holy C


Orangutanion

HolyC has some pretty interesting features tbh. Its compiler is whack and is basically embedded into the operating system. I'd like to see some of Terry's work become a reality


OriginalTyphus

Was that this TempleOS thing by that psycotic engineer?


Orangutanion

Schizophrenic, not psychotic. He knew computation down to the assembler and actually made HolyC because he thought that normal C was too high level (and he wanted to better integrate the language into the operating system). As he went on not being helped, his schizophrenia got worse but he remained rather lucid while doing anything related to programming (so scary). He was also known for holding some pretty strict standards in his OS, like absolutely refusing any graphics other than 640x480 16 color.


[deleted]

[удалено]


alwaysintheway

Schizophrenia is the name of the disease process characterized by psychotic symptoms. You can have psychotic symptoms without being a schizophrenic, but I don't think you can be a schizophrenic without having psychotic symptoms.


Diligent-Teacher3521

I see what u did there...


frugalerthingsinlife

How prolific are C jobs? I had a C++ job many moons ago, when I called myself a real programmer and thought of myself as an expert. Now I have accepted that I'm a perennial beginner and enjoy the crutches of dynamically typed languages. But I would like a new challenge.


Bryguy3k

When there are a ton of jobs posted for C++ with a bunch of expectations to go with them - that should tell you something. Yes there are a ton of C++ jobs - every single time you’re going to end up working in a giant pile of steaming s***. People don’t age out of good c++ code bases - but people sure as hell bail on bad ones. There are fewer C jobs for sure - but you generally know what you’re going to get - and it’s never as bad as what you end up with when you take a C++ job.


frugalerthingsinlife

Right on. The C++ job came with me some decent dev tools and they put all their crap behind an api. And it was a small team so I had full access to senior devs. I was building front-end silly little apps for sales pitches to show off our 2D graphics engine. So it wasn't bad. And I was building new instead of working on other people's mess.


[deleted]

To add to what others have said, Yes, C jobs are almost entirely embedded development now. No, it’s not all maintaining old projects with crappy development tools. Embedded software development has been progressing just like application and web development has and modern dev tools are about as robust as possible given the context. Many embedded systems come with a 1st party IDE and support for other popular IDEs through 1st and 3rd party tools and plug ins and have runtime debugging tools just like any other. It’s definitely not for everyone though. You’ll definitely have to worry about the resources your program is using and you will almost certainly have to use hardware test equipment like oscilloscopes. If you’re interested in seeing what it’s like you should check out some of the popular MCU dev boards. There’s a *ton* of different STM32 dev boards. The Nucleo ones have headers compatible with arduino peripherals so you’d have lots of cool things to mess with ESP32 is new and lacking on 1st party development tools beyond software library and compiling/flashing scripts but it has Bluetooth and WiFi on board and is very popular with hobbyists. PSoC 6 is less popular but it’s used in industry a lot and has a solid software library, 2 processors on the same board that share one memory space which is very interesting to develop for, and programmable digital and analog blocks that let you implement a lot of features directly in hardware. Edit: and I’ve also had absolutely 0 problems getting well paid positions doing interesting work. In my experience there is *much* more demand than supply for skilled embedded engineers at all levels.


doizeceproba

Totally non flamey question, just out of curiosity, have you looked into rust? I hear great things about it, from a lot of friends with strong c backgrounds.


Diligent-Teacher3521

No I have not, but I should. Haha


katze_sonne

Well, even if you don't stick to it, it really helps you to understand many of the concepts behind other programming languages. And you'll know what to like about them (and maybe also what's not so good). You'd only be a masochist if you stick to it :p (ok, honestly, maybe at some point I'll come back to C and C++, we'll see what the life brings)


evict123

There's something so satisfying about writing something in C.


ErolEkaf

I know right, who *enjoys* writing in C++?


[deleted]

[удалено]


Diligent-Teacher3521

I like the simplicity of C, with functions, data structures, custom type defining, pointers (and function pointers), etc. you can do a lot of things, almost everything u need, and that's appealing. On the other hand, I like how, based on that, c++ created a much more complex language with a lot of the modern features we deem essential but u can always notice the "translation" into the simplicity of C, and it's pretty nice. I think both are real good "school languages", if you want to have an integral knowledge of how computers work, how the processor works and such, C and C++ allow u to learn that interacting with it (stack, program counter jumps, caching, alignment in memory...). C++ is also a nice school about compilers, being such a complex language (with a hell of compiling errors), u can learn a lot of concepts just "fighting" with them: r/l values, inlining, reference and value, the difference between compilation, linking and execution time, constant correctness... and I think that, if you are going to be an engineer or program something somewhat "low level", u need to have some idea about it. That being said, I am not a fan boy and I can appreciate and love how useful other different languages like Python are for prototyping, AI and such or how Java is very robust when u need quick developing and compatibility but can't afford many errors so u need something that can go from a OOP design to real code with guarantees in short time.


[deleted]

[удалено]


triculious

C is a language that gives you all the tools and whatever you do is up to you. The language won't stop you from doing stupid things. It's you're responsibility, your fault, you're the one who's supposed to know what you're doing and what you want. Whatever you do you'll know how, where and why, because YOU wrote it. Newer languages take you by the hand and walk you through the whole way. No, no, you don't want to do that, it's dangerous. No, you meant to spell it this way. I'll take care of the memory mess you've created, don't you worry about it. New functionality? Don't worry there's a library somebody implemented and made public, just use it, no need to know how or why it does what it does. I used to have faith issues about convincing a rock through electricity to do things for me but at least I was telling the damn rock exactly what I wanted. Now the faith even extends to my instructions as they are handled by some other unknown entity. Not crapping on any language, ultimately it's all magic.


not_your_mate

I used to have similar thoughts about C/C++. I just want the damn machine to do what I tell it to do. But that changed after working on enterprise java product... Now, all I want is that the engineers will write more readable and less smart code so everyone will be able to work on it. Because not everyone is brilliant developer and sooner or later you will end up with smart parts tangled with spaghetti mess. It's better if a language is designed in a way that (more or less) prevents this. But for projects developed by single person? You should use what feels best for you, I don't care.


triculious

I think that works for school projects or whatever you won't ever touch again. Every other piece of code YOU wrote you'll come back and think to yourself: "*wtf was I thinking? Evidently I wasn't*". Code obfuscation is great for bragging rights but you're shooting your own feet in a professional environment.


MoarVespenegas

The environment for C/C++ is the easiest part of it. All you need is a complier and they are all backward compatible. It's everything else that's the issue.


theestwald

gcc, gdb, vi and man What else do you need?


pandolf86

And some makefiles


cemanresu

Real men press up on the command line until they find the last time they used the five line long compilation command


7eggert

Why would you do that if you have your punched cards?


innrautha

Because he's learning C not FORTRAN.


triculious

set -o vi then you can search for the compilation line in your history


the_noodle

CTR+r works regardless


yymirr

fzf is your friend


katze_sonne

And if you finally master them: cmake, so you'll appreciate it.


Wafflem0use

Coming from something like python where your environment is everything i can see why there would be some shock. Write a text file, run gcc, done No poetry, pip, requirements, folder structure, etc etc.


bitsofmetalpipe

Okay, sure, but those are the price of high-level languages/abstractions. Do you really want to manage memory and garbage collection yourself?


kitchen_synk

When I am doing microcontroller/embedded level stuff, the ability to know what every bit of memory is doing is extremely useful.


intentionallybad

Exactly, it depends what you are doing.


Wafflem0use

No lol I'm not knocking it, it's certainly gotten easier, only saying how it could be shocking for someone


stuffeh

Valgrind to detect memleaks.


SpaceTacosFromSpace

I remember being so excited when I started to use valgrind for memory leaks


pedropereir

Once I was doing a project and the memory management was so bad that when I ran valgrind for the first time it crashed my computer.


quw__

That thing absolutely saved my sanity in operating systems class.


Shakespeare-Bot

gcc, gdb, vi and sir what else doth thee needeth? *** ^(I am a bot and I swapp'd some of thy words with Shakespeare words.) Commands: `!ShakespeareInsult`, `!fordo`, `!optout`


thegreatpotatogod

And sir! 😂


PhantomWhiskers

I'm adding this to my .bashrc `alias sir='man'`


trwawy05312015

"consult the sirpages"


FishNun2

Good bot


kbruen

VS Code. Maybe CLion? Code::Blocks is okay for beginners.


[deleted]

If you're not using Scratch, you're doing it wrong.


Niiiz

For anyone starting, I personally recommend VS community. I started with it and it has a very solid debugger already set up, so figuring out what ticked and how it ticked was much easier as a beginner. Because we all love printing "hi" as a debug option but when the core starts getting dumped you're a bit screwed. VS code also has a great debugger but you have to set it up a bit which can be challenging to beginners, even with a guide.


kbruen

The disadvantage of VS is that it's Windows only, unlike VS Code.


Orangutanion

Basically this. If you compile with MinGW and makefiles, you can easily (relative to C standards) make your project cross platform.


katze_sonne

Use clang instead of gcc, especially helps beginners with much clearer error messages. (assuming that hasn't changed much in the last 10 years :D)


Jaondtet

It has changed somewhat. Clang is still better though.


throwaway_hatemyself

Sometimes I miss the old TurboC days


dingleberryfingers

TurboC++ was greatness


_Thrilhouse_

Glorious blue background


IllBeBack

I started with Turbo Pascal in 1983 and then moved on to Turbo C and C++ and even Turbo Assembler. Those were good days.


SnakeFang12

C and C++ are great until you need to depend on third party libraries.


jemandirgendwo

On Linux just pray your package manager has them. Then its easy.


Shotgun_squirtle

If you’re using cmake you can also just pray that they’re using cmake as well.


jemandirgendwo

I have heard of that feature, how does it work?


OhSoManyNames

Mostly magic


delta_p_delta_x

CMake is a 'meta build system'. Normal build systems tell your computer how to compile your code, exactly down to the last bit; these include Makefiles, Visual Studio solution files, Xcodeproj files, etc. These are difficult and tedious to edit by hand, so with CMake, you simply say 'okay, generate this executable with these source files with these libraries linked in', and it does it for you. You can then proceed to generate *any* of the above build systems, and *then* compile your code. It makes writing cross-platform C/C++ quite a bit easier. There's a new build system called Ninja, that actually *explicitly* advertises itself as *not* meant to be directly created/edited by hand, but instead generated using stuff like CMake, for instance. You can even integrate your testing code with CTest, which is a part of CMake. My development environment now has been shuttling between VS Code with clangd/C/C++, and CMake, and CLion.


N3rdr4g3

Reimplementation is the C way!


bwoogie

You're doing it, son! You're doing it!


floofandmemes

Just install the C/C++ extension in vs code and install gcc or clang. Or just open VS for C++ and save the source files as .c


philipquarles

> viscose VSCode?


floofandmemes

autocorrect


Pycorax

If you're starting out, gcc might be better than VS imo. The MSVC compiler's error messages are a lot more verbose and cryptic than gcc's.


Tactical_Tac0

iirc you can set gcc as the compiler instead of MSVC in VS


godRosko

Vs code is where it's at. That said... Vim or turbo c for maximum authenticity


MyGiftIsMySong

it's so cute how you followed your dad into the business


forceez

I dream of talking to my future kids about projects


jmk_2017

*Image Transcription: Text Messages* --- **OP**: I want to start learning C but I'm confused about the development environment. Any tips on where to start? **Dad**: That's correct. You're supposed to be confused. --- ^^I'm a human volunteer content transcriber for Reddit and you could be too! [If you'd like more information on what we do and why we do it, click here!](https://www.reddit.com/r/TranscribersOfReddit/wiki/index)


heathmon1856

Good human


Zaraffa

Why is everyone suggesting he learn in vim? That's means learning two things at once. Use something comfy like eclipse or vscode.


Ima-hot-Topika

If you’re not using vi in a terminal window you’re just doing it wrong. You don’t use an IDE for C! Now get off my lawn you damn kids!


MrKirushko

UNIX is the C development environment. Everything else is a puny imitation.


MagisterHegoDamaskII

Dont give up. C together with Linux is the most satisfying and coolest thing there is in the programming world.


kbruen

And also the most frustrating and error prone.


punitxsmart

Only because it forces you to learn the fundamentals of Computer Science. Other languages gets you up and running quickly without you worrying about what happens under the hood. Agreed that for most people that is all you need. However, if you are serious about learning CS and Engineering, learning C will be the best thing you ever did.


lazerflipper

If you don’t understand memory allocation then you’re going to bad at C.


RedNeckBillBob

If you don't understand memory allocation at all, you are most likely going to write inefficient code in other langues too. Its good to learn that C memory allocation basics so that you will never have any problems in any other languages.


ShakezulaDaMicRulah

Just get clion, its a great way to get into the syntax without having to worry about compilation just yet Not me though, only the end of my second week in systems programming my professor was already asking us to write a modular makefile and I almost shit my pants cause he pretty much threw us to the wolves not showing us a legit example first


NeonVolcom

Does require you to know a bit about CMake though. But yeah, +1 for Jetbrains. I use Intellij daily for Kotlin dev. CLion has been great for my C/C++ hobbies. But it does cost \~$20 a month.


ShakezulaDaMicRulah

Well you dont really need to know about cmake to get started, if you make your new class/header files correctly it configures everything for you. By the time you are ready to customize stuff you should be ready to move to a 3P compiler if you want..but great place to get started coming from high level for sure, even on linux it's pretty painless and good at shielding you from any vulnerable moving parts Agree Jetbrains suite is definitely great for moving for language to language tho, I can switch from Android Studio to CLion and feel right at home with shortcuts. Abandon visual studio, rider for C#, they even have pycharm for you pythoners! i still have access to my old uni.edu email addy so I'm using it under a free student account still (shhh!!)


NeonVolcom

I mean, yeah that's true. You don't *have* to know CMake. It's helpful to understand the build systems though. I had to learn a bit about it when I was porting my Linux game engine to Windows. Yeah, Jetbrains IDEs are really solid. Although, I do have issues with Android Studio, i.e. Logcat can just forget to output logs, test instrumentation crashes, intellisense will fail, etc. Despite the issues, I couldn't imagine writing Kotlin in anything else. Lol, I was using my fiancee's student email for sometime. But after I started getting paid for my work, I thought I should be using the paid license lol. $20 for CLion isn't too bad.


ShakezulaDaMicRulah

I use IntelliJ for DLang for my pet project so I dont wanna get confused. I really only use kotlin for android development so I stick with android studio and pray the gradle build never has to update every again (it never works unfortunately) java, I never want to use again, so it works out perfectly


justapcgamer

Man at least you were taught makefiles. In my 1st year of uni we had a 2 semester programming module in C. The prof wanted us to use Borland compiler from like 2005 and it was so horrible i didnt even install it and used gcc with vs code. He also didnt touch on header files or compiling anything more than 1 .c file. Guy was excellent with his teaching methods imo but a year later trying to learn how to compile bigger than one file c++ by myself is just pain because i dont know anyone that knows c++. Also thanks for the reminder that clion exists completely forgot haha.


Orangutanion

A C professor who didn't teach header files??


alerighi

The development environment of C is one of the easier. You can find a C compiler preinstalled in all Linux/UNIX distributions, and it's easy to install on Windows or macOS, open a shell and type `gcc program.c` and you are done. You don't really need anithing else other than the compiler, at least for simple projects you can compile everything with one command. And if you need a library you just download the source code of the library and include it in the project. The development environment of any other modern language is far more complex. Take for example JavaScript, you have to know the package manager npm to install dependencies, nowadays you have to know TypeScript, you have to know how to configure a multitude of tools, a bundler for example. Python? You have to know how to use pip, how to create virtual environment, and managing dependencies it's always a pain.


JOhn2141

In python you can "download the source code of the library and include it in the project" too. Pip is just a tool to get this code and link it. In C it's the same, some IDE help you link it but it can be confusing at first


sam_morr

I'm learning C on vim on WSL right now


cr4d

Best book on C with all you'll ever need to know (lol) is Kernighan && Ritchie's C Programming Language. Dev environment can be vi, emacs, notepad, vscode, etc. :) I sometimes use clion, but it feels like it's a bit much.


rjRyanwilliam

Wait till he discover GLUT in codeblocks!!


Orangutanion

You're giving me PTSD lmao. I spent a year of my life from 14 to 15 trying to make something with codeblocks, freeglut, and SFML. I actually got somewhere but just gave up. Took me a week to build the same thing from scratch in C#/Monogame with no prior knowledge to the language lol.


killersinarhur

I would argue you're not doing development at all if you aren't confused


wexman6

I'm confused with learning web development. There's tons of software to use that you have to install and then when I finally get it all installed I have no idea where to go from there


InsideAspect

It depends what stage you're at. If you're 100% new to web development, you make an html file and start there. If you're going from vanilla html/css/js to some of the major js frameworks then there's some setup involved but it's still (in most cases) quite minimal.


00PT

r/chargeyourphone


noxdragon26

If you're using Windows, you could use Code::Blocks as an IDE. I mean of course you could just compile with gcc/clang/mingw like people have said in the comments, but since this IDE is free, lightweight and easy to configure, you could give it a chance, specially if you're just going to use C for academic purposes. EDIT: grammar


Orangutanion

You can spend more time configuring in Code::Blocks than actually working


dwdwdan

That’s the sign of a good editor for me


veduchyi

I used Dev C++ on Windows. It’s pretty good and simple C/C++ IDE for beginners. It even allows to work with separate files without creating the project. BTW: this **vodafone AU** carrier feels for me like at home. On my iPhone it’s **Vodafone UA**. Now I use iPhone 11 but on my previous iPhone 6s I saw a Vodafone UA label for years 😄


The_JSQuareD

If you're OK with windows, I recommend starting with visual studio. It has a free version, and as a single developer you don't really need any of the features from the paid version. It has a very good debugger, excellent code highlighting and code completion, and the project / solution structure is much more beginner friendly than messing about with makefiles. The default release / debug modes are also good enough for almost everything when you get started, so you don't have to mess around with compiler flags. It also has decent git and github integration.


redballooon

C actually stands for “confused”


Drakethos

Development environment = vim and gcc have fun !


mymar101

Why don't you just start with A and B first? :)


WasserTyp69

(Neo)Vim with some plugins + LSP is pretty cool, although you'd have to learn vim first. I know some people who love CLion, haven't tried that out. VS Community if you're only developing on Windows (can still target Linux through WSL thanks to cmake).


kbruen

VS Code is also pretty great at C++.


agicat

Hail void pointers