13
jinzo
6y

Should i start with Javascript or Python as a first programming language ?

Comments
  • 7
    I think for starting out with the fundamentals, Python is a good choice.
  • 8
    Python if you want to learn the idea of programming

    JavaScript if you want to do useful stuff
  • 3
    @BambuSource Art thou trying to imply that python is not useful? Why good sir this statement could trigger a civil war.
  • 16
    C if you want to be a good programmer
  • 4
    @BambuSource @ThaOneDude TRIGGEEEEEERRREEEEEEEEEEED
  • 3
    Looks like devRant really isn't the place for beginners to ask for advice.

    It really doesn't matter much between js and python, but js may set up up for a career in web development. Between them, Javascript is a lot more popular than Python.
  • 2
    What do you want to do/make?
  • 2
    Js if you're more into web dev and presentation of data. Python if you're more into science and math and plotting.
  • 2
    I think its easier to start with javascript, all you need is a browser. You dont even need a text editor for basic javascript.
  • 1
    What do you need?
  • 9
    I completely agree with @BindView
    It doesn't really matter what you want to do next. Even if it is somewhat harder, C will teach you a lot of very useful things that (almost) no other language would. Also, I'm from the opinion that your first language somehow shapes the way in which you solve problems, it's better if you start thinking in a way that is close to how the computer works from early on.
  • 12
    Definitely C. It will prepare you for most other languages.
  • 3
    Objective-C, obviously.
  • 4
    Python is my favourite language, but don’t learn programming with it, because you won’t “understand programming”.

    JavaScript sucks, the only thing that makes it great is that for some reason someone decided it would be a good idea to make it default web script language and everyone did frameworks, so you can use it for a lot of things, but at it’s core still sucks imo, but that my opinion.

    Except if you want to do some web development, I’d suggest just to learn C or C++ (not C#), sorry I didn’t really answer your question 😶
  • 3
    @RedBorg
    Why c.

    C and c++ is behind so many of the security problems we have seen and the majority of software today are not written using those languages.

    Yes you get closer to the hardware, but that is not necessarily a good thing fir a first language.

    Python, java, c# are all good starts.

    Js is useful but I agree, its not the language of good practice.
  • 2
    @Voxera My point is not to use them, my point is to learn by them and then apply this knowledge to learn other languages. My point is: “Learn the general to more easily specialize “
  • 5
    @Voxera these are just my statistics so they are in no way applicable to everywhere but

    0) c# is taught widely in high schools here
    1) 87% of the people who studied c# first can not write a bubble sort (out of the interviewed ones of course)
    2) 67something% of them drop out of university after a year

    So yeah kids, start low level, youll be thankful later
  • 2
    I think people who want to become a professional should experience C and a little C++. It's enlightening.

    As a language to get someone interested in programming, i would not take them.
  • 5
    Even if old, I think this is a good (and lengthy) read on the matter and why some of use recommend C as first programming language: https://joelonsoftware.com/2001/12/...

    I'll quote one of the conclusions for those who don't want to read the whole thing:

    "These are all things that require you to think about bytes, and they affect the big top-level decisions we make in all kinds of architecture and strategy. This is why my view of teaching is that first year CS students need to start at the basics, using C and building their way up from the CPU. I am actually physically disgusted that so many computer science programs think that Java is a good introductory language, because it’s “easy” and you don’t get confused with all that boring string/malloc stuff but you can learn cool OOP stuff which will make your big programs ever so modular. This is a pedagogical disaster waiting to happen."
  • 1
    Python can pretty much do everything. Yes everything.
  • 3
    @nkromin just like every other language
  • 5
    C or C++ first.
    Once you're at least somewhat comfortable, pick up other languages.

    Why? C/C++ will teach you how computers actually work, and what all of the fancy features of other languages really do behind the scenes. It'll make you think more logically, design better data structures, come up with ways to simplify your approach/code, and how to optimize.

    It'll make you a significantly better programmer.
  • 4
    Neither. C is the way to go. Python and JavaScript are less opinionated. And yes that sounds cool. But it's easy to drift away with the freedom these languages give you. You'll barely learn any programming patterns properly. And they will make you opinionated about other languages. I really hate when people look down upon languages. You selfish pricks, ever think what the languages might feel?
  • 3
    @BindView those statistics have nothing to do with the language ;)

    My point on c and c++ is that even if you learn more on how the computer works its only useful for a small segment.

    I have used basic, turbo pascal, visual basic, c, php, c# and javascript during my professional life and having worked with over 60 colleagues with different backgrounds I can say that not one of the ones that started out with c or c++ meet our standards because while they could program they could not develop.

    They knew the technical but had to much focus on the technical level and to little on ux and ui.

    They expected to be handed ready made plans for what should built.

    And unless you are building embedded or low level stuff you have much more use of good ux knowledge and a language that shields them from some of the low level stuff.

    My experience is also that it is easier to teach some one to program than to develop :D

    But thats also just my personal experience, maybe life in a large company is different.
  • 1
    Python. It is harder to pick up bad habits.
  • 1
    Javascript...node.js
  • 1
  • 0
    @BindView i almost dropped out cause of University cause of c. Cause it is rly annoying to program. especially if I started with c++ and moved to Java and then JavaScript like me. For me c feels somehow like a unfinished language
  • 0
    @Codex404 Im into penetration testing
  • 0
    @jinzo python would be the better choice of the two.
  • 0
    @Mjack I am into penetration testing
  • 2
    I think we need to know more about what you are wanting to achieve and the type of learner you are.

    If you want to do web stuff then JS is essential (but you'll probably learn it out of need at some point). if you want to do more general stuff python is probably easier, there is a great book by Al Swagert about "automating the boring stuff with Python" which if you are just looking to try out programming is a good place to start as it shows you how to apply python to the real world in lots of ways.

    People are pointing you to C and C++ but you don't need to know these first if they sound daunting, just have them on your road map for the day you want to find out more.
  • 0
    @Drippydik Thank you , but should i learn django along with python ?
  • 3
    @Voxera are you really complaining about that developers dont know how to design? Amusing.
  • 1
    I never got on with Django when I tried it, but I've used Flask which has been great for my needs, but don't let that stop you trying Django. The really cool thing I like about python Web platforms is that they generally use wsgi - Web server gateway interface (often called "whiskey") which means they can all be used to create server less websites on Amazon using a project called Zappa. It is really neat if you are trying to set a site up cheaply and learn python.
  • 2
    @jinzo For the sake of programming concepts and algorithms, I would strongly advise to start with C or C++.
    It is important to start with a typed language so you understand the fundamentals of storing and handling data.
    Python would be a good next choice, though I personally hate it, a lot people seem to like if for a lot of reasons and it has a huge community.
    For pentesting, knowledge of Javascript and SQL would also be a good thing, but in this field I think a solid understanding of C and C++ is mandatory.
  • 1
    @Voxera c/ c++ only usefull on a small segment? Related to what exactly?
  • 2
    @jschmold you don't need to tell me that. I know the value of c and cpp. I asked her why she thinks cpp is only valuable in a small segment of development since cpp is an insanely important and useful language.
  • 0
    @AleCx04 Most developers that start today will not work in an environment where you do low level programs.

    Most developers work closer to the end customer or user.

    So if your not studying programming in school in which case you probably would not be here asking where to start you are at least currently not targeting low level.

    And then you will get a faster start with another language.

    If you then feel like you want to know more then go for c or c++ and maybe an arduino or rasbery pie and play around with.

    Learning pointers and memory management can be good but if you go for consumer programs, web or enterprise software you are much more likely to have use for c# or java or js or php or python than c or c++.

    And c or c++ can also be quite intimidating for a beginner without a teacher at hand. There are a lot more tutorials and examples for more high level languages.
  • 1
    @BindView Not graphical design but ux or at least structural design like how to design overall logic outside functions and classes.

    Knowing how to build an efficient sorting algorithm wont help you design a bug free order price calculation framework that can be easily extended and modified over the coming 5 years as business requirements change.

    Its not so much a programming problem as a design problem.
  • 1
    @Voxera that is grossly assuming that most developers that start today target the web side of things. Portable and efficient code comes from the use of c++ and or c and it does not necessarily mean that one is building "low level stuff"

    C/Cpp != sticking to kernel design/microcontrollers/etc

    And even then, the Go programming language is making its way around people, and even though it is garbage collected it still gives developers a means to use memory manipulation through means of pointers/reffs.

    I've had to use cpp for past jobs, and the were not web of "low level" related.
  • 2
    @Voxera how the fuck can you compare building an ui to building a business logic? Im a java dev, write hundreds of abstracted away classes so the next guy can do stuff with a line of code but i cant design ui for shit, how is that even remotely related?

    Edit: sorry, ux, but i dont even know what that is, im going to assume user experience (what makes absolutely no sense to me)
  • 3
    @BindView Offtopic, but UX does indeed mean user experience, it's very related to UI but encompasses a lot more: Accessibility, colors, typography, meaningful (non-deceitful) charts, sensible default settings...

    In the end it's like imagining lots of different people and thinking about how they would interact with your app/system/whatever so you can anticipate their needs and design accordingly.

    @Voxera I think that implying that people who learn programming with C or C++ don't learn how to design software (and I mean a software engineering kind of design here) is a VERY bold claim. If anything these languages encourage (force) you to understand how design patterns work instead of using *shiny_new_framework*.

    Of course, learning with C or C++ is somewhat harder, but if you want to be actually good you have to be prepared for that. After that, he'll be able to go for whatever field/language he likes AND he'll know where all those fancy features come from (and their cost).
  • 1
    @Dethon I was not implying that c or c++ developers do not learn to design but those today that I have had as candidates for employment had not received such education unfortunately.

    Their teachers in cs had focused on algorithms and other low level stuff that there exist many good implementations for and that we do not want to reinvent. Its probably good if you are going into embedded development or going into game engine design.

    What I was giving my opinion on was that if you are taking your first steps into programing on your own and have not already some clear goal on where you like to go with it, starting with a language that is a bit easier to get started with is a good idea.

    Having to dig right into memory management and pointers is a rough start. You risk spending lots of time figuring out why it does mot work instead of seeing results that encourage you to go on.

    Also, my comment on c and small segment was referring to another comment that c helps you understand how the computer really works, and that is not required in many cases unless you target embedded or need to get every piece of performance.

    And regarding design I also included structural design as in abstract classes and design patterns which I think is much more important than pointers and memory management.

    I just give my opinion and try to explain my reasoning, there is no need to get upset.

    Just explain your reasoning and let the one asking the question decide which answer they find most useful :)
  • 0
    @Voxera Oh, I'm not upset at all, sorry if it came out that way, I was just explaining my point of view regarding to your comment, but I have to say that it's a shame that there exists CS programs which neglect software engineering in such a way :(

    There isn't much more to say, we simply don't agree in which aspects are the most important in a first programming language
Add Comment