I'm trying to learn programming, but watching YouTube tutorials hasn't helped me make much progress. I'm wondering whether structured courses, PDFs, or building difficult projects are better ways to learn. Since I may need to study and code on a phone, what approach and tools would you recommend for a complete beginner?
5 Answers
Coding on a phone is possible, but it’s uncomfortable, especially with the on-screen keyboard. If you have to use one, choose an IDE or terminal app that supports your language, and consider using a small wireless or OTG keyboard. Don’t worry about copying someone else’s advanced setup; use the simplest environment that lets you practice consistently. For a first language, Python or Go may be less frustrating than starting with Rust.
Tutorials work best when you actively use them. Pause regularly, type the code yourself instead of copying and pasting, make mistakes, read the error messages, and figure out how to fix them. Once the lesson is finished, build something similar from scratch. PDFs, documentation, and videos are all useful references, but the important part is applying what you study.
Try not to fall into an endless tutorial loop. Set a small goal, such as a calculator, text game, simple automation script, or basic web page, and learn whatever you need as each problem appears. Finishing several modest projects will teach you more than watching hours of content without writing anything.
The biggest improvement comes from actually writing code. Videos and reading can introduce concepts, but they won’t replace practice. Pick a small project, build it piece by piece, search for solutions when you get stuck, and keep going until you finish it.
If you’re starting from zero, a structured course can make things much easier. Choose one practical beginner course, code along with the lessons, and then change the examples or recreate them without following every step. After learning the basics, build small projects to reinforce everything.

That makes sense. I’ll start with something small instead of trying to build a complicated app immediately.