• 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

    • Save 66% on a MagTag Ultra Slim Tracker Card for Apple or Android by Steven Parker Never Lose Anything Again with MagTag Today's highlighted deal comes via our Gear + Gadgets section of the Neowin Deals store where you can save 66% on this MagTag Ultra Slim Tracker Card - Works with Apple Find My App. Keep track of your world with MagTag, a sleek, ultra-slim, reliable tracker that’s built to help you safeguard your most important items. In the size of a credit card, just 1.5mm thick, you can slip MagTag easily into your wallet, backpack, passport pouch luggage…etc. Integrated seamlessly with Apple’s FindMy app, MagTag offers precise real-time global tracking, instant left-behind alerts, loud location beeping, and a long-lasting rechargeable battery. Whether you’re heading to work, on vacation, or simply running errands, MagTag ensures you never lose what matters most. No item left behind Precision Global Tracking: Works seamlessly with the Apple FindMy app, providing real-time tracking anywhere in the world, powered by the vast Apple network. Ultra Slim Design: At just 1.5mm thick and the size of a credit card, MagTag slips easily into your wallet, passport pouch, backpack, or luggage. Instant Alerts: Receive notifications the moment you leave behind your valuables, and locate them easily with a loud beeping sound. Versatile Attachment Options: With a built-in keyring hole, attach MagTag to keys, ID lanyards, kids’ bags, or name tags for easy access and protection. Long Battery Life & Wireless Charging: Lasts up to 5 months on a single charge and can be easily recharged with any Qi wireless charger. Durable & Waterproof: IP68 waterproof and dustproof built to withstand your adventures, perfect for vacations and everyday use, no matter where life takes you. Specs Color: Black Materials: ABS Dimensions: 0.05" x 3.35" x 2.13" (1.5mm x 85mm x 54mm) Ultra-slim Apple FindMy App Built-in keyring hole Battery life: up to 5 months Charging: Qi wireless IP68 rating (waterproof, dustproof) Manufacturer's 90-day warranty Good to know Ships to US Expected Delivery: Expected Delivery: Jun 23 - Jul 2 All sales final. This item is excluded from coupons. Here's the deal: This MagTag Ultra Slim Tracker Card (for Apple or Android) normally costs $59.99, but you can pick it up for just $19.99 for a limited time - that represents a saving of $19. For a full description, specs, and shipping info, click the link below. MagTag Ultra Slim Tracker Card now just $19.99 (was $59.99) Get the two-pack and save 70% Ships only to Contiguous US Support queries If you have queries or need support for any of the Neowin Deals, please use the contact form here. Neowin Deals are managed and sold by StackCommerce who represent Neowin on an affiliate basis. Why we post these deals We post these because we earn commission on each sale so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. So for those that keep moaning and complaining, be thankful we're still online for you to even do that. Other ways to support Neowin Whitelist Neowin by not blocking our ads Create a free member account to see fewer ads Make a donation to support our day to day running costs Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: Neowin benefits from revenue of each sale made through our branded deals site powered by StackCommerce.
    • I cannot believe this is a news post from Neowin. This should be embarassing, coming from a "senior editor". Is it your first day using Windows?! Maybe it's time to find a new Windows news site.
    • It's from having Core Isolation enabled in Windows security settings, which is a good thing!  It's letting you know it's not loading the Bonjour module as it's not signed in a way it would prefer. Bonjour was most likely installed along with iTunes. Feel free to disable that message using the checkbox.
    • I'm looking forward to starting over online. I have no reason to keep all the money, cars, rank after 13 years. Now if I can just move my character itself and nothing else. I would be fine with that. But I doubt they would do a setup that way.
  • Recent Achievements

    • 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
    • Week One Done
      With What earned a badge
      Week One Done
    • Week One Done
      Harris Gilbert earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      586
    2. 2
      +Edouard
      169
    3. 3
      PsYcHoKiLLa
      73
    4. 4
      Michael Scrip
      66
    5. 5
      ATLien_0
      64
  • Tell a friend

    Love Neowin? Tell a friend!