Hello friends, the title is mostly self explanatory. I would like to start programming but I also feel like I am not very smart, so I would like a programming language that is easier to grasp than others. That considered I don’t hope to be able to learn something “powerful” but it would be nice to still be able to do some useful things. Something I would love to do is make games, I know those are usually made in C, which is a very difficult one, but maybe some simpler games can be made with other languages.
If you’re coming into programming from zero, try Hedy.
It’s a gradual progression textual programming language specifically designed for teaching and learning. At the last level of progression, it’s just Python. The link above lets you get started right away in the browser with no setup, in your native language (English or otherwise).
If you’re not coming from zero, you might want to jump in a little deeper into C# (even though it has a higher “low bar” of strictness and structure, which can stumble “from zero” learners) and beeline towards your goal of making games, considering the ecosystem of Godot and Unity.
Another C# gang comment here.
I’ll try not to repeat what others said.
C# has one of the best debuggers in the industry. Debugger is a thing that lets you stop your program at a set state and investigate values of variables in that state. Very useful for education. The thing is incredibly easy to set up in Visual Studio right out of the box and is a matter of installing another extention in VS Code.
C# is in C syntax family, which includes C, C++ and Java. While you’ll have to learn some syntax quirks to switch languages, they are not as drastically different as Python, for example. If your intention is getting into game development, setting a base for C++ is a nice bonus.
C# is strictly-typed. Unlike Python, Lua or JS that I saw in this thread, C# requires you to specify types of your variables. While it may sound as a disadvantage at first, it is actually extremely useful catching silly mistakes. Like if you make a string and pass it to a method that expects integer, C# simply won’t compile, you’ll have to explicitly convert your string to integer. JS is notorious for it’s
('b' + 'a' + + 'a' + 'a').toLowerCase()
>"banana"
, which is extremely hard to follow if you’re learning the language IMO.If you’re trying to build games with big game engines like Unity or Unreal Engine, C# is a no-brainer, as they support it natively. Godot has it’s own language, but it has an option to switch to C#, so, you can cover all of them with one language.
Windows Forms. It’s a package for developing GUI applications on Windows. Visual Studio comes with it and has a designer for it. If you want to learn how to make a simple GUI application, that’s one of the easiest routes. Worth noting, if you’re not on Windows, that thing is not that easy to use.
Here is an official “get started” guide: link.
If you want to make simpler games, you could start with scratch or stencyl. These tools aren’t really programming languages per se but they let you build programs out of blocks that are much easier to visualize and play around with. There’s some research that suggests they are good entry languages and some research that suggests they aren’t, so ymmv. I’ve used both, but I knew how to program already.
For the record you shouldn’t let “usually made with” drive your decisions. Java is still popular for some games. Slay the spire, a very popular deck building game, was written in Java, which is a decently popular choice if you want to support modding. But C++ and C# are more popular simply because that’s what you use if you’re using engines like unity or unreal.
side note: C, C++, and C# are all different languages.
If you decide to look at Python, I really enjoyed going through the “Automate the Boring Stuff with Python” lessons/book. It breaks it down really well in non technical terms and I thought the work was pretty fun. It may be a good way to get a feel for it. I think once you learn one language it’s a bit easier to pick up your next one (at least that how it went for me).
Python is pretty easy to pickup and super popular so there are tons of guides and libraries to help get the job done. It does have a library called PyGame but honestly it is not super powerful, however there is a FOSS engine called Godot that uses what they call gdscript, which is very similar to Python.
I heard about pygame, I was hopeful but oh well. I also heard about godot but I didn’t know if it was similar to something else.
Try out Godot. It uses a really simple language (gdscript), has excellent learning material, and you can make games!
I would 100% recommend anyone who is serious about programming to learn C first. The syntax is very simple and the language is pretty easy to use. It also gives you a peak under the hood at how all programming languages work because it exposes a lot of control to you.
If you are intimidated by the difficulty of C (which I don’t think you should be — the hard one is C++), start with whichever language matches your interest:
Web dev: JavaScript Game dev: C# AI: Python
But also, remember that a programming language is just that. A language you use to express your ideas. A skilled, highly employable developer will know many languages even if they only use one at their job. Always seek new information and try and advance your learning. The syntax of a language is a pretty minor part of the journey overall and the least important part for a beginner. It’s all about learning how to think and how to express complex processes in a way the computer understands. The language just tells you what words to use once you can already do that.
deleted by creator
Python is easy to learn and marketable. I personally prefer Ruby to Python, but Python is a good place to start. For most AAA games, it’s C++, and yes it’s horrendously complex. I vastly prefer Rust to C++. Good old C is actually a fairly small language, and only moderately difficult.
Thank you for your post, before this thread I thought that all the C named languages (c, c++ and c#) were at least similar but it looks like it’s not the case.
C derivatives are similar in terms of things like imperative control flow, lower-case keywords like
if
, mostly insignificant whitespace,{ }
-delimited blocks, etc., but they can be vastly different in terms of features, semantics, idioms, and typical use cases.It’s like how non-programming languages can use the same Latin alphabet but be vastly different in terms of grammar and culture.
I suggest learning Ruby, it’s a lot nicer and easier to learn than many others in my opinion. You can learn Crystal at the same time, it’s got very similar syntax but it’s a compiled language so super fast.
Thanks, ruby was another language I saw in the thread popping a few times, the first one being python. I I was told a few things python can be good for, can you give me a few examples of good uses for ruby just to have a vague idea?
Ruby has carved space for itself in web application development, but has limited popularity in in other domains. In comparison with Python, Ruby has fewer “old warts” and feels more internally consistent. In a similar manner, both the community and newcomer experience are more cohesive and are considered more friendly, compared to Python.