There was a time in my life when I made up my mind to be a programmer, I had a very big problem deciding which technology to learn.
To me then I would always want to be relevant and so I wanted to learn a language that would keep me in the relevant zone for decades to come.
The advice I got was to learn Java, because during that period Java was reigning in my geographical location at least. I did my research and I felt why not Java.
Often times when we make up our mind to become a software developer most of us think like this, but the simple truth is that things are more complicated than anyone thinking of the technology to start their software career with, just to be an instant hit in no time.
Let's get the point straight, am not saying you shouldn't look out for a promising tech skill to acquire on the contrary am saying the tech space is hug and if you must be relevant in that huge tech space you need first choose which part to function in that huge tech space and then learn the most promising technology for that part.
In the Tech space you can decide to be a frontend dev, backend dev, machine learning expert, etc... These different fields have different programming languages, libraries and frameworks people have learned to use for them, take for example frontend engineers often use Javascript and maybe ReactJS or Vue.
It's important to first know if you would love to be a frontend or backend developer, before choosing a programming language to learn. When choosing a language to learn as a starter you should choose the most promising, when I use the word promising I mean acquiring a tech skill that is in high demand today and will be tomorrow, yes that's possible.
Every developer wants to remain relevant in the Tech space and the best way to achieve that today is to identify the language of today and of the FUTURE. Talking about the language of the future, first we need ask how far in the future are we talking?
More than a decade out? Hard to say. More than two? Impossible. Looking at current trends, though:
JavaScript is taking over almost everything.
TypeScript is catching up as the best way to use JavaScript.
Python is nailing machine learning, but losing momentum on servers.
Julia could come up from behind and displace Python in Machine learning.
Java is pretty well embedded in the enterprise space, but there are cracks around the edge of its dominance.
Go might survive due to strong Google backing, though I have a hard time recommending it.
Swift is likely to stick around as the Apple platform language for the foreseeable future. But it doesn't seem likely to make the jump to anywhere else.
Kotlin could displace Java. Scala has had its chance, but it appears to have failed in garnering market share. I frankly don't see that changing any time soon.
C# is probably going to persist in some enterprise companies, and as the language of Unity3d and Xamarin.
On the high performance end, it's a hard call. C++ has ruled this roost for two decades, and has received some recent updates that look great. But Rust seems to have a strictly better type system, which provides better compile-time code verification with equivalent or better performance.
C is the low level language of the past. Like COBOL, there's a crap ton of code written for it, so it won't just vanish. But except in narrow cases I don't see C as being a good language for new development. Rust is strictly better for anything that you might want to start in C today. I think this will be increasingly true. So in that respect, Rust may be more likely to be a major language in the future.
This are noticeable trends anyways, so dig in choose your area of relevance (e.g Frontend), research more about a technology to learn maybe Python or JavaScript, start learning and start building things.
The first language will be hardest, because you're learning how to program for the first time. After that, the second language will be easier, and so forth.
If you gained something from this article, take a minute of your time, hit the share button and share this piece with your network on social media, also give me a follow on all social media platform via @ifycoool.
Visit my official blog via https://www.blog.ifeanyiokeakwam.com
Top comments (27)
My observations:
Learning TypeScript makes it simple to pick up on C# and Javascript.
With C# and Blazor, Javascript is not needed. Wasm just may become a disrupter.
Traditional back ends written in C# or Java can be fully replaced with microservices which run in TypeScript or Javascript.
The common denominator is Javascript but TypeScript gives a more broad range of skills.
If I were just starting I'd pick TypeScript then Javascript followed by C#. Why C#? It's far more advanced than Java and has built in Wasm support.
Java is more popular in large enterprise, so my 4th choice is Java.
My impression was, TypeScript is rather hard if you don't know JavaScript.
It's basically a static type checker for JS, so not knowing about the idiosyncrasies of JS makes seem TypeScript kind of weird.
True if coming with no static language experience. TypeScript and C# use exact same concepts. C# people get TypeScript immediately.
Good point.
The reason, I was anti TS for a long time was exactly that, it was too close to C# for my taste.
I'd have preferred that ReScript would have won and we now had something more functional, but whelp. TS it is, and it's better than nothing.
Yes Javascript people appear to be fiercely loyal to it, despite it's history of slow improvement. Things are better now for sure.
I started with C programming at school, and when I went to university and they tried to sell me Java and C++ it all felt quite cumbersome. C was much simpler.
Then I discovered JavaScript and had this feeling of efficiency again, not in terms of performance, but simply in coding.
TypeScript felt a bit like people tried to push the heavyweight OOP stuff of C++/Java into JavaScript again, that's why I didn't like it. But when I used it for some things, I got the impression it's vastly different from those heavyweight languages, so I gave it a try.
And I have to say it's really much better than I imagined it.
I think you'll find it hard to get people to transfer over to a .NET stack once they started with JavaScript. I already stopped programming on my windows machine and not looking to go back anytime soon. However, you are right, I also think JavaScript is the one to be de-facto language for at least another decade.
I had jumped the .net ship for at least 5 years. But with C# WASM they may have a disrupter. The only problem is putting trust back into the Microsoft stack they screwed so badly.
I've honestly had a lot of fun learning Rust so if i have to write WASM apps it'll be with Rust and not C#.
Nice..
Javascript is a winner in many ways and in many years to come
Lol except performance 😂
Yes, it looks like WASM will kick butt
.NET 6 has syntactic sugar for all comers. For C# veterans, focus is on minimizing the amount of boilerplate code one has to write. For PHP developers, minimal APIs will look familiar to many. And these languages, as well as TS/JS have incredibly similar structure these days. It won't be that hard for a good developer to switch to .NET.
So why .NET 6? Because it is the most mature, most widely supported .NET. It runs on both ARM64 and x64 architectures. It has multiple IDEs for all three major desktop OSs. It works from front-end to back-end using Blazor WASM. But most importantly, it is fast and efficient. I expect to bring down our company's core count significantly next year by adopting .NET 6 and putting things in containers. I remember reading a case study on Microsoft's AD gateway servers moving from .NET to .NET Core, and cutting the core count in half.
Blazor WASM will really change the nature of the SPA. Being able to write in the same language from front-end to back-end really helps with development flow. Blazor WASM has first-class UI libraries, and integrates well with SignalR. Is Blazor any better than React? Maybe not. But it's certainly just as good, and now I don't need to learn another language.
Don't count Microsoft out. They've made huge strides in many aspects of development, and are rapidly bringing lots of people in. I'd be very surprised if Blazor WASM doesn't take off.
Knowing only one language and using it for both Frontend and backend is a big deal I have no doubt, my only problem with it is that I don't think it's going to make much difference in the real world.
You are a programmer for a reason which is to work. Most people learn coding because they want to get employed and use the skills and make money and in today's world no employer would sign a contract with you that says "you only use one language" never, at some point you are going to be learning something new.
After many years and more languages than I can count on one hand, I'm not really interested in learning another. I have more than enough to keep me competitive :) For JS people, this is nothing new. For C#, though, it's a treat to be able to get away from ad hoc JS in the front-end.
My main reason for not wanting to learn another language is that I don't want to have to teach my team's developers another language. They are all good at C# and passable at JS. Research time is expensive. Making use of what you already have is better if reasonable.
Isomorphism is here now in at least 3 or 4 flavors. It is a nice thing to have front, back ends or microservices in same language.
True MSFT is making huge in-roads these days after stinking up the universe for eons.
I do feel C# Wasm is very strong and possible disrupter.
But Javascript is so large now, it will continue dominance for long time.
Now you get the point
Typescript helps you do Javascript better, so it's easier to know Javascript first before Typescript.
Generally I think Javascript is a winner in many ways and in many years to come
Agreed, TypeScript can teach good Javascript programming concepts and it's far better with intellisense.
One month ago I was looking for a job as ReactJs Dev. I stopped myself when I saw for each job post there was 30 interested people! I've never seen anything like that: on the past there was two or three candidates for job!
Lolz, it's even worse now.
I'm surprised you've discarded Go. It reigns supreme in the cloud development and is surprisingly easy to learn. I'd definitely recommend it to anyone starting their web dev path.
I think Zig is better for c replacement not rust
click here for a MUST READ on why we need to Learn Java
howtolearnjava.com/learn-java.html
typescript