CSE Simplified EP02 - Why C++ & Java
There are a lot of programming languages to pick from. A CSE student often gets confused where to start. It is no smaller than a mystery when it comes to taking this decision.
So, here we are with yet another episode of our series CSE Simplified.
Following is the transcript of the episode. You may like to watch the video
The purpose is to give you a big and clear perspective as to which language you should pick and why.
Let's dive in!
You can learn whichever language you want, it's up to you but if you want to hit 2 marks with just one stone then you must read this post til the end.
If you want to understand CSE, which you should! then you have to understand System Level language or that language which is very Close to the System.
C/C++ are close to the system. And you should start with them only.
Languages other than C/C++ are NOT going to help in understanding OS, COD, CN, CD etc.
This is not just my saying. But the very B.Tech syllabus of yours says the same. It may differ from college to college but still,
We have C in 1st year ; C++, OOPS then Python in 2nd year ; Java, AI and Advanced Java in 3rd year ; Then comes Machine Learning in 4th year.
Don't break this sequence because it will lead you in a very confused state.
See, once you have C/C++ in your syllabus, you have to cover it. Then why not learn it open hearted? Of course, you are not going to use them to build real world applications unless you are working on hardware. But they will help you understand the basics of programming in the best possible way.
Tell me one thing : Don't you want to be best in your field? Best in CSE? Best in programming? If yes, then don't skip C/C++. For sure they are deep, it requires practice and patience to be good at. But once you cross the bridge, getting started with any other language will just take a few days.
And above all, your many of the subjects that depend on C/C++ will pass on very smoothly. Such subjects include Computer Graphics, DSA, Design and Analysis of Algorithms, Operating systems where you need to write scheduling algorithms. Even in the labs, don't copy paste code and think that you are doing the right thing. That is clearly cheating with yourself. Learn C/C++ and try writing the program on your own.
So, by learning C++ will help you understand these lab subjects and feel the depth and meaning of these subjects.
Don't make excuses like we are not taught in class or C/C++ is not my cup of tea. We have listed several free resources at the end from which you can learn programming.
Many people stay away from C/C++ due to pointers. Well, they are not that difficult. It's just that you didn't get the right tutor. Learn from the resources provided below.
Also, C++ is the most frequently used language for Competitive Programming due it's tremendous speed.
To build real world applications i.e. development, you will need other languages. We prefer Java because by learning Java you will have several benefits.
By learning Java,
Firstly, It will be easy for you to cover Java and Advanced Java subjects of your B.Tech.
Secondly, You can easily start Android App Development.
And here are the benefits of choosing Android app development :
- Development gives you SE experience which you are going to feel on a big level in the Industry or your own Startups.
- You will be able to easily understand SE subjects of B.Tech like SE, SPM, OOAD and even it's lab.
- You can freelance so you will be your own Boss
- It will help you to buy your Cup of tea 😉 i.e. you will start earning. Freelancing, internships and digitalising nearby businesses are great places to start earning.
- No need to worry about your minor or major projects. Because by learning Android, you will be building several applications
- You can become Real world problem solver. Problems you solve by Competitive Programming won't impact people. But by learning development you will have the power to impact lives by building solutions.
- You will learn teamwork by developing apps
- Startup Skills will increase
As a conclusion, a good understanding of Java , C++ and Android will reduce around 30 to 40% of the B.Tech burden. Also it will help you to increase your GPA.
If you choose another path like Web development, ML, Redhat, ethical hacking etc.,
Then you have to do all these things along with your B.Tech sacrificing CP or Core subjects i.e. It will make your journey harder.
Why not choose C++ and Java which overlaps with B.Tech?
When you ask anyone else about which language to pick, they will have their own list of pros and cons. These are our views. Brainstorm and Choose your language wisely.
And of course do whatever you want with an open heart!
Free Learning Resources
For C :-
For C++ :-
For Java :-