DEV Community

LibertyImp
LibertyImp

Posted on

I've noticed my skills are very limited in every language I know

I was recently looking at some code I wrote a few months ago and realized that I haven't really improved much, I feel in every language that I'm familiar with I'm at about the same skill level.

Anyway my question is, Is it better to be well versed in many languages or is it better to know 1 or 2 languages very well? Thank you all in advance! 😁

Top comments (17)

Collapse
 
trollboy_j profile image
Jacko

I feel it is best to stick to 1 or 2 programming languages when it comes to object-oriented programming and well-versed in web development. That’s my opinion, though.

Collapse
 
leob profile image
leob

It's simple these days, you can never go wrong with Javascript, you can use it both frontend and backend, it's a safe bet.

Once you've mastered that you could pick up one other language e.g. a typical backend language like Python, PHP, Go, Rust etcetera. But I would say it isn't even strictly necessary.

Or if you want to expand your horizon beyond OO then try to pick up a functional programming (FP) language like Haskell, Clojure or Elixir, if you're in for an intellectual challenge.

Another option would be Flutter, if you're interested in mobile development.

But yeah, Javascript (maybe coupled with Typescript) is a no-brainer these days.

Collapse
 
sebring profile image
J. G. Sebring

A paradox indeed. As a beginner it might be good to kind of stick to one language but don't reject/shy away from others. As you say, one need experience in different languages to find the one you like, or love even. My somewhat lengthy post above describes different personas with different motivation, I think this is key. There is no right answer here.

Don't force yourself into learning a new language if you not really have the motivation. I know I don't learn much when unmotivated, it's all a pain and something that just needs to get done. Being motivated on the other hand is when you get that sense of flow and you pick up new things. Same goes the other way, don't force yourself into sticking to this one language just because it happened to be the one you know best now.

 
trollboy_j profile image
Jacko

That brings up another great point, it depends on what you want to specialize your programming skills in. I’m currently using C# and Unity, so I don’t know as much about all the frontend/backend stuff, but when I used to learn JavaScript for web dev, it was important to learn a lot of simple languages like HTML and CSS, but JavaScript was a little trickier. Basically, it was like 1-2 actual languages and 2 easy languages that made it work.

Essentially, it varies on what you want to major your skills for.

Collapse
 
trollboy_j profile image
Jacko

No, there’s not. I probably should’ve clarified that you should stick to 1-2 OOP languages after you get a feel for them. Not saying you should stick to that language your whole life, but the rate OOP is progressing is slower than today’s rapid web development. :)

Collapse
 
weeklytyped profile image
Weekly Typed

I absolutely think you should try multiple programming languages out and try to find one that you enjoy. Just don't treat it like something you have to figure out early on. Chances are you will have a long career. And what you think you like about a programming language today might change years from now.

Collapse
 
jcsvveiga profile image
João Veiga

“A jack of all trades is a master of none, but oftentimes better than a master of one.”

I've found in my career that it's better to have a basic to higher basic of some languages that I don't work with. By learning some Haskell, Erlang, Elixir or OCaml, I've found patterns and ideas that have helped me grow when writing code.

Now, I don't know at which stage of your journey you are but unless you are required to know more about language X or Y, you shouldn't fret too much about it. I find that most of the time, I'm using a small part of the language, and it's ok, we're not always doing completely new projects or parts of code. What I have found that is helpful is to watch people from streams or read books on patterns for the languages that I work with or am trying to work with.

Collapse
 
theroka profile image
theroka

First, keep you happy and motivated and stay curious!
Select a programming language to learn you feel comfortable with. Focus on fundamentals like types, arrays, maps, control structures and concepts like OOP, functional programming, clean code, testing, etc. Use them and repeat.

It will become easier to learn more programming languages. Later, you should select the best matching language/framework/toolchain to solve the specific problem.
Nevertheless, of course, you have your favorite languages, which you also like to use in side projects. Mine are JavaScript and Go.

Collapse
 
raddevus profile image
raddevus

I have found that the best thing is to attempt to build a usable product. The product can be extremely small but should satisfy some user requirements. If you focus on doing that and using some technology that you can easily share (deploy) to users, I believe you will find that you use the right mix of languages.
As an example, I wanted to turn the 31 Core Business Competencies document into an app.
I wanted to be able to deploy it easily to users so I chose to build it as a web app (they only need a browser this way). You can try it at : newlibre.com/coreco/. I also made it so you can try it out with no need to login in anything.
I built it using HTML, CSS (along with Bootstrap), JavaScript and a bit of Firebase. Soon I will change it so it saves data to IndexedDB instead (but I still need to learn it. See how that setting a goal of a usable product leads you through the technology and languages you need to learn?
Well, that's what I do anyways, because otherwise learning languages doesn't hold my attention. Just an idea. Good luck.

Collapse
 
sebring profile image
J. G. Sebring

TL/DR - Your responsibility is to keep yourself motivated and happy! Do what motivates you most.

~
I'd say there is no really right or wrong here as it depends on personality. Some people seem to enjoy to explore new languages and it what's keeps 'em ticking, while others kind of dwell deep into one language and that's what's makes them happy.

This is of course not binary, and it might change over time - ask yourself, where are you on this scale - and embrace it.

I'm personally very driven towards what's makes me happy, not necessarily what's best for my career. Having that said, it's not the same as ignoring my career. I try to steer my career towards what motivates me and makes me happy, rather than (trying) to mold myself towards a successful career pattern.

Feel free to explore different languages but remember to not beat yourself up that you don't really master any of them (in each language you learn, you will meet people who are better because they focus on that single language, it is important to accept that). You'll get very good with architecture, algorithms, patterns and so on. Jack-of-all trades, working as consultant maybe, when I did I had used of many different languages as php/sql/java/jsp/web/android/python.

Feel free to dig deep into this one language you love and ignore the other, find a job where this is exactly what they want - work at a company having a product in whatever the language it is and they'll love you. I do now as 100% frontend engineer as I come to the conclusion that javascript is the language that I love most.

Maybe you'll end up as a cloud ops/devops specialist, realizing that it wasn't necessarily the actual programming that rocked you boat but managing servers, certificates, security and so on.