#CodingFromScratch #PythonProgramming #AppDevelopment #GameDevelopment
Hey everyone! 👋 So, I’ve been dipping my toes into the world of coding recently and I’m curious – where do you start when coding something from scratch? Specifically, like a game or app in Python. It all seems so… complex!
Here are some questions running through my mind:
– How long does it take in your career to know how to code something big or small from scratch?
– Is it more about knowing languages very well or understanding data structures and algorithms (DSA)?
I’ve been following some cool accounts on IG that post sample codes for different apps and games, like python.hub (I think that’s their handle). It’s amazing to see what people can create!
I’d love to hear your thoughts and experiences on this. How have you tackled coding projects from scratch? Share your journey and tips! 💬✨
Possible Solution:
– Start with basic Python tutorials and build your foundation
– Practice by working on small projects to gain confidence
– Dive into online resources and courses to sharpen your skills
– Join coding communities to network and learn from others
Let’s help each other grow as aspiring developers! 🌟 #CodingJourney #TechCommunity #LearnToCode
You first specify what you want to do. Make a coarse description. Then, refine it in a *Functional Design Specification* from which you start fleshing out the details.
Of course, it all starts with practice. You practice with small projects and continuously improve scope, scale, and complexity.
On paper. It is the fastest way to make a sketch. It can be a mind map or a bullet list.
Worst thing to do is to start with editor and e.g. installing some libraries etc.
And people also overestimate their will to stay focused when sitting in front of high speed internet connected computer 🙂
Cheers
similar to like the others said, you want a target that should be on your level on skills, think about how you wanna implement it, when you analyze it break it into small pieces and write it up, then you can google simple steps, this way it actually seems easy, it may be a bit scary but youll get through it
google simple things that build your project up and up, then you add more advanced practices as you learn from trial and error
also use references and documentation
This is actually an interesting question, and I think the way people answer it will change throughout their career.
For the most part programming is just problem decomposition, so the answer to how you get going is that you pick a minimum possible sub-step and write that. If you want to build a web app that can use ML to find films then step 1 is to write a website that displays the text “hello world”. Then you pick the next smallest increment of functionality that moves you on, maybe it has a list of film names that are hard coded. Then you load the film names from a server. Then you maybe allow the films to be clicked on to display more information and tags. Then at some point the user provides ratings, so on and so forth. Tiny trivial step by tiny trivial step you build something complex. Finding the small steps is largely just an experience thing.
You also have to balance this with upfront planning but the amount of upfront planning you need depends a lot on your experience and the complexity of the problem. Your ability to predict what the code needs to look like, even with experience, is quite weak. The more complex the code the less resemblance any initial plan will have to the code you end up with. As a general rule until the code works you don’t fully understand the problem you are solving, so investing too much time planning will be wasted effort as you realise you’ve missed things. On the other hand of course a little bit of planning up front can prevent you going in the wrong direction. Again this is just experience to judge that balance. You definitely need to understand where you are going in broad strokes, but be very adaptable as to how you’ll get there. Similarly to how an author would approach a book, you have some idea about what the major characters are going to be (central algorithms) and something about the setting (likely system architecture) and what themes you want to explore (main user features) but really the detail will emerge as you write and might be wildly different to your initial expectation. You discover code, to an extent.
It does take time for people to develop that mindset of breaking things down into tiny steps, usually people join and try to segment a whole project into phases like: planning, coding, debugging, testing as if you can finish each one and be done and that never works, it is a loop you go round continuously. Without fail junior devs at some point ask you to help with a 900 line piece of spaghetti code and when you ask how much of it they’ve seen work they give you a blank stare because they just wrote the whole thing and hoped for the best. Even with experience that is rarely possible. It’s always a small tight incremental loop.
When we teach this to junior devs I prefer using pair-programming, it’s one of the few times it actually does improve productivity. It’s hard to explain but working through a problem alongside someone else helps you see how the process works.
If you are learning independently you might find watching streams of people programming has a similar effect – you can see how they think. Maybe something like advent of code problems or something. Something where the person you’re watching is genuinely figuring it out as they go along not trying to teach a tutorial where they’ve pre-planned every step and already know how it works. You need to see them solve it the first time, not the condensed steps they communicate.
Learning the language well, and learning DSA stuff, helps develop your core programming skill. Learning the language teaches you how to solve problems idiomatically and DSA teaches you to think about the low level steps and implement common patterns, but it’s far far more about the mindset and approach ( assuming you’ve mastered the very basic level where you know how to use all the language primitives: loops, classes, functions, etc)
PS dsa makes you a better programmer as you can start to analyze what’s best for what after you’ve learnt multiple topics about them which you can apply
You only really need DSA if yiure getting deep into programming. First learn a language, then build an app with it. Then learn the workflow of a spftware engineer. DEV Ops, CI/CD, Agile. Then work with others on a project of building a real life app. You can easily find people that want to build aomething together or need help finishing a project. Then you can finally start specialising in a software industry, wether thats cloud, cyber, ai, data analitycs, web dev, etc. Build a project specialising for your software industry by yourself or with others, following a workflow.
You can learn DSA and Compsci math before or through this journey. Math and DSA go hand in hand with each other so its recommended to learn both at the same time. But you dont really need DSA and CompSci math much as you can still program, but its useful when its useful. And its very useful on the higher stages of Software Engineering.
you start on scratch by going to scratch.mit.edu !