I want to join computer industry as a programmer . Is it necessary for me to have skills for more than one programming language to be a successful professional ?
by skills I mean the the complete in and out of the language . Because currently I am learning complete C(including the hardware interaction part) and I feel like if other languages are going to be this deep than it would take me my whole life to learn them . #computer #software #programming #programmer #development
6 answers
Richie’s Answer
The short answer is yes.
A programming language is a tool, and you will need to learn to use many different tools so that you can use appropriate one for the given job. However, it turns out that there are many things that you will learn about computers that are independent of the programming languages. For example, most programming languages will have a concept of a function, or an "if" statement. The concepts carry from one language to the next.
Learning C to start with is pretty good, as it will give you better understanding of how the computer works. This knowledge will remain, regardless of what programming language you use. Learning to use other languages gives you a different way to thing of solving problems. Some things are that complicated in C, might be real easy in Python.
In my work I have written code in: C, C++, Java, Python, Perl, Javascript, Eiffel, PASCAL, Modula-2, PHP, several assemblers etc.
What you will find as you learn different languages, you will be able to pick another one real quick.
Hope this helps!
Yuval’s Answer
I think it's actually the other way around. It's not that you need to learn more than one language in order to become a successful programmer. Instead, in the process of becoming a successful programmer, you will have learned more than one language.
I would say that if you're starting off, focus on one language to be your "native tongue." It sounds like you've already done this with C, which is great! Imho, the skills required to use C effectively (things like recursion and pointers) are a fantastic starting block for any language, even languages that don't resemble C very much!
The one suggestion I would make is that you also learn an object-oriented language like Java, C++ or Python (C++ is notorious for being extremely complex, though). Between the fundamentals that C teaches you, and the object-oriented concepts of this second language, you'll have a good handle on the vast majority of programming concepts that are in practical use. (There's also functional programming, but it's not used much in the field, at least not yet.)
But then, any time a project (or task within a project) comes up that requires some other language, don't say "I can't work on that because I don't know the language." Use that as excuse to learn the language, and then start working on that project. (I've found that one of the most frustrating things about learning a new language is the problem of "I just read how it works, but I don't have a cool idea for a project to try it out on." Well, this approach solves that problem, since the very project that got you to learn the language will also be your first real project.)
For instance, let's say you're working on some application in C, and it has a web UI. That web UI probably has a lot of Javascript in it. Every bug report or small feature request for that UI represents an opportunity for you to learn Javascript; take it.
When you do that, you don't need to instantly know everything about the new language -- just enough to tackle the task at hand. I've found that a weekend with a tutorial/text book is often enough, and sometimes it's even quicker. It's helpful if you can work with a partner who's already experienced in that language, as each language has its own set of "best practices" (for instance, bitmasks in Java are almost always done with enums, which are full-blown classes -- not with ints and bitwise operations).
Over time, all of this learning -- bit by bit at a time -- really adds up. You'll be a polyglot before you know it!
Tiffany Clark, CUA
Tiffany’s Answer
First of all, most programmers don't know "the complete in and out" of most languages. We get close, but there are usually overlapping concepts that help us to learn other languages. This is what documentation is for - to help you as you go along to find out what methods and properties are available to you when it comes time to code something that requires functionality you haven't worked with yet.
So you may end up learning more than one language, but you wont ever have everything about that language memorized. You may just know what that language is good for and the general syntax of the language to get you started.
Monty’s Answer
I would spend some time on depth before breadth. Learn one language well and be able to deal with it at a low level. With that depth of knowledge it will be easier to pick up other languages. In general I have found that most of the senior programmers I have worked with are really good in one language or type of programming (UI, server side, network etc.) and "know" several others. In most cases they can pick up a new language and be productive quickly.
Aaron’s Answer
The simple answer is yes. There are very few purist coders. Languages change more often than most coders would like, however, the fundamentals of coding cross the boundaries of the syntacs of the various languages. Over my long career in Software development I have learned more than a dozen languages and didn't find what I really liked doing until later in my career.
Jim’s Answer
I fully agree w Yuval. Take the opportunity to "lazy load" new skills. But that will be much easier if you have a solid foundation to draw upon - C or C++ will certainly get you there, but try a few higher level things too: Ruby on Rails, Java, Python, Go, Swift, etc.
Go deep enough a few times to be to be comfortable with both consuming AND producing frameworks. Find an open source project that is relevant to what you do and hop on board.
If you want to be successful in this industry, you will need to both love and be good at learning new technologies. If you were going to do this anyway in your spare time, all the better, because that's the way it will work out...
best of luck to you-