Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am just a graduate from India and I have knowledge of Java, JSP and Servlets, Android application development and some iOS development.

I do not have a background in C or C++ and a little weak background in Data Structures and Algorithms. I want to know whether I can make a successful career in the IT industry without knowledge of C or C++ but having a strong grasp on Java and Python (which is what I am thinking of learning next).

As for the Data Structures and Algorithms part I am planning to study them again with implementation in Java as I am not fluent in C or C++. Can I go good in future if I know Data Structures through Java?

share|improve this question

marked as duplicate by Karl Bielefeldt, Martijn Pieters, gnat, thorsten müller, Robert Harvey Mar 26 '13 at 15:27

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

FWIW: I've built a career on Python, with very little Java or C involvement, taught myself C++ at some point but never used it in anger. That has worked for 15+ years so far. – Martijn Pieters Mar 26 '13 at 14:42
You can get a job with a recurring paycheck without C/C++, if that is what you mean by successful. To be honest, I learned C during my first summer break in college. The K&R book is really easy and fun to read. It good to understand how things are mapped in memory at a low level. Understanding things like "pass by reference" become a non-issue. It will help you appreciate data structures a lot more too. You don't need to know how to program massive apps in C, you just need to know enough to grasp the concepts. – Travis Parks Mar 26 '13 at 14:44
IT is much larger than programmers. Most never even so much look at doing more than tweaking a shell script. – user40980 Mar 26 '13 at 15:04
Don't limit yourself to any programming language, learn your CS concepts, and you will go far. C++ is a great native language because learning C++ forces you to learn the way OOP actually works, and also requires mastering pointers. Once you learn C++, it is easy to map that knowledge other to other c-style oop languages and frameworks. – Jonathan Henson Mar 26 '13 at 17:27

There are many Java jobs out there. Being weak on Data Structures and Algorithms is a bigger issue than not being familiar with a specific language, though. Don't worry about learning new languages until you understand the uses and implementations of data structures and algorithms. Opportunities to learn new languages will come to you if you've got a solid foundation in the principles of Computer Science.

share|improve this answer
@David0 Thanks alot for your suggestion ... – Simran Preet Singh Narang Mar 26 '13 at 14:48

I have been a "web" programmer for many years now and have not touched C or C++ in over 10 years.

That said, the algorithms experience would be very valuable. Look for a book on the subject that is not specific to language and you should be OK. I find that a lot of interviewers will ask questions about algorithms and specifically things like sorting, reversing arrays and the such that you wouldn't even think of doing "the hard way" in java, so you need to be able to do pseudo code implementations of those and know the big O notation for each kind of solution.

As for everyday usage, your milage will vary based on what you are doing. You may write a lot of code and not really dive into anything that requires and in depth understanding algorithms, but occasionally you will.

share|improve this answer

In corporate IT, in my experience generally about 1 in 5 IT personnel are programmers of some sort. Of those who have the "programmer"/"developer" label, most are LOB (Line of Business) programmers. They generally work with business objects, workflows, etc - relatively high-level technical abstractions - and can still be extremely effective, valuable to the business, and well-compensated.

So it's more important to understand what kinds of activities make you happy. Do you like spending your time being highly technical and solving difficult technical problems? Or do you prefer to spend your time understanding business processes and building applications that fulfill them? Both are valuable and rewarding.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.