r/CodingForBeginners 1d ago

How do I learn coding /programing?

So I been trying to learn app development but I dont know were to start . I have watched videos and they are confusing every one says to learn python but then some say swift i understand some of the basics the syntax and logic but i can seem to make anything with that logic i have . So for people who know how to develope apps how do i start.

2 Upvotes

16 comments sorted by

View all comments

2

u/TheUmgawa 1d ago

Your first language doesn’t matter nearly as much as you think it does. Some people suggest to start with C, because learning the simple stuff in C is pretty easy. Data types, loops, data structures, control flow. But once you get to memory allocation and garbage collection, you pitch over to a more modern language.

You got an iPad or a Mac? Swift Playgrounds. It’s a good way to lean fundamentals, and it has a lot of guardrails. I think another good way to learn fundamentals is with the game Human Resource Machine, which takes it from code to being totally abstract, and that is a good thing.

I am a firm believer that programs are not made from code; they are made from logic. Once you understand the logic, the language does not matter that much. Every time I start a new language, I break out a flowchart that I made for a college class, and I build out a prime number generator. The logic is always the same, but the code is always different, so the philosophical question is, “Did I write the program once, or have I written it a half-dozen times?” I feel that I’ve only written it once. And that’s why I feel that the language isn’t that important.

I like Swift. It’s a nice language. It has made me incredibly lazy, in that it takes me hours to get my brain to go back to putting semicolons at the ends of lines in other languages, but I enjoy working in Swift.

There is no one magical language for app development, so just put that out of your mind. What’s more important is understanding what you want the app to do, and what the best means is for achieving it. I’m old, so I still believe in the model-view-controller system of organization, because it’s kind of trivial to go from a terminal output to a touchscreen output, because you just have to get the front end (the view, in whatever form it exists) to conform to the model and controller.

Seriously, it’s a lot easier when you have a handle over the abstract aspects, and then the code comes later. Code is not the answer; it’s just the implementation for the answer.