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?
4
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.
1
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.
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.