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
If your goal is developing Android apps, then start with mainstream official tutorials. Install the Android SDK and follow the tutorial. That’s your intro.
Then, get the source code of a FOSS Android app that you use, and build and run that. Then make some changes to play around with it, to see how stuff is structured, relates, and changes.
On that project, with the change history cloned, or on their repository web interface, look at some changes that were implemented. A bug fix or new feature. How did they implement it? Where did they [have to] change what?
Then look if the, or a project you use, has some open tickets with labels for beginners or looking for contributors. Explore those. Try to resolve them.
Somewhat unorthodox opinion, but it doesn’t matter what you choose if you’re in this for the long haul. Just pick a course, site, language, etc that motivates you. The best course in the world won’t teach you a thing if you quit after a few days. So use a site you find pretty or funny and use a language that will be useful to you.
I personally learned HTML, CSS and JavaScript from W3 Schools, and just built a site using what I was learning. The site doesn’t really handhold you, it shows you features, more like a reference guide, and I just built some nonsense with it.
And while I didn’t learn a ton from it, it taught me enough to get started and over the last decade or so I’ve just continued to learn from whatever resources I stumble across, gradually building knowledge over time. I rarely use the same educational resource twice, and now that I’m experienced I often just reference documentation directly and am very rarely doing tutorials.
For Android it looks like Android has a course you can take or you could try any number of sites like Udemy, Coursera, Edx and search for “kotlin”, a modern mobile app language that’s pretty popular.
Install IntelliJ, learn how to create a Kotlin project. The make a bunch of programs that read and write form the console.
A few ideas: Write out multiplication tables. Make a program that plays black jack. Make an interactive fiction game.
That is how most people start.
What app do you want to build?? Android, ios, something that will run on browser or on pc. You just choose a project and go at it.
Android - Kotlin
Ios - Swift
Browser - javascript
Pc/terminal app - go
First learn basics. I would say you go with go. It’s fast, doesn’t abstract much and is very easy to get started with. You can learn other when you have basics down.
Tldr;
learn GO, start a project you like
I like golang, but nearly all of the learning resources seem to assume that the reader already has a lot of prerequisite knowledge about programming. There are a few exceptions, none of which I found to be easy to follow. But learning programming isn’t easy no matter what, so maybe that’s not a big deal.
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