10 answers
Updated Viewed 787 times Translate

What programming languages must you know for IT management or software engineer?

I know a couple languages, mostly high level but I was wondering If I have to learn C or C++ or ABC . I know python, bootstrap, html, css, java script, learning ruby and rails, and I am learning php and sql. #software-engineering #technology #web-development #computer-software #software #coding #html #css #java #javascript #it-management

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you
100% of 10 Pros

10 answers

Updated Translate

Abe’s Answer

Programming languages come and go every N years, but the ideas they contain are timeless and reusable over time. Each language is designed to solve a particular class of problems easily, for example C/C++ for systems programming where efficiency and resource control are important, C#/Java for programmer productivity with automatic memory management, Erlang for concurrent applications, PHP for web development, etc. Try to learn as many languages as you can, to capture the language creator's ideas of how to solve a particular domain of problems.

While breadth of languages is important, depth counts more when you apply for jobs in the industry. Every language has an eco system of compile and build tools, SDKs, libraries, etc. Knowing that eco-system inside out, will give you great leverage as a software engineer.

100% of 1 Pros
Updated Translate

Ollie’s Answer

What languages seem to have staying power? not many. SQL, maybe.

No longer is a "language" the unit of expertise, if it ever was. Most languages come with frameworks and ecosystems for getting things done. The skilled programmer knows how to use the ecosystem to get things done.

Modern languages, frameworks and ecosystems come with tools too. Visual Studio is one. Eclipse is another. These tools help you code, but more importantly they help you navigate the ecosystems around your languages effectively.

For example:

-Client-side Javascript comes with a bunch of ecosystems: jquery, bootstrap, react, etc. Your next project will pick one or two of these, and using them effectively is the skill you need. Several tools help with this, including the <f12> dev tools in browsers, Visual Studio, etc. I like Jetbrains Webstorm.

-Server-side Javascript (node.js) comes with a vast npm ecosystem. You'll need to figure out how to navigate npm to be successful. Tools include the usual offerings.

-C# (Microsoft's language) comes with the vast dotnet framework, and the nuget ecosystem. You can't possibly "know" all the stuff in the framework, let alone the ecosystem. But you can be sure you'll find robust library objects and methods for stuff like date parsing and generating XML files. The trick is learning to find those kinds of things. Visual Studio is the tool to use.

-Java comes with JEE. It's vast too. Eclipse is the tool. (Also for Android mobile development).
-python comes with the pip ecosystem. Lots of tools support it.
-Ruby has the Rails framework and the gem ecosystem.
-Apple has Swift and Objective-C for languages, XCODE for a tool, and the surrounding framework.
In business IT you'll probably find yourself using SQL too.

If you are looking for a job at a big company: you'll probably find they use mostly C#/dotnet or mostly Java/JEE, in both cases backed by SQL for data access.

The way to build a career is to become familiar with the concepts in languages and ecosystems, so you can quickly learn, assess, and apply new stuff. When I started FORTRAN and COBOL ruled the IT scene, with PL/I and C as upstarts. That was a while ago.

If I were designing an IT curriculum, I'd make sure students learned:

C#/dotnet/nuget/SQL and
Javascript with promises.

C# etc gives you experience in building pieces of big systems.

Javascript gives you closures and asynchronicity.

Updated Translate

Marcos’s Answer

In my experience there are no must-have languages to get a job as a software engineer. In school I learned how to use Java, C, & SQL in class, and picked up HTML, PHP, and a little bit of JavaScript on my own. Knowing HTML and JavaScript helped me get my first job in tech, but then I learned the new languages I've needed over the years on the job, which I've found to be quite common.

I think it's great that you're trying out several different languages! They'll each potentially show you different ways to solve different types of problems. Understanding how to use SQL to store and retrieve data will be useful for lots of types of work. If you find that you're enjoying solving problems with code, that's a great indicator that you'll be able to adapt to solving problems in with language/tech a future employer wants you to use!

If you're really wanting to focus on languages and tech you can look at the results of the Stack Overflow 2019 developer survey as one source of info: https://insights.stackoverflow.com/survey/2019#technology or the GitHub "State of the Octoverse" report: https://octoverse.github.com/projects#languages

Marcos recommends the following next steps:

Keep trying out new languages and solving problems with technology!

Updated Translate

Ashley’s Answer

Hello! I have been a software engineer for many years now and can tell you that there are lots of jobs in the industry, which require different languages. Knowing ruby on rails and python is a great start and should be enough to find a job. You do not need to know C or C++.

Part of it depends on what type of engineer you want to be. Front end engineers who create web pages should know java script. Back end engineers who write services should know Java, C, C++, C#, or Go. IT folks tend to know python or go.

I would focus more on learning one language in depth rather than learning a lot of different languages.

Best of luck!

Updated Translate

Praveen Kumar’s Answer

Programming languages are evolving very fast based on the problems that need to be solved. For a software engineer, the programming language is like Tool. The tool will change based on the need and type of problem that needs to be solved. You need to develop the skills to use one or two such tools very thoroughly. The more important is domain knowledge. In your case, you already learned many languages and focus on application of these languages.

For IT Management, some of the scripting languages will help to automate the tasks which will help in scaling up in the current role. Python and Powershell are some of the important languages which will help in IT Management.

Updated Translate

Hussain’s Answer

as a student according to me there a several high level languages such as-C,C++,PHP,Ruby ,javascript etc etc.
but according to me First we should learn very well about C,C++ if you know very well about C&C++ then you need to move on other languages but if you dont know about basic language so first learn basic languages and if you think that you should learn 2 languages At same time so its is very complicated for Learner ...
So I suggested that Learn Basic Languages then move on other lanaguges .

Updated Translate

Anandharajan’s Answer

You already aware of web technologies like HTML, CSS, Javascript. I think you can start learn about frameworks like Ruby On Rails, Vue.js, ReactJS, Angular

Updated Translate

Andrea’s Answer

Hi Ian,

This is a great question and there are many opinions out there depending on what areas of technology you are looking at e.g. machine learning, game, IOS, API, and so forth. I did do some research with my son recently, as he is looking at a Computer Science Engineering major. It looks like most colleges have C++, JavaScript, Java, and Python, and all of them are relative in the real world. Github (https://octoverse.github.com/) is a pretty good source for the real world and here you can also find the stats for the most used languages and topics. JavaScript stands out as the most popular and Python took the 2nd place from Java.

Good luck,


Andrea recommends the following next steps:

Check out developer communities like Github (github.com) and Stack Overflow (stackoverflow.com)
Share your code and engage in projects. This is a great references for future employees and recruiters use it too.
Whatever you do, be passionate about it.

Updated Translate

John’s Answer

The programming language you know is not really as important as the programming environment/methodologies you have experience with. For example, the latest paradigm that is becoming the front runner to create business applications is MicroService Architectures -- IE> Using Containers for individual processes or tasks to create a larger solution, Continuous Improvement/Continuous Deployment (CI/CD) methodologies is also becoming very important. If you go into an IT career programming, just be ready to switch programming languages every 2 to 3 years, if you want to keep up with the majority (I still know people who do COBOL programming, but they have a terrible time finding work...but they still can.) I started out with COBOL on IBM 1401 Punch Card Writers 40-odd years ago, and by my last count, have created business programs in over 22 different languages. My latest is Node.JS, but I'm starting to learn GO, as I'm seeing more MSA Containers being written using GO (or GOLANG as some people call it.)

If you don't like learning, don't go into IT!

John recommends the following next steps:

Install Docker and learn how to create a Container using whatever programming language you currently use.
Create a Container that has a web interface for a database (A ToDo List is always a good one to do as you can use it for your own work) that interfaces with another Container that is the database.
Install a CI/CD system (Jenkins, JenkinsX, TravisCI, etc.) and setup both Containers to be deployed to your Docker system from there.
Look up "DevOps" jobs on job boards and look at what they want skill-wise, and work to get those skills

Updated Translate

Mario’s Answer

Computer languages are not so important as programming paradigms (e.g. object-oriented programming, functional programming...), that give you the solid foundation to switch from one language or another when required.

But what makes the difference is the expertise you get in a given domain (IT management, Banking, Artificial Intelligence, Database management...)