If you like DNray Forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...

 

Which programming language is best to learn from scratch?

Started by arsalan, Apr 15, 2023, 12:07 AM

Previous topic - Next topic

arsalanTopic starter

Hello everyone! I am planning to learn programming and I am seeking advice on the best language to start with.
My interest lies in software development, rather than web development, so I have excluded PHP from consideration.

Also, I have ruled out Python as I am looking for a more advanced programming language. Eventually, I would like to create indie games, but for now, I want to focus on software.
So, my question is - should I start with C#, C++ or Java? I am a beginner and would appreciate any guidance.
  •  


lStacaec

In my opinion, most of the modern programming languages have a low enough difficulty level to start learning from them without needing to go for easier options. Some good examples include C#, C++, and Java. I'll provide a brief overview of each language:

C#: This is a personal favorite of mine. It has great prospects, especially considering that it can be translated into bytecode (similar to Java), which allows for multiplatform potential. Microsoft is slowly opening up some of its sources, which is adding to this potential. The language is relatively new, which gives it a neat and clean syntax with few glitches. If you're interested in indie game development, Unity3D is a good choice for C#.

C++: This is almost a universal language. If you decide to learn it, I suggest using the Qt framework to get a wonderful cross-platform experience. Personally, I don't like the explicit pointers and some of the crutchy decisions made for backward compatibility with older versions of the language. On the bright side, there are plenty of game development opportunities with engines like Unreal Engine 4, CryEngine 4, and Source 2.

Java: Unfortunately, I'm not too familiar with Java. However, one of its advantages is the high demand in the job market. You won't go wrong with Java, but as with any "serious" game engine, Java isn't used as much as other languages.
  •  

balkonreont

Perhaps you may want to consider searching the internet for answers since questions like these are frequently asked.
It seems that you have already made up your mind about Python despite not having any programming experience. However, it's worth noting that Python is the most commonly taught language in technical universities across the USA for a reason. Ultimately, you are an independent thinker and do not necessarily need to rely on the opinions of others.
  •  

atele

If you're a beginner, don't bother with OOP languages. Begin with C instead and spend a few months working hard on it to gain a thorough understanding of memory devices and the workings of computers in general.
Once you've spent a year mastering C, you can choose to learn another language if you wish.
  •  

irfnz

If you're looking to focus on software development and eventually want to create indie games, C#, C++, and Java are all great choices. Each has its own strengths and applications. Here's a breakdown that might help you decide:

C#: C# (pronounced as "C sharp") is a versatile language primarily used for Windows application development and game programming with the Unity game engine. It's beginner-friendly, has a large community, and offers excellent support from Microsoft. It's a good choice if you want to develop desktop applications, web applications using ASP.NET, or work in the Unity game development ecosystem.

C++: C++ is a powerful language known for its performance and low-level control. It's widely used in game development (especially for AAA games) and other performance-critical applications. Learning C++ can be more challenging for beginners due to its complexity, but mastering it can open up a lot of opportunities in various fields of software development.

Java: Java is an extremely popular and versatile language used for a wide range of applications, including desktop, web, and mobile development. It's known for its portability, scalability, and huge ecosystem. Java is widely used in enterprise software development and Android app development, making it a solid choice for building robust and scalable software applications.


C#:

- C# is developed by Microsoft and is part of the .NET framework. It has a syntax similar to that of Java, so if you decide to learn Java later on, it may be easier for you.
- The Unity game engine uses C# as its primary programming language, making it a popular choice for game development.
- It has a large community and extensive documentation, which can be beneficial for beginners, as you can find plenty of resources and support.
- C# is widely used for Windows desktop application development and web development using ASP.NET.

C++:

- C++ is known for its high performance and low-level control over system resources, making it a popular choice for game development, graphical applications, and embedded systems.
- Learning C++ can be more challenging for beginners due to its complexity and flexibility. It requires understanding concepts like memory management, pointers, and manual memory allocation.
- It allows you to have more fine-grained control over hardware resources, which can make it suitable for optimizing performance-critical applications.
- C++ is used in many industries, including gaming, finance, and systems programming.

Java:

- Java is a versatile language with a "write once, run anywhere" principle, meaning that Java programs can run on any platform that has a Java Virtual Machine (JVM).
- It has a large and active community with abundant libraries and frameworks available, making development efficient and productive.
- Java is widely used for enterprise software development, building web applications, server-side development, and Android app development.
- It has a simpler syntax compared to C++ and offers garbage collection, which helps manage memory automatically.
  •  


If you like DNray forum, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...