Should I study Computer Engineering or Computer Science if I want to built my own software?
#computer #technology #computer-programming #computer-software #computer-engineering
7 answers
Neel’s Answer
Hi Shashank,
Thanks for your question regarding the different areas of technology that are available for one to study in college. Typically, computer-related majors have a split between studying software and studying hardware. Electrical Engineering leans more on the study of computer hardware, focusing on the design of computers and the more micro-level components that make computing possible. On the other hand, Computer Science leans more on the software end of things. When studying Computer Science, one learns about algorithms, data structures, and probability, amongst other things. Both hardware and software are needed when creating computational systems!
Computer Engineering is often referred as the perfect 50-50 between hardware and software. Cal Poly SLO has a wonderful program in Computer Engineering, which you can read about here. If your intention is to build your own software and not learn about how it interfaces with hardware in depth, Computer Science will most likely be your best bet. Something to be noted though, many Computer Science programs have specializations in systems programming (i.e. networking, operating systems, compilers, etc.) which gives you a deeper sense of how computer hardware works.
I hope this helps!
Bonnie’s Answer
I recommend you take Udacity’s online program. I took some of their free courses and then earn an Introduction to Programming Nanodegree and I am glad I did. It helped me decide which way to go next.
Bonnie recommends the following next steps:
Dinesh’s Answer
Hi Shashank,
There are a lot of different ways to become a software developer. Some examples: you can go to college for a computer Science degree, you can take online courses, you can learn to do it yourself by coming up with a project and trying to figure out how to implement it.
If you want to develop software, then you need to understand the entire process, not just the part where you write the code. The things that a software developer does when building new software are:
- Gain an understanding of the problem or opportunity to be addressed, as well as the way the client or users of the software want it to look,
- Design the software to solve the problem or address the opportunity,
- Implement that solution,
- Test and debug that solution,
- Deliver the solution to the client or users, and
- Support and maintain the software.
It used to be that people tried to do this in the order listed (waterfall), but it proved difficult if not impossible to do. In reality, you will likely have to return to an earlier step when requirements change, major problems with the current implementation are encountered, or you discover that your design was inadequate due to a less than complete understanding.
here is the difference between the :
What Is Computer Engineering?
Computer Engineering is the marriage of Computer Science and Electrical Engineering. It focuses on computing in all forms, from microprocessors to embedded computing devices to laptop and desktop systems to supercomputers. As such, it concerns the electrical engineering considerations of how microprocessors function, are designed, and are optimized; how data is communicated among electronic components; how integrated systems of electronic components are designed and how they operate to process instructions expressed in software; and how software is written, compiled, and optimized for specific hardware platforms. Therefore, computer engineers are electrical engineers who specialize in software design, hardware design, or systems design that integrates both.
What is Computer Science?
Computer Science is the study of how data and instructions are processed, stored, communicated by computing devices. A modern descendant of Applied Mathematics and Electrical Engineering, Computer Science deals with algorithms for processing data, the symbolic representation of data and instructions, the design of instruction languages for processing data, techniques for writing software that process data on a variety of computing platforms, protocols for communicating data reliably and securely across networks, the organization of data in databases of various types and scales, the emulation of human intelligence and learning through computer algorithms, statistical modeling of data in large databases to support inference of trends, and techniques for protecting the content and authenticity of data. Therefore, computer scientists are scientists and mathematicians who develop ways to process, interpret, store, communicate, and secure data.
Dinesh recommends the following next steps:
Steve’s Answer
If software is truly your focus, Computer Science would be the right choice. More specifically, some excellent computer science schools (such as the University of California, Irvine) offer degrees specifically in Software Engineering. This would be an even better choice for you, as Computer Science is now a very broad field so majoring in Software Engineering would align more closely with your interest.
Good luck!
Steve recommends the following next steps:
Abhijit’s Answer
Sridhar’s Answer
If building your software is the primary objective, then you dont need a formal, 3 or 4 years of C.E. or C.S. degree. Instead, as other mentors have suggested, you can take a couple of courses from coursera or udacity and that will do. However, if you are also going to look for a job with some of the biggest names, then a formal degree will surely help. Now, if you want to build your own software and plan to sell it, then the entrepreneurial skills come into play and that needs very different skills. So lot of it depends on your eventual plan and goal.
Good luck,
Sridhar