DEV Community

Cover image for How to become an effective Polyglot Developer

How to become an effective Polyglot Developer

Deepu K Sasidharan on June 29, 2020

Originally published at deepu.tech. A polyglot developer is someone who can work with multiple languages with ease. In its strict interpretation, ...
Collapse
 
shaijut profile image
Shaiju T

Good Points 😄,

  • When you encounter a new language, the best way to learn it would be to learn semantics rather than syntax.

  • One thing not to do is learning a language by learning a particular framework.

In college days I choose Java for internship project because it has Job openings. But then I got Job as C#.NET developer.

Since then I sticked to C#.NET world, but recenlty that changed and now I am planning to learn languages like Go , Python , Ruby.

Some questions:

  • How can one became familiar with the language and frameworks in it ? By doing CRUD project or some other project.

  • Shouldnt we master at some level atleast one famous language like Java , C# ? or be jack of all trades, and master of none?

  • What do you think about languages Go , Python , Ruby isn't the syntax is less user friendly and readable than Java or C# ?

  • Since You have learned Java , Go , Python , Rust , which language has made your life easier and ship fast ?

Collapse
 
deepu105 profile image
Deepu K Sasidharan
  • Its definitely nice if you master at least one high-level language, but doesn't have to be Java or C#, it can be Python, JS or Go as well, what matters is you master fundamentals of programming, that will take you a long way

  • Being a jack of all and master of none is not inherently bad as long as you are decent at what you do. Again being good at fundamentals will make you better at languages

  • Syntax is subjective, for example lot of people find Python nice and Readable, I personally don't like it. I find JS more readable since I used it longer. A language syntax becomes easy for you with practice. Don't focus on syntax they will keep changing.

  • That is what I'm trying to say, there is no single language that will be best for all situations. For example if you want to build a CLI tool real quick, JS with NodeJS is the best bet. If you want really performant app with fewer bugs and great reliability then Rust is great but might take more time to build. If you want a fast app that is easy to build, then Go is good but there will be tradeoff like verbosity, code duplication etc. If you want reliable web apps, the Java would be great due to its ecosystem and great libs. If you quickly want to write some scripts or process data, then Python/NodeJS is nice. SO its always based on the usecase. If you learn a handful of language you will be able to pick the best one for the task at hand

Collapse
 
shaijut profile image
Shaiju T

Thanks 😄, Appreciate for guiding and taking time to write :)

Thread Thread
 
deepu105 profile image
Deepu K Sasidharan

you are welcome and I'm happy to help

Collapse
 
deepu105 profile image
Deepu K Sasidharan

You don't have to do CRUD projects specifically to become familiar with a language. ANy project would do. If you go that route of learning by building something, I would suggest trying to build the same project in different languages. Even a TODO app or TicTac game would do

Collapse
 
shaijut profile image
Shaiju T

Point : Learn the goal and purpose of the language

Since You have learned Java , Go , Python , Rust , what is the purpose of each language , any uniqueness does any language is more preform-ant than another and uses less memory ?

Collapse
 
deepu105 profile image
Deepu K Sasidharan

Yes, most languages do specify a goal. For example, Rust focuses on memory safety and is a systems programming language. Go focus on speed and simplicity and so on. While the goal is good to know, the purpose matters more IMO. Some languages do not specify a purpose but looking at how it's widely used you can infer it.

Collapse
 
shaijut profile image
Shaiju T • Edited
Collapse
 
deepu105 profile image
Deepu K Sasidharan

Thanks. Appreciate it

Collapse
 
klvenky profile image
Venkatesh KL

Great article @deepu105

I'm not a polyglot at all. I'd like to be one. I've worked in Java initially then JavaScript, now fully into typed javascript aka TypeScript.
I've tried a bit of go, nothing more than solving some problems in euler archives.

I'd like to know how you get ideas to build tools to learn languages. I'm more into building web applications, do I've mostly dealt with multiple web services, auth, cron jobs, speeding up queries etc.

How would you recommend someone like me to build something that will keep my learning curve steep as well Useful. How do you get ideas like kdash?
I'm work as a team lead at a startup but I think I need to learn lot of things to get that confidence & kick the imposter out. What would you suggest??

Collapse
 
deepu105 profile image
Deepu K Sasidharan • Edited

Well mostly its just trying out. There is no formula. If you think you can build something, do it regardless of, if its already out there or not. So at the very least you will learn and at the very best you will have something useful for others. Imo, what matters is your determination and attempt. Just pick the domain that is most comfortable to you or just blatantly copy some open source project you will still learn.

You can also just contribute to an OSS project already out there are still learn a lot from that community, for example at JHipster, we thrive on contributors and as a contributor you will learn a lot as well.

We all have that imposter in us. No one knows everything. I google for almost everything. I copy good coding practices from others when I encounter it. I adapt solutions from stack overflow all the time. Nothing to be ashamed of. Even the best of developers do all these.

Collapse
 
klvenky profile image
Venkatesh KL

Thanks a lot

Thread Thread
 
deepu105 profile image
Deepu K Sasidharan

See my updated answer above

Collapse
 
klvenky profile image
Venkatesh KL

Great words. Thanks for the advice

Collapse
 
gorlph profile image
Gorlph

It's good to see a great programmer from non com-sci fields. This particular article and many comments of yours capture the essence of being a great programmer/developer - be pragmatic, fundamentals will take anybody a long way, right tool for the right job.

Honestly, my first impression on you when I saw just your profile is kinda meh, "Another evangelist bs spewer". But I am dead wrong! You're great, not filled to the brim with ego, really know things or really quick to correct misunderstanding. Really hit the nail on the head.

Great article, already shared it to my junior colleagues!

Collapse
 
deepu105 profile image
Deepu K Sasidharan

Thanks for the kind words. Appreciate it.