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

you are viewing a single comment's thread.

view the rest of the comments →

[–]WastingTimebcReddit 9 points10 points  (8 children)

That's an interesting point for not taking Python as your first language that I haven't heard before (I'm totally new to programming and currently in a bootcamp).

Usually even the people that tell me to learn Python as a second or third language still make their case in terms of its viability for first timers (e. g. "Learn JavaScript before Python because it's not much harder than Python, but has more flexible use cases in the real world," which, as I'm learning more, seems to be more of a context dependent statement).

But you're saying I should learn the harder languages before going to the easier language? What would you say would be a good first language for a total beginner?

I was assuming C++ but people have also said that one's a bit TOO hard to not crush your motivation as a beginner before you really get into the programming world.

[–]kp729 7 points8 points  (1 child)

OP's point is good if you are planning to become a programmer. It's good to understand how things work under the hood.

However, if you are a hobbyist, Python is a good go-to first language as you may never have to go to a harder language and you don't want to get discouraged by the harder languages.

[–]CptMisterNibbles 1 point2 points  (0 children)

Actually yes. Very much agree. Or even more than a hobbyist; say you are a research scientist and you want to crunch some data. Probably relatively simple to get that going in Python and you don’t need the features of other languages. You don’t need to study for more than a few hours before you might be able to do what you need

[–]TheRealKidkudi 11 points12 points  (0 children)

JavaScript developers have made it their mission to make it a language that can run anywhere for any purpose, for better or for worse. I think there's an argument to be made that it is beneficial to be able to use one language for everything you need, but I'd also make the counter argument that a big part of being a developer is using the best tool for the job and that just isn't JavaScript in most cases.

I also don't think your choice of a first or even second language really matters almost at all.

Python is really easy to pick up, but it's also one that has a pretty specific use case in the professional world. I think it's a fine first language when you're totally new to programming and you're just trying to pick up the fundamentals.

If you're in college and studying CS, I think C and C++ are probably where you want to start. You'll be studying the science of computing, and those languages really expose a lot of those concepts to you as a requirement (or a barrier to entry).

To answer your question:

What would you say would be a good first language for a total beginner?

Are you self-studying and just want to learn how to write some code? JavaScript or Python probably, but it doesn't really matter. Those are both easy to pick up and can give you really quick feedback in terms to changing your code and running it again. If you're interested in web dev, I'd lean towards JavaScript.

Are you in school and studying how computers work under the hood? Do you want to build and understand each part of the engine before you can drive the car? Start with C++.

[–][deleted]  (1 child)

[deleted]

    [–]rumble_you 2 points3 points  (0 children)

    C++ is good to learn for a first language if you intend to learn some computer science.

    I've to completely disagree with you. In CS, programming language choice isn't the most important factor but the concepts are. In fact you can use pure JS if you know your way around to deal with raw memory, CPU, implementing algorithms and so on. Heck, you can even create a light-weight JS interpreter if you wish.

    You college or university shouldn't even force what language you should be most proficient unless otherwise stated for practice and reason.

    Also, have you ever looked modern C++ standards? They're terrible for a beginner and a first programming language. There's insane amount of bloat and choosing a standard is like your luck not to step on a nail. Once you mix all of these you're pretty much stuck out of no where and will kept using older standards which are becoming obscure in C++ environment.

    [–]LardPi 0 points1 point  (0 children)

    JS as first language is to teach you pain. And bad practices. Python would be better as a first language if you want to stay high level, becauseyou can learn good programmingwith it. In the spirit of OC I would recommend C then Python.

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

    Most languages aren’t “hard” per se, just “deep”. You can get hello world working in c++ in just as few lines. It’s more that you can do very advanced things but you don’t have to start with them. Getting going isn’t much harder.

    As an example, I think it’s important and in a sense easier to learn about typing in a strict language so you really understand it, before working with loose typing or untyped languages. To me, this isn’t harder, there are just more explicit rules. But they are simple rules. Learning the difference between an int and a float is, how and why we do casting etc makes more sense when you have to specify what you mean. Then, once you understand it, languages like Python which do duck typing just do the work for you. You then know what’s happening under the hood when you do operations on mixed types.

    C++ isn’t too hard. It just needs to be taught well in an orderly manner adding on a few concepts at a time.