We'd like to remind Forumites to please avoid political debate on the Forum... Read More »
We're aware that some users are experiencing technical issues which the team are working to resolve. See the Community Noticeboard for more info. Thank you for your patience.
📨 Have you signed up to the Forum's new Email Digest yet? Get a selection of trending threads sent straight to your inbox daily, weekly or monthly!
Best Beginner Programming Language?
Options
Comments
-
ringo_24601 wrote: »MUMPS or COBOL, obviously... #Kidding
I honestly don't think it makes a jot of difference as long as you gain a 'developers' brain, and understand OOP while your're at it.
I make a living doing a bit of Cach! ObjectScript (Which is OOP MUMPS), JavaScript, VBA, Java with the occasional sprinkling of C#. In the past i've worked using Python, PHP and Perl, plus a few other 'bespoke corporate' languages.
Once you've got the knack of it, you should be able to pick up a new language pretty quickly. I've got my 6 year old learning Scratch 2.0 at the moment
Scratch is cracking for learning the concepts - even though it is aimed at kids I can see it being useful to anyone who wants to get their heads around the different concepts/constructs.0 -
Scratch is cracking for learning the concepts - even though it is aimed at kids I can see it being useful to anyone who wants to get their heads around the different concepts/constructs.
I believe a beginners language should be easy to read and easy to 'try out'. If I want to learn how to write a loop saying "Hello, world!" 10 times, it should need me to write more than a few lines of code in a 'beginners' language.
I think rather than C#, Python would much more appropriate for a grown up to start learning. Here's a place to start: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2008/
(Admittedly, I led a revolt on my Masters course to replace the 'programming language of choice' from Python to Perl... but I was young, naive, and wanted to learn a language relevant to the industry I was going to work in - which turned out to be an industry full of people who liked scripting languages)0 -
I've been reading this thread with interest.
As someone who spent 40 years as a software engineer/programmer who can develop in a whole raft of languages I can say that there's no absolutely correct answer.
Perhaps the nearest thing to a correct answer is to choose a language that is aimed at what you want to do with it.
Most people start out with a goal or project and then decide what it should be written in. For you that seems to be App based, not an area I've ever been involved in.
For me and what I'm doing at the moment the only really logical choice is Python and *nix shell scripts.
If I was handling lots of files it would be C or one of its derivatives due to speed but even this is a personal choice as there are plenty of other languages that can do the job.One by one the penguins are slowly stealing my sanity.0 -
ringo_24601 wrote: »I believe a beginners language should be easy to read and easy to 'try out'. If I want to learn how to write a loop saying "Hello, world!" 10 times, it should need me to write more than a few lines of code in a 'beginners' language.
If you start with a good C# beginners book (or course), it should still start with "hello world". Couple of clicks first to create a consol app and it will tell you to ignore the extra code it's created till you need to know. Then variables, then controls, arrays etc till you get onto objects, then inheritance, then the world is your oyster....
Dive into the other products as they come up in the courses. SQL Server, XML etc.
For me, the C# world is so tidy, I wish I was learning now, rather than hacking around with C++ in emacs (or worse), random libraries, various compilers etc. Don't get me started on 'make files'.
Java is always an option. I only did it for a while and really hated it. Can't remember why. Possibly early days with really bad development environments.0 -
ringo_24601 wrote: »This is where I believe a 'beginners' language should start - getting someone use to variables, conditional statements, loops, actions and events - Pointing a newbie to C# is likely to put them off coding altogether.
I believe a beginners language should be easy to read and easy to 'try out'. If I want to learn how to write a loop saying "Hello, world!" 10 times, it should need me to write more than a few lines of code in a 'beginners' language.
Install VS. New Console Applicationusing System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { for (int i=1; i <= 10; i++) { Console.WriteLine( string.Format("{0}: {1}", i, "Hello World") ); } Console.ReadKey(); } } }
The only code required to write was the for loop.
However, as you already tinker with PHP then I would just continue with that plus HTML and Javascript as you want to do websites. In main stream languages the concepts are all the same. It's only the syntax that is different and you should be able to move across different languages quite easily.
Personally, I find c#/ASP.NET a nicer language to use than PHP or Java but as a developer you learn to choose the best language for the required task so you need to be adaptable.
Use Java for Android apps and Objective C for ios. I wouldn't consider C or C++ unless you want to work on legacy apps, embedded devices, low level OS programming or graphics.
Also make sure you know your way round a database using SQL for CRUD.0 -
Can't really see how C# would put someone off.
Install VS. New Console Applicationusing System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { for (int i=1; i <= 10; i++) { Console.WriteLine( string.Format("{0}: {1}", i, "Hello World") ); } Console.ReadKey(); } } }
The only code required to write was the for loop.
However, as you already tinker with PHP then I would just continue with that plus HTML and Javascript as you want to do websites. In main stream languages the concepts are all the same. It's only the syntax that is different and you should be able to move across different languages quite easily.
Personally, I find c#/ASP.NET a nicer language to use than PHP or Java but as a developer you learn to choose the best language for the required task so you need to be adaptable.
Use Java for Android apps and Objective C for ios. I wouldn't consider C or C++ unless you want to work on legacy apps, embedded devices, low level OS programming or graphics.
Also make sure you know your way round a database using SQL for CRUD.
cracking point fella, crud operations is something that hasn't been mentioned before now - might also be worth looking up on RESTful operations as well0 -
Can't really see how C# would put someone off.
Install VS. New Console Applicationusing System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { for (int i=1; i <= 10; i++) { Console.WriteLine( string.Format("{0}: {1}", i, "Hello World") ); } Console.ReadKey(); } } }
The only code required to write was the for loop.
However, as you already tinker with PHP then I would just continue with that plus HTML and Javascript as you want to do websites. In main stream languages the concepts are all the same. It's only the syntax that is different and you should be able to move across different languages quite easily.
Personally, I find c#/ASP.NET a nicer language to use than PHP or Java but as a developer you learn to choose the best language for the required task so you need to be adaptable.
Use Java for Android apps and Objective C for ios. I wouldn't consider C or C++ unless you want to work on legacy apps, embedded devices, low level OS programming or graphics.
Also make sure you know your way round a database using SQL for CRUD.
The catch with anything OO based as a learner language is the time it takes for the penny to drop while you're figuring out what OO is all about.
Granted, I was stoned for quite a bit of it, but it took me 6 infuriating weeks and then suddenly it hit.
Start with something procedural and you're learning and creating from day one.
And the reason I say pascal, it encourages you to think about the steps of what you're coding rather than just loading a class that does it all for you, and it makes you be accurate.Yes it's overwhelming, but what else can we do?
Get jobs in offices and wake up for the morning commute?0 -
Think I'm going to give C# a whirl. With maybe a Python course as a primer.
Really like the look of Xamarin, the brainchild of Nat Friedman, whose blog I used to read many years back. I was going to build the App I had in mind in Livecode as it is very easy to make for many different platforms but that is a whole new code in itself. But Xamarin looks to be a good solution, I get my apps made and learn C# too.
Thanks for the contributions everyone, a great thread. The crucial thing is whether I enjoy or have a passion for programming, otherwise its back to the drawing board career wise. I've got 2 months to decide, then the money runs out and its get a job time. Any job!0 -
ClarkeKent wrote: »Thanks for the contributions everyone, a great thread. The crucial thing is whether I enjoy or have a passion for programming, otherwise its back to the drawing board career wise. I've got 2 months to decide, then the money runs out and its get a job time. Any job!
Do you like solving logic puzzles? Programming is like solving puzzles all day every day. In real life programming you're also always trying to model the illogical and imperfect world within perfect frameworks. You learn arcane languages to cast spells, so you're a part mystic wizard too.
Here's a quick test for you - for anyone here who fancies it, actually. Imagine I've given you a robot that understands basic English, is incredibly obedient, and will enthusiastically follow every instruction without question. If you tell it to "go through the door", it will do exactly that, probably smashing it or drilling it or burning it. Even if the door is open (as we understand it), it would spend half a day following the instruction to go through the door, and trash your house...
You may not thank me for this robot at first, but by leaning to see the world through its eyes, you learn how to communicate with it. When you want it to make a cup of tea (lift the kettle from its base, carry it to the sink, remove the kettle lid, turn on the cold tap, move the kettle into the flow of water and remove it when (how much water?) had been added) you give it a list of steps after breaking the problem down into chunks. Try finishing the tea-making exercise. Without a doubt you'll find that you miss things, misphrase things, or are ambiguous. That's all OK, just keep going, refine the steps as far as you can.
That list of steps is a programme. You write the steps once, so next time you want a cup of tea you can just tell the robot to use those same steps again and you'll get a cup of tea! My robot is any computer - hardworking and tirelessly enthusiastic to carry out any instructions you give it, if you learn how it thinks. I think it'll be a genuinely useful exercise for you (for anyone) to try as you'll either enjoy trying to stop the robot from pouring a pint of boiling water into a half-pint mug, or the exercise will annoy you as irrelevant, but either way you'll learn if programming is for you!0 -
Do you like solving logic puzzles? Programming is like solving puzzles all day every day. In real life programming you're also always trying to model the illogical and imperfect world within perfect frameworks. You learn arcane languages to cast spells, so you're a part mystic wizard too.
Here's a quick test for you - for anyone here who fancies it, actually. Imagine I've given you a robot that understands basic English, is incredibly obedient, and will enthusiastically follow every instruction without question. If you tell it to "go through the door", it will do exactly that, probably smashing it or drilling it or burning it. Even if the door is open (as we understand it), it would spend half a day following the instruction to go through the door, and trash your house...
You may not thank me for this robot at first, but by leaning to see the world through its eyes, you learn how to communicate with it. When you want it to make a cup of tea (lift the kettle from its base, carry it to the sink, remove the kettle lid, turn on the cold tap, move the kettle into the flow of water and remove it when (how much water?) had been added) you give it a list of steps after breaking the problem down into chunks. Try finishing the tea-making exercise. Without a doubt you'll find that you miss things, misphrase things, or are ambiguous. That's all OK, just keep going, refine the steps as far as you can.
That list of steps is a programme. You write the steps once, so next time you want a cup of tea you can just tell the robot to use those same steps again and you'll get a cup of tea! My robot is any computer - hardworking and tirelessly enthusiastic to carry out any instructions you give it, if you learn how it thinks. I think it'll be a genuinely useful exercise for you (for anyone) to try as you'll either enjoy trying to stop the robot from pouring a pint of boiling water into a half-pint mug, or the exercise will annoy you as irrelevant, but either way you'll learn if programming is for you!
You can always spot a fellow programmer by the tea making exercise. It's one of the classic lessons we all learned when flow charting the decisions were taught. :cool:One by one the penguins are slowly stealing my sanity.0
This discussion has been closed.
Confirm your email address to Create Threads and Reply

Categories
- All Categories
- 350.8K Banking & Borrowing
- 253.1K Reduce Debt & Boost Income
- 453.5K Spending & Discounts
- 243.8K Work, Benefits & Business
- 598.7K Mortgages, Homes & Bills
- 176.8K Life & Family
- 257.1K Travel & Transport
- 1.5M Hobbies & Leisure
- 16.1K Discuss & Feedback
- 37.6K Read-Only Boards