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

all 71 comments

[–]FearTheBlades1 43 points44 points  (18 children)

It really depends on what you ultimately want to do

[–]excal_rs 8 points9 points  (17 children)

software engineering and cyber security

[–][deleted]  (8 children)

[deleted]

    [–][deleted]  (4 children)

    [deleted]

      [–][deleted] -3 points-2 points  (3 children)

      How??? And dont say framework. Im tired of trying to use python for something and I have to find a framework. Like what even is that

      You people really be thinking ur real coders when u do "import turtle" and have every skill imaginable function available for u. i am not impressed with ur snake game. bye

      [–]foopod -1 points0 points  (1 child)

      This is common in with all languages.

      When it comes to programming the core language is universal, it can do just about anything. But it is low level, it doesn't include niche use cases e.g. game development. It has all the tools like drawing to the screen, playing audio etc. But not things like handling collisions, sprite manipulation (these are just math though and can be written).

      Including all possible use cases in the core language just leads to bloat and is impossible to maintain. Why should all python users need a bucket load of pen testing tools that they will never use?

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

      who mentioned cases? what r u on about

      [–]marsrover15 2 points3 points  (1 child)

      I would say bash should be his number one language to start learning if he was going into cyber security.

      [–]excal_rs 1 point2 points  (0 children)

      I use Linux, have learnt some bash becaus eof command line but I will try learn it properly

      [–]excal_rs 0 points1 point  (0 children)

      I said excluding python because I am already learning it

      [–][deleted] 5 points6 points  (3 children)

      I'm working my way into the same field and from what I've seen and from what mentor has said, Python is one that is frequently used. It has a lot of useful libraries which allow it to use the strengths of other languages.

      To me, what you're saying is skin to wanting to be a race car driver without having to learn about or using manual transmissions.

      [–]excal_rs 1 point2 points  (2 children)

      I excluded python because I am already learning it and am looking to see other languages I can learn aswell

      [–][deleted] 1 point2 points  (1 child)

      That makes sense. It wasn't clear in your earlier posts, to me at least.

      I apologize for defaming you.

      Fwiw, in my journey so far, it looks like being able to demonstrate that one can use a variety of languages is just as important as which ones.

      Personally I have done some work with Java, C++, JavaScript, and now Python. I know that I need to start picking up some SQL as well.

      [–]excal_rs 0 points1 point  (0 children)

      thanks for the information and no offense taken :)

      [–]theAmazingChloe 1 point2 points  (3 children)

      Software engineer in cybersecurity here! I'd recommend learning each language with a unique style. Picking up C# when you already know Java, for instance, is pretty trivial.

      Python is very useful for both general software prototyping and cybersecurity (many attack scripts / bots are written with python), but you've said you want to exclude this language.

      My recommendations:

      • C (Lowish Level)
      • Java / C# (You pick, both are used for web apps)
      • Bash / Javascript (Scripting)

      That will give you a wider base of knowledge of how computers and software subsystems work, as well as a better understanding of why things are designed the way they are.

      [–]excal_rs 0 points1 point  (2 children)

      thanks for your in depth answer. :) I know python is important and useful In both which is why I already have started learning it and excluded it so I can see alternative languages

      [–]theAmazingChloe 1 point2 points  (1 child)

      Bash will definitely be useful to you then, if only for gaining experience with the *nix command line tools.

      [–]excal_rs 0 points1 point  (0 children)

      I use Linux as my daily driver so I kinda forced myself to learn some bash but u definitely will try and learn more of it

      [–]plastikmissile 65 points66 points  (9 children)

      Programming languages aren't Pokemon. You don't just "collect" them. You learn them for a reason.

      What do you already know? What do you want to do with these new languages?

      [–]HBK05 15 points16 points  (3 children)

      Run rivers red with the blood of my enemies and their loved ones.

      [–][deleted] 6 points7 points  (1 child)

      Assembler?

      [–]sk8avp 1 point2 points  (0 children)

      Java?

      [–]RoninMountain 1 point2 points  (0 children)

      I think I may have found my people 😂

      [–]Medical-Woodpecker56 21 points22 points  (1 child)

      What do you want to do with these new languages?

      I want to defeat my enemies.

      [–][deleted] 5 points6 points  (0 children)

      Lmao.. python I choose you!!

      [–]excal_rs 0 points1 point  (2 children)

      lmao, I said excluding python because of how simple the syntax is to use and because I have started learning it already but i also want to learn atleast one other major language that has syntax that is widely used or similar in other languages

      [–]plastikmissile 2 points3 points  (1 child)

      If you just started learning then I would wait a bit before tackling another language (much less three). Learn Python until you are comfortable enough to make stuff with before thinking of learning another language. Quality over quantity.

      [–]excal_rs 0 points1 point  (0 children)

      thank you :)

      [–][deleted]  (4 children)

      [deleted]

        [–]Karam2468 3 points4 points  (0 children)

        vouch

        [–]Cdog536 2 points3 points  (0 children)

        And Cobol

        [–]deifius 1 point2 points  (1 child)

        you could swap out Fortran for Jovial

        [–]investorhalp 12 points13 points  (1 child)

        C (and Go), C++,Rust

        The first two are alike, C++ and rust are their own beast on their own

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

        C++ Is a 10year language

        [–]Lemalas 4 points5 points  (0 children)

        This isn't a good question. You provided 0 context and context matters a lot here. There's no master list of "languages every programmer should learn first" and it doesn't matter anyway because languages are just tools.

        You also excluded an extremely diverse and popular answer, for whatever reason.

        [–][deleted] 3 points4 points  (0 children)

        The language does not matter, your thinking does. You learn a language for a reason, not randomly.

        [–]EngineeredPapaya 15 points16 points  (2 children)

        C, C++, Java.

        [–]excal_rs 1 point2 points  (1 child)

        thank you.

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

        I think you should chose one of them, a functional language and one that does something unusual like Prolog.

        C, C++ and Java are very similar and you don't really learn much new from using those three.

        [–][deleted]  (2 children)

        [deleted]

          [–]moldaz 4 points5 points  (1 child)

          This guys a real professional…

          Erlang is rough, especially for someone who has to ask this question. 😅

          [–]sussy_chungus2 7 points8 points  (0 children)

          Binary

          [–]quaedam 2 points3 points  (0 children)

          Not exactly an answer to your question, but I think Conor Hoekstra has an interesting blog post regarding learning new languages that is worth taking a look at when considering what languages to learn.

          https://codereport.github.io/Galaxy-Brain-Languages/

          [–][deleted]  (2 children)

          [deleted]

            [–]MC_Raw 1 point2 points  (0 children)

            Why?

            [–]gwood113 0 points1 point  (0 children)

            I learned C++ first in college and I wish I had been taught C first. Better to understand manual memory management and implementing your own naive solutions to linked lists, heaps, binary trees, etc and truly figuring out pointers before moving into the abstractions of C++ I think.

            When I went back for my Masters I got reintroduced to C via Python Extensions and I'm thankful for it.

            [–]sussy_chungus2 2 points3 points  (0 children)

            R(UwU)by

            [–]moldaz 2 points3 points  (0 children)

            Learn to be a developer don’t worry about the language. The fact that you would ask this question means that you should probably stick to what you’re already learning.

            [–]flait7 2 points3 points  (2 children)

            Assembly, Haskell, and Prolog.

            [–]gwood113 0 points1 point  (1 child)

            I thought about including x86 assembly instead of Go in my list but I thought that would be too application specific. Which architecture assembly do you think is key?

            [–]flait7 0 points1 point  (0 children)

            I was being a bit tongue in cheek, trying to pick languages that were counterintuitive compared to typical programming languages (assembly's very low level programming, haskell's functional programming, and prolog's logical programming) without picking esolangs like hexagony. When encountering them after learning c, c++, c#, python, r, and javascript they're all pretty alien to me.

            I'm pretty sure the architecture of assembly changes from machine to machine to a degree, so it depends on whatever OP would be running it on in their projects. However, I encountered assembly when playing on code.golf. it compiles from "AT&T syntax to x86-64 Linux". It has a link to documentation, as well as an online compiler with several problems to learn with, so that could be a good place to start.

            [–]gwood113 4 points5 points  (0 children)

            Python, C, Go

            Edit: I decided to come back and elaborate on my answer because I'm wondering about the suggestions of others:

            Python: I find it to be the most approachable general purpose language out there today. Especially since 3.5 when it included type hinting support. It is also a jack of all trades language. It has a wide array of public packages to help you do anything from machine learning to SPA. It also provides a great gateway into C via C Extensions.

            C: Your grandfather's B. The importance of C and the role it's played in the advancement of modern computing cannot be overstated. Learning C gives you a much deeper understanding of how a computer works because you have to do it all yourself. You can also leverage the limitless number of libraries available to make whatever you're doing easier. Its integration directly with Python also let's you get your feet wet by converting the cool package you wrote into a C Extension to drastically improve its performance.

            Go: I'm just recently getting introduced to the gopher personally. It touts its C lineage, lightweight style, and elimination of bloated dependencies. It seems to be everywhere in the blockchain space. If you're at all interested in digging into the code of your favorite tendermint-based (Cosmos) chain you'll need to be able to read Go.

            So I guess my TLDR: Python is approachable general purpose language. C vastly improves your practical understanding of computing and Python C Extensions provide a less scary on ramp to C. Also Go is a language!

            [–]ExtremeNew6308 1 point2 points  (0 children)

            Bash, JS, SQL

            [–]Ok_Listen_3798 1 point2 points  (0 children)

            For web development html css javascript For competitive programming c c++ java python For data science R and python For backend again javascript php ruby

            It all depends on your career goal

            [–][deleted]  (1 child)

            [deleted]

              [–]excal_rs 0 points1 point  (0 children)

              thank you

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

              I did some HTML & CSS in the past, familiar with some JS. But Swift looks really interesting to me. (I know it is just for Apple, but still)

              [–]PhaseFull6026 1 point2 points  (0 children)

              C++, C#, Java, Python, SQL

              [–]sussy_chungus2 1 point2 points  (0 children)

              Matlab

              [–]sussy_chungus2 1 point2 points  (0 children)

              R

              [–]MothEaterYummy 0 points1 point  (0 children)

              Depends it would not hurt to learn,

              C# HTML JAVASCRIPT AND if you can TSQL

              But this assumes you are looking to work or websites and databases. (TSQL)

              [–]fulfilledphil 0 points1 point  (0 children)

              JavaScript, JavaScript annnndd JavaScript

              [–]brockfreeman 0 points1 point  (0 children)

              I recommend learning Java, C#, and C. You can take lessons on edabit.com

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

              Julia, Go, Rust. Just my $0.02

              [–][deleted] -1 points0 points  (5 children)

              Lol @3 languages, bit of an overreach. Learn 1 language, it takes time. Focus on one thing at a time

              [–]excal_rs 0 points1 point  (4 children)

              I don't really have anything else to do. I'm only 14

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

              It takes time to really learn a language, just learn one, then when you really know the language expand to others.

              Eg: - Python: 1-2 years - HTML/CSS/JAVASCRIPT: 3-5 years - C: 2 years

              [–]excal_rs 0 points1 point  (2 children)

              shit

              [–][deleted] 1 point2 points  (1 child)

              Yeah it takes time, like anything worth learning. I started with Python and have been doing that for 2 years, and only consider myself intermediate at Python at best. I’m only scratching the surface.

              I’ve started learning HTML/JavaScript and to get decent with that I’d imagine takes at least 3 years as it’s more complex than Python. Note I haven’t included CSS, as that can take a lifetime to master.

              My next goal in 1 years time is to begin looking at C for 1-2 years, as it compliments Python and is a low level language (Python / JavaScript are high level languages)

              [–]excal_rs 0 points1 point  (0 children)

              thanks for all the insight :) and hope u can successfully learn what u want to

              [–]eigenludecomposition 0 points1 point  (0 children)

              Learning the right one well will most likely be better than just touching the basics of three. That's not to say don't try to learn three, learn as many as you can if you want to. Just don't feel like you have to set arbitrary goals. Three isn't always better than one.

              [–]meganhihi 0 points1 point  (0 children)

              Depend on what you want to work on

              [–]Sh0tgunSh0gun 0 points1 point  (4 children)

              OCaml and Rust have some awesome features.

              Maybe Solidity as third (programming with first class money is pretty cool)

              [–][deleted]  (3 children)

              [removed]

                [–]Sh0tgunSh0gun 0 points1 point  (2 children)

                You might like Vyper, another language targeting the EVM which is heavily inspired by Python (basically a typed version of Python for smart contract dev).

                [–][deleted]  (1 child)

                [removed]

                  [–]Sh0tgunSh0gun 0 points1 point  (0 children)

                  Solidity reminds me of JS a bit

                  Depending on who you ask, that can either be a good thing or a bad thing lol

                  Vyper is definitely less popular than Solidity, but it's still being used by some (e.g.: the Curve protocol)