• 0

What is (are) the best programming language(s) for beginners?


  

465 members have voted

  1. 1. What is (are) the best programming language(s) for beginners?

    • Pascal
      13
    • Java
      68
    • Python
      36
    • Vb.net
      50
    • Basic
      23
    • Delphi
      6
    • C
      37
    • C++
      37
    • C#
      100
    • Smalltalk
      0
    • Lisp
      1
    • A++
      0
    • Curry
      1
    • Haskell
      2
    • Ruby
      12
    • Perl
      8
    • Other (refer)
      9
    • PHP
      62


Question

Recommended Posts

  • 0

I'd say either Java/C# or pure C (not C++ since it's a ****ing mess).

C is better for the basic concepts (pointers, arrays, recursion, etc.), Java/C# to learn Object Orientation.

For IDEs I'd go with Visual Studio for either C or C# (though it's much better when using C#) or Eclipse for Java. I think Eclipse in particular helps when learning (and when actually developing).

  • 0

I wouldn't say that VB (especially .NET) isn't desirable in a professional environment. Short of the syntax, VB.NET and C# are very similar, and VB is only very loosely descended from VBScript. There's still a fair amount of demand for it in business programming (the majority of the code where I work was originally written in ASP, and the developers made the jump to VB ASP.NET, so the majority of our work is still done in VB.NET).

Actually Visual Basic comes from Basic not VBScript ;)

  • 0

Learned Pascal at college, despite the fact that the teacher had pretty much no tutoring skills whatsoever (monotone voice, monotone voice, monotone voice) I still was able to learn a few tricks with it. Voted Pascal.

So, something like this:

  • 0

C# vs. C/C++ yet again...

Everything is based on preference. Some people prefer C#/VB.NET, some prefer C/C++. Who cares, really? People that are genuinely intelligent choose C/C++ over C#/VB.NET because they can handle it, and some of the less intellectually gifted choose C#/VB.NET because it's "easy". They'll be all like: "Oh, hey! Look at me! I can program!" while the rest of us think they're morons.

It also depends on what kind of job you are pursuing. Most software development companies/businesses would prefer you had some experience with C/C++ even if all they use is C#. If you're programming as a hobby, go ahead and do whatever you want. It's that simple. I favor Rudy's opinion on this, I too believe you should start with C and progress, but that's not what this topic is about. It is about the easiest language to learn. C# is not the easiest language to learn. This also depends on your opinion of what a programming language is. JavaScript is considered by some to be a programming language, and it is far less difficult to learn than C# and C/C++. So, don't come here looking for answers, because all you'll get is biased replies.

To all of you who are arguing over which is better, chill out.

  • 0
Everything is based on preference. Some people prefer C#/VB.NET, some prefer C/C++. (...) People that are genuinely intelligent choose C/C++ over C#/VB.NET because they can handle it, and some of the less intellectually gifted choose C#/VB.NET because it's "easy".
So is it based on preference or personal intelligence? I disagree with both alternatives by the way, I think it should be based on what you're trying to achieve by learning a programming language and in what time frame.

And btw intelligence is as much raw learning potential as being able to judge what's worth learning and what's not. While you'll be figuring out how to make your code const-correct, I'll be adding a feature to my AI system in Python; which one of us is smarter now?

  • 0

Everything is based on preference. Some people prefer C#/VB.NET, some prefer C/C++. Who cares, really? People that are genuinely intelligent choose C/C++ over C#/VB.NET because they can handle it, and some of the less intellectually gifted choose C#/VB.NET because it's "easy". They'll be all like: "Oh, hey! Look at me! I can program!" while the rest of us think they're morons.

This is far and away the most ridiculous thing I've read in a long time.

  • 0

Everything is based on preference. Some people prefer C#/VB.NET, some prefer C/C++. Who cares, really? People that are genuinely intelligent choose C/C++ over C#/VB.NET because they can handle it, and some of the less intellectually gifted choose C#/VB.NET because it's "easy". They'll be all like: "Oh, hey! Look at me! I can program!" while the rest of us think they're morons.

Are you serious? Most people program C# over C++ nowadays precisely because it's easier and business requirements dictate they want things done yesterday. Why spend a week programming something when you can do the same thing in 2 days?

It's absolutely nothing to do with intelligence. A lot of C# programmers are former C/C++ programmers.

  • 0

Everything is based on preference. Some people prefer C#/VB.NET, some prefer C/C++. Who cares, really? People that are genuinely intelligent choose C/C++ over C#/VB.NET because they can handle it, and some of the less intellectually gifted choose C#/VB.NET because it's "easy". They'll be all like: "Oh, hey! Look at me! I can program!" while the rest of us think they're morons.

It's called not having to reinvent the wheel for everything you want to do or having to install a ton of libraries and link to several DLLs just to get access to the same functionality.

  • 0
It's called not having to reinvent the wheel for everything you want to do or having to install a ton of libraries and link to several DLLs just to get access to the same functionality.

I don't agree with what he said, but C# without libraries/DLLs is just as non-functional as C++ without libraries and DLLs, people just tend to forget that since Visual Studio spoonfeeds the DLLs to use.

  • 0

I don't agree with what he said, but C# without libraries/DLLs is just as non-functional as C++ without libraries and DLLs, people just tend to forget that since Visual Studio spoonfeeds the DLLs to use.

The BCL is actually standard C# libraries on the same level as the C++ standard libraries, and it surpasses them by far. In addition, even though the rest of the .NET framework isn't technically C# standard libraries, it can be assumed to exist on most Windows machines, and is easily deployed where it doesn't, so it's practically as if it was standard libraries.
  • 0

Are you serious?

No.
Most people program C# over C++ nowadays precisely because it's easier
Like I said, they think it's "easy".
It's absolutely nothing to do with intelligence. A lot of C# programmers are former C/C++ programmers.
Pay attention to the title of this topic. We're talking about beginners here. Not former C/C++ programmers.
  • 0

My opinion is a good language is an honest language. One that doesn't do any 'black magic' behind the scenes. I'm not talking about useful things like regular expressions, libraries providing common code and garbage collection; but some of the strange quirks you get in some basic languages. Like in VBScript wrapping a value in parenthesis changes how it's passed into a function. That not very explicit unless you look it up and so is dishonest to a beginner. Another example is that my first language was Blitz Basic. In BB when you make a new instance of a type (a BB Type is essentially a C struct) it's automatically added to an internal list of Types in the background (so you don't need to store Type instances yourself). In the first few weeks of learning my second language, Ruby, I found it very confusing that it didn't automatically store new objects that I had made in it's own internal lists of objects. I also didn't realise for a while that in most languages you can pass an array into a function (something BB can't do).

When your first language has these quirks, people often presume that they are normal to programming. This holds them back when they go to use future languages and so is a bad thing.

Everything is based on preference. Some people prefer C#/VB.NET, some prefer C/C++. Who cares, really? People that are genuinely intelligent choose C/C++ over C#/VB.NET because they can handle it, and some of the less intellectually gifted choose C#/VB.NET because it's "easy". They'll be all like: "Oh, hey! Look at me! I can program!" while the rest of us think they're morons.

I second that this is utter nonsense. As a Java programmer who only later learnt C and C++ I have to say that pointers and that you manually use malloc/free, really aren't that difficult to learn (I know there is more to those languages then that, but memory management is typically the main thing people say is difficult with C++). Plenty of my university lecturers have also had a long career in C++ and now much prefer using Java. I also know plenty of bad C++ programmers. Finally I'm sure we can all agree there are plenty of unintelligently designed apps and games out there built with C++.

To all of you who are arguing over which is better, chill out.

I do however completely agree with this. I would personally recommend C#, Java, PHP, Ruby or VB.NET; but only because they are good general case choices. It mainly depends on what they plan to do and why. For example I know plenty of business students who have been recommended to learn programming to help complement their business career and for them I'd advise VBA (they will probably need to use Excel a lot in the office). I know a maths graduate who fell in love with Haskell because it can be broken down like a maths formula and so complements his work very well. C++ is also not a bad choice, my brother started with it and he's now a very good professional web developer (maybe as far from typical C++ programming as you can get).

Perhaps it would be better to recommend someone darting between a suite of very different languages then just one? Then they can pick and chose which to become an expert in.

  • 0

Java wins, no contest. It's literally impossible to shoot yourself in the foot with Java unless you are specifically trying to. Java will always (almost anyways) catch your errors, tell you exactly where they are, and sometimes even give hints on how to fix them. This doesn't mean I think Java is the BEST language, it is simply the BEST FOR BEGINNERS because of its strict rules. I would recommend following a learning path something along these lines:

Firstly - Java. It has (mostly) unbreakable rules that will stop silly little errors (like Array index problems) and tell you exactly where they happened. It does this with many other data structures as well which will eliminate many headaches when you are learning about new concepts and data structures in programming (especially if you are new to the entire programming scene). It has massive documentation and has a very strict and non-ambiguous standard (unlike C or C++) - things must be done in a certain way and generally cannot be done in another way. This teaches the student how important coding standards are and how exact and careful you must be when programming. It may be slow because of its half-compiled half-interpreted nature but that's the price we pay for its safety, its built in features like memory management and garbage collection, and its portability. Staying away from concepts like OO may be useful at this point as it will be more beneficial to study the basic aspects of imperative programming. Simple answer: Java has unbeatable safety nets that will make learning about imperative programming concepts(loops, decisions, variables) very easy and with minimal bruises.

Secondly - C. C is of course the big daddy of all languages. It's been around for a long time and is VERY powerful. Once the student has grasped the fundamentals of programming (in the safe confines of Java's strict rules and safety nets), C will let them explore the accessibility of programming and allow them to break some of the strict rules that Java placed on them. Breaking the rules is sometimes not the best idea, but if you know what you are doing (which you should if you have been using Java), bending the rules can be very useful. Concepts like pointers (which for the most part don't really exist in Java for the beginner programmer) may cause issues in the beginning but having a strong background with Java will definitely help. C has a very wobbly standard which makes it not ideal for the beginner programmer. Also, tracking down errors (like array index issues) can be VERY difficult as most of the time the program will simply crash with a memory access error or seg fault - but, again, having a good background by starting in Java will help when tracking down these issues and, hopefully, help the student to avoid the problems in the first place. I would not recommend C for the beginner, and am hesitant to recommend it as a second language, because of how easy it is to make mistakes. However, the wide spread use of C merits its introduction early in the learning process. Simple answer: C is widespread and is an industry standard. It is one of the most powerful languages and supports dozens of standard data structures. A good language to deepen the students understand of the inner workings of compilers along with introducing concepts like memory management and pointers.

Thirdly - C++ (or OO Java). This will bring concepts of Object Oriented programming into the C style world. If the student didn't study objects with Java (Objects may be difficult for beginners), this will be a large jump. However, if they did study Objects, this shouldn't be that big of a step. Again, C++ is widespread and is very powerful which merits in introduction earlier than other languages. It still has pitfalls (possibly more because of the OO style) but is a great place to flex budding programming skills. Simple answer: The next logical step after basic imperative programming and working with C. Introduces OO to the student as well as data encapsulation. Very powerful as well as an industry standard.

Fourthly - Once the student has grasped the fundamentals of Imperative programming (the above languages) it will be very useful to get a concept of the functional world. There are many functional languages out there (ie Scheme, Lisp, ect) and will be very useful in expanding their understanding of computing in general and how languages work. Most importantly it will introduce a very powerful concept: recursion. Simple answer: functional programming will expand the students understanding of computational methods as well as forcing the student to tackle complex (not so much to the programming vet) ideas such as recursion.

Personally, never start out programming with a scripting language. These languages tend to be far to simple and will narrow a a students view of what programming is and how deep it actually goes. Languages like Perl, while very powerful and useful, which have hundreds of different ways of doing the same thing, will tend to confuse the new-comer and make things more complicated then they really are.

Aftermath - Once the student has a grasp of OO Imperative and Functional programming, it will be useful to learn a scripting language such as Perl, Ruby, Python, ect. Stay away from old languages like TCL which are being phased out.

Hopefully at this point the student should have a good understanding of what their skills are and how they want to develop and express their ideas. Different languages have different advantages and lend themselves differently to specific needs.

Using Java in the beginning teaches the student about the rules of programming and how things should be programmed. Once they have this basis in Java, they can move onto things like C and C++ which have much looser rules and are more powerful.

Doubt anyone actually read all of that, but to be truthful this is the way most universities treat programming courses (save full blown CS programs where functional programming rules).

  • 0

I agree with conjur, I started on Java at uni, then 2nd year learnt some C. I eventualy got round to doing some PHP and that was just simple

Java for beginners , its strict enough and kind enough to show you errors and minimize bad habits.

  • 0
[snip]
I would just like to add a few points:

- Everything you said of Java is also true of C#; it's a very similar language. As C# is somewhat superior both in terms of language features and library support (at least on Windows), I would place it before Java.

- Java is not "half-compiled and half-interpreted". It is actually fully compiled, the onyl difference is the later stage of the compilation (bytecode to machine-code) happens just-in-time (at runtime), one method at a time. The performance costs are mainly related to the overhead of "everything is an object" approach and garbage-collection.

- I wouldn't say most universities teach Java first. At least where I study, C is taught first, followed by C++, and you are expected to learn any other required language by yourself afterwards.

  • 0

Depends on platform and usage. I have found C# to be a very intuitive language for Windows based programming and Microsoft now provides free GDIs for hobbyists (ie Visual C# Express 2007, 2010). When doing server sided web programming, I have used both PHP and Perl and they both work well. Perl has the added advantage of being able to be run from command prompt on most linux distros and on windows machines with Perl installed.

  • 0

I would just like to add a few points:

- Everything you said of Java is also true of C#; it's a very similar language. As C# is somewhat superior both in terms of language features and library support (at least on Windows), I would place it before Java.

- Java is not "half-compiled and half-interpreted". It is actually fully compiled, the onyl difference is the later stage of the compilation (bytecode to machine-code) happens just-in-time (at runtime), one method at a time. The performance costs are mainly related to the overhead of "everything is an object" approach and garbage-collection.

- I wouldn't say most universities teach Java first. At least where I study, C is taught first, followed by C++, and you are expected to learn any other required language by yourself afterwards.

C# is, for the most part, not as big of an industry standard as C or C++ or Java for that matter. Why teach a student C# when very few employers actually develop with it? Personally, I find Java to be more widespread than C# and therefore makes it a better choice as a first language.

By half compiled half interpreted I meant that Java is not like most other languages which are either fully compiled (C / C++) or fully interpreted (Perl, Schene). Java is essentially both - even if it isn't a 50-50 mix, or 70-30 mix, or 99-1 mix, it doesn?t matter. The point is Java is neither fully compiled nor interpreted - it's somewhere in between. That statement was not meant to be 100% accurate.

And up until a few years ago, the University of Waterloo (one of the most distingused and recognized schools in Canada) taught Java in their first years. They since have moved to C and C++ but there has already been some resistance to that change - mainly because C has to many nuances that first years find difficult.

  • 0

C# is, for the most part, not as big of an industry standard as C or C++ or Java for that matter. Why teach a student C# when very few employers actually develop with it? Personally, I find Java to be more widespread than C# and therefore makes it a better choice as a first language.

That matters very little. Very few? I think that's a little strong. If you're going that way, why teach them c/c++ when a good majority of them are not going to get in systems and/or game programming? Whatever they learn in one class about a language is not going to be enough for them to take to work. They'll get their feet wet, sure. But there's no way that the class on a language is going to significantly prepare them for the real world. I've been there. I've seen people move from college to the real world for years. They will need to learn on the job, and do things on their own. Also, learning the syntax of a language will be the least of their concerns.

Secondly, school should not be about learning a language really well and then handing them off to work. The programs should not be expensive language training classes. The most important concern should be the foundation. I think there's a problem when a student has taken two Java classes, but has never had a chance to understand and create unit tests and automated builds.

  • 0

That matters very little. Very few? I think that's a little strong. If you're going that way, why teach them c/c++ when a good majority of them are not going to get in systems and/or game programming? Whatever they learn in one class about a language is not going to be enough for them to take to work. They'll get their feet wet, sure. But there's no way that the class on a language is going to significantly prepare them for the real world. I've been there. I've seen people move from college to the real world for years. They will need to learn on the job, and do things on their own. Also, learning the syntax of a language will be the least of their concerns.

What is funny is that the University of Waterloo (of which I am a student) has one the BEST co-op programs in all of Canada. And Software Engineering students, as well as CS students, only have 8 months of classes (at most two full classes of programming) and then get jobs with actual developers for a 4 or 8 month term. Currently, they have an intro class on C and a little C++ then are thrown into the work world for a term or two. So when you say "one class isnt enough", just look at the some 100 students (per class) every term that prove you wrong.

For the most part, my points about the language choices have nothing to do with syntax; they have to do with ease of use, established standards, and forgiving compilers. When using C or C++, an array index issue will generally just crash your program. With Java, it'll spit out an error telling you when what where how who it all happened to. If I were learning about programming, I would MUCH rather have the latter.

  • 0

What is funny is that the University of Waterloo (of which I am a student) has one the BEST co-op programs in all of Canada. And Software Engineering students, as well as CS students, only have 8 months of classes (at most two full classes of programming) and then get jobs with actual developers for a 4 or 8 month term. Currently, they have an intro class on C and a little C++ then are thrown into the work world for a term or two. So when you say "one class isnt enough", just look at the some 100 students (per class) every term that prove you wrong.

Yes, it's enough to get them an internship, which is all well and good, but one class is not enough to make them even close to a fluent developer in any language, which was my point. Most students can get internships in any college that they go to. Some schools even require internships. Again, one class isn't enough.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • BrowserOS 0.46.0 by Razvan Serea BrowserOS is a free, open-source Chromium-based browser that runs AI agents natively, offering a smarter, more productive browsing experience. It supports Chrome extensions and integrates AI agents to automate tasks, fill forms, and streamline workflows. Your data stays on your computer: you can use your own API keys or run local models via Ollama, making it a privacy-first alternative to tools like Perplexity, Comet, or Dia. With built-in productivity tools and app integrations, BrowserOS boosts efficiency while keeping control firmly in your hands. Being Chromium-based, BrowserOS lets you effortlessly import your bookmarks, passwords, and Chrome extensions in just a few clicks. BrowserOS works with OpenAI GPT models, Anthropic Claude, Google Gemini, and local AI models via Ollama or LMStudio. You can use your own API keys and effortlessly switch between providers. BrowserOS Agent Your AI productivity assistant that organizes and manages your browsing effortlessly Quickly list, group, or close tabs Save and resume browsing sessions Search your history and organize bookmarks Switch instantly to the tab you need BrowserOS Navigator – Automate web tasks with ease Navigate websites and search automatically Interact with pages without manual effort Handle repetitive tasks in seconds What makes BrowserOS special Feels like home - same familiar interface as Google Chrome, works with all your extensions AI agents that run on YOUR browser, not in the cloud Privacy first - bring your own keys or use local models with Ollama. Your browsing history stays on your computer Open source and community driven - see exactly what's happening under the hood MCP store to one-click install popular MCPs and use them directly in the browser bar (coming soon) Built-in AI ad blocker that works across more scenarios! BrowserOS 0.46.0 changelog: Run Claude Code & Codex right in your browser — We've extended the agent harness to bring full coding agents into BrowserOS. Claude Code and Codex now come bundled and plug straight into the assistant, so you can drive your browser with the agent — and the subscription — you already use. A brand new experience — A redesigned new tab, a calmer composer, and a rebuilt command center for switching between agents. The whole assistant is cleaner, faster to reach, and easier to live in. New MCP tools — We rebuilt the browser tool surface from the ground up — a tighter, more reliable set of tools for agents to drive the browser. Plus one-click install of BrowserOS as an MCP server into the agents you already run, with automatic URL sync. Chromium 148 — Updated to the latest Chromium base with all recent upstream fixes and security patches. Streamlined — We've pulled back a few features that weren't getting much use — Skills, Soul, and Memory — so we can focus and ship better versions of them soon. Download: BrowserOS 0.46.0 | 181.0 MB (Open Source) Download: BrowserOS for macOS | 485.0 MB Links: BrowserOS Homepage | Github | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Microsoft finally admits its default Windows 11 25H2, 24H2 action broke key legacy component by Sayan Sen Microsoft last week released Windows 11 KB5094126 and KB5093998 as the latest Patch Tuesday updates. Following that the company also published the accompanying dynamic updates under KB5094149, KB5095971, and KB5094156. So far the company has acknowledged two known issues that have popped up after the release which include bugged-out Office apps as well as the Recycle Bin; though there could be more at play too. Speaking of bugs and issues, Microsoft seems to have finally acknowledged a problem that probably has been around for close to a year. That's because back in July of 2025 the company made a default change to the latest Windows 11 versions, wherein it switched to JScript9Legacy on Windows 11 24H2 and later releases. Hence following the release of version 25H2 in October 2025, JScript9Legacy also remained default-enabled. As a result there has been a compatibility issue ever since then. For those wondering, by switching to JScript9Legacy Microsoft intended to improve the security of modern Windows PCs by reducing vulnerabilities tied to legacy scripting like cross-site scripting (XSS), among others. XSS exploits can allow cyber-attackers to attach malicious code onto legitimate websites and use them to execute the code when a potential victim loads such a website. Hence the new JScript9Legacy engine enforced stricter execution policies and improved object handling, which should help mitigate such attacks. Microsoft today has published a new support article detailing the problem. Neowin spotted it while browsing. The company says that JScript global definitions and execution context may fail to persist across scripts, potentially breaking older dependent apps and web-based components that relied on this legacy behavior. In the article Microsoft has confirmed that the issue stems from its move away from the older jscript9.dll engine in favor of jscript9legacy.dll. As mentioned above, while the newer engine was designed to address vulnerabilities and strengthen security it also changes how JScript handles execution context. As a result functions and definitions loaded by one script could no longer remain available to subsequent scripts once execution ended. The company notes that some applications worked correctly on earlier Windows versions because the older JScript engine automatically retained global definitions and execution state between scripts. Under the newer model though that behavior is disabled by default causing certain legacy workloads and polyfill-dependent scripts to fail. Microsoft says it addressed the problem via the KB5077241 update though the fix had not been enabled automatically in the following updates. As such admins must explicitly turn on persistent JScript execution context using a Registry setting that the tech giant shared today. The configuration can be applied to individual processes or system-wide through the FEATURE_ENABLE_PERSISTENCE registry key. The steps have been outlined below: Run the following command to create the feature control registry key: reg add "HKLM\Software\Policies\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PERSISTENCE" Under this key, create a new DWORD (32-bit) value. Configure the value as follows: To enable persistence for specific processes only: Set the value to 1 for each target process name. To enable persistence for all processes: Add * as the key name and set its value to 1. You can find the official support article here on Microsoft's website.
    • The possibility that milk gathers back into a glass implies that gravity can be 'reversed'.
  • Recent Achievements

    • Week One Done
      Jordan Smith earned a badge
      Week One Done
    • Reacting Well
      BizSAR earned a badge
      Reacting Well
    • First Post
      AndreaB earned a badge
      First Post
    • Week One Done
      Huge Trailer earned a badge
      Week One Done
    • Week One Done
      Classifyskilleducation earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      590
    2. 2
      +Edouard
      186
    3. 3
      PsYcHoKiLLa
      76
    4. 4
      Michael Scrip
      73
    5. 5
      Steven P.
      66
  • Tell a friend

    Love Neowin? Tell a friend!