Where should I start?
Posted by Embarrassed-Guava864@reddit | Python | View on Reddit | 26 comments
Hello I am 17 with absolutely zero coding experience and I really want to start coding as a hobby for new projects and I have researched and found out that python is the be best for beginners, where should I start and what should I learn first? Thank you.
Python-ModTeam@reddit
Hi there, from the /r/Python mods.
We have removed this post as it is not suited to the /r/Python subreddit proper, however it should be very appropriate for our sister subreddit /r/LearnPython or for the r/Python discord: https://discord.gg/python.
The reason for the removal is that /r/Python is dedicated to discussion of Python news, projects, uses and debates. It is not designed to act as Q&A or FAQ board. The regular community is not a fan of "how do I..." questions, so you will not get the best responses over here.
On /r/LearnPython the community and the r/Python discord are actively expecting questions and are looking to help. You can expect far more understanding, encouraging and insightful responses over there. No matter what level of question you have, if you are looking for help with Python, you should get good answers. Make sure to check out the rules for both places.
Warm regards, and best of luck with your Pythoneering!
thicket@reddit
Find a hook. Find a project or a kind of work that will keep you coming back and make you interested enough to keep learning. Do you want to make cool images? Design things in 3D? Run electronics? Write a web page? Automate social media interactions? Or... anything else. You start learning a lot when you don't have to tell yourself to do something, but it pulls you in and you don't want to stay away.
Taking an in-person class is a different kind of magic. Somebody will keep giving you work to do, and you'll keep doing it, in a way that most of don't do on our own. By the end of it, you find you've learned a lot of stuff that you wouldn't have chosen on your own, and you stuck with it.
Embarrassed-Guava864@reddit (OP)
My end game is to try create a game using c++ but since I have no experience in coding should I learn how to code using python fully first?
androidAlarm@reddit
Just start with C++ then
Embarrassed-Guava864@reddit (OP)
I heard that C++ is a difficult coding language and so to learn the basics wouldn't learning python be best?
syklemil@reddit
Python is very well suited to get off the floor in terms of basic programming. It can start off super simple as just a
print("Hello, world!")
in a file and grow to a collection of modules with typed functions, annotated classes and build instructions, and you can introduce and get accustomed to the complexity in a manner and tempo that suits you.Learning more than one languages is also good: Polyglossy lets you see a sort of stereogram of the informatics ideas hiding behind the quirks and syntax of a given programming language.
Once you have the basics of Python down, you should also look into tools like ruff, pyright and uv. These do things that may or may not come out of the box with other languages, but are generally part of what you'll come to expect from a dev environment: tools to help you catch the errors we all make as fallible humans.
And once you're getting ready to pick up a second language, you might also want to give Rust a go. You'll get the power to handle memory and do advanced stuff like in C++ but with a lower chance of error and less accumulated cruft, plus an excellent ecosystem with tools like cargo and docs.rs. (There is … some tension between the C++ and Rust communities, but from what I can tell the people who do both often enough feel like Rust imparts some good habits for when they're writing C++.)
Or if you're more itching to get writing games, you could look into game engines in Python. E.g. Roadwarden is an excellent game written in Python with Ren'Py.
(For a Rust example, Tiny Glade was written with Rust+Bevy.)
Overall-Cheesecake92@reddit
Having experience with both C++ and Python, I can confirm that C++ is definitely challenging to start with. It's not exactly what you'd call beginner-friendly. I honestly don't think you should learn C++ as your first language - it can and will be overwhelming, and you might find yourself burning out very quickly. This can lead to the misconception that all programming languages are difficult to learn, which is how many people end up giving up on programming entirely. Trust me, you'll thank me for this advice later.
If you're interested in game development, start with a simpler programming language before diving into making a game with C++. Learning Python first can be a great stepping stone. Once you have Python under your belt, picking up basic C++ syntax will be smoother. There's a saying that "If you understand one programming language you basically understand them all" (of course it's not entirely true, but there's definitely a nugget of truth in there).
And remember, you can make games in Python too - it's not as difficult as you might think. As you find Python becoming too simple for you, you can gradually transition to C++. Just take your time and don't rush the process.
guessineedanew1@reddit
I'd even say it's just true. They all do essentially the same handful of things, and the hardest part about learning them (to me at least) was translating what I wanted into the terms the language used.
syklemil@reddit
Eh, maybe as long as you stick to modern, multi-paradigm mainstream languages. If you go a bit off the beaten path with e.g. Haskell, Erlang, Forth etc, you'll have to restructure your thinking to get anywhere.
As long as two languages are Turing complete they are equivalent in a strictly mathematical sense—but that doesn't really help someone who's juggling Haskell, Assembly and Piet.
MichaelJ1972@reddit
Learning c++ seriously makes only sense if you really want to do something like kernel programming, hardware stuff, game programming and only if it's a game with lots of graphics.
Python will help you through the rest of your life. With anything you do. Unless you work in the forest or so in any job.
Small automation, small website, ai, working with images, mathematics, driving other programs like browsers, database stuff
Drevicar@reddit
Why specifically c++? Are you wanting to make the game engine as well the as game that uses it? You may want to look into using a premade engine like Unity, Unreal, or Godot. Each of them has their own programming language they want you to use with their engine. That said c++ is still an excellent choice for game dev. Personally I’m using game dev to learn more Rust with the Bevy game engine and it is a ton of fun.
Embarrassed-Guava864@reddit (OP)
To be honest since I'm new I'm not all too familiar with all the new programming languages and I assumed c++ was the language to understand the basics of game development
arden13@reddit
TheCodingTrain on YouTube is a good place to try some fun coding projects. The setup is very easy and the results are very visually interesting. Once you learn some of the basic concepts (e.g. for loops and if/else statements) you can transfer those concepts to other languages.
spurius_tadius@reddit
It's a long journey, how you start is less important than just starting.
FWIW, python is an excellent way to get started. Game engines (the low level aspects of game applications) are written C++ but the game logic and game assets are typically developed outside of C++.
You can create games without C++.
iknowsomeguy@reddit
If this is your end-game, there is literally no reason to learn python first. You will learn python more quickly, but you will also potentially pick up some bad habits that you'll later need to break if you move out of python.
Embarrassed-Guava864@reddit (OP)
So should I just go ahead and learn c++ first?
Redeemedd7@reddit
If you want to learn c++ then yes. No need to learn python to build a c++ game. But if your endgame is to learn programming or building a game, then learn python. Any game you build with c++ as a beginner, you can build it with python and it will probably be easier. It depends on what is your goal.
andartico@reddit
For potential ideas I would add the book "Automate the boring stuff…"
MinistryOfSand@reddit
It is a good idea, in my opinion, to learn an interpreted language as well as a compiled language (python is interpreted, c++ is compiled).
My advice: 1: get the Python 3.12 package, load up "IDLE", and do some print("") commands etc. That way you can enter a line and see exactly what that line did. 2: Get a proper IDE. Eg, PyCharm (get the community edition) and VS Code is what I typically use. 3: pick a direction or project and build that. Make a small game or something. Try to understand the logic behind what's going on in the language. There's too much to any language to try to just learn 100% of it off the bat, so learning what you need as you go will speed up your process. 4: ask for help if you get stuck, and don't get discouraged when you get stuck repeatedly. It happens, and that means you're learning. Hold on to your passion.
If you're planning on working at a big gaming company, or other software firm, then python will make your life easier, and it always looks good on a resume. Also helps if you're having to automate stuff or trying to manage servers or other filesystems.
Source: me trying to learn c++ and c# before burning out and then picking up python 12 years later and then learning other languages.
ReadyAndSalted@reddit
If you want to make a game, start with a game engine like Godot or unity.
abentofreire@reddit
Check out this article:
https://www.devtoix.com/en/python/get-started-programming-with-python-and-chatgpt
Overall-Cheesecake92@reddit
As a TA at my university, I help absolute beginners get started with Python. We kick off with the basics: understanding variables, strings, and operators. Then we dive into
if
statements,while
loops,for
loops, and then functions. These are the core elements that make up a solid foundation in Python.Once the students have a good grasp of these concepts, I suggest them to do some simple, general-purpose projects. There are loads of cool project ideas here that you can explore. Try doing at least one project a day to get a coding habit and spark your interest in Python. Remember, the projects don't have to be complex, and take your time - no one becomes a Python expert overnight.
Here's a pro tip: always save your projects somewhere. Setting up a GitHub account is perfect for this. It helps keep everything organized and also introduces you to GitHub, - a must-have tool for any developer. Keeping track of your earlier projects is incredibly valuable; you can look back, see your progress, and learn from the mistakes you made when you were just starting out.
Once you're comfortable with the beginner syntax, an endless array of possibilities opens up. Are you interested in math or physics? - You'd be able to make a basic GUI calculator, Of course, you'll need to dive into some libraries for building GUI apps first, but with a strong understanding of Python basics, it’ll be a lot easier to learn them. Don't forget to google, google, google — it's a programmer’s best friend :).
And if you’re learning Python in a college or university setting, don't hesitate to ask your professors for help if something's unclear after class. They're usually more than happy to help clarify things for you.
Embarrassed-Guava864@reddit (OP)
I can't thank you enough, I really appreciate the information you provided and I shall definitely try to learn a lot and try to do a project once a day once I have picked up on the basics, thank you so much!
Turkey_Processor@reddit
I tried to make, and am maybe 2/3 of the way through making a monopoly game that just runs as text output. It's pretty unsexy but I'm proud of it. Eventually I want to have it display a board and show players moving around and maybe deeds of properties you land on. Something like that.
I had zero experience going into it. But have learned a ton like how to read excel files, how to pull values from a data frame, how to build and cut up lists, dictionaries, etc. Functions, loops, writing classes for the players and for things like colored properties which are developable. It was relatively easy to get to the point where the program told you what square you landed on, but hard to figure out how to track who owns it, what the level of development it was at and if it was a developable property, and then what the rent should be. And say you have enough net worth, but not enough cash, them you have to be able to mortgage to pay rent instead of just having the balance subtracted from you. Lots of interesting problems have come up haha.
My goal is to eventually rename all the properties and change the chance/community chest cards to be inside jokes between me and my wife about places we've lived and weird things that have happened to us. And then someday we can play together and hopefully have some laughs.
Silver532@reddit
give yourself arbitrary challenges that are just out of reach, and find a solution that works. doing this just a few times can really help get the basics down
KingsmanVince@reddit
r/learnpython
Keep googling