Kesinlikle tek tavsiyem C, C++, 100% object oriented bir dil sırasıyla öğrenmeni temenni ederim. Neden C ve C++ ? En başta, C ve C++ dilleri, strongly type checking dilleri değidiğimiz dil grubundandır. yani bütün değişkenlerin tiplerini belirlemek zorundasınız. Buda size ileri ki zamanlarda, bir programın senaryosunu okuduğunuzda, space complexity daha rahat düşüneceksiniz. Diğer bir unsur ise, pointeer kavramıdır. Yeni başlayan bir çok kişi, pointeer kavramı anlayamamakta veya zorlanmaktadır. C ve C++ pointer, space azalatmak için mükkemel bir araçtır ve bu sayede, parameter passing by value, parameter passing by referance gibi kavramlar giriyor (Parameter pass by value-resualt desteklememektedir). Ayrıca, C ve C++'daki pointer kavramı size kazandırdığı da, veri stack mi saklanıyor yoksa heap'demi , Dynamic, Static 'mi kavramları öğretiyor. Örnek olarak,
int * fixed_heap_dynamic_array = malloc(7 * sizeof(int))
int fixed_stack_dynamic_array[7];
Gibi, Genellikle Java , C# gibi %100 pure object oriented diller ile başlamış kişiler, bu işi öğrenmekte zorluk çekmektedir, ve daha fazla sebeplerden dolayı önce C-> C++ öğrenmeni tavsiye ediyorum