Should I study computer science, computer engineering, or software engineering at the undergraduate level?
Programming is a tool, not a subject. Almost all the science and engineering fields, heck even the social sciences field will benefit from some programming ability. Think of computers as the next-gen pocket calculators.
Much of computer science is very ‘back-end’. The sciences that go into building, say, a website include:
Databases (how to store and retrieve data fast?)
Networks (how do you link up computers so that they work best? How do you coordinate computers / sensors?)
Cryptography (how do you keep information secure?)
Language design, software verification, compiler construction (why do we choose one language over another? Can we verify that the programs do what we intend?)
Algorithms (we want to compute something. How do we do it fast and with limited memory?)
UI design (how do we optimize human-computer interaction?)
On the other hand, if you simply love programming because of what you can do, you can consider a field like Engineering (just about any will do), where instead you will deal less with the above theories and go straight into solving more direct problems:
How do we get robots to ‘understand’ the world around them, through their sensors?
Building electronic devices — what properties of electric circuits must we be aware of? How will they interact with the computer?
Building sensors — how do I get from the raw data in an MRI machine / CAT machine into a 3D-image?
Building controllers — how do I build driverless vehicles? Fly-by-wire systems? How should my acceleration respond to the wind? How should my fuel injection rate respond to environmental conditions?
Building structures — how do we ensure that a building doesn’t collapse? How does it respond to oscillation? To stresses? To imperfections? How do we know if the ground will / will not move?
Designing processes — how do we pipe chemicals through a plant while maximizing yields, minimizing costs and avoiding hazards?
Genetics — from the genome how do we find genes that cause / resist disease? Obviously we are not going to do this by hand!
Logistics — how should we manage a complex supply chain to minimize delays?
Economics — I have a history of price movements in an auction market (e.g. electricity market). Can I find evidence of market players abusing their market power? Are they colluding?
Physics: From data collected from the LHC, find proof of the Higgs boson
All of the above cannot be done without computation. To compute, you need programmers, and to do that effectively, they need an understanding of the algorithms that try to solve the problem at hand. However if programmers don’t have a “business-case”, i.e. a use-case for their skills, or knowledge in the domain of the problem they are trying to solve, be it Physics, Mathematics, Chemistry etc., they will be jobless too!
In short, don’t limit your options to CS/CE/SE. Reality is many interesting problems of today require multidisciplinary skills. Programming allows one to convert economic models, engineering problems, physics theories etc. to real numbers and theories.
Hence, look for something that catches your interest and do it. If you can program, good for you, but by the end of your undergraduate education you will realize that computer scientists / software engineers don’t have a monopoly on programming skills.
চাকরি বিজ্ঞপ্তি: যশোর আইটি পার্ক এ অবস্হিত কর্পোরেট অফিস এ বেশ কিছু দক্ষ আইটি support Engineer লাগবে। জরুরি ভিত্তিতে আমাদের সাথে যোগাযোগ কর। প্রোয়জনীয় দক্ষতা সমূহ: 1. At least CCNA routing and switching academy training. 2. Have strong knowledge about …
#চাকরির বিজ্ঞপ্তি: ঢাকার একটা বড় #ISP (Internet Service Provider) তে জরুরি ভিত্তিতে লোক নিয়োগ হবে। যে সকল স্টুডেন্টস আগ্রহী তাদের কে CV ইনবক্স করার। জন্য বলা হল। প্রোয়জনীয় দক্ষতা: 1. Have a good knowledge about MikroTik Router. 2. Strong knowledge …