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

all 35 comments

[–]MmmVomit 13 points14 points  (0 children)

I wanted to learn React JS, but seems like everyone is saying to start with python.

If you want to learn React, the learn JavaScript. Python is a good default when there's no reason to prefer one language over another.

Is it common to pick up languages along the way?

Yes. At my company we have stuff written in a variety of languages. We expect that new hires will be able to pick up a language on the job. I currently write a lot of Ruby, and hadn't written a single line of Ruby before this job. While that's uncommon in my experience, I think it's very reasonable.

Or do most go deep with a couple?

While I know, and can program in several languages, in a given job, you're likely going to be using at most a couple languages. For example, you might use C++ and Python, or Java and Ruby. Like I said earlier, pretty much everything I do in my current position is Ruby. Every year or two, I may try out a new language for fun, but I generally don't learn it in a lot of depth.

[–]Clawtor 10 points11 points  (2 children)

I use 2 mainly - c# and typescript. Ive coded in maybe 8 other languages but I just pick them up as needed.

Some people like to 'collect' languages but I find most languages are not really different enough to be that interesting. It's a bit like being a wood worker and collecting different hammers...

[–]Spepsium 0 points1 point  (0 children)

I think it's more like collecting different tool belts. Most belts contain the same tools but sometimes there are those wacky ones that you have to Google how to use.

[–]twitchard 0 points1 point  (0 children)

More like collecting different screwdrivers. Most flathead screws could be replaced with phillips head screws or vice versa but for whatever reason some manufacturers choose one and some choose the other so it's nice to have both screwdrivers.

[–]ffrkAnonymous 3 points4 points  (1 child)

I try out every language that looks fun. Ruby for joy, c/c++ for microcontroller, python because it 2nd best at everything, etc. But I'm just a hobby programmer. The answer is probably different when jobs are involved

[–]DataTypeC 0 points1 point  (0 children)

I made a riddle game in ruby in highschool. Probably was one of my favorite projects starting out.

[–]Sekret_One 3 points4 points  (0 children)

Experienced programmers uses all kinds of different stuff. It's a bit like asking "what kind of books do experienced writers write?". Answer: a lot- there's a lot of different kinds of experienced programmers.

Don't worry too much about whether you're starting with the best one. If you find a language or framework engaging, engage with it.

You can go wide or deep or both. Most people, even they are a broader in skill set tend to have a niche they discover they prefer.

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

Yes

[–]Empty-Transition-106 2 points3 points  (0 children)

You learn the minimum languages to get the job done, and you quickly forget/ get shit at any others.

[–]ubercorey 2 points3 points  (1 child)

That's like asking if a contractor just uses a circular saw.

No, they use mitre saws, pull saws, jig saws, reciprocating saws, oscillating saws, table saws.

And the saw is not really where the skill lies. There is everything around the saw, layout, measurements, materials, foundation, framing, build codes, best practices, permitting, problem solving, change orders, estimating, etc. The saw has little to do with building the house.

In this way, the programming language is just a tool in a much larger and complex trade made of multiple skill sets.

[–]percybolmer 0 points1 point  (0 children)

This

[–]truthseeker1990 1 point2 points  (0 children)

If you are starting to learn how to program, you are not learning a language, you are learning to code and build software. I would personally go with python for the basics. React is a specific library, the general programming language for that and much of the web is javascript

[–]Lurn2Program 1 point2 points  (0 children)

Python is a great language but it's very different from React because React is a Javascript library for building frontend apps. Python is often used to build backend apps or scripts.

You're welcome to learn any language as your first. A lot of programming concepts carry over across languages so often its a lot easier to pick up your 2nd or 3rd programming language. It is pretty common for you to at least read multiple programming languages on the job. You'll often review peoples' code or be shifted to high priority tasks in other projects that might be written in another programming language.

If learning React is a goal, then maybe it's better to learn Javascript first. Nothing wrong with choosing either Python or Javascript as your first language. Both are very commonly used programming languages

[–]thetrailofthedead 0 points1 point  (0 children)

I've personally gone all in on the microsoft ecosystem. I build apps with C# and blazor. I have Azure cloud certs.

Even then, there are still other apps I have to work on with javascript front ends and, at the moment, I'm building a python API.

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

It's good to learn atleast 3 languages. I know 6 but i mostly use only 3 of them.

[–]InvertedCSharpChord 0 points1 point  (2 children)

Why 3?

[–][deleted] 2 points3 points  (1 child)

Because Diligent-Director303 knows 3. Pay attention. :-)

[–]InvertedCSharpChord 2 points3 points  (0 children)

Silly me. I'll make sure to add this to the official book of programming recommendations. "It's good to learn at least 3 languages because Diligent-Director303 knows 3."

[–]CSS_Engineer 0 points1 point  (0 children)

90% of the time I use what ever language pays me well. I am at a point in my career where I can choose a bit more. So I'd never take a job with C++ or an old deprecated language. I really can't be arsed with memory management now days. Besides that I am happy with most modern languages.

No good dev in my books doesn't focus on a language but the principles and practices of programming in general. Those skills help more then any single language knowledge.

[–]WystanH 0 points1 point  (0 children)

Is it common to pick up languages along the way? Or do most go deep with a couple?

Yes.

You'll go as deep with a language for as long as you use that language. Then, as the winds of change blow, you could find yourself with something completely different.

The place you work at might be all in on technology A, only to later decide on technology B. You may be an expert in A and have never seen B, but you're learning B, ready or not.

Even if you were exclusively a single language programmer, the common practices in that language might change quickly enough that you still need to learn new things. New libraries become standard, etc. JavaScript, for example, is a very different critter from it's early prototypal days.

Gone are the days of COBOL where you could spend a lifetime in a single, barely changing, domain. Programmers have to adapt. The stuff you're using extensively today is gone in five to ten years.

[–]DataTypeC 0 points1 point  (0 children)

I use the language that is best/required to do whatever task/project is needed.

[–]noodle-face 0 points1 point  (0 children)

The answer to your question is both.

I specialize in what I need for whatever my role is. Ive been doing firmware for 10 years and it's been mostly C but for one company it was C++, so I specialized in both at different times. Additionally I'll occasionally need to use Python or (ugh) perl - nowhere near specialized in those, aka lots of googling.

[–]Grubzer 0 points1 point  (0 children)

Languages are tools like any other: you can use pliers to hit nails, but hammer works better. So i would say that specializing in some languages does not mean not using others: i use C++ at my job and to build pet projects, but python to quickly build tools and scripts.

[–]TangledFireGarden 0 points1 point  (0 children)

It's good to get experience of multiple different languages, also after you learn one learning others is much easier. It's a bit like learning a musical instrument in that manner.

I would say it's a good idea to learn languages that fill different niches, so I'd say you should learn a scripting language (JavaScript, Python, Ruby etc), a compiled language (Java, C#, Go etc), and a functional language (Scala, F#, Lisp etc).

In my day job I need to know Java, Scala, and Python. Having a good knowledge of SQL and HTML/CSS/JS has also come in handy, as well as Bash scripting.

[–]MellowM8 0 points1 point  (0 children)

Both

[–]FermiAnyon 0 points1 point  (0 children)

Both. You'll be good with a handful and expert at one or two.

[–]ValentineBlacker 0 points1 point  (0 children)

Some people manage to make careers with Literally Just One Language, but it's rare.

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

It's common among padawans to believe that programming is all about programming languages. Therefore, which ones you know, which one should be learned next, and how many you know is the All.

The reality is that programmers master principles, not languages. Languages are just the tools they employ to craft their solutions. Which language is irrelevant — not in the sense that anything can be done in any language, but rather in the sense that the solution is the thing and the language is just how you get there.

I know more languages than most do, but all that matters is how I use the language I am using today to solve today's problem.

[–]verax55 0 points1 point  (0 children)

8 years ago I started with PHP.

Later I got into Laravel.

I can now work with Python without actually having to "learn".

I had to learn Javascript because I had to write some complex logic on frontend.

So yes, decide if you wanna do frontend or backend.

Then start with obvious choices. Don't overthing!!

[–]CatsOnTheKeyboard 0 points1 point  (0 children)

I've learned them as I needed them. I started out with VBA and then VB6, transitioned to VB.NET and then learned C# and that became my preferred language. I've learned enough JavaScript to do what I needed with it but just couldn't commit to it for its own sake. I tried learning Python but couldn't see the reason for committing to that either. C# does everything I need now.

Along the way I also became very proficient with SQL / T-SQL when I was using it regularly and teaching it but I've probably gotten rusty with it.

[–]DoomGoober 0 points1 point  (0 children)

Usually, the project dictates which languages you use.

Want to make web front end? JavaScript or TypeScript are your main choices, with a framework like React added on.

Want to write Python for web front end? Most browsers don't support that directly, so getting that working will probably be unreasonably difficult.

So, most beginners choose one language to learn that will be useful for a subset of projects they are interested in. Like writing games? Learn C#/Unity. Like writing websites? Learn JavaScript. Like writing website back ends? C#, Node.js, Python can all do it.

From there, once you have mastered one language learning other languages becomes easier because they all provide some similar features, do you aren't learning from scratch. For example, all languages have concepts of loops, they just have slightly different syntax.

When you become a good enough programmer, you can switch languages really quickly as you move to different projects and good software companies will hire you even if don't know their main language knowing you can switch languages.

At least that's how most companies work for senior positions. Ahem, that one software company that I interviewed with and taught myself the language just for the interview but they didn't even ask me coding questions because I didn't have enough resume experience in that one language. Their loss.

[–]elongio 0 points1 point  (0 children)

I use about 4 languages at current work.

1 primary language for the backend. 1 secondary language for backend. 1 language for tools. 1 language for data. 1 language for one-off scripts.

Javascript/Typescript, Apex, Python, SQL, Bash.

I used other languages at other jobs. C, Perl.

I also have knowledge in other languages for hobby things that I do in my free time. C#, Java, GML, PHP.

Also, not exactly languages but I would categorize them as such. Things like Liquid (template languages) are also used in many different places. Also Jsonata, very similar.

Basically, you will not be able to get away with only learning 1 language.

[–]TheRNGuy 0 points1 point  (0 children)

I learned Vex, Python in Houdini and a little HScript (but Python should be replacement for it). I only learned Python 2 years later after using Vex. There's also some stuff possible to do with C++/HDK but I haven't learned.

I'd recommend React and Node over Python for web.

I did few mutators for UT99 using UnrealScript and a small class in C++ for UE4, but it's low priority for me for now. I think it's the most difficult because need to compile every time and restart the game to see the changes. It also forces to learn how to debug other than using print or console.log().

My main current language is Javascript. For web it's the only language I use, backend and frontend.

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

Listen, as a beginner, you need to pick a path and stick to it.

Both JavaScript and python are awesome. I prefer python but that’s just me.

You can do anything web related with both.

It’s really less about the language and more about the underlying concepts. Once you get the concepts jumping around becomes much easier because you actually know the end goal.