Should I pursue a degree in computer science for software engineering?

Am I a bad computer science student by not being good with Systems programming?

  • I am a computer science student pursuing a graduate program at a reputed university in the States. I completed my undergraduate degree in Electronics and Communication Engineering. I took a liking to Software Engineering, as a result of working at a start-up following which I decided to pursue a masters in Computer Science. But I realize now, that I cannot code in C for nuts, and kernel level programming seems terrorizing. Am I deeply under-equipped for this degree, or can I manage to follow my passion to build quality software by working with Java,Python and C++, without worrying too much about C?

  • Answer:

    You are not a bad computer science student, just an under equipped one. If you look at the timeline of Computer Science development, we see the following events occurred in the same chronological order. Development of Turing machine Development of the microprocessor Development of higher level languages starting with assembly, C , etc Alan Turing did not know C or anything about hyper threading, but he still is one of the most respected people in Computer Science. The computer is far more complex than what it was back in the day when they used devices like punch cards. In today's age and time, understanding systems and C would help you understanding and debug some very tricky problems of user space. It also helps you anticipate more error conditions as in systems, small pieces of running code have twice or thrice the amount of code for error checking. The code you write in Javascript/Python as a result will also be more robust and be able to deal with numerous error conditions cleanly. Today we have reached a level of abstraction where we can write code without understanding C or systems level stuff. A minimal understanding of how C and Systems work won't hurt. It will make clear why we do a lot of things and would help us debug better. Understanding basic memory allocation will make you realize the importance of garbage collection in Python. To sum up, the computing system has become far more complex than it was in the 1950's. We need to be acquainted with the WHY of things to be a better computer programmer. Understanding systems to takes you the lowest level of WHY in the software space.

Tushar Dadlani at Quora Visit the source

Was this solution helpful to you?

Other answers

Everyone has their own niche. Knowing how to program in C and how to modify the Linux kernel is nice, but this knowledge doesn't really help you if you're doing back-end web development. Understand your own strengths and weaknesses and tailor your job to emphasize your strengths. Obviously, someone at your company must deal with the low-level details, but it will not be you!

Dan Zhang

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.