I would love to know programming, but dont know where to start either. My focus is build android apps. Would like to learn programming to build apps for all world, but dont know how to do it and where to start. And i dont want make money with this, i just want to do this just for fun. Any advice? which language is better for a person who dont know nothing? which programs i need to install to start? Any book or tutorial recommendation ? im lost lol. thx
Prelude
I have never done android (or iOS apps) so my experience in this field is nonexistent. However, I started with learning how to program almost 3 years ago and have made great progress since and developed an enjoyment for it.
Where to start
I believe you have two paths to choose from:
A) The long path: Start with a beginner friendly language like Python. Javascript is an alternative, however, I do not think Javascript is as friendly to beginners for several reasons: debugging happens mostly during runtime, dynamic typing, weird Javascript-only quirks, etc. (I started with Javascript and was happier when I moved away from it.) Python for the fundamentals: Variables, Control Structure (loops, if-else statements, etc), Data Structure (arrays, lists, etc) and Object-Oriented Programming (this will be key later in android development). It will also help with debugging as the interpreter is generally good at telling you exactly what is wrong. Once you’ve got the fundamentals and done a few personal projects, learn Go. Go will help you teach some more intermediate skills that will play a role later. Additionally, as a programmer, you generally do not stick with one language long, and starting to recognize similarities in different languages helps. Again, get comfortable, complete some projects and then move to C. C is considered the lingua franca of many high-level languages (HLLs), while also being low-level (one step before assembly). C will teach you different skills that most HHLs aren’t able to such as memory management. Then move onto Java/Kotlin to start learning how to develop android apps. The overall goal of this path is to get you to learn the most about programming and how computers work in general, and you have a plethora of different avenues to take if you wish to explore, such as Machine Learning, Web Development, Game Development, Embedded Systems, etc. This path is also a very roundabout way to reach your goal, but can be worth in the end. This path is similar to mine when I started to learn programming (JS -> Python -> C# -> C). My 3 go-to languages are Python, Go, and C, each with their own purpose, and I have been able to dabble in different fields that peaks interest.
B) The straight path: Start with Python for the same reasons as stated above. Then move to Java for android development. This path is the quickest, but reasonable, path to get to android dev, however there are some concepts that these langues will not teach you, and you should know the trade-offs. You can move to Kotlin after Java if you wish to, but is not needed.
Words of Encouragement
Regardless of which path you take, you will most likely will struggle when learning. Part of programming is not only how to talk to a computer, but it’s also problem solving. You may feel like quitting at times and, while there is nothing wrong with a break, do not try to quit. Programming can be tedious at times. I tried to learn programming 4 times prior in my life and it finally stuck on the 5th try. This is a very rewarding skill and it takes some time to learn. Remember, you don’t understand something in the moment, doesn’t mean you won’t understand it later. I remember when I got to Object-Oriented Programming and I felt it wasn’t connecting. I had went to bed and woke up and it felt like a lightbulb in my head came on and I just understood it.
Resources
Here some links I have used to help learn and hopefully that can help you too. Also, feel free to PM me if you got any questions or if you wish for some assistance. You can also ask for help on here, most members on here are open to help when they can.
Bro Code: Youtube - Free
Learn Python 3: Codeacademy - Free
Udemy (I don’t have a specific course, unfortunately) - Paid
Codewars - Website gives coding prompts