Работата ми през годините досега ме е сблъсквала с доста езици и опитът от това ме е довел до заключението, че има 3 основни стъпки, по които трябва да мине човек, за да се научи да програмира добре на даден език:
Стъпка 1 - Научаване на основната логика за програмиране. Тук имаме 2 пътя, по които може да се поеме - процедурно или логическо програмиране. Езиците, които си изброила (поправи ме, ако бъркам рода), се използват за процедурно програмиране, такова програмиране е използвано в масово разпространените в момента операционни системи, програми и сайтове. При тази стъпка езикът, с който изпълняваш стъпката, не е от значение (можеш да си избереш който и да е, но ако решиш да се занимаваш с процедурно програмиране, избери език за такова програмиране), езикът ще ти служи само като инструмент за разучаване какво са и за какво се използват променливи, константи, цикли, условни оператори, функции и т.н., елементите, които изграждат процедурно написания код. Всички процедурни езици ги използват и във всички процедурни езици служат за едни и същи неща, като в различните езици имат само някои разлики в синтаксиса на изписване, но точният синтаксис не е част от тази стъпка. В тази стъпка трябва да научиш логиката, по която се изгражда процедурният код, а тази логика е една и съща във всички процедурни езици. Като завършек на тази стъпка можеш да научиш разликата между двете основни разделения на процедурното програмиране - функционалното и обектно-ориентираното програмиране. Това са фундаментални (основни) логики, които са едни и същи във всички процедурни езици, само дето не всички езици поддържат и двете логики. Не се ограничавай в езика, учи самата логика на писане. Точният начин на изписване не е обект на тази стъпка. Бих ти препоръчал първо да се занимаеш с функционалното програмиране, а след това с обектно-ориентираното, тъй като функционалното програмиране се съдържа в обектно-ориентираното, но обектно-ориентираното не се съдържа във функционалното. Т.е., научавайки функционалното програмиране ще си улесниш след това научаването на обектно-ориентираното програмиране, вместо да ги учиш и двете наведнъж, ако започнеш с обектно-ориентирано. Научиш ли добре логиките в тази стъпка 1, получаваш летящ старт за научаването на който и да е друг език;
Стъпка 2 - Научаване синтаксиса на основните елементи (задаване на променливи, if-else, while, for...), които споменахме в стъпка 1. Тук вече можеш да си избереш език, тъй като от тази стъпка започваш усъвършенстването си в даден език, но можеш да гледаш и няколко езика едновременно, за да си избереш езика, синтаксисът на който ще ти хареса най-много. След като от стъпка 1 знаеш за какво се използват тези основни елементи, лесно ще научиш синтаксиса им за който и да е език, а и да не го знаеш за даден език, бързо можеш да го видиш с търсене в Интернет (например "if c++", "while perl", "variable php" и т.н.). Тази стъпка ще ти даде възможност сама да си избереш език/езици, с които да тренираш изписването на начални функционалности. С тази стъпка започваш реално да програмираш, като доброто ѝ научаване ще ти даде летящ старт след това да се специализираш в който си поискаш език;
Стъпка 3 - Задълбочаване в синтаксиса. Това е стъпката, в която ставаш специалист по програмиране на даден език. Тук вече задължително си избираш език, в които искаш да специализираш. Аз съм на мнение, че всеки език е с целите си. Не мисля, че е за момента съществува език, на който е добре да се пише всичко, от малки скриптове до големи програми и операционни системи. За да си избереш език, в който искаш да специализираш, първо трябва да си избереш за какво искаш да го ползваш. Изборът е различен в зависимост от насочеността на кода - Интернет или приложен софтуер, едноплатформеност или мултиплатформеност, високо или ниско ниво в комуникацията с операционната система и/или хардуера... общо взето, първо трябва да си определиш функционалността на това, което ще пишеш, а след това езика, на който ще го пишеш. Естествено, изборът не те задължава, така че в някой момент съвсем спокойно може да решиш да започнеш стъпка 3 отначало с друг език. След като в стъпка 2 си се научила на основен синтаксис в езиците и как да търсиш синтаксис в документацията, продължаваш с писането на все по-сложен код, като четеш за нови функции в документацията на дадения език.
Накратко. В стъпка 1 езикът е без значение и хващането на даден език е колкото за някакво практически опити на научената логика. В стъпка 2 дори е препоръчително да разгледаш основния синтаксис на няколко езика, за да си положиш добра основа за избор на език за конкретни цели, когато се наложи. В стъпка 3 идват конкретните цели, където първо си избираш в писането на какви приложения искаш да специализираш, след което си избираш подходящ език за тях, в който да се усъвършенстваш.
Та... ако сега започваш стъпка 1, хвани който и да е език. Ако сега започваш стъпка 2, разцъкай всички езици, които ти се сторят интересни (ето ти един списък
тук). Ако сега започваш стъпка 3, първо си изясни какво смяташ да програмираш и след това питай себе си и нас за език