Hey Sup Forums heres hoping someone takes the time to read this...

Hey Sup Forums heres hoping someone takes the time to read this, I would like to start programming and have a couple long term projects in mind, I have a non-fulfilling job in a field I no longer like and basically need a distraction now that I've stopped dumping most of my free time into videogames.

I *think* I would like to learn C, but am still rather confused about the difference between C, C# and C++. As far as I udnerstand it C is the oldest and simplest of the bunch with C++ adding on to it and C# being entirely different? I've also heard mention of python and java being good for beginners. The possibility of developing bad habits and a lesser understanding of how programming *should* work is something that scares me.

I am also slightly confused about what tools I would need to actually get started with programming, as far as resourses I figure text books and online tutorials are a given so any advice on those would be great. I am however a bit lost on what else I would need. From my limited understanding the bare minimum would be a text editor (notepad? notepad++?) and a compiler (code blocks? Im on windows if that helps) but I've also heard of IDEs but some people say beginners shouldn't use them? Any advice on this would be great.

I guess TL:DR

1. Is C the right choice for me? does it naturally build necesary skills that'll transfer to C++ and other languages or should I start with python/java and the potential pitfalls those might bring?

2. What tools should I download/purchase in order to be ideally equipped to actually learn programming?

3. Any resources apart from "google that shit" namely generally well regarded books/authors/content creators that I should look into?

1. C is great for a beginner.
2. Not gonna bother.
3. Installgentoo wiki is great for books/textbooks, /sci/ wiki has some good info too

C is not the right choice for you, or for anyone for that matter.
C++ takes a shit-ton of time to learn and is not fun to pick up 'as a distraction'.

What are the long-term projects you have in mind user? If you just want to learn programming 'as a distraction' you might as well start playing video games all day again.

Install GNU/Linux on a laptop or something.
Install Gedit. (Or any other editor really, but Gedit is simple)
I think there are some free programming courses on Udemy.

In the end, it's more about not procrastinating with vidya, and Linux helps with that.

Godspeed.

just from reading your post and how you're saying things, i get the feeling you really don't know how computers work. That's fine. But you really should look into it. Know how a programming language is compiled and executed. Get the basics down before ever writing a line of code. C++ is pretty much C with objects and classes. C# is M$'s thing. (don't learn it). You haven't even started to begin. Good luck user

Can you explain why C is not the right choice? Im honestly not trying to start some sort of language war here, im just new to all this shit. Posts like this and yours make it very confusing to know who is just pushing their ideas on me rather than helping me make the right (or wrong) choice for me.

I should clarify what I meant by distraction, I need something fulfilling that I can pour time into and get some sort of tangible result out of. progress is a great motivator for me since I've spent most of my childhood playing MMOs and shit.

As far as long term projects Id like to make:
1. some sort of image tagger and manager similar to hydra which I've seen on here a couple times

2. some sort of tool that would automate things in games (think mr robot for wow) or otherwise allow for players to simplify their more tedious and math based decisions

3. Id like to program a platformer game since my brother has always been artistically inclined.

I realize these thigns are probably years away even for their most basic forms, for now I'd be happy to progress beyond hello world, perhaps understand that fizzbuzz thing I hear thrown around here, simple snake game, maybe a tool that would tell you the time in different time zones.

I think theres an old computer in the garage but I have to wait for the landlord to come by and check. Would I need it to be connected to the internet or can I set it all up and then use it without internet to force myself to concentrate (we've all had issues with procrastination I've found this is a usefull solution when starting things)

I'll admit I dont know how computers work so is there anything I can look up/read on the nuances of code compilation and execution? I can just google around but when will I know "thats enough?"

Basically I know to reboot routers, assemble a computer and have it probably not blow up when I'm using it. Beyond that to many here I'm probably unimaginably uninformed.

there is no right/wrong choice, dude. Just pick one. Learn. Learn how programming works. What language to use for x situation is not fucking important right now, dude. Just... fuck it.

codecademy.com

It is not. The point of learning C++ first is that it makes it insanely easy you to pick up other programing languages afterwards. Most modern programming languages are based on C++ or share most of its major concepts.

Start with Scheme

start with java, I'm serious

The choice of programming language doesn't matter. Pick the one that is most used for whatever you want to actually do.

If you want to create webapps, pick Javascript or Elm.
If you want to create a social network website, pick Java, PHP, Python, Ruby or Elixir
If you want to write android apps, pick Java.
For 3D games either C++ with UE4 or C# with Unity.
For 2D games Java with libGdx or javascript with pixijs.
For simple command line programs everything is good.

But again, what you learn initially doesn't matter.
Learning new languages become easier the more you know.
I started with UnrealScript (what a terrible language), but then moved on to Java, C, C++, Python, JavaScript, Haskell, PHP, Elm, Elixir, etc.

this, MIT Scheme in particular is incredibly elegant and powerful

Not OP here.

Can anyone recommend any good books on C++? The internet is full of le learn C++ in 10 minutes XXDDD pages and they teach nothing. I dont want to just copy paste i want to actually know what the hell is going on.

read the wiki, cunt

check out "C++: In 10 Minutes. Edition 2" by Paul I. Lough.

Really good book, helped me a lot.

> Implying you can learn C++ in 10 minutes.

>Paul I. Lough

i see wut u did thar

you can if you are familiar with general programming

Ive heard code academy is bad for a beginner because it doesnt actually explain why/how things work but instead becomes a "fill in the box" excersise, is this not the case?

Posts like these are frustrating, I realize I might come off as retarded here but I'd just like to understand why X is better than Y. To those of you who know what you're talking about it might be implied or too complex for me to understand but even just a basic idea would help greatly.

What if my interests vary wildly because I dont have enough (read: any) experience under my belt so I cant honestly say I enjoy developing X?

Is there a language that has the most crossover to others (I assumed it was C) off that list javascript/java/C#/C++ seem the most in line with what I would fantasize about producing.

Am I right in thinking that C# is in no way related to C and C++? Unity seems attractive because it'd allow for a specific thing to look up tutorials on but I can't help but feel that jumping into even a basic game would be far more complex than less nuanced projects.

Its honestly kind of mindblowing that theres not an agreed upon "babies first language" that'll instill a sense of how to approach programming problems and mindset. Atleast this is the case, are there two or three main clashing ideas that I might look into in order to clarify this sort of stuff, like 2 ways programming should be approached that might help me make up my mind?

It really doesn't matter what you chose.
Every choice will leave knowledge holes that can be filled later.
It's only a temporary decision.

All languages will teach you about variables, functions, recursion, etc.
Some will teach you about classes and objects.
Some will teach you about types.

C is low level, meaning as a beginner you will probably not get anything done in it. But it teaches you very well how a computer works and how to write good code.
With javascript you don't have to setup anything, as it runs in your browser. You will probably manage to create something cool with it even as a beginner, but you might learn some bad practices (can easily be unlearned later).
Python is super easy, but again you will probably pick up some bad practices.

Just don't worry and pick whatever you want.
You don't have to have to justify your choice.

okay ill explain

c: old meme, no objects
cpp: c with tons of stuff added to become modern, but you need to do a lot of things yourself and this makes it easy to fuck up
java: modern object oriented shit, manages stuff under the hood that you shouldn't have to deal with as a beginner imo
c#: proprietary java, less learning resources (probably), less applications

OP, don't listen to anyone that tries to sell some programming language.
These are beginners themselves, that think they know everything.
Experienced programmers know that languages are just tools.
And we you choose the tool that works best for the job.

the amount of time you've been wasting making this thread and posting in it, you could have picked a language and been on your way.

we don't know what else to tell ya, user. Maybe this isn't for you.

Learn German. Do a CS degree from Hagen.

doesn't mean you should learn how to drive in a flintstones car