• 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

Let's say someone's starting off with a background (from 10+ years ago) in Visual Basic. Going back into programming without all that much knowledge. Would eventually like to make little 2D games and helpful little apps, maybe contribute to open source projects. C#, C++? I'm leaning C++ right now with a later transition into C# and maybe some Objective C for ipod app development in the future.

I'm starting off quaint, but would like to turn it into a profession.

  • Like 1
  • 0

Depends what kind of open-source projects. I'd say open-source projects use C++ more than any other language, although often they have no reason for using C++ other than making their lives more miserable than need be (and ensuring the project fails). Still, a lot of them use C#, Python and others.

C++ is great for learning how computers and operating systems work, while getting acquainted with principles of OOP. It's not so great for making desktop applications, in general. What bugs me is how C++ is selected sort of "by default" for many projects when there are a lot of better choices out there, choices that would lead to a faster and less frustrating development experience, and probably to a better product in the end. C++ is held in way too high esteem. Sure, you need it to develop for PS3. But for Windows? Maybe, but probably not.

  • 0

I learned C++ first, then Java, C#, Perl, then C for system programing, and sone other stuff that I forgot like smalltalk, scheme, and prolog for my Programing languages course. Oh also FuzzyCLIPS for my Intelligent Systems course.

  • 0

I learned Visual Basic (back when it was VB6) and then learned Java. I'd say Java is the more powerful of the two, but VB may help you get your head around programming concepts a tad easier (this IMO is the absolute greatest barrier to learning programming in any language - it's a total paradigm shift in thinking patterns). After learning Java and VB I eventually moved onto C++, which is also a great programming language (but definitely not for beginners IMO). You can learn C#, it's okay, but once you've learned VB, Java and C++ learning C# is well, up to you. At the moment I'm re-learning Java (it's easy enough to forget after 3 years of constant C++) but definitely going to be moving onto PHP and Objective-C because I'm one of those weird people that just love to learn it for fun - PHP more specifically will become useful for me as it'll help me make improvements to the forum I'm an admin on, but that's another story altogether.

So, tl;dr, just go for Java. It's easy enough to begin with and it'll help you pick up common programming concepts fairly easy too.

EDIT: Also, what revvo said.

  • 0

Suggesting to start on a harder, heavier language? Really?

I am keen to understand your thoughts further?

Once you learn C and C++ going to higher level languages like Java, C# and Objective-C is a piece of cake. I also believe some of the concepts you learn with a lower language like C are very valuable in understanding how programming work...something that will be harder to learn in a higher level language

If he just wants to code for fun and he doesn't really care about programming, going straight to C# or Java is a pretty good idea

Rudy doesn't believe a person should enjoy learning to program. Don't mind him.

No, I just believe there are valuable lessons to be learned from C and C++

If he just wants to program as a hobby and isn't very serious about it then by all mean go straight to a higher level language like C#

  • 0

I learned C++ first, then Java, C#, Perl, then C for system programing, and sone other stuff that I forgot like smalltalk, scheme, and prolog for my Programing languages course. Oh also FuzzyCLIPS for my Intelligent Systems course.

Forgot Assembly (hate it, hate it, HATE IT), Verilog, VHDL. I think out of all the languages I learned I really like Verilog. I had to simulate a CPU with it and I felt it was my only class where I was doing real work. Java and Assembly were just create games classes and I learned a lot about Object-oriented programming with Java so I agree with people who are saying to take that first. Java almost does everything plus the kitchen sink and the Java API Docs are some of the best (along with .NET's) documentation I have seen.

  • 0

There is no reason why C or C++ can't be enjoyable to learn. It all comes down to whether you have a real interest in learning how things work, or if you just want to push a few buttons in a wizard and be instantly rewarded on a massive scale. Pick whatever suits your style.

  • 0
No, I just believe there are valuable lessons to be learned from C and C++

If he just wants to program as a hobby and isn't very serious about it then by all mean go straight to a higher level language like C#

While I agree that learning C++ should be part of the curriculum of any serious programmer, it's questionable whether it should be chosen as a first programming language. One can very well learn memory management and the low-level APIs like Win32 after having learned variables, loops, classes, encapsulation, etc., in a higher-level language. As a path it presents less resistance and more gratification. I was exposed to a variety of programming languages before C++, some old and cruddy, some very good, as a result I already had a critical look at it when I started. I remember asking my teacher why were header files needed (unlike in any other language, save for C, but I didn't know C)... he said it was because it was cleaner to have the declaration separate. :laugh:
  • 0

There is no reason why C or C++ can't be enjoyable to learn. It all comes down to whether you have a real interest in learning how things work, or if you just want to push a few buttons in a wizard and be instantly rewarded on a massive scale. Pick whatever suits your style.

Name one programming language where you can "push a few buttons in a wizard" and magically have a program that can do everything.

Go ahead. I'm waiting. :rolleyes:

  • 0
One can very well learn memory management and the low-level APIs like Win32 after having learned variables, loops, classes, encapsulation, etc., in a higher-level language.

You can learn all about variables, loops, classes, encapsulation, etc in C++ without having to worry about advanced memory management and low-level APIs. All that complicated stuff can be done whenever the person feels ready. It's very easy to make a simple app in C++.

  • 0

I've found Java and C# are good because they take something from a bunch of languages, which makes learning other things easier. PHP is a good in-between for scripting and programming, but I've found that my PHP habits create some re-familiarization time when switching to Java. Python and VB, don't like the syntax, and it's very different from other languages so transitioning would be a bit more difficult.

  • 0
As a technical lead I am begging you to stop suggesting C# as a beginners language. I ve seen it all.

Start with VB and when you realise whats going on in the .NET Framework start looking into C#. VB gives you lots of bad habbits though...

Care to explain why C# wouldn't be a good choice? And why do you recommend VB instead if it teaches bad habits?
You can learn all about variables, loops, classes, encapsulation, etc in C++ without having to worry about advanced memory management and low-level APIs. All that complicated stuff can be done whenever the person feels ready. It's very easy to make a simple app in C++.
It's not so much the memory management that's the problem, it's the confusing syntax, the complicated compilation model (you can't get away without understanding the concept of translation unit and the real purpose of header files for long), the poor libraries, the duplicated features (is a string const char* or std::string? C or C++ libraries? etc.), and the relatively unhelpful IDE support, that all combine to produce a remarquably painful experience before you learn your way around all that stuff. Which gets in the way of learning basic concepts such as variables, loops etc.

Example: in C#, to be able to use a class, I just have to write that code somewhere in the project. In C++, I have to ensure the declaration will be accessible in any translation unit in which I want to use the class, that the declaration is guarded from multiple inclusion using include guards, and that the code corresponding to the declaration is available at link time otherwise I will get an error with mangled names that doesn't reference any particular line of code. Oh, and what was that thing about forward declarations?

It gets messy real quick.

  • 0

As pointed out before in this thread, C/C++ forces you to learn lots of things that you probably won't see again in languages like C#, Visual Basic and Java. So for a nice start and learning the basics, I'd recomend anyone to use a high level programming language.

My personal journey started in C/C++, then moved on to VB where I really learned the programmers way of thinking. Then I moved back to C++ again quickly followed by Java. All of those where in a professional environment except for the very first C/C++ teachings. Looking back at those experiences I dont think it makes much difference if I had learned Visual Basic or Java before C++, but I know that first strugle with C/C++ was often about problems not related to any simple programming in itself.

In terms of C#, it was a walkover to learn after Java, and I feel that you can master that basics of any of those and easily enough go into the other.

Because I have something of a softspot for C# with WPF/XAML and LINQ I voted for this.

  • 0

There is no reason why C or C++ can't be enjoyable to learn. It all comes down to whether you have a real interest in learning how things work, or if you just want to push a few buttons in a wizard and be instantly rewarded on a massive scale. Pick whatever suits your style.

Since this is your claim, why don't you answer?

You said it, not me. Therefore, YOU should be the one answering. And if you're complaining about how I didn't quote the phrase verbatim, well get a grip and don't be such a hardass.

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

    • No registered users viewing this page.
  • Posts

    • Flameshot 14.0 Final by Razvan Serea Flameshot is a free and open-source, cross-platform tool to take screenshots with many built-in features to save you time. Using Flameshot is as simple as launching, dragging the selection box to cover the area you want to capture, making annotations as needed in on-screen and saving the shot to your computer, all with a very simple and straightforward interface. Flameshot allows users to simply upload their screenshots directly to the cloud in order to easily share it with others. You can upload your image directly to Imgur with a single click and share the URL with others. In-app screenshot editing - You can choose to add an arrow mark, highlight text, blur a section (blur or pixelate an area), add a text, draw something, add a rectangular/circular shaped border, add an incrementing counter number, and add a solid color box with Flameshot's built-in editing tools. Command-line interface (CLI) - Flameshot has several commands you can use in the terminal without launching the GUI via a command line interface. The command line interface lets you script Flameshot and use it as the subject of key binds. Flameshot 14.0 release notes: This release brings major improvements to multi-monitor support, fractional scaling support, new capture workflows, and a long list of bug fixes across all platforms. Changelog: New Multi-Monitor Capture Workflow New monitor selection screen before capture for better multi-monitor and mixed-scaling support. Option to auto-capture the monitor under the cursor (X11 & Windows). Tray menu can directly select a monitor. Linux Improvements XDG Desktop Portal is now the primary screenshot method. Added legacy X11 fallback option for minimal window managers. New D-Bus capture API for scripting and automation. Windows Enhancements Global screenshot hotkeys now supported (not limited to Print Screen). New portable mode stores settings next to the executable. Clipboard now always uses PNG format for better compatibility. CLI & Platform Updates Redesigned flameshot screen command with per-monitor capture support. Added native Nix Flake support. More compact launcher UI and improved update notifications. Major Fixes Multiple Wayland stability fixes, including KDE Plasma crash fixes. Clipboard compatibility improvements for GNOME, Wayland, X11, Windows, and macOS. Fixed D-Bus hangs, capture crashes, and HiDPI region issues. Other Changes Dropped Ubuntu 20.04 (Focal) support. Updated translations and build infrastructure. Intel macOS builds are no longer provided. [full release notes] Download: Flameshot 14.0 | 18.1 MB (Open Source) Download: Flameshot Portable | 53.0 MB Links: Flameshot Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Helium Browser 0.13.4.1 by Razvan Serea Helium is a private, fast, and honest Chromium-based web browser — built for people, with love. It offers the best privacy by default, unbiased ad-blocking, and a clean experience free from bloat and noise. Proudly based on Ungoogled-Chromium, Helium removes Google’s clutter while keeping a fast, efficient development pipeline. With thoughtful touches like native !bangs and split view, Helium is a people-first, fully open-source browser that puts control back in your hands. Privacy, security, and control come first. Ads, trackers, and third-party cookies are blocked automatically, HTTPS is enforced everywhere, and all Chromium extensions work seamlessly — while Google can’t track your activity. Helium’s 13,000+ offline-ready !bangs let you jump straight to sites or AI tools like ChatGPT instantly. Open-source, people-first, and unbiased, Helium delivers a browsing experience that’s fast, secure, and free from noise, ads, and compromises. Helium Browser key features: Performance Fast, efficient, and lightweight — built on Chromium’s optimized engine. Energy-saving and consistent — stays fast over time without slowing down. No bloat — stripped of unnecessary components for maximum speed. Minimalist interface — compact, clean, and distraction-free. Customizable toolbar — hide elements you don’t need. Smooth and stable — no flicker, lag, or animation glitches. Comfort-focused experience — intuitive and unobtrusive. Privacy & Security Best privacy by default — blocks ads, trackers, phishing, and third-party cookies. Unbiased ad-blocking — powered by community filters and uBlock Origin. No telemetry or analytics — zero background web requests on first launch. Strict HTTPS enforcement — warns for insecure sites. Passkeys supported — modern authentication made simple. No built-in password manager or cloud sync — your data stays yours. Extension Compatibility Full Chromium extension support — including MV2 extensions. Anonymized Chrome Web Store requests — Google can’t track extension installs. Extended MV2 support — maintained for as long as possible. Smart Features Native !bangs — browse faster using 13,000+ offline-ready shortcuts. AI integration — use !chatgpt and others directly from the address bar. Offline functionality — bangs work without an Internet connection. Philosophy People-first design — open source, transparent, and community-driven. No ads, no noise, no bias — privacy and honesty over profit. Helium Browser 0.13.4.1 changelog: 0a4f1149 revision: bump to 4 (#1969) 4848de1f helium/core: enable the chromium screenshot feature (#1968) e0dec3f5 onboarding: integrate strings to i18n system (#1948) 417fa5bc i18n: fix newline parsing for onboarding 7a339b39 i18n: add foraged translations for onboarding 4f090cff i18n/generate: add handling for onboarding strings bfe48d58 i18n_apply: manually override parent grd logic for onboarding strings ab214e3c onboarding: bump in deps, wire up grdp afa6a059 helium/core: disable pdf infobar feature (#1965) eba585e7 helium/ui/vertical: fix new tab button alignment and icon size (#1964) 6ecfc9e0 helium/ui/tabs: fix horizontal tab hover background color (#1963) 3db87dc0 helium/ui/tabs: fix new tab button hover/press colors (#1962) 6bbdcc3e helium/ui: improve tab group UI in all layouts (#1961) 53deb314 helium/ui/tabs: enable tab group hover cards e93aece7 helium/ui/vertical: fix tab group appearance, prevent line overlap 629f5495 helium/ui/tabs: restore solid group header colors, enable new colors 961c962e helium/ui/tabs: move horiz tab group underline to bottom, make it thick c96deab6 merge: update to chromium 149.0.7827.155 (#1959) 36db56b4 i18n: update source.gen.json 5ce006ae patches: refresh for chromium 149.0.7827.155 b4c1ea62 merge: update ungoogled-chromium to 149.0.7827.155 4e5e8671 Update to Chromium 149.0.7827.155 08a3e7da helium/ui/layout: disable mute on collapsed vertical tabs (#1778) a0a5bbaf helium/core: simplify context menu and prevent huge widths (#1951) c4732aac devutils/i18n: add forage command (#1944) 11d16986 devutils/i18n: add an option to translate using local CLI tools (#1942) d820c3a2 i18n/prompt: tighten translation rules to prevent common errors (#1940) cf827007 Update to Chromium 149.0.7827.114 6e3d5164 Update to Chromium 149.0.7827.102 Download: Helium 64-bit | Portable 64-bit |~100.0 MB (Open Source) Download: Helium ARM64 | Portable ARM64 Links: Helium Home Page | macOS | Linux | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • 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
    • One Month Later
      eurospharma62 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      579
    2. 2
      +Edouard
      183
    3. 3
      PsYcHoKiLLa
      75
    4. 4
      Michael Scrip
      73
    5. 5
      neufuse
      64
  • Tell a friend

    Love Neowin? Tell a friend!