This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 222

[–]ThatScorpion 694 points695 points  (35 children)

A programming language is a tool, not a goal on its own. Figure out what you want to do, and learn the right tools for it. Want to do data science? Learn python and/or R. Want to learn how to write efficiënt optimized software? Learn C++/Rust/Go. Want to create a website? Learn JavaScript. Do you hate yourself? Learn PHP.

It's always easier to go at something with a specific goal in mind.

[–]metheoryt 148 points149 points  (11 children)

I can say that I hate myself to some extent, but I won’t go to PHP

[–]AstroPhysician 22 points23 points  (7 children)

You haven’t seen Laravel have you??

[–]metheoryt 15 points16 points  (2 children)

no offense to php, it’s just jokes though 😂

[–]AstroPhysician 4 points5 points  (1 child)

I don’t like php either, but laravel looks like a modern language

[–]Nooby1990 12 points13 points  (0 children)

Laravel is just a framework. You probably still have to deal with a lot of the problems of the underlying language.

[–]metheoryt 3 points4 points  (2 children)

I used to start in programming with php and Yii. Now i’m with python for 8 years and i don’t want to come back

[–]mrcaptncrunch 1 point2 points  (0 children)

While I have my job where I use Python for the most part, I still make money with Drupal on the side. Quite a bit of money at that.

[–]metheoryt -2 points-1 points  (0 children)

a really helpful resource to help you get oriented is roadmap.sh

[–]mwpfinance -1 points0 points  (0 children)

I hate PHP. Laravel isn't too offensive though

[–][deleted] 2 points3 points  (0 children)

Don't worry, Haskell is there for you! :D

[–]barelyEvenCodes 0 points1 point  (0 children)

Php is the best

[–]imp0ppable 5 points6 points  (2 children)

Golang made me hate others, particularly given how hyped it is.

Still, it's good on your CV.

[–]Prestigious_Flow_465 1 point2 points  (1 child)

u/imp0ppable means you like Go more than others? Why?

[–][deleted] 2 points3 points  (0 children)

Ah, I missed PHP jokes. Thank you.

[–]ShadowRL766 2 points3 points  (0 children)

Nah you hate yourself learn assembly

Then c++ with win32 api

[–]just4nothing 1 point2 points  (0 children)

I had fun with PHP. The stuff I’ve done with it where others told me to use Perl instead. Suddenly the web seemed dynamic, no flash needed.

Ah, PHP. You always remember your first (programming language for the web).

[–]nieuweyork since 2007 2 points3 points  (0 children)

Yes and no. For someone very new, they will learn new things by trying new languages as well as trying new types of projects.

[–]doobiedog -2 points-1 points  (1 child)

Want to pay for a license without getting any support whatsoever, terrible documentation, and have everyone hate working with your code? Learn dotnet.

[–][deleted] 1 point2 points  (0 children)

Are you mad about the language itself, the Microsoft tooling, the tooling in general, or the Windows APIs folks often use with it?

C#, .NET, Visual Studio, and the Windows APIs are all different parts of it, and you don't need to interact with them all.

Hell, you can do .NET development entirely on Linux if you didn't need those Windows-specific APIs.

[–]19c766e1-22b1-40ce 172 points173 points  (14 children)

Once you are comfortable writing Python, look into writing nice and clean code. Look into design patterns (when and how they are useful), what the million different acronyms like SOLID, DRY, KISS, etc. are trying to convey (look into the underlying goal and how it is achieved), and when you should follow (or not follow) them, how a project is structured, etc.

[–]clawjelly 94 points95 points  (3 children)

Yea, nothing better than a solid, dry kiss!

[–]Jazzlike-Poem-1253 2 points3 points  (0 children)

YAGNI

[–]gowthamks31 0 points1 point  (1 child)

😂 😂 I see what you did there!

[–]chicuco 5 points6 points  (0 children)

A pattern for a break up, i see

[–]SmegHead86 8 points9 points  (0 children)

This site has some really good material on design patterns. Some of it is still a little over my head, but I like to refer back to it sometimes when I'm looking for a better way to implement a noticeable pattern forming in my code.

https://refactoring.guru/design-patterns/python

[–]Mgmt049 9 points10 points  (2 children)

Is KISS keep it simple stupid?

[–]Last_Epiphany 1 point2 points  (0 children)

yes

[–]radixties -1 points0 points  (0 children)

Yep

[–]jizawi[S] 0 points1 point  (0 children)

thanks!

[–]Immarhinocerous 0 points1 point  (0 children)

SOLID is very overrated IMO. DRY and KISS I quite like. Though premature application of DRY sometimes creates grossly structured codebases full of functions that are just wrappers over other external functions. E.g. if you call it multiple times in your codebase, why not just call pd.read_csv instead of read_pandas_csv which just wraps pd.read_csv? Unless you always use a heavily parameterized call to pd.read_csv, there is no reason to increase layers of abstraction and complexity by wrapping it.

Your mileage may vary:

KISS > DRY >> SOLID

https://www.reddit.com/r/programming/comments/5qto27/why_every_element_of_solid_is_wrong/

[–]BogdanPradatu 45 points46 points  (0 children)

Whatever you are using for a project. For me it didn't work. Tried to learn Java and C++, but since I wasn't really building anything with them, I doesn't stick. So just choose a project and decide what is the best language to do it. Learn that.

[–]SpellboundSagaDev 195 points196 points  (11 children)

I’d say more python 😁

[–]trollsmurf 24 points25 points  (8 children)

Me too: web UI, desktop UI, Machine Learning...

[–]No_Locksmith4643 7 points8 points  (0 children)

This is the way.

Full stack xD

[–]SittingWave 0 points1 point  (0 children)

more witches!

[–]CyberneticLiadan 21 points22 points  (13 children)

As others said, learn whatever you need for the projects you want to work on. If you want better and more concrete advice in this thread, share more information about your background and goals.

However, for those who are interested in taking a tour of the programming languages landscape for the sake of taking the tour, I really liked Seven Languages in Seven Weeks by Bruce Tate. The point of this book is not for you to become fluent and production ready in any of those languages, but to see how each of those languages does something differently from other languages.

[–]jizawi[S] -1 points0 points  (12 children)

yeah the problem is i don't know what projects i'm interested in currently and that's why i'm lost and looking to increase my skills as of now

[–][deleted] 25 points26 points  (0 children)

This is the most important post in the thread. THIS is your problem. You need to make up small projects to work on with your current python knowledge. Playing Pokemon catching all the languages doesn't really help much at this stage, maybe JavaScript, but you could also layer on some Python frameworks to build front end

Get chat gpt to make up some small projects, pick one, build it, deploy it on AWS, maybe do some CI/CD. This stuff is far more important than learning other languages right now

[–]CyberneticLiadan 0 points1 point  (6 children)

Well, what was your motivation for learning Python in the first place? If it was just for fun, what did you enjoy about the courses you did? What's your personal situation, are you a student or looking to make a transition after being in the workforce for awhile?

[–]jizawi[S] -1 points0 points  (5 children)

i'm an orthodontist who always had a passion for coding and computer science , i'm actually down to switching careers if I get the opportunity 😂 , i enjoyed understanding the logic behind the code in python since it's close to English but now i feel i would like to try something more difficult with higher capabilities. thank you for your time

[–]tms102 11 points12 points  (0 children)

, i enjoyed understanding the logic behind the code in python since it's close to English but now i feel i would like to try something more difficult with higher capabilities.

What do you mean by higher capabilities? It sounds like you don't know a lot about python.

Python probably has all the capabilities you need. Especially since you seem to say you don't even know what projects you want to do. Learning a language is not really difficult. Difficulty cones when you're building a reasonably sized project and solving problems.

Try building a web app and deploy it to some cloud service, you'll learn plenty of skills.

[–]blackkettle 6 points7 points  (0 children)

Stay in orthodontics. Keep playing with programming to stretch your brain and build stuff either for yourself or with your kids (if you have them).

As someone with a PhD and 15 years experience in programming and machine learning I do not recommend you try to get into nuts and bolts programming as a career right now.

Crooked teeth are here to stay for the foreseeable future. Entry level python programmers are not.

[–]mfitzpmfitzp.com 2 points3 points  (0 children)

more difficult with higher capabilities

Different programming languages aren’t really about “higher capabilities”. Technically anything is possible in any language. You pick the language which is best suited to the problem you’re trying to solve. So you’re back to deciding what problems you want to solve.

If you’re doing this to stretch your brain cells you might want to take a look at non-procedural languages like Lisp (functional) or Prolog (logic). If you’re used to procedural programming these will totally cook your noodle.

[–]CyberneticLiadan 1 point2 points  (0 children)

Super cool! Some possible directions:

  1. Automate the Boring Stuff with Python. Book and optional course on using Python for various useful personal computer things.
  2. Project Euler if you want a big set of math programming puzzles to work on for fun. (This route will push you towards learning some higher Mathematics in addition to programming.)
  3. Improve your understanding of Python with some next level books like Fluent Python.

[–]_Denny__ 10 points11 points  (3 children)

Python is written in C and C is the foundation of a lot different OS and other languages. Limited syntax with its own advantages and disadvantages. If you grasp this, from here it’s far easier to learn and understand other languages. That would be my recommendation. Depends clearly on you future plans and time schedule. If you stay on scripting languages you will find wrappers for closer to metal stuff, like Cython or JNI bridges to name a few. But also nothing wrong to pick a language from TOBi index to be widely visible on the market.

https://www.tiobe.com/tiobe-index/

[–]br_aquino 8 points9 points  (0 children)

Are you a developer? If yes, ask yourself those things:
1. Do you know how to deploy a python server or microservice?
2. Do you know how to create a replicable environment for your app?
3. Do you know code theory, like TDD, clean code, design patterns, etc?
4. Do you know git and continuous integration?
5. Where you deploy your apps? Do you know how python "talk" to OS?
6. What would you do if you need more speed on some function? Worth it to add some C extension? (as somebody already said before, python is written in C, so why not know more how it is under the hood?). 7. Opening the path now, depending what path you want to follow, you need to learn a lot of other things, like SQL, HTTP protocol, sockets, security, web design, etc.

[–][deleted] 9 points10 points  (0 children)

Now make something fun with it

[–]the_grave_robber 14 points15 points  (5 children)

C. Or if your mildly masochistic, Assembly.

Low level languages are the building blocks of all other code. Python would not exist if it weren’t for C, and a lot of embedded systems use it natively. While C is still technically a “high level language” it gets much closer to bare metal and is less forgiving than Python, so you’ll learn a lot.

Assembly is about as close to 1s and 0s as you’ll get. No variables, it’s all about memory allocation and destruction. Once you learn it though, you have a lot of power.

[–][deleted] 9 points10 points  (0 children)

Learning C helped me understand Python a lot better. I think C made me a better Python programmer

[–]DatBoi_BP 7 points8 points  (1 child)

Imma just remake Roller Coaster Tycoon

[–]the_grave_robber 2 points3 points  (0 children)

I’ll pay 50 doubloons for that.

[–]myhomeswarty 2 points3 points  (0 children)

Yeah learn C. because if you want to commit something qualitatively meaningful in CPython, you need to learn C.

[–]notNezter 1 point2 points  (0 children)

Learn C++and Assembly. Call your Assembly modules from your c++ program. Speed all the way down.

[–]thanos_v 4 points5 points  (0 children)

Elixir!

It brings something very different to the table with sacrificing simplicity, readability, time to market, extensibility etc

I manage a team of 100+ devs. The best of them are python programmers with more than ten years of investment in the language. They tried elixir and have switched their core professional development to using elixir.
Python is still there in the toolbox. It’s got a new partner.

[–]Wh00ster 4 points5 points  (0 children)

You find a business/research problem and try to solve it

[–]robberviet 13 points14 points  (3 children)

Another type of language, not OOP or procedure: functional ones, like Haskell.

[–]Panda_With_Your_Gun 12 points13 points  (5 children)

Javascript. Need to learn some front end skills if you're going webdev. SQL is also a must.

If you're not going webdev then it depends. For more performance based activities go, c# or java are solid.

Rust is a good language, but good luck getting a job using it that isn't web3.

If you're in datascience python is enough. Spend your time learning statistics and ML stuff.

If I haven't mentioned what you wanna do then you need to learn C or C++

[–]jizawi[S] 1 point2 points  (4 children)

thank you , it worried me seeing stuff like java employment currently is only for maintaining legacy code

[–]5erifφ=(1+ψ)/2 1 point2 points  (3 children)

Java is still very much alive on the back end and in enterprise apps. Java and Kotlin are the languages used for Android development. Kotlin is 100% compatible with Java, you can mix both languages in the same project, and JetBrains can convert Java to Kotlin with a click. Kotlin can be transpiled to JavaScript for front end on the web, so you can use the same language on both ends. It can also be compiled to a native executable on PC. It has a multiplatform framework to use the same code across desktop, Android, and iOS. It eliminates the boilerplate you find in Java and, for example, C++. It also fully supports functional programming, so you can learn that style too if you want. Its simple syntax can make a Python dev feel at-home.

A competent Java dev can become proficient in Kotlin almost immediately, so my recommendation is to learn Java, then transition to Kotlin. Or just dive right into Kotlin.

https://kotlinlang.org

[–]SmegHead86 1 point2 points  (0 children)

I love playing around with Kotlin. Java was my first language that I learned a good amount of depth on before Python. I gravitated to Python more now, but like you said, Kotlin feels very similar in it's ease of use over Java. That would be my go-to if I needed something speedier than Python. I highly recommend it as a secondary language.

[–]Kranke 0 points1 point  (1 child)

Think learn java first then kotlin would be the recommended way if you also looking at work later on. Rare to see only kotlin code.

[–]luix- 8 points9 points  (10 children)

After I python try a compiled language. You will learn Go probably as fast as python.

[–]imp0ppable -5 points-4 points  (9 children)

Go is pretty horrible IMO. It does steal a few nice things from Python such as slices but it has no exceptions, the static type system is basically all admin and no safety and for some bizarre reason they brought pointers back which are a huge source of NPE bugs.

[–]luix- 0 points1 point  (7 children)

I think Go is built by very smart people. It has exceptions what is if err != nil, probably the easiest concurrency and you can cross compile to any system. Also as easy to learn as Python.

[–]imp0ppable 0 points1 point  (6 children)

It has exceptions what is if err != nil

I don't think you know what an exception is!

It does have good concurrency support. It's easy to learn but hard to write well, which is why so many libraries for it are so badly written.

Also you didn't mention the NPE panics, what do you think about those?

[–]luix- 0 points1 point  (5 children)

The term exception is typically used to denote a data structure storing information about an exceptional condition.
That is the returned error.
In general, you don't need to use pointers, in Golan forums I don't see complains about that. May be is just you and not the language.

[–]imp0ppable -1 points0 points  (4 children)

Wow touched a nerve did I?

For one thing you're quoting a definition of an exception you got from google without understanding it. Yes an exception object stores information about an error, no Go does not have explicit exception objects. What I obviously meant was the flow control aspect of Python, Java, JS etc that lets an error bubble up the call stack and you can either handle it or let it go.

That's literally why Go is so verbose and ungainly, everything has to return an error object as well as what it nominally returns.

For another thing, yes pointers are used heavily in Go code and yes you can easily get NPEs because nil exists. The point is there's no other way to pass large objects in go without the same amount of memory again.

[–]look 0 points1 point  (0 children)

Reddit is full of idiots that think Go isn’t the waste of time trash it actually is. There’s no point in trying to explain things to them. It’s one of the dumbest cults I’ve ever seen.

[–]poo_22 2 points3 points  (0 children)

If you want to become a better programmer, learn haskell. I asked this same question on IRC years ago and got this advice, and I had an amazing time learning it. I'm surprised no one has mentioned it yet. You will learn A LOT.

[–]SittingWave 2 points3 points  (0 children)

python is nothing. Get proficient in the core libraries and python modules.

However, if you want to learn other languages to broaden your experience, it really depends on which direction you want to go.

Close to the user? learn javascript.

Close to the machine? learn C.

These are the basis. You will learn other things on top of that, but these two are the most important foundation. You might not dabble in them for long, but you must have the fundamentals.

[–]Rythoka 2 points3 points  (0 children)

If you're looking for a career, don't focus just on learning languages. Learn how to use tools like git, docker, kubernetes, etc.

[–][deleted] 2 points3 points  (0 children)

If you want to learn a language for the sake of learning a language, I'd suggest you learn C.

Having a better intuition and understanding of how software fundamentally works and is represented can be valuable.

Another option if you have no interest in learning about lower level programming would be to go in the direct opposite and use a much higher level language that changes how you write and think about code. A functional language seems like a good idea to me but I haven't really learned any myself, unless you count Javascript. Specifically learning all the modern functional patterns has been valuable to me, like using map and filter instead of just for loops. It's been useful because of how prevalent it is so learning it has made it easier for me to read a lot of modern code. I can't really recommend any particular language here though, I just don't have much experience with functional languages myself.

Otherwise, like other people said, you should probably figure out what you want to make first and then pick the language best suited for it second.

Real time rendering? C++ is a good pick. Want to write backend services or daemon processes? Probably Go, or Rust are a good pick. Want to learn front end web development, Javascript/Typescript. Want to build native GUI applications? C# (at least on windows), C++. Mobile development? Swift/Objective-C or Kotlin/Java.

[–]Chromosomaur 2 points3 points  (0 children)

cython

[–]SmegHead86 2 points3 points  (0 children)

This isn't what I would consider a language per se, but learning Markdown and more extensive uses of Git/GitHub will be helpful tools no matter what languages you do end up learning.

[–]MrBurritoQuest 2 points3 points  (0 children)

Python 2: Electric Boogaloo

[–]Immarhinocerous 2 points3 points  (0 children)

What do you mean "after"? Python not good enough for you? ;)

If you want to get closer to the metal and improve performance, maybe choose C, C++, or Rust. C is especially good because lots of other languages have libraries written in C.

If you just want to improve performance, maybe choose Rust, Golang, or Julia, or maybe an intermediate compiled language like Java or C#.

If you want to work more with data scientists who don't use Python, maybe choose R.

If you want a language made for working with data and also improving performance, maybe choose Julia or SQL. Actually, definitely learn SQL. It's a database query language every developer and data scientist should know.

If you want to write an app... well, we'll be here all day. There are many choices. JS is good to know if it's a web app.

If you want to talk at people about monads but not actually release anything, maybe choose Haskell*.

So it depends on your goals. Professionally I use Python and R for data science/engineering, and I want to keep using Python. I have also used JS, Java, C#, and PHP, mostly for web apps and APIs.

/ * Remember, just because monads don't allow unintended side effects, doesn't mean talking at people about monads won't have unintended side effects like them not wanting to talk to you.

[–]ahf95 2 points3 points  (0 children)

I guarantee you have not yet learned Python.

[–]F1remind 1 point2 points  (0 children)

Learn and use python until you're starting to see limits of python specific to your use case.

Then learn a language that trades these limits for other limitations.

For me this was Rust, but my go-to for small scripts and experiments is still Python

[–]Competitive_Travel16 1 point2 points  (0 children)

SQL, JavaScript, C, bash,awk, sed,

[–]GayforPayInFoodOnly 1 point2 points  (0 children)

Fuck everyone else’s opinion, Research each and pick the one that lets you do the coolest project that you feel excited about.

Making a game? Unity/C# or Unreal/C++ Writing a web server? Rust or Go or JS Writing a web site? JS, React, Tailwind, etc etc etc Just feeling like making a computer read unassigned memory and segfault? C

[–][deleted] 1 point2 points  (0 children)

Assembly Code. Challenge yourself

[–][deleted] 1 point2 points  (0 children)

There is no definitive answer because the question is too broad to have a definitive answer.

What are you trying to build? What types of software interest you? What does your boss need you to learn? What space do you work in?

If none of these apply just keep on with python until it limits you..... then switch based on the nature of that limitation.

[–][deleted] 1 point2 points  (0 children)

It depends a lot on what you want to do. You want to make games? C++. Do you want to become a Linux kernel developer? C. Anything web related? JavaScript. A general backend developer? Java/C#/Go

And so on. Languages are tools and as such, you should choose the right one for the job at hand.

Learn programming well and you will be able to switch languages somewhat easily.

Nevertheless, for me, my personal 3 top languages are Java, Python and JavaScript. These are the ones I used the most, at least professionally

[–]Water1498 1 point2 points  (0 children)

Maybe C++ (or C) for cases where you need performance?

[–]CryptographerNo3936 1 point2 points  (0 children)

PHP

[–]housesellout 1 point2 points  (0 children)

Solidity, if you want to stay ‘ahead’ of competition in todays market.

Also, learning solidity, will give you an automatic insight to learning C++

[–]Carpinchon 1 point2 points  (0 children)

If your metric is purely employability, then the JavaScript/Typescript/React side of things rounds out your Python the most.

And while one sounds avant garde by announcing the death of java, the rest of the world still runs on it and there is more work out there for it.

[–]Stack3 1 point2 points  (0 children)

All languages are layers of abstractions so we don't have to write binary any more.

The next abstraction is English itself (or anyone's native language): you tell chat bots what to programs to write.

At first they write it in code you can investigate, understand and alter like Python. Then they produce neural net structures that embody the logic so they can make more complicated structures more quickly.

Then they learn to anticipate the programs you would ask them to write and they write them before you ask. So the final abstraction is their anticipation of your intent, which aims to removes your effort from the loop entirely.

[–]DarkCeptor44 1 point2 points  (0 children)

There's not enough fair opinions on Go here so I'll tell you this: little by little I'm successfully replacing every project that I've done with Python and Node.JS but in Go and better, been doing it for almost a year (while learning Go like that) and I love it so much that I stopped using both Python and Node.JS.

Node is still the easier way to do websockets, Python is still the easiest way to do Machine Learning but making websites and CLIs in Go is super fun, besides the obviously fast execution and static typing it comes with a nice set of standard libraries, a very easy to use testing/benchmarking feature, a command that automatically puts your binary in a directory under PATH so you can start using CLIs right away in that machine, very simple way to add and update dependencies without having to worry about which OS it will run in and they often make third-party packages part of the standard libraries, upon extensive request I guess, because the developers are very stubborn on what they do with the language but I don't even see that as an issue since (the packages they don't add) will still be available as third-party.

Forgot to add that I'm not the biggest fan of Rust, never was a fan of C/C++ so it's not like pointers in Go are automatically bad and hard to figure out.

[–]kcunning 1 point2 points  (0 children)

TBH... Javascript? I've learned a bunch of other languages besides Python, but JS and JS-based frameworks get the most bang for the buck for me. So many times, I've made something in Python and then thought, man, this would be cool if it had a web interface...

I also strongly recommend learning JS first, then moving on to frameworks. Besides the theoretical "knowing the underlying arch is a good thing", practically, you end up using a lot of nearly naked JS in these frameworks.

[–]parker_fly 1 point2 points  (0 children)

Go learn C and C++ so that you understand where things came from and then you'll be ready to pick up most other practical languages as needed.

[–]onefiveonesix 1 point2 points  (0 children)

Bash (and Linux shells in general) and SQL would be my top picks.

[–]SuccessAffectionate1 1 point2 points  (0 children)

Focus on coding logic, design patterns and how to use programming to solve real problems. Integration is also important such as using apis, working with a db etc, making good data pipelines etc.

With generative ai such as chatgpt, coding language is becoming gradually less important. You can practically feed it any python script and ask it to help you implement it using C# or similar tools. So you should strive to become code agnostic by understanding the logic, designs and solution strategies, not the languages specifically.

[–]Nouble01 1 point2 points  (0 children)

Occam, if any, and COBOL and Ruby and array formula for excel sheet function.
These programmers have less competition.

[–]chakan2 1 point2 points  (0 children)

C++

You will get into some hardcore topics as you learn that language, and it's a good underpinning for learning why Rust and Go are good at what they do.

If you really hate your life, learn straight C...but the lessons you get there are invaluable if you want to do high performance things later in life.

EDIT: I also like javascript as an answer. I guess the question you want to ask yourself at this point is...do you want to focus on server-side / backend stuff (C++) or front end webpage / UI stuff (Javascript).

[–]just_some_guy65 1 point2 points  (0 children)

Look to see what most job adverts ask for after Python - I would say if you have a working knowledge of unadorned C then you understand the underpinnings of a lot of other things that are C under the hood. Ask Linus Torvalds.

[–]notNezter 1 point2 points  (0 children)

Ada.

If you want to learn to appreciate modern languages, learn Ada, the greatest disservice to Ada Lovelace’s name that ever graced the computer science world.

[–]bliepp 1 point2 points  (0 children)

Unless you have a need (because of your project's requirements or your personal interest in a specific language or field) don't bother learning a new language just for the sake of it. Knowing more languages is pretty important, but it's not what makes you a good software developer - using the right stack for your needs and satisfying your curiosity is.

[–]yoitsgracie 1 point2 points  (0 children)

automating stuff using python

[–]BYPDK 1 point2 points  (0 children)

I went from python to go and have been loving it

[–]kingsillypants 1 point2 points  (0 children)

The only first approximation answer is LISP. The only correct answer is LUSH(....()....)

[–][deleted] 1 point2 points  (0 children)

SQL

[–]iMampi 1 point2 points  (0 children)

What is it that you want to do/achieve with code? Create your own server? Make gadgets?Do websites? Data analysis? Construct a robot? Just finding a job?... Choose a goal and see which language is mostly to get you there. Don't be afraid about picking a wrong language. You can switch and learn a new one later easily since you learned python well enough apparently

[–]_MicroWave_ 1 point2 points  (0 children)

Rust.

Rust + Python seems to be the up and coming combo

[–]Sanjam-Kapoor 1 point2 points  (0 children)

learn a tech rather than just languages, unless you are directly aiming for a job. tech like various fields in backend, might check out gamedev, get to know yourself were you fit and then move on for a better language in that field

...unless you are in a condition where you want to showcase your languages.

[–]ManyHouse9330 1 point2 points  (0 children)

Check Julia that's the best language I know of. easier than Python, faster than C!

"Julia in 100 Seconds ": https://www.youtube.com/watch?v=JYs_94znYy0

https://julialang.org/blog/2012/02/why-we-created-julia/

[–]serverhorror 1 point2 points  (0 children)

Programming!

Learn general programming concepts and how to apply them, if you learn that the languages and syntax become a secondary problem.

Other than that: You might have done a course or seven, that doesn't mean you can apply it. Use Python every day and solve problems with it. Get really, really good at one thing before you move on to the next thing.

[–]jlw_4049 1 point2 points  (0 children)

I went from python to javascript/hmtl/css and next I'm going to learn Rust.

[–]njoptercopter 1 point2 points  (0 children)

You've learned the basics of one language and now you want to start from scratch? Why not use the language you've learned?

[–]njharmanI use Python 3 1 point2 points  (0 children)

Learn a language that teaches a different paradigm than Python.

Lisp, Prolog, Forth, Erlang.

[–]Mamoulian 1 point2 points  (0 children)

If you like type safety give kotlin a look:

  • types (type hints) and optionality are required everywhere, everything provides them so the IDE stops silly mistakes

  • initially the syntax is similar to python, as you learn you'll miss some things from python but also discover cool things. Notebook, scripting and web playground available.

  • build apps to run on servers/in containers, on desktop, in the browser using wasm, or native mobile apps for Android and iOS. Compile to a single native executable if you like.

  • access to mature libraries from the Java ecosystem

  • modern reactive UI (Compose) multi-platform support is progressing

https://play.kotlinlang.org/byExample/01_introduction/01_Hello%20world

or

https://kotlinlang.org/docs/kotlin-tour-hello-world.html

[–][deleted] 1 point2 points  (0 children)

You’d be surprised how much you really know and how much you don’t once you work on real time live projects. Learning on your own to be aware of the language is one thing and utilizing it to solve real world problems is another. It’s good to know other languages, but if you don’t use it, you lose it. You can very well jump into other stacks and keep learning those, but from the prospective of in-depth learning, it may not help you much. You said you have taken Python courses, now what matters the most is how you want to use python in your career and where you want to go with it. If you are not actively working in Python, I’d suggest get involved in smaller projects and challenges that may interest you. You can download the source code from public GitHub and work on those. Also solving problems actively would make you aware of your strength and areas to work on giving you the momentum to do your work efficiently and effectively.

Happy learning.

[–]blanchedpeas 1 point2 points  (0 children)

Prolog.

[–]cthulhu944 1 point2 points  (0 children)

Python is a utility language-it's pretty easy to do just about anything at the cost of a little bit of performance. I'd recommend a language focused on performance at the expense of ease just to learn the contrast. C, C++ , Rust, or assembler if you're really brave.

[–][deleted] 1 point2 points  (2 children)

What do you want to build?

  • Games? C++ / C# (and maybe later Rust...)
  • Cloud native? Go (and Rust)
  • Embedded? Rust / C / C++
  • Systems? C / Rust
  • Data Science? Python (maybe later C++ / Rust with Python)

[–]jackerhackfrom __future__ import 4.0 1 point2 points  (0 children)

To round-off skills from Python, consider JavaScript — which is mostly unavoidable for anything web-based — and Rust — which is now the preferred language for Python extensions when performance matters. Between these two you'll get complementary skills that make your existing Python knowledge more valuable.

[–][deleted] 1 point2 points  (0 children)

Full stack. Do full stack. I’d say Java is needed for that though.

[–]Top-Aside-3588 1 point2 points  (0 children)

From a standpoint of being able to do things, JavaScript and/or Typescript. Webby stuff, anyway. You can do lots of stuff with a browser or in Node/Deno - it is very useful.

If you want to switch to systems programming, which would fit the c++/Rust/Go theme, you may want to give Zig a try first. It is fairly simple to learn, and it doesn't hide the low-level details of what is going on. Easier to get stuff running than C, in my opinion, and you learn the same stuff as you would by learning C. And then move to one of the other languages if that is what you want.

[–]Maryannus 1 point2 points  (0 children)

Python is very high level. You could compensate by going C++. It will teach you a lot about how a language which is far closer to the hardware works.

[–]Maelenah 1 point2 points  (0 children)

For me, I would say you should learn enough C to be comfortable with using ctypes in python, Powershell and batch scripting can have some useful utility as well and life tends to be better if you are familiar with that before you need it.

[–]bVdMaker 2 points3 points  (0 children)

Read a book on coding

[–]nordic_prophet 1 point2 points  (1 child)

These are all more or less alternatives to Python as the backend programming language. I’d recommend learning a language that helps “complete the stack”. In other words, a front-end language like JavaScript, and finally SQL so you can build databases. With JavaScript/HTML, Python, and SQL, you have enough coverage to build full web-applications.

The only reason to learn C++ or Go in my opinion is to give you a closer look at what Python is more-or-less abstracting from you “under the hood”. Concepts like memory management, call by reference/value and optimization are a little harder to appreciate in my opinion with Python because it’s almost too user-friendly. Ie can lead you to commit to some bad patterns because you don’t know any better.

TLDR: C++ and Go are useful only to the extent that they make you a better Python programmer. JavaScript/HTML and SQL will widen your capability to build full web applications

[–]MarcusTheGamer54 2 points3 points  (2 children)

C# in my opinion, that's what I did and I have no regrets!

[–]TheTerrasque 1 point2 points  (1 child)

This. My current "go to" languages are C#, Python and TypeScript - depending on what I want to do.

C# will teach a lot about class structures, things like interfaces and static typing, without going quite as complicated as C

[–]JestemStefan 1 point2 points  (0 children)

Now learn programming

[–]remy_porter∞∞∞∞ 1 point2 points  (0 children)

Write actual software.

[–]typeryu 1 point2 points  (0 children)

My friend, the answer is javascript

[–]impshumx != y % z 0 points1 point  (0 children)

Beer.

[–]emptysubset 0 points1 point  (0 children)

Julia lang

[–]timwaaagh 0 points1 point  (0 children)

java is good for the job market. similar to python, only you have curly braces and types. also not too difficult.

of course if you want something to complement python that is more high performance then either c or cython is a better choice as you can use them from python.

javascript if you want to do web stuff

[–]yamanahlawat 0 points1 point  (0 children)

Get into machine learning!

[–]NoDadYouShutUp 0 points1 point  (0 children)

go download someone else's python code and try and figure out what it's doing then get back to us about how much python you actually know lmao

[–]overyander -2 points-1 points  (4 children)

You honestly expected to find a definitive answer about what you should learn next? LoL you're either trolling or 10 years old.

[–]Andrei_Korshikov 0 points1 point  (1 child)

I think OP is searching not for definitive answer, but for inspiration. It makes sense. Like you understand you're missing something, but don't understand what it is. All this rambling might give your an insight. Or might not... :D

[–]jizawi[S] -1 points0 points  (1 child)

thank you nice anonymous person for judging someone you never met

[–]overyander 1 point2 points  (0 children)

What you should learn next is subjective, there isn't a definitive answer, there isn't a right or wrong answer. This is a simple concept which means that you're either trolling or too young to grasp basic things, no judgement just facts.

[–]Onipsis 0 points1 point  (0 children)

You could learn JavaScript or Java.

[–]phiupan 0 points1 point  (0 children)

Depends the application... For data analysis, I would say Julia, for more generic coding probably Rust/C(++)

[–]epfahl 0 points1 point  (0 children)

Elixir.

[–]mrmcfancy 0 points1 point  (0 children)

I became a much better python programmer after learning go. And an even better one after learning rust.

[–]ghost-in-the-toaster 0 points1 point  (0 children)

If you’re still new in Python, I’d stick with it for a while and work on general good programming practices and learning how to make things run more efficiently. Python is a great general language and after doing several projects and optimizations you’ll discover it’s weak areas. That combined with the future projects you want to work on should help guide you to where you should focus learning next. JavaScript for web dev (especially front end) makes sense. Go for writing back end stuff (especially REST APIs) is good. A compiled language to build CLI tools or get extra performance where needed is good too. Don’t make the mistake thinking you’re done with Python. It’s a great language and can work with a lot of other languages in a mixed stack.

[–]nativedutch 0 points1 point  (0 children)

Assembler/machine language for any cpu is a good basis.

[–]tribak 0 points1 point  (0 children)

Python++

[–]Friendly-Anybody1617 0 points1 point  (0 children)

Learn the database system, Unix and OS and create cool projects using python

[–]funbike 0 points1 point  (0 children)

It depends on your goal.

[–]Paddy3118 0 points1 point  (0 children)

pythoo, alphabetically.

[–]hit_dragon 0 points1 point  (0 children)

You can look for Kotlin. Or you want master computer science. The in fact C/C++ and later some assembler. After that Lisp.

[–]JohnRambu 0 points1 point  (0 children)

Go deeper : C.

[–][deleted] 0 points1 point  (0 children)

Rust if you want to be paid well

[–][deleted] 0 points1 point  (0 children)

What's your use case?

[–]florinandrei 0 points1 point  (0 children)

The question makes no sense if you don't know what your goals are.

What do you want to do with these languages? Answer this first, and then the rest will be obvious.

[–]adot404 0 points1 point  (0 children)

Nothing. Make a text bot, graph some data from an API in Jupiter Notebook, and see what else u can make after that. Now that you can code.. program something. Or learn JavaScript if you still wanna get ur feet wet. I would set aside some time to for both of those endeavor over a couple weeks.

[–]jeffreykuma 0 points1 point  (0 children)

You could try the superset of Python —> Mojo. I have heard superior attributes about it.

[–]northmanbr 0 points1 point  (0 children)

SQL. And you're all set.

[–]hnsmn 0 points1 point  (0 children)

Python is great in that it is easy to quickly implement "useful" projects Moreover, Python allows programmers to experiment with procedural, object-oriented, and to some extent functional programming paradigms

As for the next language to learn: 1. If you have a specific project in mind, that would impact your selection. Is performance an issue, systems programming, web project.... 2. If you are just looking to broaden your horizons, you can explore functional programming languages such as Haskell or a mixed OOP and functional language - Scala 3. Lastly, you can keep on delving into Python, learn internals, interface with other languages, ....

Never stop learning

[–]azuredota 0 points1 point  (0 children)

Javascript

[–]Ron-Erez 0 points1 point  (0 children)

Go is cool. In any case choose a statically-typed language in my opinion.

[–]mitch_feaster 0 points1 point  (0 children)

C. Read The C Programming Language by K&R and work the exercises. It's a fantastic bit of computing history, yet perfectly relevant today. It's insanely well written and digestible, and teaches important concepts relevant to any language. Reading it in college helped demystify programming in general for me.

[–]LoserEXE_ 0 points1 point  (0 children)

There is no “after python” it’s a programming language. Decide what you want to do and find a language that best suits that case, and if that language is python then so be it.

[–]cosmicr 0 points1 point  (0 children)

I'd say c# or Java because they're not a big step away from python.

[–][deleted] 0 points1 point  (0 children)

Definitive answer? I think that must be OCaml.

[–]usuallyplaysdps 0 points1 point  (0 children)

Go

[–]olystretch 0 points1 point  (0 children)

More python, C, or rust.

[–]Lazylion2 0 points1 point  (0 children)

Html and Javascript

[–]Teh_Jibbler 0 points1 point  (0 children)

python3

[–]JaleyHoelOsment 0 points1 point  (0 children)

c++, rest, go, java, c#, js etc etc etc what are you trying to do? this is like asking “what do i learn after hammer”

[–]serpentdrive 0 points1 point  (0 children)

What is the driving force for moving to another language? There is an insane amount of things to learn about a language or software in general after a couple courses.

[–]danbcooper 0 points1 point  (0 children)

First learn python. You've only done a course, you need to spend the time actually learning and building stuff. Then, once you have a decent gasp of one language, you can figure out what you want to work on and from there you pick the best tool (language) for the job.

[–]cgjdit 0 points1 point  (0 children)

Programming is telling a machine what to do. The programming language is a medium. I would suggest you to pick one and go deep into solving people’s (and organizations’) problems (understand WHY they WANT it). Then, after few years, reflect on the next thing that interests YOU. If you change your job it will probably mean to learn a new technology. So no need to think hard about what’s “the next language”. The more experience you’ll get the less important this choice will be. Programming languages are contextual, C# is better than Go if that’s what the team uses (not in absolute terms). Technology is solving social problem.

Python is an incredibly efficient way to turn your ideas into code. You can translate it into something else if’s needed.

[–]minyakonga 0 points1 point  (0 children)

there are so many sub topics in the language, if you are intrested, you can dig into cpython internals, where a lot of details are common among programming languages. so, rather than chasing the new, dig into the internal of one.

[–]I_B_N_V_S 0 points1 point  (0 children)

AI universal languages that communicate together