DEV Community

Which programming languages do you think are the most worthy technologies for a junior backend developer

Steffen on December 30, 2017

I'm curious. There are so many options like golang, node, java... Additional karma for the new year if you have starting points like books, tutorials, etc.

Collapse
 
jfrankcarr profile image
Frank Carr

Overall, building a strong foundation really helps. Way back (aka the 80's) when I was first starting programming, C was this foundational language. Learning it made it easier for me to pick up new languages and to gain a better understanding of programming in general.

Today, I'd say the best one to learn is Java. It's been around for decades now and isn't going anywhere. Learning it makes it easier to learn Java/C/C++ derivative languages from C# to Javascript plus all the associated frameworks and libraries built around it.

If your goal is to work mostly on the backend, you will want to know SQL well. So, you need to have the basics down (SELECT, INSERT, UPDATE, DELETE) and then move on to understanding the differences between MySQL, SQL Server and Oracle. Then there's the whole "NoSQL" family like Hadoop that are gaining popularity.

Collapse
 
sironheart profile image
Steffen

Thanks, I actually wanted to look into Java the next year, propably in Combination with Spring.io because I haven't heard of a bigger web framework for Java

Collapse
 
lambdude profile image
Ian Johnson • Edited

I really like Rust. Rust is a low-level programming language, like C. But, it has high-level abstractions, like Python. In web dev, many would point you in the direction of PHP, Ruby and Python. These are worthy languages to know.

However, Rust has a very interesting model that solves many classes of problems. For instance, it guarantees no data races and no stack overflows. It is an expression-based language, like Ruby. It has testing built into it. It has documentation built into it.

Rust gets out of your way when it should and gets in your way when it should. If you want to write your code with objects, Rust is fine with that. If you want to write functional code, that works just fine in Rust too. But when you don't cover every possible case of the value of a variable, Rust gives you a compile-time error so that the bug never enters production.

There is a weekly newsletter called This Week in Rust. There is also a subreddit, a twitter account, a YouTube channel and the Rust Herald. There is also the Rust User Forum for help.

Rust has a really great community. irc.mozilla.org#rust is the best irc channel I've ever been on. By the way, Rust is backed by Mozilla.
I went to a conference in October called Rust Belt Rust in Columbus and it was a great experience. I cannot stress enough how great the Rust community is.

Rust is a great back-end language. It's faster than Go and Java. It's also memory-safe and has no garbage collection. Plus, it has OS threads, not green threads.

I'm currently using Rust to implement microservices using AWS Lambda. There are also web frameworks for Rust, including Rocket and Gotham. It also has several ORMs, including Diesel. The advantage of the ORM is that you abstract away from the SQL. SQL is an important skill to know on it's own, but in an application a data store should be abstracted.

As far as resources go, there is what is known as the book, which is currently transitioning from the first to the second edition. Another great resource is Rust by Example.

Collapse
 
sironheart profile image
Steffen

Thanks a lot for all those information :) I personally have taken a look at Rust a while ago and haven't really enjoyed it. Also it had a few problems in stability, which I always experienced in Mozilla Software... might also be just me... on 2 - 3 different computers... just don't really know... but as you are so passionate about it, keep on doing awesome stuff with Rust! You might find a way to make a big thing with it :)

Collapse
 
lambdude profile image
Ian Johnson

They have actually done a lot of work recently to stabilize all of the common crates and make the language more ergonomic. They are also in the middle of a documentation overhaul. So the language should be much more approachable.

Collapse
 
twof profile image
Alex Reilly

Can you talk a little bit more about why you didn't like Rust? I'm trying to think of languages you might like working with.

Thread Thread
 
sironheart profile image
Steffen

It's really just stability and my experience with Mozilla products I guess... I always have the problem that their software gets incredibly slow after a few minutes of usage... But maybe it's just me :)

Till now I really liked C# (even though I'm not able to write it anymore because of a long break) and PHP. Maybe that might help you :)

Collapse
 
coolgoose profile image
Alexandru Bucur

I'd say that the market has a fair amount of jobs regardless if you start with node, golang, java, python, ruby, php etc.

From that list i'd say there's a good starting point to check out

  1. PHP -> PHP: The Right Way and Awesome PHP
  2. Node -> Awesome Node.js
  3. Python -> Awesome Python

I think you get the whole 'awesome programming language here' :)

And as always, since you're talking about backend development learn your SQL, This tutorial from Khan Academy looks like a decent starting point.

Also, you can have a quick peak at Todo Backend a nice complement to the todomvc or Hacker News clones

Collapse
 
sironheart profile image
Steffen

Thank you, right now I'm working as a junior PHP fullstack Developer, but the focus in backend development is what I want to accomplish. Just a few days ago I took a first sight on node.js even though I couldn't really enjoy the taste of JavaScript in the backend...
Especially the SQL point is something I actually haven't thought about till yet... even though it totally sense! And special thanks to all the links! Helps a lot!

Collapse
 
aswathm78 profile image
Aswath KNM • Edited

start with Node.

Front-End , Backend , Desktop, Microservices and much more .

Start with Eloquent Javascript

High demand for onsite and freelancing jobs .

Best for a jr dev

Collapse
 
alephnaught2tog profile image
Max Cerrina

What kinds of things are you interested in beyond coding?

Collapse
 
sironheart profile image
Steffen • Edited

Mainly gaming and esports, why are you asking?

Collapse
 
alephnaught2tog profile image
Max Cerrina

Just because knowing what someone else's other interests are can help spur ideas as to things to work on or which languages to head towards :)