Hi,
I am in the last semester of my bachelor in Computer Science and I thought now I understand where one should start from when jumping into programming. I'll try to explain what are the most required things to properly understand the modern day programming.
So...
Where should I start from...?
Well for me the concepts of OOP are really important and I believe you should start with them, don't think about learning a procedural language rather go for the one that provides the maximum understanding of OOP and facilitates you at the same time.
I personally felt that if I had started with OOP I would have learned so much more than I know now..:(
And when talking about the language that gives you the best understanding of OOP first name that comes to my mind is
Java is love... Everything in Java is OOP. Classes, Objects etc etc...
Java is actually a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.
Then there are tons of APIs and libraries to cut short a coder's work and make things super easy. Many complicated algos are given the shape of a library and you just have to use them the way you have to. Far less effort yet amazing results.
The thing that I love the most about Java is its GUI part. You can create amazing looking applications with so much flexibility and ease. I love designing nice looking interfaces and you know that artist comes out and plays cool ;)...
One bad thing about Java is its limitation when it comes to direct hardware access, this really disappointed me but it still does fine enough I guess.
Then there is this language..
C++ is also a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation that is not the thing for Java.
C++ was the first programming language that we learned when the course started and I personally didn't like it but it is one really powerful language.
C++ supports operator overloading that is absent in Java, means you can perform computations on objects.
Its faster than Java because Java has both interpretation and compilation while C++ is compiled language, no interpretation involved.
C++ supports multiple inheritance but Java does not support multiple inheritance though classes rather its done by using interface.
C++ use pointers whereas Java does not use pointers. So, directly are unable to do system level programming using Java
for that we have to embed c or c++ code in java using JNI.
My advise would be to start with Java move on to C++ and I think this would really get you going.
And yeah you should master your basic algorithms for most of the common problems that way you will learn quicker.
Hope it helps you, don't forget to upvote this post :)