Welcome Guest.   Make a donation to an author on the site November 28, 2014, 11:02:20 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.
 
Read the full one-year retrospective report on DonationCoder.com.
   
   Forum Home   Thread Marks Chat! Downloads Search Login Register  
Pages: Prev 1 [2] 3 Next   Go Down
  Reply  |  New Topic  |  Print  
Author Topic: What language is the best for a new programmer to start with?  (Read 27993 times)
app103
That scary taskbar girl
Global Moderator
*****
Posts: 5,328



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #25 on: January 23, 2008, 09:16:04 AM »

I am not an expert coder...but I am an expert at being a beginner, so maybe that qualifies me a bit more to give my opinions than being an expert coder would, plus I have worked with a lot of beginners on the self-learning path.  cheesy

My best suggestion is to find free tools for each of the major languages that he is considering, and go through them and try them all one at a time. Go find a good public library with some recent books and borrow them, one language and one or two books at a time.

If he finds a good book that he can grasp and keeps him motivated till the time he has to return it, he should buy it.

Don't run out and buy a book and think it's going to be good. I made that mistake too many times where I looked through the book at the store and thought it would be good, only to buy it and get more than halfway through it at home and still not be able to write a single line of code. Don't make a money investment in a language till you are sure you are going to stick with it.

One of the things that will keep him motivated is projects. They have to be fun or useful because if they are boring or useless, he is going to want to jump ahead and get to the 'good stuff' and that's where he will get in trouble. He should always be asking himself with each new thing he learns 'how can I use this' and come up with his own creative ways to use the skills he is learning by creating his own projects, using everything he has learned thus far. This can help relieve some of the desire to jump ahead of yourself and attempt to run before you can crawl.

If he finds himself being impatient and the desire to jump ahead is just a bit too much, I suggest Delphi. He can jump in and make his 'hello world' notepad in less than an hour.

The reason why I chose Delphi was because it was the first language that made sense to me, clicked in my head, and I actually was able to get somewhere with. I tried Java, C, C++, JS, Leopard, Ibasic, and god only knows what else. Then I tried out Delphi...got stuck at one point, tried VB 6, hated it, got over whatever fog was going on in my head and ran back to Delphi. This is where I plan on staying for awhile, till I feel confident & competent enough to move on.

As far as where to go in the future, after Delphi, one can begin the crossover to C++ with C++ Builder, translating your Delphi code and seeing where the differences are with how things are done. Then after that, in whatever direction with C++ you would want to go, getting in even deeper into the language and moving away from a Borland IDE and the VCL.

Delphi is also a good starting point if you would like to learn C# later on, too. There are a great deal of similarities between the two. (and C# coders shouldn't forget or count out Mono for making .net cross-platform) There is even a Delphi.net to help make the transition to .net coding without learning a new language first.

It is also supposed to be much easier to go from Delphi to VB.net, than VB 6 to VB.net.

As far as Delphi being cross-platform, it is possible to write stuff in Delphi (or better yet, object pascal, which is essentially the same thing) and compile it with FreePascal to run native on Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, Win64, WinCE, OS/2, Netware (libc and classic) and MorphOS. You really have to know what you are doing though and it has to be written with the intention of doing this. Not likely if you wrote it with windows in mind, using win32api, that you will be able to compile it to run on something else. But if you wrote it to be cross-platform, you could.

I wouldn't touch VB 6 for the reasons Veign mentioned, but I wouldn't count out VB.net.

Python is a good language for a beginner. They teach it to kids in schools here. It is also possible to create GUI's for python apps. There are a number of frameworks available to do that. The only real problem with it is if he wants to share those apps. People will need to have python installed to run them, and this isn't something that comes with Windows (although it does come preinstalled (hidden) on some HP pc's).

Oh, one of the things not mentioned by anybody that is very important for a beginner that is self-learning, is having a mentor (or 2). Someone that knows what they are doing in the language you have decided to learn. Someone you can turn to when you get stuck and need a bit of help understanding. This person also has to be someone you can understand. Not everyone is cut out to be a mentor, even if they are an expert coder in their language. Some people have a style of explaining things that just confuse more than actually help. This is why there is a plethora of bad programming books in stores that were written by 'experts' that nobody can understand.

The availability of a good mentor in the language you have chosen can be an important factor in how far you will get with that language and whether you end up giving up or not. I almost gave up Delphi because of the lack of experienced Delphi programmers that could serve as a mentor for me. I had one, but she was unreachable for long stretches of time (I haven't heard from her in almost a year now). It wasn't till I started hanging out on IRC that I found more Delphi programmers. If I had been able to grasp C++ at all in the beginning, I would have had many more people that could have served as mentors. Without a real teacher to guide you along in learning your first language, you will need people to help you over the occasional hurdles, otherwise those hurdles can grow into very high solid brick walls.

If he wants to be a hobby programmer, anything he enjoys would be fine to learn. If he wants to make money, then he has to decide if he plans on working for a company or doing it on his own.

If he wants to work for a company, C# should be his target at this current point in time, and definitely database stuff, as that is where the big demand is.

If he plans on working for himself, I would suggest C++ Builder, Delphi, or C#. He won't need a whole team of programmers working with him, or a few years to turn out v1.0 of a fairly decent sized application.

What he really should be thinking about is where does he want to be, where is he going, what is his final goal. Then look for the best way to get there.

He might end up deciding AHK would be best for accomplishing his goals. His goal might be to be the next Skrommel. You never know.
Logged

Armando
Charter Member
***
Posts: 2,683



see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #26 on: January 23, 2008, 10:38:05 AM »

Wow. Thanks app, mouser, tinjaw...
Thanks app103 for so generously sharing your experience like that.

So I shall go check these books at the library (when I have more time)... And will probably start by checking the languages suggested in this thread. I might also check -- eventually : I'm not there yet! -- the mentoring thing, or course.
Logged

"I suppose it can be said that I'm an absent-minded driver. It's true that I've driven through a number of red lights on occasion, but on the other hand, I've stopped at a lot of green ones but never gotten credit for it."
Glenn Gould
sgoel
Participant
*
Posts: 1


View Profile Give some DonationCredits to this forum member
« Reply #27 on: November 28, 2008, 05:57:32 AM »

I suggest to start with the C for knowing the basic criteria of the language.It gives a path how to climb on the hill. Then you will try some more go with C++,Java. Both languages C++ and JAVA are essential blood of the programming. Cool
Are u perfect with programming language in C,C++,JAVA. tellme
More advanced uses the C#.NET with framework 2.0.This language enchances the knowledge to some different view.Also, Make self projects with all the language.When you face the problem u got a perfect solution and implement in the future.
  Thmbsup  Cool   Thmbsup
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 #28 on: November 28, 2008, 06:47:37 AM »

IMHO it's a bad idea to start with C, there's simply so many ways to shoot yourself in the foot, and using the str* libc functions is the path to doomTM. If you really want to start with C, instead use C++ as as "super-C" - ie., still learn procedural programming, but using things like std::vector instead of malloc/free, and std::string instead of bloody char arrays. You can always go back and learn "pure C" if you need to.

Yes, C/C++ is my main language, but I doubt it's the smartest way to start. JAVA, on the other hand, is much more newbie-friendly (it's easy to get graphics, for instance, which gives many people a decent feeling of success), and it's structure is so similar to C++ (and C#) that it's pretty easy making the shift later on.

Python or JavaScript (in a suitable host) would be interesting languages for teaching as well. Or frameworks like Processing (java-based) - again, because it gives encouraging Success ExperiencesTM compared to boring console output and abstract crappy useless "Mammal, Dog->Dachshund, Cat->Siamese" class hierarchies.
Logged

- carpe noctem
dgrif
Participant
*
Posts: 1


View Profile Give some DonationCredits to this forum member
« Reply #29 on: December 02, 2008, 10:02:52 AM »

I totally agree with app, definitely find a mentor.  I also agree with f0dder about c/cpp, too much room for error if you've never done any type of coding before.. plus if you want to go cross platform with it, unless you stay command line you'd have to learn something like Qt to have any decent type of user interface. 

I'd say start with either Java or Python.  Python is easy to learn, you can get dive into python for free to start learning, and it can be integrated with c and/or java too.  Getting started with python i'd suggest just sticking with Idle, which is included when you install it, or any plain text editor.  A decent free IDE once you start needing it could be spe.

Java is pretty easy to learn as well, as mentioned its similar to cpp/c# so it could pave the way to other things, and has at a couple really nice free IDEs, netbeans and eclipse.  I believe Netbeans has plugins for Python as well, and I think eclipse has plugins for everything under the sun.  seriously, I think it can even cook you dinner.  To start out on Java tho, I'd suggest jGrasp as an IDE.  It doesnt have all the extra crap you don't need when you first start learning, has a nice debugger, and a nice interface.  IMO eclipse isn't good for a beginner, too may options.
Logged
Shades
Member
**
Posts: 1,683


see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #30 on: December 02, 2008, 09:56:34 PM »

Someone told me about Green Foot, a free piece of software that is supposed to make it easy to learn to program ( AFAIK it is based on Java).

Actually, it is intended for kids/early teens who want to learn, comes with a lot of examples, documentation and tutorials. When you're outgrown this software, the transition to Java will be easy.
Logged
likhary
Participant
*
Posts: 1


View Profile Give some DonationCredits to this forum member
« Reply #31 on: January 28, 2009, 10:14:56 AM »

it has some years of baggage and has matured a lot. And it seems the standard libraries have also evolved a bit beyond very thin wrappers above the native API. Sad
Logged
sciagent
Supporting Member
**
Posts: 9


View Profile Give some DonationCredits to this forum member
« Reply #32 on: November 17, 2009, 05:16:47 PM »

Yes, those and some other tools to start learning Java (or OOA in general) are described here:
Young Developer Learning Path
Teenagers at the age of 13 or even younger can start with Greenfoot.

New to Java Programming Center — Getting Started

With Java you can start with either procedural programming or object-oriented. Both ways have some supporters as well as antagonists. But both are possible.

It is also “easier” to program with Java (means also “easier to start with”). Without any technical details, typical reports from professional programmers are such that they experience some kind of constraints when they migrate from Java to CPP and some kind of relief when they migrate from CPP to Java. Well, those feelings are not permanent, and generally speaking migration is not difficult due to certain language similarities (object-oriented approach, syntax, etc.)
Logged
scancode
Honorary Member
**
Posts: 636



I will eat Cody someday.

see users location on a map View Profile Read user's biography. Give some DonationCredits to this forum member
« Reply #33 on: November 17, 2009, 05:22:03 PM »

I swear by Euphoria
http://www.openeuphoria.org/
http://www.rapideuphoria.com/
Logged

40hz
Supporting Member
**
Posts: 10,886



see users location on a map View Profile Read user's biography. Give some DonationCredits to this forum member
« Reply #34 on: November 17, 2009, 05:49:31 PM »

@scancode - Thanks for the pointer to Euphoria. Thought I had seen them all. Euphoria is a new one for me. smiley

(Multiplatform too! Always a big plus AFAIC. thumbs up)
« Last Edit: November 17, 2009, 05:58:07 PM by 40hz » Logged

Don't you see? It's turtles all the way down!
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 #35 on: November 17, 2009, 06:09:29 PM »

Without any technical details, typical reports from professional programmers are such that they experience some kind of constraints when they migrate from Java to CPP and some kind of relief when they migrate from CPP to Java. Well, those feelings are not permanent, and generally speaking migration is not difficult due to certain language similarities (object-oriented approach, syntax, etc.)
That would be constraints when moving TO java, and relief when going BACK TO C++ smiley

Java is a pretty decent language, it's good for learning, and there's aspects of it (and it's tools) that I miss in C++. But it's definitely limited compared to C++ in a number of ways, both language-wise and considering paradigms. There's basically "One True Way" to do Java, whereas C++ is a lot more pragmatic.
Logged

- carpe noctem
sciagent
Supporting Member
**
Posts: 9


View Profile Give some DonationCredits to this forum member
« Reply #36 on: November 18, 2009, 02:04:30 PM »

Java is a pretty decent language, it's good for learning, and there's aspects of it (and it's tools) that I miss in C++.
Yes, that is exactly for the title of this thread:)

This is probably not the best place to discuss of language particularities and support the-never-stop-battle of Java vs. C++, but you can do pretty much "everything" with both languages at a professional level IMHO. Both languages have certain pragmatism and certain (up-to any) degree of freedom depending on what do we develop.

The following stat may tell something for selection of the first programming language:
TIOBE Programming Community Index
Please, don't misinterpret this index, there's a description.
Logged
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 #37 on: November 18, 2009, 03:41:59 PM »

Python



Sorry it's been so long since I reminded all you about the bestest programming language EVAR! I'm slacking!
Logged

 
app103
That scary taskbar girl
Global Moderator
*****
Posts: 5,328



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #38 on: November 18, 2009, 10:03:31 PM »

Every time tinjaw mentions Python, an impoverished snake gets a free meal.  cheesy
Logged

mouser
First Author
Administrator
*****
Posts: 33,705



see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #39 on: November 18, 2009, 10:24:15 PM »

Quote
Every time tinjaw mentions Python, an impoverished snake gets a free meal.
Logged
Ehtyar
Supporting Member
**
Posts: 1,236



That News Guy

see users location on a map View Profile Read user's biography. Give some DonationCredits to this forum member
« Reply #40 on: November 18, 2009, 11:44:36 PM »

Kiss

Ehtyar.
Logged
wraith808
Supporting Member
**
Posts: 6,505



"In my dreams, I always do it right."

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #41 on: November 20, 2009, 08:32:59 AM »

Every time tinjaw mentions Python, an impoverished snake gets a free meal.  cheesy

Which means a bunny dies?  huh
Logged

ipman
Participant
*
Posts: 9


View Profile Give some DonationCredits to this forum member
« Reply #42 on: March 31, 2010, 06:16:23 AM »

For sure during 80-90 it was Pascal.
But IMHO Now the best language to start is Java.
Logged
Josh
Charter Honorary Member
***
Posts: 3,345



View Profile Give some DonationCredits to this forum member
« Reply #43 on: March 31, 2010, 06:23:09 AM »

After looking, I realized that most of my work does not involve GUI operation at all. As such, I have moved on to, what I consider, a very nice scripting language. This is Microsoft Powershell. It has given me some learning that transfers easily into .NET, which I can use with my free copy of Visual Studio 2008 (and soon 2010) pro from Microsoft.

This language has proven it's usefulness to me as a sys admin and network manager. I can script so many things and do so much that it is unreal. I get access to any system object with a WMI interface, can script it, access its methods and properties, and code it to my liking.

I am considering looking at Python since it seems to be "highly recommended", although Ehtyar recommends it so how good can it REALLY be ;-) <prod>Ehtyar</prod>

Thoughts on python and WHAT MAKES IT a good language to learn?
Logged

Strength in Knowledge
SingingBoyo
Participant
*
Posts: 38

Java is awesome... C++ needs more libraries

see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #44 on: April 01, 2010, 04:13:00 PM »

Eww... Microsoftisms... ugly.

As much as you possibly can, look for cross-platform languages.  Python, Java, and Arlix if I ever finish it Wink

I learned with Java.  It's an awesome language, and since all I do is GUI programs, I have extreme difficulties with C/C++ (until Arlix... I may be cured).  Python is ok, if not my language of preference.  PHP is awesome for websites, but I'll never use it for anything else.

Maybe this will help someone later on!
Logged

So you came along and found Java(insert programming language here)? Randomly?  Well then, you're just like me! Java fiends rule.  (Though other languages do have their uses.)
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 #45 on: April 01, 2010, 04:23:59 PM »

Eww... Microsoftisms... ugly.
Oh hai thar, fanboi! smiley

Find me an IDE that's better than Visual Studio? (It has a few shortcomings and Eclipse has some points here and there that's more likable - but the whole package, and especially considering the debugger...)

PHP is awesome for websites, but I'll never use it for anything else.
Since that's why it's designed for, why would you? Raw PHP is bothersome anyway - too low-level, and not having a running server process is annoying (having to do database persistance or relying on a non-php backend, ick).
Logged

- carpe noctem
SingingBoyo
Participant
*
Posts: 38

Java is awesome... C++ needs more libraries

see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #46 on: April 01, 2010, 07:56:55 PM »

Eclipse beats Visual Studio every time... free, open-source, awesome plugin architecture, and dammit, I can actually delete my files completely from Eclipse!  I'll admit that VS has some good points, but when you write in so many languages that it doesn't support, you start to hate it.  Eclipse is too big for VS to compete any more. Also as soon as a major programming language comes along, or a major update, Eclipse supports it.  VS, on the other hand, sticks with the Visual and .NET languages, and isn't portable. I can use Eclipse on any OS, but VS only works on Windows.  Portability is far better... what would you do if you had to program in Java, or use a Linux box?
Logged

So you came along and found Java(insert programming language here)? Randomly?  Well then, you're just like me! Java fiends rule.  (Though other languages do have their uses.)
wraith808
Supporting Member
**
Posts: 6,505



"In my dreams, I always do it right."

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

As much as you possibly can, look for cross-platform languages.
Even if you aren't doing (or thinking of doing) anything cross platform?  And even if such things adds to the complexity of your learning needlessly?  Cross platform is this big mantra... but sometimes, it's just added *stuff* that you don't need...

Eclipse beats Visual Studio every time...
Ummm... what?  Eclipse is bloated (which is saying something compared to a Microsoft product), and visual studio only supports Windows and .NET languages because it's Microsoft?  Just because something has a focus doesn't make it worse- in fact, at times, it makes it better.  And having used both, I can say that I like VS a lot better.

...dammit, I can actually delete my files completely from Eclipse!...

 huh  What does that mean?

« Last Edit: April 01, 2010, 09:18:46 PM by wraith808 » Logged

SingingBoyo
Participant
*
Posts: 38

Java is awesome... C++ needs more libraries

see users location on a map View Profile Give some DonationCredits to this forum member
« Reply #48 on: April 01, 2010, 11:18:37 PM »

Cross platform is this big mantra... but sometimes, it's just added *stuff* that you don't need...

Eclipse beats Visual Studio every time...
Ummm... what?  Eclipse is bloated (which is saying something compared to a Microsoft product), and visual studio only supports Windows and .NET languages because it's Microsoft?  Just because something has a focus doesn't make it worse- in fact, at times, it makes it better.  And having used both, I can say that I like VS a lot better.

...dammit, I can actually delete my files completely from Eclipse!...

About cross-platform... maybe I'm biased, but really, I think the fact is that writing cross-platform software or OS-independent software just increases your consumer base.  I realize things like games can't be done easily in an OS-independent way, (Nor should they need to be... Windows and OS X can take the games, leave the other OS's for developers!) but for things like word-processors, it's definitely beneficial.

Bloated Eclipse may be.  Again, I'm probably biased, but I just don't think I could ever do my development in VS.  Eclipse is bloated because it supports so much.  I just happen to be one of the people who need all the plug-ins it supports.

As for the file thing... Have you ever tried to delete a file off the filesystem from within VS?  I could never do it, though they may have changed it since 2003, which was the last version I used.  I'd delete it out of the solution only to realize later that it was still on my system.  Either that or my memories fuzzy (it was 2005 when I last really used it!)
Logged

So you came along and found Java(insert programming language here)? Randomly?  Well then, you're just like me! Java fiends rule.  (Though other languages do have their uses.)
wraith808
Supporting Member
**
Posts: 6,505



"In my dreams, I always do it right."

see users location on a map View Profile WWW Read user's biography. Give some DonationCredits to this forum member
« Reply #49 on: April 02, 2010, 08:40:58 PM »

About cross-platform... maybe I'm biased, but really, I think the fact is that writing cross-platform software or OS-independent software just increases your consumer base.  I realize things like games can't be done easily in an OS-independent way, (Nor should they need to be... Windows and OS X can take the games, leave the other OS's for developers!) but for things like word-processors, it's definitely beneficial.

Bloated Eclipse may be.  Again, I'm probably biased, but I just don't think I could ever do my development in VS.  Eclipse is bloated because it supports so much.  I just happen to be one of the people who need all the plug-ins it supports.

As for the file thing... Have you ever tried to delete a file off the filesystem from within VS?  I could never do it, though they may have changed it since 2003, which was the last version I used.  I'd delete it out of the solution only to realize later that it was still on my system.  Either that or my memories fuzzy (it was 2005 when I last really used it!)

As far as the rest of it... you're coming across now as a person with an opinion and who realizes its his opinion rather than the fanboish way that f0dder called you out for in the beginning- and I can respect that.  Different approaches suit different developers, and there's nothing wrong with that.

And yes, you can delete from the file system from within VS.  There are two separate things- remove from solution, and delete.  Remove from solution does just that... and if you don't have VS set to show all files, it can look like you deleted it.  But you can delete also.
Logged

Pages: Prev 1 [2] 3 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.067s | Server load: 0.33 ]