I know some level of Python. What next?
Posted by sad_ant0808@reddit | learnprogramming | View on Reddit | 24 comments
So I'm a 15 year old who learnt (and still learns) Python at school (CBSE Class 10 AI Subject Code 417 for anyone wondering). Now I did some slightly more advanced stuff than out curriculum like iteration and string operations (we will learn that in 11th and 12th grade). So is it recommended to start another language right now? I want to learn another language but all the options are kinda confusing. If you think it's good to learn another language rn, please suggest some options.
Glum-Butterscotch686@reddit
Learn C and how stuff is represented in memory. Learn about heap and stack allocation. That is imo the most important thing you can learn so you can understand everything else later on
sad_ant0808@reddit (OP)
faaahhh i was considering go or js and maybe c# after that. u serious abt the c? cuz im sure ur more experienced than me so ik ur advice is smth i should at least listen to. but i started learning golang some time ago. so maybe after i get good at golang, i will try my luck at c.
Wonderful-Habit-139@reddit
You need to get good at Python first. Once you go deep in one language, you unlock many more things in other languages as well.
Don't stay at a surface level knowledge with multiple languages.
sad_ant0808@reddit (OP)
define 'good' at python? cuz theres multiple definitions of good. like i think im pretty decent at python atleast compared to my classmates but compared to most of u guys im kind of a beginner. so how good should i be?
Wonderful-Habit-139@reddit
You're definitely doing well for your age, and you can keep going further and get to a really good level by the time you start CS classes.
Being good at Python means you're comfortable with functions, loops, classes, list comprehensions, context managers, a bunch of useful stdlib classes and functions. How bindings work and what you can mutate and what you cannot mutate.
Learning how to use pip, install libraries, as well as writing python in different files (or modules).
Then you can move on to type hinting and learn how types work, generics, variance, how to use a type checker, how to take a problem you're trying to solve and model types that help you solve the problem by constraining the set of values that you're allowed to work with. After a while you learn how to write good, idiomatic, pythonic Python code.
Then you have async, threading, multiprocessing. You also would want to get a bit comfortable with how Python works as a language, the fact that it is compiled to bytecode and interpreted in a VM. Garbage collection, resource management (usually with context managers).
This is just to give you an idea of a lot of things that you can learn, and how deep programming languages go. This can take years to learn and get comfortable with, but you're ahead of the curve already so it'd be a good rate of progress.
And of course, a lot of the concepts that I mention here can be found in many other languages (like classes in Java, async in Rust, generics in those two languages and C++, and more).
And finally, it's great to see someone being really curious like you! Embrace it, and have fun in your programming journey. Feel free to ask more questions if you're curious about something.
sad_ant0808@reddit (OP)
thanks dude for all the help! im gonna learn classes soon. i can do the basics tho, recently got good with functions and iteration. now im gonna look for a project idea and actually work on it.
dreadlordhar@reddit
on curricula
> The candidate should have a minimum of 1 year of work experience in the same job role.
Isn't there a shortage of teachers?
Jokes aside, if you know basics of programming you could try to go low level with C (I like to decompile my binaries to see how CPU executes them), that won't hurt. For the projects language doesn't matter, like for example Nubank built their fintech on Clojure, FL studio on pascal dialect (delphi). Customers don't care what language you use on, use what you like.
Before swimming in though, explore more python on your own, have you used nested iterators? Functions?
And perhaps ignore curricula and focus more to explore on your own, build stuff, try programming etudes.
sad_ant0808@reddit (OP)
i learnt basics of functions. and ik a lil bit of nested iterators. i will try to learn more tho.
dreadlordhar@reddit
you definitely should not jump to other languages. Well, you could start afresh in other languages, but even then stick to one language, you don't have basics of programming nailed in your head yet. Personally I like [free] pascal for a simple reason: it has pointers without C weirdness, so it's fine to teach basics of programming on it. Once you understand pointers (AKA you could build linked lists with them), you could straight jump into C. But even Python is good enough, besides pointers.
masterofaiml@reddit
Master one thing first. Don’t step on multiple things at a time.
unkownstonerlord@reddit
isnt even "mastering" one thing practically a lifelong experience? so that tip not super relevant then is it, unless that one thing is programming as a whole perhaps, or something dependant on the specific context, desires, interests or whataver
masterofaiml@reddit
Nope, mastering doesn’t mean learning entirely, or lifelong experience. It just means you attain certain level of grip on one thing which will act a base/foundation for ones technical skills, no one knows everything, but if attain certain level of grip on a programming language it will be easy to navigate through it when needed, like you look at a piece of code which has complex functions which didn’t learn but since you mastered it you will be easily able to understand it. Relevance is not a thing anymore in this fast pace world with AI, one needs to go with flow, however it’s equally important to have some basic skills. It’s like learning alphabets, basic mathematical calculations etc.
sad_ant0808@reddit (OP)
yeah i also think i should do that
TechBriefbyBMe@reddit
the best next step is just building something you actually care about. people will tell you to learn data structures and algorithms but you'll actually retain it while debugging your own broken project at 2am
sad_ant0808@reddit (OP)
hmm yeah i tried learning js after python and i learnt a lot from just thinking of the biggest project i could make, googling everything i needed to know as i coded it, and i didnt copy paste anything and i didnt even use any code unless i knew exactly how it did what it did. worked like a charm for js but i dont like it too much. so ive started learning golang. the code is a bit boilerplate tho which is killing me ngl. but ig it should 'click' when i actually understand it fully.
8Erigon@reddit
Assembly
sad_ant0808@reddit (OP)
i hope you're not being serious
8Erigon@reddit
Haven‘t programmed in assembly myself.
It‘s good to learn how computers (CPU) work.
Not so much for projects.
sad_ant0808@reddit (OP)
yep. i think its mainly used for communicating directly with the cpu or smth right?
minecraft-is-ta-best@reddit
If you want to learn the fundamentals there's really nothing better. If you want to dip your toes instead of going straight into the rabbit hole I suggest little man computer, super simplified assessmbly with only like 10 instructions: https://peterhigginson.co.uk/lmc/?F5=23-Apr-26_08:36:20 It's used in the UK for teaching so there should be some half decent tutorials or exercises for it
sad_ant0808@reddit (OP)
hmm i will check it out ig
8Erigon@reddit
Think of projects
not of languages to learn.
If the project needs a specific language so be it.
(Github as a repository named build-your-own-x. Search there for project idea if you don‘t have any)
sad_ant0808@reddit (OP)
okay i will check out the github repo.
BeginningOne8195@reddit
You don’t really need to jump to another language yet, going a bit deeper with Python and actually building small projects will help way more right now.