Welcome Guest.   Make a donation to an author on the site October 22, 2014, 08:53:07 AM  *

Please login or register.
Or did you miss your validation email?


Login with username and password (forgot your password?)
Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.


You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.
 
View the new Member Awards and Badges page.
   
   Forum Home   Thread Marks Chat! Downloads Search Login Register  
Pages: [1] 2 Next   Go Down
  Reply  |  New Topic  |  Print  
Author Topic: The Best Introductory Language  (Read 13189 times)
KenR
Super
Blogger
***
Posts: 825


View Profile Give some DonationCredits to this forum member
« on: April 13, 2007, 12:20:49 PM »

Now I'll just bet the best way to start programming is NOT to jump into C/C++, which was what I did.

Quote
...This paper examines several approaches to which programming language is the best, and afterwards gives several useful relations for which languages should come first. Finally it gives a final verdict, defends it and then gives some other good food for thought...



from http://www.osnews.com/index.php
Logged

Kenneth P. Reeder, Ph.D.
Clinical Psychologist
Jacksonville, North Carolina  28546
TucknDar
Charter Member
***
Posts: 1,094


Advanced coder of Nowt

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #1 on: April 13, 2007, 03:11:25 PM »

Great find, KenR! thumbs up
Logged
vivy
Participant
*
Posts: 8

View Profile Give some DonationCredits to this forum member
« Reply #2 on: April 16, 2007, 05:30:40 AM »

Why do you think C++ is not a good beginnig for beginners? Could you tell your own ideas or experiences? I read Horton's books and it seems C++ could be a language for beginning and you can be an expert after 10 years. That is what i want, i dont want to spend time to learn unnecessary languages that i would not use after learning C++.
Logged
f0dder
Charter Honorary Member
***
Posts: 8,774



[Well, THAT escalated quickly!]

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #3 on: April 16, 2007, 06:15:17 AM »

C is a bad place to jump in, but C++ might actually not be too bad - you could start doing procedural programming and move on from there, but still utilize the safer-and-easier parts of C++ (string, vector, iostreams). I still have a feeling there might be a better place to start, though.

As for i dont want to spend time to learn unnecessary languages that i would not use after learning C++., there's plenty of languages besides C++ that's worth to learn and use in the future... perl, python, lua, anyone?
Logged

- carpe noctem
mouser
First Author
Administrator
*****
Posts: 33,573



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #4 on: April 16, 2007, 10:07:22 AM »

I am a long time C++ programmer and consider it more my native language than english.  But I would not start with c++ as a beginner, for a few reasons:

1) A major design goal of C++ was to be backward compatible with C.  Because of this, and because it was one of the pioneering object oriented languages, it carries around with it a lot of baggage in terms of idiosyncrasies and ugly illogical design aspects.  These are things that as a coder your learn to ignore and look past, but as a new learner it makes things harder.  It's like learning to congugate irregular verbs in a spoken language.  yuck.

2) C++ was designed with a lot of emphasis on speed and minimal memory use.  While this can be very advantageous in some cases, it means that some things are a little more raw and low-level than a more modern language; again useful for a hardcore coder but perhaps overkill to handle when just learning.  This shows up in things like lack of array boundary checking, which can be deadly to new programmers, who are rightly angry when the computer starts acting weird instead of flagging an error.

3) C++ has no standard user interface library and it's not fun to find and use one -- this can be a killer issue for new coders who want to jump right into GUI programming.  Languages like java and C# are similar to C++ but provide such libraries and can make it easier to transition to gui stuff.

There are more reasons as well, but as a long time programmer, my view can basically be summed up as follows: 95% of learning how to program has nothing to do with what language you use/learn.  The more you learn, the easier it will be to switch to a new language.  Better to pick whatever path gets you into the game and productive.  C++ has some great things going for it, and mastering c++ will serve you well eventually, if only because you'll have an easier time figuring out whats going wrong when something truly goes wrong with your code.
Logged
vivy
Participant
*
Posts: 8

View Profile Give some DonationCredits to this forum member
« Reply #5 on: April 16, 2007, 10:35:56 AM »

 i am going to get this C++ language sooner or later but if you say this would be a hard way to directly jump on C++, also you should show alternative paths for leading to C++.

Can you give an object - oriented programming language which will be suitable in general meaning for a beginner?
Logged
mouser
First Author
Administrator
*****
Posts: 33,573



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #6 on: April 16, 2007, 10:39:29 AM »

C# is a good choice if you are on windows.

but don't get me wrong, if you can get excited about learning c++ then go for it.  my advice to all new programmers is simply to find something that motivates you, usually a particular book or something.  whatever language you choose will be fine as long as you can stay motivated enough to keep programming and practicing.

ps. whatever language you choose, check out our Programming School section to help motivate you with some challenges: http://www.donationcoder....orum/index.php?board=77.0
Logged
mrainey
Charter Member
***
Posts: 433


see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #7 on: April 16, 2007, 11:11:16 AM »

Quote
Can you give an object - oriented programming language which will be suitable in general meaning for a beginner?

Check out Aurora.

http://www.ionicwind.com
Logged

Software For Metalworking
http://closetolerancesoftware.com
vivy
Participant
*
Posts: 8

View Profile Give some DonationCredits to this forum member
« Reply #8 on: April 16, 2007, 11:24:02 AM »

Can i adapt C++ into web as a scripting language like PHP? I thought there should be C++.net!

Afaik C# is derived from C++, so it would be easy to jump on C++ after C# right?

Quote
ps. whatever language you choose, check out our Programming School section to help motivate you with some challenges: http://www.donationcoder....s/bb/index.php?board=77.0

I have alrready posted something on there. smiley And i think you prepared a good source for beginners also advanved programmers. Thank you!

Quote
Check out Aurora.

http://www.ionicwind.com

would it be a good start? I dont know anything about it. It should be  better to make some search but i think i will stick with C++ or C# smiley
Logged
mrainey
Charter Member
***
Posts: 433


see users location on a map View Profile WWW Give some DonationCredits to this forum member
« Reply #9 on: April 16, 2007, 12:03:49 PM »

Quote
would it be a good start? I dont know anything about it.

It could be.  Aurora is a language that can be programmed using procedural or object-oriented techniques, that's up to you.  The syntax isn't too different from C/C++.  The developer and a number of other smart folks are available on the forum to help with your questions.   It's relatively easy to learn and is capable of creating standalone executables that run without problems in all flavors of Windows, 95 through Vista.

Anyway, you can download the demo, look over the User Guide, check out the forum, and decide for yourself.  Or not.  smiley
Logged

Software For Metalworking
http://closetolerancesoftware.com
jgpaiva
Global Moderator
*****
Posts: 4,710



Artificial Idiocy

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #10 on: April 16, 2007, 05:10:30 PM »

The introductory language at my university is scheme.
Pretty bad, i think. But it's only used for learning the basics of programming. Then comes C, Java, Lisp and C++ (in that order).

IMO, the best introductory language may very well be Java. It's not that easy, but the compiler is great and i find it quite a fun language. A good advantage is not having C's 'Segmentation Faults', which are traumatizing in the first times for most people. I could go on and on about Java, but probably i'd be flamed in no time tongue


Notice that, although i do like programming in Java, i think it's a pretty useless language if you're not talking about corporate software and such (which is what i'm working on now) and C++ is way more useful.

If you're working under windows, a fun, useful and fast learning "language" is autohotkey. I like this one because it's so damn easy to make stuff that you can actually use.
Logged

f0dder
Charter Honorary Member
***
Posts: 8,774



[Well, THAT escalated quickly!]

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #11 on: April 16, 2007, 05:14:18 PM »

Quote from: jgpaiva
A good advantage is not having C's 'Segmentation Faults', which are traumatizing in the first times for most people.
If you teach people a mix of C/C++, as I mentioned above, you highly reduce the risk of segfaults and the like... but of course you're still without a highly standardized GUI toolkit.
Logged

- carpe noctem
NigelH
Charter Member
***
Posts: 202

see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #12 on: April 16, 2007, 08:59:19 PM »

For getting to grips with objects, check out BlueJ
http://www.bluej.org/index.html

Quote
BlueJ is an integrated Java environment specifically designed for introductory teaching.

The BlueJ environment was developed as part of a university research project about teaching object-orientation to beginners. The system is being developed and maintained by a joint research group at Deakin University, Melbourne, Australia, and the University of Kent in Canterbury, UK. The project is supported by Sun Microsystems.

BlueJ supports:
fully integrated environment
graphical class structure display
graphical and textual editing
built-in editor, compiler, virtual machine, debugger, etc.
easy-to-use interface, ideal for beginners
interactive object creation
interactive object calls
interactive testing
incremental application development
Logged
vivy
Participant
*
Posts: 8

View Profile Give some DonationCredits to this forum member
« Reply #13 on: April 17, 2007, 12:57:53 AM »

Quote
If you're working under windows, a fun, useful and fast learning "language" is autohotkey. I like this one because it's so damn easy to make stuff that you can actually use.

Honestly i didnt know that autohotkey is a language, i just thought it's just an application for fast access for anything on OS. what a shame.

Logged
Lashiec
Member
**
Posts: 2,374


see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #14 on: April 18, 2007, 05:42:52 AM »

Some things to consider:

1) There's no BEST introductory language. You could say this is a fallacy. As for the opinions of you guys, and the article it's clear that everyone has his/her favourite option, which is quite logical.

2) Since I'm still in university, and learning as well, I could give my opinion on this. When I started we used pseudocode and diagrams to create and design the programs that later we implemented with Pascal. During the second four month period (that'll be a semester for you, I think) we learned Java (simple, almost without classes) and assembly (a virtual machine with only 4 instructions and then 8085 assembly). This is my third year, and since then we've learned C++ and a bit of C for an optional subject. Oh, yeah, I forgot, add Unix shell and VI control 'codes' Angry

It's my opinion that Pascal is a good option for starters. You could also throw Delphi in the mix to help people understand classes and all the mess in a familiar language. Also, I feel that C++ should come before Java, but that's a personal opinion. I feel that classes and objects are easier to understand in C++ than in Java, and even then, I still have some problems (solved with some more time reading the theory and writing code)

3) Some simple languages (AutoHotkey, AutoIt, foobar's 'Tagz') are good options to immerse yourself into the programming world, but 'true' language are also needed.

4) The article is quite biased, and contradictory to boot. The guy uses Perl as its main language, and he also recommends it. Oh yeah, what an objective point of view. Then he says that universities like to use the hottest language available to teach people how to program, which is false (in my own experiences), and the he recommend Perl, Ruby and Python, which, incidentally, are the hottest languages around (Ubuntu is implemented in Python, even the kernel, the Internet runs on Rails, and Perl, well, it's Perl Grin)

I feel, that, just as it happens with real languages (English and such, ya know smiley), the more you know, the better. Oh, and I really don't recommend Visual Basic for learning anything. It's a really bad option Wink
« Last Edit: April 18, 2007, 05:46:08 AM by Lashiec » Logged
kyrathaba
N.A.N.Y. Organizer
Honorary Member
**
Posts: 3,010



while(! dead_horse){beat}

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #15 on: April 20, 2007, 09:36:41 PM »

If you're set on jumping right into C++, and don't have a strong C background, check www.mindview.net for Bruce Eckel's excellent (downloadable) "Thinking in C".

I don't claim to be unbiased, but I have dipped my feet in several languages over the last few years (QBasic, C, Vb6, Vb.NET, Java, Pascal, and now C#), and C# has given me what I'm looking for.  C# was built from the ground up to take some of the best features from both C++ and Java, incorporating  them into one language.  And, C# was also planned, from the drawing board, to leverage the .NET Framework, which means a whole LOT of your coding has already been done for you.  I find C# more concise than Visual Basic, yet not as complicated as C++.  It shares a lot of similarities with C/C++, and you can get a free, very good programming IDE from Microsoft, and access to a tremendous amount of language feature documentation on MSDN. 

I agree with Lashiec that Pascal is a good starter language.  It contains pretty much all the programming structures you'll run into in other languages and has a clear syntax.  When I was in college, it was the language used in Introduction to Programming.  I also somewhat agree with Lashiec's thumbs-down to Visual Basic.  In particular, Visual Basic.NET is inelegant in comparison with C#.  It has some awkward stuff in it supposedly to make it backward compatible with VB6. 

Just my 2 cents.
« Last Edit: April 20, 2007, 09:41:54 PM by kyrathaba » Logged

Win 7 Home Premium 64bit-SP1 AMD Athlon II X2 220 Socket AM3 (938) @ 2.1GHz 6GB RAM Firefox 26.0
_________________________________________________________________________________________

I'm fighting against patent trolls. Join me and tell your representative to support the #SHIELDAct: https://eff.org/r.b6JJ /via @EFF

My DC page: http://kyrathaba.dcmembers.com | My blog: http://williambryanmiller.com/ | Proofreading Service: http://bit.ly/1fQSqQP

tinjaw
Supporting Member
**
Posts: 1,926



I'm so glad breakbeat techno isn't an illegal drug

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #16 on: April 21, 2007, 05:10:25 AM »

Just in case some of you weren't aware of it, a little bit of trivia: The Pascal programming language was written with the intention that it would be used as an introductory language to programming.
Logged

 
Crush
Member
**
Posts: 399



Hello dude!

see users location on a map View Profile Read user's biography. Give some DonationCredits to this forum member
« Reply #17 on: April 21, 2007, 09:32:28 AM »

I think the best for beginners is Assembler to understand the basics of the machine and help underständing how later developed languages are working inside. So you´ll be able to create more efficent code. Learning too much languages is only disturbing and confuses. It´s better to stay on a few and study them more intensive.
Logged
f0dder
Charter Honorary Member
***
Posts: 8,774



[Well, THAT escalated quickly!]

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #18 on: April 21, 2007, 09:58:45 AM »

Assembly is not a good choice for the first language. You get completely lost in details, and a lot of people get pretty frustrated that they spend a lot of effort for almost no return. You need to learn programming first, then you can continue with Machine Architecture. And if people are introduced to assembly too early, they tend to become brain-damaged and obsess over each and every tiny little irrelevant detail.

I'd even argue that assembly is pretty irrelevant these days, unless you want to get into the embedded field, or audio/video codecs.

All that said, I do think some exposure to assembly (or rather, machine architecture as a whole) later on is a good idea if you want to be a full-fledged programmer, and not "just" a dotNET/delphi/bcb/vb/etc program interface designer.
Logged

- carpe noctem
dhuser
Honorary Member
**
Posts: 96



King Dogbert

View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #19 on: April 23, 2007, 08:50:50 AM »

I personally started with (and recommend) Visual Basic (or VB.NET) to beginner programmers. If any beginners want to start learning...
* Visual Basic Express Edition (FREE)- http://msdn.microsoft.com/vstudio/express/vb/
* Learn VB Express Edition- http://msdn.microsoft.com...s/beginner/windows/tier1/
* Create your First Program- http://msdn.microsoft.com...nner/windows/tier1/first/
It is visual and object-oriented.

Note that a LiveID/.NET Passport ID is required to register/activate.
dhuser
« Last Edit: April 23, 2007, 08:54:57 AM by dhuser » Logged

My StumbleUpon Profile
Imagine.Explore.Create!
ivanv
Participant
*
Posts: 27

View Profile Give some DonationCredits to this forum member
« Reply #20 on: April 23, 2007, 10:16:54 AM »

I'm going to blasphem and say something like Visual Basic 6... Or any very high level language.

That's because for me, learning first about higher level stuff, being able to focus more on what I want the program to do, and not the nitty gritty of memory management (to mention just one difficult area), allows me to learn at my own pace.

I first learned QuickBasic, then Turbo Pascal, then Assembler, then a little C++. It was easy for me to understand ASM (even machine code) after Basic and Pascal, plus it helped me understand how those worked.

It could be the other way around I guess, but that's what worked best for me.
Logged
zridling
Friend of the Site
Charter Member
***
Posts: 3,291


Linux captive

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #21 on: April 24, 2007, 09:27:42 AM »

What the hell's wrong with you people? Fortran's not good enough for you? I took the course in 1980 and I've never needed anything since!*



*I haven't used it since either. So stop smirking.
Logged

- zaine (on Google+)
broken85
Supporting Member
**
Posts: 88


see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #22 on: May 01, 2007, 04:26:49 PM »

I got started with Basic, followed immediately thereafter by Visual Basic 5 Learning Edition. That was quite enlightening, and really opened the door for all my future programming endeavors, from C++/VC++ to PHP to Java and C# and everything inbetween. It might not be the best place to start, but it seemed much less complex than any variation of C at the time and since I was a kid that was OK with me!

Rather than pick a specific language to start learning, I would recommend getting a free copy of Visual Studio 2005 Express Edition and having a look at some sample projects in the various languages, or trying out some simple tutorials in each of them, to figure out which one is easiest for you to wrap your head around. In the end most languages can do most things you want them to, but with extremely varied levels of ease and success. It's all about preference.

Last year I "watched" a couple of webcasts to get a free copy of Visual Studio 2005 Standard (was linked to from this forum) and I'm really glad I did, it has been my tool of choice ever since. Well, except for web programming because I have not found a good reason to take the plunge away from PHP yet (nor have I really been looking for one. I love PHP.)
Logged

--
Ben M
nosh
Supporting Member
**
Posts: 1,388


View Profile Give some DonationCredits to this forum member
« Reply #23 on: May 01, 2007, 05:46:35 PM »

f0dder: What's a good place to start teaching yourself machine architecture if you're completely new to it? Any book/online tutorial recommendations?

BTW, tried out quite a few DC programs today and I loved fsekrit. Great work there!
Logged
f0dder
Charter Honorary Member
***
Posts: 8,774



[Well, THAT escalated quickly!]

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #24 on: May 01, 2007, 06:56:27 PM »

Good question - I haven't found any single source that I liked, I've picked up from bits and pieces here and there. For x86, the resource has been the processor manuals from intel (PDFs as well as paperback prints freely available), but those are pretty dry and heavy.

Randall Hyde's "The art of assembly" is supposedly good, but I haven't read it - the old part is about 16bit which I've happily forgotten more about than most people of today will ever look at smiley, and the 32bit part is in his HLA syntax that I'm not too fond of (it's interesting because it's different, though). I've never taken a formal course in this stuff, so I don't have any references, sorry. Or well, I bought "Silberschatz/Galvin/Gagne: operating system concepts" which seems to be decent, but that's only part of it - more OS than machine architecture.
Logged

- carpe noctem
Pages: [1] 2 Next   Go Up
  Reply  |  New Topic  |  Print  
 
Jump to:  
   Forum Home   Thread Marks Chat! Downloads Search Login Register  

DonationCoder.com | About Us
DonationCoder.com Forum | Powered by SMF
[ Page time: 0.374s | Server load: 0.84 ]