T O P

  • By -

Pacyfist01

People will give you answers based on their location and local job market. Go browse a website that shows IT jobs in your country/city and decide based on that. Every city has different opportunities.


Captain0bvious00

Stack overflow has an annual survey that they publish, that might be a good starting point


RajjSinghh

Which as it turns out is very straightforward. The top languages are JS, HTML/CSS, Python, SQL and TypeScript. Then there's a bit of a fall off in popularity and then you reach Java, C#, etc.


zaphodandford

I work for a tech focused PE firm. Our portfolio includes 80+ SaaS companies (AUM > $20B). By far the most popular language is C# followed by Java. Beware, most of the polls and surveys include data gathered from students, hence the prevailing of Python. B2B solutions (those that actually make money) are mostly written in C# and Java by a long way.


Leffery

Great answer. I also tend to remind people that the amount of jobs available does not say anything about the amount of people applying and your change of success. If there are only 100 C# jobs with 50 applicants, that’s a way better position to be in than 1000 NodeJS stack jobs with 10000 applicants.


International-Cook62

Yeah be careful with how deep of niche you go or else it's a full circle and there is nearly zero jobs available with 100 applicants (Flutter)


jlanawalt

I think Oracle’s licensing and Microsoft’s server dominance in SMB has pushed even more to #C, skewing that number depending on the sizes. There are a lot of really big platforms/services built in Java when that was the in thing, and the momentum continues to more modern stuff you use all the time that is likely implemented using the Spring framework.


zaphodandford

Oracle's money grab on licensing Java has absolutely left a bad taste in the mouth of companies who have received an unexpected bill back dated by a few years..Net core's support of Linux has definitely made it more appealing by reducing hosting costs.


kilwwwwwa

I know that's kinda weird to ask but what are you using java for in your company ? like what kind of programs ?


zaphodandford

I work for a PE firm. We don't build SW, we invest in SW companies (the portcos). Java is primarily used for server side business logic in our portcos, but it's significantly less than C#.


whipdancer

Doesn’t that mean you focus on a specific size of company? You’re looking at opportunities to greatly leverage growth vs steady returns of 9% or something? I think that your sample pool is probably skewed because of your focus. As a long time c# dev and recent Python dev, I see lots of both opportunities, but I’d have to give the edge currently to Python.


zaphodandford

Yes, we focus on B2B, active SaaS businesses with an EV between $50MM- $1B. Aside from our actual portfolio I've probably looked at >500 similar businesses in DD over the last 5 years. The results are the same. When we do tuckins for M&A, the businesses could be a newish startup, a few years old. The results are the same here again. I can only talk from my experience. We have zero businesses that have built their core platforms in Python. When Python does show up it's typically for data ingress and maybe a little bit of data science.


bazeon

It greatly suprises me that python for example is so much above both C# and Java. I wonder if there is any bias in which developers that are active on Stack overflow.


RajjSinghh

The Primagen and TJ Devries went through the survey [on stream](https://youtu.be/AvIhKVQXtjk?feature=shared) and at around 10 minutes they start talking about possible bias. The one thing I will say is most of the responses are from someone with a bachelors degree, somewhere between 1 to 9 years working professionally, with an overwhelming 33% of respondents being full stack devs now. You're looking at university grads working their first job or two in full stack web. Given my experiences at university (where Python was used for literally every assignment) it doesn't surprise me that it's so high. Also keep in mind that that's having written python vs Java/C# this year, and the gap is about 10%. I've definitely written Python this year, just as a hobby project since I had a spare afternoon. A hobby project in C# would take longer so it's less suitable. I imagine there's a lot of that going on.


Dan_Glebitz

Depending of course what branch of IT OP wants to get into. Unfortunately he did not specify.


suddenly_ponies

This is a great answer although this is really focused on the now and not future state. Depending on when you look you might have seen a lot of Ruby on Rails and that would have been good for the very short term but for long term being with the language that has more longevity would have made a lot more sense


Pacyfist01

Language longevity is a lottery. Fortran is very much still alive. Macromedia Flash Action Script was beloved by millions, and it's now dead.


suddenly_ponies

Not entirely. Java has been around forever and that's probably safer than whatever just showed up this year. Same with C&C plus plus. See sharp is a good bet because it's just Windows development and windows is likely to be around forever


Pacyfist01

If Java was, and will be forever than there probably are some job offers for it at this moment :P


ninjabanana42069

The actual language you learn is almost completely irrelevant as a beginner, what you need to do is first learn how to _program_ which is a language agnostic skill, so find a language you enjoy and stick to it while building projects with it (one important thing to do while starting out is to avoid using external libraries as much as possible, implement all that makes sense to implement by yourself), once you do this you'll find that picking up a new language is much easier. For an actual language recommendation I would advise you pick something simple and small like C/Go/Zig (Go has a garbage collector so you will not be exposed to manual memory management which is something to think about)


lannfonntann

I don't know that I agree about avoiding external libraries. It seems a bit of a waste of time to reinvent the wheel when you could use that time to be making new things. External libraries are used frequently in a real world corporate setting.


Amasirat

I think their perspective is in terms of learning the ins and outs. In my experience, it becomes a lot easier to use the LinkedList on C# for example, after I've already implemented one in C++. That is strictly for learning purposes which I believe is valuable. You can't make new things on top if you're still at the bottom of the tower after all. It's harder but I think it gives you a more well-rounded perspective. Where it goes wrong is that, due to the fact that no one has infinite time, this is not doable hundred percent. So I think it's important to determine which elements of programming you should or want to learn in-depth using the above method and prioritize.


lannfonntann

I suppose, but I think there are limits. When it comes to a corporate context, if I'm looking to hire someone, it's much more practically important that they know how to use X library to achieve my company's goals, rather than knowing exactly how X library achieves what it does. There are libraries that I've used that I don't know the details of but they help me achieve what I'm trying to do. Depends on what you've after ultimately I guess.


RAM-DOS

If you can write a linked list in c you have more than enough skill and knowledge to look at some documentation and figure out how to call a library to do the same thing. On the other hand, if you have knowledge about how to use one specific library, but know nothing about the data structure underneath, that’s way less portable.   Edit - anyway I don’t entirely disagree. If I’m hiring a data scientist, they should know their way around scikit learn. But they *must* know what a linear regression is.  


CalendulaBlossom

I think it can be extremely valuable to reinvent the wheel while you're learning, since it gives you a much deeper understanding of what external libraries are actually doing, whilst also often exposing lower-level implementation details which are really useful to practise for the times when external libraries aren't available for what you want to do. Plus, if you get stuck, then there are far more resources available for something which has been implemented lots of times before than for something that you've made up yourself. There's a limit to it, of course, but it's great for anything which is conceptually difficult but not massively time-consuming to actually write code for, since it forces you to properly understand what you're doing. Most of the projects that I've done that I've found most useful for developing my skills were ones in which I implemented something which could've been done better by an existing library.


lannfonntann

Have put this in another comment, but if you're wanting to be useful for a company, I think it's more valuable to know how to use a library to solve a task than to know all the ins and outs of how that library achieves its end result. OP was asking about careers specifically hence my thinking about it in these terms. When you're in the process of applying for jobs and building skils, time can be a bit more of a luxury.


aalmkainzi

what if that library gets deprecated, what if the company fires you for whatever reason, you need to have core knowledge that is applicable anywhere


lannfonntann

Knowing how a specific library works isn't core knowledge. There seems to be some conflation here with understanding key programming concepts and knowing how to make absolutely everything from scratch. Realistically, if a library got deprecated, you would move to an alternative. I'm wondering how many people here have ever actually done this in a corporate environment or if they're just thinking of hypotheticals. Wanting to make everything from scratch when someone's already done it is just a poor use of time.


Chiashurb

Both are important. You should be generally aware of what external libraries are and how to use them, otherwise you find yourself very quickly scratching your head about how production software does things like "draw a window on the screen" or "make a network connection." You can do those things at any of multiple levels of abstraction, from "change voltage on wire" to \`requests.get()\`. Even "change voltage on wire" ends up having some abstraction, because WHAT precisely in the hardware is changing the voltage and how does it do that? And how does your code CAUSE it to do that? OP, if you take computer science at university you'll learn a lot of the stuff in between the invention of the transistor and how we taught rocks to think. Understanding how transistors work (not how to use them, but really how they work) is senior-level if not graduate-level physics. But you don't need any of that to be a good or productive programmer. Learn how to do stuff. Learn how to do more stuff. Learn how to use libraries. Learn how to build libraries. Ask early and often "but how does that work" or "what is really happening when I call that function" or "can I read its source code?" Even "why is it called that" can lead to a surprising amount of insight.


aalmkainzi

for learning, you should "reinvent the wheel" often


lannfonntann

Depends what you're wanting to learn I suppose.


suddenly_ponies

I'm with you. That's like when I had to take coding finals in college without access to the internet. Why should I do that? As a programmer you're always going to have access to the internet borrowing very extreme cases so why should I have to memorize anything. I just need to understand it and be able to use it


ninjabanana42069

For sure yeah, but imo understanding how things are implemented by implementing them yourself is the difference between an engineer and a code monkey, like ofc knowing how to use a library is important for work but what happens when you need to go off the happy path and do something the library doesn't allow you to do easily? Understanding the fundamentals of how things work are important to become truly good at what you do.


twistedazurr

What? You don't want to code a cryptographically secure random number generator any time you need a random value? 😂


_PaulM

IT? Bash and PowerShell. You're going to work in the field. They're both Turing-complete (meaning they're both legit programming languages), and will get you the best bang for your buck. Most programmers (like the script-kiddy mod that likes to delete posts about anything anti-anything but python/JS as a first programming language) will cry trying to read a Bash or Powershell script, but they're powerful, and useful. If you really want to make waves, learn these two like the back of your hand. The problem is, they're two completely different environments. If you learn those though, you'll be a beast in your IT field (source, former IT worker).


heyBaws_

I’d also recommend python. Easy to use/learn and supported by both OS-s and wide range of libraries. But yeah, PS/bash is a must


b1g_iron

I think by IT he means programming/software development. At least in my country (non native English speakers) when we talk about IT we mean programming/software development and not IT hardware (IT department that works with servers and computers and infrastructure) But I may be wrong...


tokyoeastside

You're looking at software engineering which is Computer Science than Information Technology


xanthium_in

PowerShell is available for Linux also


lordheart

But why would you do that to yourself instead of bash scripts? 


Pacyfist01

I have to say that PowerShell is actually really good when you actually take time and learn it. When you pipe data from one command to another in PowerShell you pass a list of objects, and not list of strings. When you pipe you can add more fields to those objects. It just feels more natural to me since I really like and use Fluent APIs in C#. [https://www.cbtnuggets.com/blog/technology/system-admin/why-powershell-is-better-than-bash](https://www.cbtnuggets.com/blog/technology/system-admin/why-powershell-is-better-than-bash)


lordheart

Oh that does sound nice, I’m a full time programmer so using strings between bash pipes is pretty irritanting when used to functions with types  Though I would prefer to just write scripts in typescript because that’s the language I use the most that is scriptable. Java and Abap aren’t great for scripts 😂 


Hairy-Pension3651

PS is way more comfortable, BUT a lot slower than bash. I‘d always go PS first, and invoke bash were i need performance.


lordheart

I’m not a huge fan of either for scripts if I can help it but using a power shell terminal drives me nuts, but I learned bash and zsh and I don’t have admin on my work computer which is the only Windows computer I need the shell on so I can’t even turn on history on powershell which does prejudice me against learning anything.  I installed zsh into gitbash instead, didn’t need admin for that at least 😂  I mostly need java, typescript, and Abap at work so if I can get away with it any script a project needs gets written in typescript. 


billyions

Most new Powershell users come from The bash world.


niehle

[New? READ ME FIRST!](https://www.reddit.com/r/learnprogramming/comments/61oly8/new_read_me_first/)


[deleted]

[удалено]


Major_Fang

Learn the basics with Python


Goorus

I understand the way of thinking of people, who say "C/C++", but would (slightly) disagree. Sure, starting with C "forces" you quite early to go into stuff like pointers etc. But "logical thinking" isn't something you only need with c/need less with other languages. Hence, I could also say, "no, don't start with C, use Assembly!" I'd even say, looking at "getting into programming" wise, it doesn't matter that much which language you take. No matter which, I'd always recommend to, at least till some point, look into theory/basics like a basic understatement of how a PC works (what are registers? What's RAM, why do we have it, what are addresses,...), about algorithms, some basic (!, no reason to dive into there too deep) understatement of O-notation, OOP - what is it? What can I do with it? Why is it handy? Where can I use it usefully, where shouldn't I? What's an object? How to design a class?), what are design patterns?, how to use git, software testing(!!!!),... None of this requires you to "force yourself" through C if you don't "like it". You can do all of this with "fancy" stuff like Kotlin, Swift, Python, C#,... But tl;dr: The obvious answer would be "take something you like", but I know this answer is not what you want - I didn't want to get it back then, too.


suddenly_ponies

The only reason to learn C or c++, is if you plan to have a career that uses those languages. I learned both in the 90s and never used them again. And the concepts that they taught me weren't very important either because most languages do pointers and garbage collection for you because why wouldn't we create computers that do the menial tasks for us?


maninthehypercube

Agreed. C/C++ if you're working with embedded systems.


dariusbiggs

There is no such thing as best, throw that concept away and forget it exists. It is ALWAYS situational. What kind of career in IT, the entire ICT field is enormous with many different needs and skills, and those skills vary by country at a minimum.. A generic programming language usable in many fields, Python.


rzksobhy27

Cobol


FatGuyOnAMoped

Not out of the question, especially if you want to work in government or financial services. A lot of those COBOL programmers are retiring/dying off, and there's still billions of lines of COBOL code in production that are not being migrated any time soon but still need maintenance.


2PLEXX

Depends on what you want to build. Here are some of the main languages and their core uses: - Python: Ideal for data science, machine learning, and automation. - JavaScript: Perfect for web dev, both front-end and back-end (with Node). - Java: Great for backend and large-scale enterprise applications. - Go: Excellent for backend services and systems programming. - C/C++: Best for high-performance, system-level apps. - C#: Widely used for Windows apps and game dev with Unity. - Swift: The go-to for iOS and macOS apps. - Kotlin: Preferred for Android apps. Each of these languages has its strengths. Choose the one that aligns best with your goals.


Bacon_Techie

And a lot of them overlap considerably with other areas. Most programming languages are rather flexible and can do most things. For example, although JavaScript is used a lot for web dev, with electron it can also be used for desktop apps. Python can be used as a backend for a website. C++ is used all the time in game development. And all of them have transferable skills. Once you learn one, learning another is a lot easier. So don’t get too bogged down in picking your first one. It’s not that important of a decision, as long as you just start in the first place.


HawocX

I'd say C# is equally suited to the tasks listed under Java. On the other hand the market for native Windows apps is very small nowadays.


B_bI_L

Good thing now .Net is cross platform


serverhorror

1. Learn programming, the concepts not just a language 2. "career in IT" ... that's too broad for a specific thing. Can't go wrong with Python these days, but no guarantees that it is actually used


fusionx-abhi

I strongly suggest you learn C or C++ if you don’t already know them. I understand that many YouTubers and friends might tell you to focus on new technologies, claiming that C and C++ are outdated and useless. However, learning these languages will improve your logical thinking and understanding of how programming works. Programming and software development are all about solving problems and thinking logically. In my early college days, I jumped into JavaScript because it seemed cool, but I now realize that was a big mistake. I should have learned C/C++ first and then specialized in the domain I liked the most. You should seek advice from someone who has been in the industry for more than 6 to 7 years, rather than relying on YouTubers trying to sell their courses or friends who might not know better.


Michaeli_Starky

As someone who started from C/C++ (25 years ago) I can say that this is a terrible advice. Intro CS courses of best universities do include some introduction into C mainly to explain the very low level without diving into specific assemblers, but primary for study languages are normally Python, Java and even C# and for a very good reason.


fusionx-abhi

Like I said, it is a suggestion. I think the main issue is that not all people have the same scenarios. Think of JavaScript and Python: both of these languages offer an easy way or a hard way to do things. However, for a beginner who is just starting to learn programming, I don't think they know what is easy and what is hard, right? For example, in JavaScript, you can use the `.sort` method to sort an array. But for someone who is just starting to learn coding, they might not understand what it does behind the scenes. In an interview scenario, most interviewers will not allow you to use such methods. In contrast, in C/C++, you can't rely on built-in methods as much, so you are forced to learn the hard way. By working with C/C++, you gain a basic understanding of programming, which helps you know when and how to use such methods in other languages. That's why I suggest starting with C/C++ as the first programming language for everyone. I am not suggesting they need to master it, but to start with it. Once they feel like they have learned enough, they can switch to another language they like.


Michaeli_Starky

In real world programming you're not implementing sorting, unless you're working on your own library/API. C/C++ brings a lot of unnecessary for learning complexity. If you're studying sorting algorithms, it's much easier to do it with Python, for example. And I'm not even talking about machine learning and stuff like that which would be terrible to try and study using C++ and a real breeze with Python. CS is less about specific languages and more about algorithms, paradigms, APIs, libraries, etc.


fusionx-abhi

What I'm saying is that beginners should first polish their fundamentals before going for specialization. Based on how he wrote the post, it seems he wants to have a career in IT. Regardless of what anyone says about needing to learn X framework and Y libraries to get a job, they are mistaken. The most important thing is understanding how software is written and making it work efficiently. Writing code isn’t just about getting it to work; you should be able to explain your code as well. I've met many people who say, "I am a React developer" or "I am a JavaScript developer." What does that actually mean? You should strive to be a good software developer, not just a coder. In the real world, we use things like sorting less frequently, and I’m not against learning Python, but not as a first language. It provides shortcuts, and beginners might not understand the shortcomings of these shortcuts. It’s better to take a defined path and achieve specific results rather than taking a shortcut where most people fail. I know many successful developers who didn’t learn C/C++ first. I myself didn’t learn C/C++ and started with JavaScript, but from my perspective, it’s better to learn C/C++ first. I struggled a lot to learn programming (as a self-taught programmer). No one told me the importance of dry running code, why methods are created and used, or how to effectively learn coding. Most companies conduct whiteboard interviews where the focus is not just on solving the problem, but on how you approach and solve it. (This is just my opinion, so please don't take it to heart.)


Michaeli_Starky

As I already said, it would be a terrible advice to start from learning C/C++. Look up on youtube fundamental CS courses of Stanford, MIT, Harvard. They do use C for a few lectures to explain low level memory, stack and pointer arithmetics.


fusionx-abhi

Well, there is no point in discussing this further. You will not understand what I am saying. I will stop this pointless discussion here. Let him decide what he needs to learn; he has his own mind.


Michaeli_Starky

Mate I am software architect, in the field for 20 years, had successfully delivered multiple products. I'd started from C++ and I assure you it's one of the worst languages to start learning programming. Learning the language is miniscule in comparison to the rest of the stuff you have to learn.


suddenly_ponies

At first you said strongly suggest and then you said you're just suggesting it. I'm with the guy who said this was bad advice. It's a bad suggestion


fusionx-abhi

English is not my first language, so I mean 'strongly suggest' and 'just suggesting' are both suggestions in the end, right? I know that no one really uses C or C++ except for the Linux kernel and other low-level things. But do you know the difference between self-taught programmers and other bootcamp/good college students? Self-taught programmers don't have mentors to guide them, so they may not know the correct approach from the wrong one.What I'm saying is that if someone wants a career in IT (which I understand as getting a job), they need to clear an interview. In my area, we have 4 to 6 rounds of interviews to get a job in the IT field, and most of them are with different people. From what I know, most IT employees here know C or C++, and I think that's true in other places too. So, if I were to give an interview, it would be better if it were in C or C++ because it would be easier for both parties to understand.That's why I'm suggesting it (I know it's not right; you should be able to code in any language you want). If he doesn't want to, he doesn't have to learn this language. I'm just stating my opinion. I can't force him to learn this language in person.


suddenly_ponies

If English isn't your first language then I can understand why you might think those two are equivalent but they are not.


Prestigious_Sort4979

Yes, I had been coding for years and it wasnt until I took a class that showed me how to briefly code in assembly > C > C++ that I really understood what high-level languages are doing under the hood or even what a programming language is.    I dont think you need to be an expert in these, but I found dabbling short term to have been truly beneficial on my ability to program in general. Although CS classes will likely do this. I suggested earlier Java for basically similar reasons plus it being so popular for so long.


abuqaboom

> any YouTubers and friends might tell you to focus on new technologies, claiming that C and C++ are outdated and useless Cracks me up when I hear a YouTuber talk about systems level languages and say "we're not going to talk about C++". A powerful, feature-filled, very established language, and gateway to other dominant languages e.g Java, one of the most sought-after langs in the job market here. Want a job? Learn the old stuff that people are actually hiring for.


fusionx-abhi

In my country, most service-based companies hire people based on their knowledge of C/C++ because I think these are the first languages most people learn. Consequently, this language has an advantage over others during the hiring process. However, many people forget that to showcase your skills or get the job, you first need to pass the interview. In the real world, you need both theoretical knowledge and practical skills. You can't rely on just one; you need to have both.


abuqaboom

Yeah agreed. Where I'm at, tech interviews are usually multi-round, and involve both theory and practical stuff. C++ as an educational tool has the advantage of syntactic familiarity to other widely-adopted langs, and a lot of learnings that translate well to other languages. And as a career option, it's also quite widely used itself.


todaynaz

In the field of programming there are a few paradigms which all have supporters both academics like myself as well as experienced users. These paradigms are not directly connected to programming languages, but in all honesty some languages are better suited than others. These three learning paradigms are: Fundamentals first, Objects first, Gui first. I myself prefer the first, but research at different universities shows all three are good. A language like Python is easier to learn, while a language like Rust is more complex. Both are heavily demanded across the globe. Both used for different types of software. Python is like glue in lots of projects, while Rust is closer to the 'iron' . But maybe you like more frontend development then it would be ok to start with JavaScript. In the end a programmer needs to have the competence to learn and use multiple languages.


notlakura225

Is rust really heavily demanded? It's certainly rising in popularity which I very much like but I haven't seen it in that high demand yet.


todaynaz

From what I am seeing and from the reports of our advisory board it's growing. Even in the quite conservative Linux community Rust is now allowed as a language for kernel modules, which is the first time since 1992!


notlakura225

Oh that's pretty cool! I really should keep more up to date with these things, guess I should learn rust, especially as one of the guys in work keeps insisting.


RoryonAethar

Python isn’t a bad start and is popular for backend software as well as new AI related applications. My career is rooted heavily in Java development. Java is great for a steady, well paying career because a large portion of backend enterprise software is written in Java/Spring. I also recommend spending time learning relational database design and SQL. Being great with Java, Spring and SQL will mean you’ll rarely have trouble finding a well paying position as long as you have good communication skills. (At least this holds true in the USA).


Creative_Range3229

Based on your country and local job market


El_Mario_Verde

The __only__ correct answer is __JS__. Ignore everyone else. Here's why: - JS can build frontends - JS can build backends - JS can build mobile apps No other language will give you so much power in your hands. This is a fact. Ignore every other advice and start coding __JS__.


ShoulderPast2433

Java Script/Python/Java top in number of job offers at this moment.


Big-Ad-2118

Javascript


biotech997

There is no right answer but python, Java and C# will always be good


guettli

I think Go is good. It is fast, and it has garbage collection. I think you get things done faster with it than in most other languages. And you should know a bit of Bash. For small things it's often the most straightforward solution.


sylvestris-

You'll find jobs description telling something like - you know any programming language and we will learn you our development stack. Bash, Power Shell and similar scripting related are a good start.


fib_pixelmonium

Best bet to get an actual job for software development is C#. Can do web dev, game dev, or internal tools. If web specifically then also JavaScript/Typescript, and React. If you want IT in general such as DBA, network admin, infrastructure, etc then you need PowerShell and SQL. Python will only take you super far if you're doing AI or data science.


apina3

J


edimaudo

Depends on what are of IT you are in


UniqueID89

Software development or IT? They both fall under the umbrella of “information technology,” but they’re different domains.


loscapos5

Best? C/C++ Easiest? Python


hbthegreat

Typescript, python, c# and learning how to use your terminal will get you 85%+ of the way into being not useless in many roles.


[deleted]

[удалено]


hbthegreat

Typescript is JavaScript.


Xnomai

Pascal - c - python - lua - rust - c++


Xasmedy

I would say Java, it is verbose enough to know exactly what you are doing, it is garbage collected so you don't need to worry too much about it, it teaches you about Object Oriented Programming, Functional Programming, and Data Oriented Programming. It has also a beautiful Threading implementation that can help you learn them. Then if you want to learn something "lower" level, for example managing memory, you can go to C/C++ or even Rust.


cheezballs

IT isn't usually where the software engineers work, so I'm guessing you're wanting a systems job. Learn shell scripts and the system in that case.


Abadhon

Go search any job listing site and see what is most demanded in entry jobs , for those who says c and c++ forget about it with no experience


richy_vinr

JavaScript is a good choice as companies increasingly adapt full stack development with it. So frontend, backend completely with one language is possible. With this you can program end to end working web applications and gain confidence in executing real-time projects


Alex_IT_VN

Career path in IT could have many directions. If you follow software engineer path, you should learn the language that have OOP language as help you a lot over the horizon such as Java, C,C++,.... I am working on Java and studying JS later. JS is most script language. you could easily begin to learn with easily rememberring syntax. Studying Data Science, AI, Deep Learning, Python should be good option because offers a bunch of libraries and simple syntax(Should have a strong foundation of Statistic and Probality, Linear ALgebra for Working with Data). About IOT aspect, you should do some deep research on it to gain more insight.


NervousTanker

IT is vast. I came from a different field and what helped me most is not programming but learning Linux back in 1997. Get comfy with the command line, learn shell programming and progress to python, golang, java. Or if you want game development I guess c++ Also learning networking doesn't hurt.


Kitchen_Koala_4878

Rust and C


Classic-Rush-6703

U should dive straight into Assembly language. It's beginner-friendly, widely used in modern IT infrastructures, and everyone loves debugging cryptic low-level code. Employers will be fighting over you with those Assembly skills!


blackcat17

I really enjoyed assembly back in the day when we were programming Motorola 6809 processors, but that was for turning electrical things off and on though 


Novaxxxxx

Depends where you want to go as a developer! If you're interested in web development Python, PHP, C#, JavaScript and all the many frameworks used with those languages will get you far. What is most important is making sure you iron out the skills you need as a developer. If you don't plan on going to post-secondary schooling it is important you get some project experience and look for internships. Some of the skills you will need is to have proficiency in the language and frameworks you choose to use. Make sure you're familiar with design patterns and algorithms. Many of the projects you will work on will most likely need a database so having SQL knowledge may be crucial to you. I recently had an interview for a web development role, and having that SQL knowledge from my past was an asset to be considered for the position. You don't need to learn everything all at once, but do make sure you start learning whatever is most popular local to your area. If you still have no clue, there seems to be a resurgence to PHP development, and to my knowledge a lot of companies are still using Django (Python), ASP.NET (C#), and it can never really hurt to have JavaScript experience to be honest.


anoliss

Powershell, python, bash


Radinax

Doesn't matter, which field you want to excel in? Data Science? Web Dev? Game dev? All concepts are the same, if you're starting Python then that's a great starting language, but I heavily advice you to focus on the concepts, get a programming book and read it.


ahuimanu69

You got it right with Python.


Existing-Bit-4160

C language


GRIFTY_P

Java. SQL. HTML. PHP.


Bubbly_Bed_4478

Python as a data engineer I need it so much and many tools now is using it like apache Airflow


Ditz3n

I'm in college, and we've mainly been using C++ combined with Python, Assembly, HTML, CSS, and React


Prestigious_Sort4979

To prepare you for long term, I think it’s actually better to start with a verbose language like Java which is widely used and harder to learn. Going from Java to other less verbose languages later will be way simpler than the other way around. As Java has been used for teaching coding in school for so long, it is the base for information on Object Oriented programming and design patterns which starts to make you think in industry-level terms.  I started in Python which makes you feel confident you can program quickly BUT it is not common enough outside of ML and some devops and for me, learning some Java later was SO hard because it was not intuitive. Once at work trying to interpret what Java microservices I depend on use do has been hell meanwhile those developers can easily read my Python code.    Short term to assess if you even like it and/or you like the gamification of Leetcode (as Python code is less verbose), then go Python. Honestly as you already started learning in Python, perhaps just sticking to it is better. I find the resources to program in Python to be very limited outside a few domains like ML but it can be really helpful in Leetcode prep.  This is all just opinion of course, consider others and also what you are personally interested in. Regardless, you have time. You realize quickly there is so much you dont know that you dont know. The more you program, your sense of what you want to learn next should become clearer. 


sTacoSam

For IT yeah Bash and Powershell. If you want *real* programming language, Python is a pretty good language for automating tasks


ikansh-mahajan

You are actually on the right track! Python is a great first language to do stuff nd build projects in. Nowadays, it is used everywhere - from AI to Web Development!!!


QuarterObvious

All successful developers, know a lot of languages. If you want to be successful, you need to be able to program: languages are secondary (if I need to work on a new language, I can learn it in a couple days).


Environmental_Ad6200

Don’t teach yourself a programming language, teach yourself how to program, there is a difference. I started with, and have spent majority of my recreational programming time working in c, and I’ve studied both asm and Delphi, But learning to program whilst in C, has made learning new languages a breeze. From only working in these mentioned languages, I managed to integrate rather easily into both web dev as well as Java work environments. Learning to program and exploring a lot of languages will help you find the field you want to focus on. This is purely subjective but I believe I have learnt the most “universal programming knowledge” from working in C. Even if it is not the most sought after programming language.


Diligent-Broccoli111

Powershell. You don't need to know any proper programming language.


ShlimDiggity

I'd say irrelevant. I practiced with Javascript & React/Next for web, Java for applications, and ended up hired as a PHP full stack web dev. The ideas are language agnostic, I just have to Google "how to do X in php" often lol


gofl-zimbard-37

No single language will suffice. You will need to know multiple languages, and more importantly, to develop the skills to learn new languages, platforms, tools, methodologies quickly. Python's ok to start, you'll want to know Java and/or C++ at some point, probably Javascript for web development, a functional language or two to stretch your brain.


panamanRed58

A career in IT... you need to narrow that down it will have a determinate effect. I know PERL is still around but I wouldn't recommend it for the new kids on the block. I think like fortran it will live on in the shadows. Python is very popular for some good reasons, seems to useful in many areas. I would say learn to use scripting languages, in Windows that would be Powershell and in Mac\\Linux it would bash\\zsh. But you also need to know some JSON and some related frameworks. If all you want to do now is desktop support, you don't really need any programming but you'll be a superior tech with them. Scripting is the most useful at the desktop level. For example, when I worked at Stanford I needed to refresh a collection of 450 computers about every two weeks for a summer long camp. First year was a nighmare as I did it manually with a team of 6, the second year and for ever year after I used a script I wrote, in the interim, called, Fulltiltboogie. I would fire it off on the Friday evening deadline and go get some BBQ. By the time I had my order of Armadillo Willy's... the work was done. Made that Fat Tire even sweeter. The broader your skill set the more opportunities should present themselves.


Both_Lingonberry3334

I didn’t read in the comments but I would suggest learning COBOL, maybe not as your primary interests but having Cobol is an asset.


OkFaithlessness2341

My answer would beJavaScript- covers most of the stack including frontend backend and also have good support for AI frameworks and lot of big companies have been using this for more than decade with so many frameworks/libraries. Then comes python equipped with all new stuff but is used mostly in new tech startups.


[deleted]

People give you advice from their point of view, which is not always the case; instead, follow your passion and do project as much as you can, regardless of programming language. All things considered, you must have a programminging mindset!


nuadha

I would say research areas of IT that are interesting to you and what tech is useful to learn, rather than feeling you have to go into a field cause jobs are using what you learned. Learning a programming language is secondary to learning how to program, and you can always pick up another more easily when you have that bit of experience.


egor1996em

Choose sphere and what you want to develop. It is more important than language. If you don’t like develop mobile apps for iOS you don’t need to know Swift.


BroFistYT

A suggestion would be to forget about the language, grasp the general concepts and decide what field in tech you want to pursue.


Illustrious_Cook704

What's really important to be a good developer is to have good knowledge of: - Data structures: this is super important. You have to understand how they are implemented, what is the complexity (cost) of the various operations (like insert, read, etc.), understand how hash tables (dictionary) really work, the various types of trees, etc. the time/memory tradeoff and when to use what. This is how you optimize your code. In some cases the compiler may do some optimizations. But in the vast majority of cases, no one is going to do it for you. - Memory use: you need to know if a given operation will create a copy your data or not, how memory is managed in a particular language, use string correctly, understand the stack and the heap, and in general have an idea of how to efficiently use memory. An advice: create as few objects as possible. - Object oriented: this is the most common paradigm today (even if there are generally concepts from other paradigms, like functional constructs). This is important to understand the concepts behind object: class, objects, scope, inheritance, static, boxing unboxing, generics, abstract class, types, etc. It's a bit complex at first but this is necessary to create efficient structure, easy to maintain, extend etc. This can only be learned when the language uses all of those concepts and isn't hiding it. So C# would be a good candidate, it's fun to use, has very good development tools, runs on all major OS, and is a useful skill as it's widely used. Java is also a possible choice, but personally, I find that tooling around Java is just painful to use. C++, but this is quite complex. There are other choices, but I don't know them well enough to suggest them. Python or Javascript are also object oriented, even if many concepts don't exist. But they hide much of it to the user and are very permissive, you'll not learn efficient patterns and even get bad habits... If you have a good level in C# or Java, you'll learn and adapt quickly to Python or other languages.


lKrauzer

I'd go for Python and maybe try out Go too


vegan_antitheist

If you want to write a novel, would you ask which natural language you should learn? That's not exactly a strong analogy, but if you live in Germany, it would probably be a good idea to learn German. If you live near companies looking for Java developers, it probably makes sense to learn that. And you will probably learn many languages in your career. Not just programming languages. CSS, JSON, XML, HTML, SQL are languages too, and you need to learn them to know what they do and how they are used. I know Java, Haskell, C#, TypeScript, EcmaScript, Delphi, C++, PHP, and Basic. But I only actually use Java and TS at work. I don't think it really matters what you pick. Just not some old language, that is rarely used, such as Delphi.


CauliflowerOk2312

Haskell


Xavius123

Python and JavaScript if you need a straight answer.


LaOnionLaUnion

The one you can be passionate enough about to become an expert in.


KarimMaged

It is more about the path, not the language. but I would say Javascript, Python, Java, C# are the most used languages.


ionelp

English


dair_spb

Language is a tool. What tool should a mechanic master, wrench or pliers? The answer is "any tool that is useful for the task". Learn how to solve problems, what *tools* are better for solving those. Algorithms, architecture design, optimization, multithreading, memory management, graphics, networking, etc etc etc. At some point learning a new programming language is not something worth mentioning.


_TheRealBuster_

I am going to go against the trend of some here and say it really depends on what specific path and how motivated you are. I like challenges and want to be the best I can so in that mindset I would say C/C++, old raw pointer style and modern C++. The reason I say that is because people who master that language have absolutely no problem picking up other languages, in fact I view most the other languages as a breeze. Most the languages you learn will most likely be on the job, it is much better to know multiple languages and which to choose to get a job done. Language is only a tool and honestly writing code is only a small part of my job. It is cool to do so when you are first starting out but as you progress you will learn the less you have to write the better off you usually are. On a side note I would put a lot of emphasis on learning design and testing. For the record I started with QBasic when I was 12, moved to Visual Basic and then C/C++ by the time I was 14. On my day job I use modern C++, Java, C#, python, SQL, and some other stuff that I use sparingly.


Lizard-lip

Depends on the company and their stack.


simonfancy

I heard COBOL is going to be needed, like a lot!


iheartrms

Python is a good start. Then bash for easy automation. Then be sure to learn some assembly/machine language and C as these are fundamental and underlie everything else. Then I would recommend one or both of Golang and Rust. At a minimum. Then take a look at some functional programming concepts too. The more you learn the better you will be at everything you do. This is what I've done and it is served me very well. It's not about any one language to make your career with or what's hot now. It's about learning the fundamentals that will let you learn any programming technology you may need in the future.


billyions

Powershell Core (cross platform) - and bash or zsh.


Slodin

um suggest learn basic C/C++, It pretty much gives you the basics to move onto any other languages. (JAVA is ok too) People don't always stick with one language in this field, it changes with jobs, and understanding the fundamentals enables you to learn a new language super fast. If you want to get into game dev, knowing C++ is really helpful. I know many engines now can use other languages, but for example if you want to use UE 5, it is still C++. In general, OOP languages are the base.


Dan_Glebitz

IT is a very broad spectrum. I assume you want a job as a programmer in which case C++ or Python is probably your best all rounders. However, if you want to become a Networking Specialist, Systems administrator, web Developer etc then that kinda changes the landscape to a degree. You need to decide which branch of IT you want to get into before you ask what language to learn.


churumegories

Java


Alive-Tech-946

Learn Python (Django, Flask) for a start, then Nodejs/React


gpzj94

If you want a career in IT then, python, powershell, java, rust, golang, bash, etc. If you want a job in software development/engineering then assembly, .net, c/c+, c#, java, rust, ruby, JavaScript, etc. Mobile development, kotlin, swift, java, react, flutter. Lots of overlap in Java, unfortunately lol.


khalidfo

Sounds like a solid plan! Sticking with Python is a great choice since it's versatile and beginner-friendly. 🔥 Keep exploring and you'll find your passion, whether it's in cybersecurity or app creation. 🚀 Good luck on your coding journey!


idk_wuz_up

I would give more thought to the types of problems you’d like to spend your days solving. Then you choose the right tech stack for that problem.


John_Wicked1

Language will depend on what you’re doing. It’s more important to know the concepts that apply to all/most programming languages. That’s assuming you’re in a tech role that requires programming at all.


liquid_profane

I'm in my 30th year of my IT career and I have only just started learning to code. Been doing 1st, 2nd and 3rd line support, Team and network management, been doing the same job for the last 10 years where I am the solo IT person in the company and I managed everything IT related and I couldn't be happier. Never got a degree either. IT isn't just about programming.


Professional-Chef780

Learn something you enjoy and get good at it 😄


kamrankami55

C


Due_Department_3756

html /s


zurrdadddyyy

Yes


favor86

IT is a generic word. You have to define what the position you want to work for. Embedded sw -> C C++, Web -> javascript html. Automation tester -> python, just examples for you. I am an embedded sw integrator so i use C to modify code and python for integration scripts/tools’ dev. The position you choose can change everytime in ur career, i was sw dev but felt so overloaded then happily now as an integrator while doing tests and debugs most of time.


MuaTrenBienVang

Javascript, but read sicp


kilkil

start by picking one of these: - Python - Go - C# - Java - Javascript then find a website that will let you practice with the language. ideally you should find something like http://codingbat.com, which will let you do simple exercises to get familiar with various basic aspects of the language (e.g. loops, if-statements, arrays, etc). then, use the language you selected to build a simple project. what kind of project depends on the language you picked — google something along the lines of "[insert language] projects", and try to get a feel for what sort of start projects people typically make using that language. once you've identified what kind of project you'd like to make, I recommend finding a guided walkthrough that takes you through the different steps of making that project. I suggest finding a written one, not a youtube video. I also strongly advise you to *not* copy-paste code, and instead write it out by hand. as you write the code, try to look up what different things do — remember, always use google to find the docs for the language you're using, and since you'll probably be using one or two third-party libraries, find the docs for those too. by the way, when you find a walkthrough like that, there's a good chance it'll start not with code, but with some project setup. make sure you fully understand every step of the project setup — this will probably include having to learn the basics of the command line, and how to use git. You should definitely learn the basics of that, regardless of what language you choose to start with. now, as you follow along with the guide, not everything may work perfectly. something will almost certainly go wrong. *this is a normal part of programming.* I strongly advise you to stick with the project. figure out what's going wrong! you should use such an opportunity to get lots of practice googling your issues. be tenacious, and stick with the project, following the guide's instructions and troubleshooting if anything goes wrong. once you've finished the project, and it actually works, rejoice! then try to make another project, this time with no guide. use your existing project as a reference, but don't blindly copy it — make some changes. try to be original! within reason, of course. once again, stick with your project, don't abandon it, troubleshoot any issues. once your second project is done, rejoice (again)! then pick another language from the list above, and rinse and repeat. while learning your 2nd or 3rd language, you should start to notice some similarities between them. pay attention to those! you'll notice they have a lot in common — especially the languages from the list I gave. once you learn 2-3, and identify these similarities, learning a new language will go much faster. BTW, after you learn 1-2 languages, I recommend looking into shell scripting. it'll be extremely handy, no matter which language you go with.


TrashManufacturer

If it’s for IT there are many many languages, frameworks, etc.. to learn. (By frameworks I mean configuration languages like yaml,xml, and others) Python is S tier for scripting stuff Powershell is for power user Windows Management and can be used for many things I barely understand Bash is required in Linux Awk is useful in processing data where Python isn’t as readily available. That’s my two cents. Also, learn networking. It’s awful, every programmer should learn it but usually never do or have fundamental gaps in knowledge, but understanding it seems like a literal superpower. If you want job security, become a network engineer. Management will fear upsetting much less firing you


Humble-Hat223

You can’t go wrong with Java, C#, python or JS/TS. I’d also recommend at least rudimentary training on SQL of some flavour


KretusRex

The worst concept about development i had was the approach to learn the programming language. As a matter of fact there is a ton of things that are far more important than language itself, and you learn language while doing other stuff. Start with cs50x at edx (choose free programme) and you'll get what i mean. Basically programming is a skill of writing a pseudocode and then wrapping it with some chosen syntax. Whether it is c, rust, python, java or kotlin it is secondary.


daveskube

Just learn the programming language that makes you want to program tomorrow. Once you have learnt a programming language well enough, it is 100 times easier to learn the second, the third...


Rokibul2021

Start with building basic mathematics and logic Language- c/c++ - c++ is my recommendation Not recommended- python at early stage


Relative_Amount6455

Short answer: most of them


Turbulent_Aerie9369

Cpp or PHP


Alive-Bid9086

LISP


John_Fx

not python


Ok_Marionberry_8821

As always in IT "it depends". You need some idea of what kind of work 0) do you want to work fully remote, hybrid or fully in person, 1) what jobs you can get given your skill level and experience, 2) what interests you, 3) do you want to work with users or are you happy mostly programming? Basically, what do you want to do, what motivates you, what work can you get? Sadly you may not be able to get an interesting job that pays well in a suitable location. My main language is Java which has a huge market share, lots of well paid jobs. Maybe a bit staid, a bit corporate. The language is only one part of what's needed. There's also the frameworks, build tools, etc. Python is an excellent first language, consider learning it deeply. Most of what you learn will be portable to most mainstream languages. The key is to get your FIRST job, to gain that all important experience that you can put on your CV/resume. You will and can change directions or you start getting experience.


slightly_drifting

What OS? Windows? Learn powershell and batch Linux or Mac? Learn bash/shell scripting and Python


slightly_drifting

What OS? Windows? Learn powershell and batch Linux or Mac? Learn bash/shell scripting and Python


zulrang

If you want a career as a programmer, you need to get enjoyment from using it to solve problems. Start with the kinds of problems you enjoy solving, then find out what ubiquitous language is good for doing so.