My name is Ali Badran, I am from lebanon.
I love to share what I know with others by creating high quality courses.
If you are serious about becoming a programmer have a look at my courses.
I am a Programmer, teacher, and computer scientist.
I am the Founder of Computer Science Academy on YouTube
How I became a Programmer
And by "Programmer" I don't mean someone who knows how to use a progamming language only. But who also knows how to think like a programmer does. Someone who knows how to come up with different ways to solve a problem and chooses the most efficient one.
First of all, I started learning the basics of programming, which you will find in almost every programming language. Topics like: variables, data types, relational operators, logical operators, control flow ( conditions and loops ), and functions. And that was using the C programming language.
Now you might ask "why the C?". Well, I had the same question, why not learn python from the start for example, it is easy, very powerful, and popular.
I actually found the answer when I learned other Programming languages like java and python. More on that later.
After that stage was done, I had to dive into more complicated topics in C, such as structures, pointers, and dynamic memory allocation. Also, I needed to get familiar with what's called "recursion", which is basically another way of programming which you will use whenever using loops ( a loop is a basic programming concept mentioned above ) is very complicated and not even possible.
So after that, I was now ready to dive into the beast "Algorithms and Data Structures".
So data structures and algorithms basically give you the necessary skills to write efficient programs taking into consideration time and space (memory). Stacks, queues, trees, binary search trees, heaps, and hash tables are some popular data structures.
Now I shall say this, using C to write data structures is harder and more complex than using python for example. And here is the beauty of using C, you have to write almost everything yourself, you have to think about every single detail, and most importantly you have to manage the computer's memory yourself. And all that is what made me very strong in solving problems and gave me the logical thinking power that I needed as a programmer. I was able to find a solution for complex problems easier than programmers who started with python for example because I got used to complex problems.
Before I continue, I must say that the most important thing up until now is solving as many exercises as possible. Practice is everything. Literally, if you don't practice and solve a lot of exercises you will never progress as a programmer. So if you are serious about being a powerful programmer you should sit many hours in front of your computer trying to solve exercise every single day.
Now it was time to start with object oriented programming, so I got into the java programming language. Here comes another advantage of C, the grammar ( syntax ) of Java is very similar to that of C, so it took me no time to start coding using java, and all I had to do is focus on learning OOP. So as time passed I got to know classes, objects, abstraction, encapsulation, inheritance, polymorphism, abstract classes and interfaces. And with that my friend, I got all what I need to get into android development!
I know java, OOP, and I know my way around the code, so all I had to do is to learn how android development works, and how everything works. And now I'm still in the process of learning.