Originally published at deepu.tech.
A polyglot developer is someone who can work with multiple languages with ease. In its strict interpretation, ...
For further actions, you may consider blocking this person and/or reporting abuse
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 asC#.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 thanJava or C#
?Since You have learned
Java , Go , Python , Rust
, which language has made your life easier and ship fast ?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
Thanks 😄, Appreciate for guiding and taking time to write :)
you are welcome and I'm happy to help
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
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 ?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.
Adding some SO posts for readers:
(Why) Should I learn a new programming language?
Why learn more programming languages?
The benefits and advantages of being a jack of all trades programmer?
Hope this helps. 😄
Thanks. Appreciate it
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??
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.
Thanks a lot
See my updated answer above
Great words. Thanks for the advice
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!
Thanks for the kind words. Appreciate it.