Skrivet av Traxton:
C++ och Python är inga bra språk att börja med. C++ är dåligt eftersom det har flera olika standarder, är väldigt förvirrande och har många komplicerade koncept som kräver tidigare programmering för att förstå ordentligt. Python är dåligt eftersom det inte är uppbyggt som de flesta andra språk och detta kan göra en nybörjare förvirrad när han senare försöker sig på andra språk.
Java eller C# är mest lämpade för nybörjare, då de båda har strikt standardkontroll, mycket bra felmeddelanden från kompileraren och döljer alla svåra saker som tex direkt minnesåtkomst.
Det finns bara en standard för C++: den som specificeras av ISO och den senaste standarden kom 2011 och går under namnet C++11.
Håller däremot med om att C++ kanske inte är världens mest lämpade språk att börja med då det är ett stort språk med mycket finesser som kan vara svåra att greppa om man är nybörjare.
Men faktum är att C# är nära nog exakt lika illa ur det perspektivet. Från början var C# relativt enkelt, men under åren har man lagt till massor mer saker och språkdefinitionen för C# är numera ett rejält komplicerat språk att lära sig helt och hållet. En av de absolut mest obskyra och missförstådda finesser lades till i C# 5.0, async/await. Till och Microsoft själva har insett att folk inte begriper async/await och det finns videor på deras egen site channel 9 som visar på vanliga misstag som de noterat att professionella programmera gör (som ofta leder till svårhittade race-conditions, en av de absolut värsta buggarna att hitta).
Java är ett långt mycket enklare språk än C# och C++ och är därför betydligt mer lämpat som första språk. Faktum är att jag skulle säga att Java är de mest lämpade av de tre även för "riktiga" program just p.g.a av den anledningen.
Notera att jag hela tiden skriver språk. Java är 3 saker, ett språk, ett standardbibliotek (motsvarande för C# är BCL, något som de flesta aldrig hört talas om utan .Net är det folk ser som "standardbibliotek") och en specifikation för en virtuell maskin.
Ett av de absolut enklaste språken att lära sig fullt ut är Lisp, det går typiskt att beskriva alla språkliga egenskaper på några enstaka sidor (C++ och C# har språkdefinitioner på många 100-tals sidor).
Python eller Ruby är också ett bra val för nybörjare (båda är dock språk med fler språkliga finesser än Java), men personligen skulle jag föredra ett statiskt typat språk (som t.ex. Java, C# och C++) som första språk då man får extra styrning av kompilatorn och slipper onödiga misstag som härrör sig till felaktigt blandande av typer.