Jump to content

From bits to.. this..

Maximation

Since this turned into a discussion about degrees, here's my 2¢. For computers, there are three degrees that are 'common'.

 

Software Engineering

Computer Science

Computer Engineering

 

SE teaches you how to be a good programmer in a large corporate IT setting, but you'll learn little to nothing of how the hardware itself works, so some bugs you create will take you forever to understand. Also, performance problems will be confusing to you because you'll have little to no idea how the CPU itself works. This is not true of more seasoned SEs or SEs from earlier generations, I am speaking of if you got an SE degree *today*.

 

On the other end of the spectrum is CE. CE teaches you how to build the circuits that make up a CPU, or any circuit really. You'll do a lot of playing with breadboards and resistors and learn a LOT about electricity in general. A CE degree is a bit like a degree in biology, you could go on to become a doctor, and a specialist in a field, or you could start working in industry doing a lower level, less prestigious job. Unlike a doctor, a B.S. in CE will get you a good job, whereas a degree in biology stands a higher chance of not. A degree in CE would, for example, allow you to design the circuit board of a new cell phone, or create robots, or custom light bars. You will learn some programming as a CE, but it will be in a low level language (C without OS tie-ins, assembly, etc)

 

Finally, there is CS. This is the degree I personally hold. CS is a 50/50 mix of both. You learn some of the basics of high-level software design from the SE side, and you learn how the hardware works from a theoretical level on the CE side. I took to the C programming language personally, and find great joy in writing programs to automate work for myself, but I also have enough knowledge of the hardware that I can, for example, write a little I/O generation program that can flood a multi-million dollar storage array with I/O using a single core of a quad-core Xeon processor. When i say flood, I mean the disk access times are in the 1-.5 second range...on flash drives. Yes, I was using writes. I couldn't get that kind of load doing reads. The best part? Compiled the program is 4K on disk, and about 500K in memory.

 

Why was I able to do this? Because I understand how the CPU handles interrupt requests, I understand how the compiler expands loops, and under what conditions it can and cannot unroll loops. I understand what causes context switches, and when function calls will seriously impede program flow vs not.

 

There are many more degrees that are 'computer-y', but those three are sort of the bread-and-butter of the IT world.

 

edit: yes, they are EFDs. No, the writes aren't small. The smallest write is 4K, the largest is 128K. The writes are sequential. The total write rate was about 2.4GB/s (yes bytes, not bits). The array might have been able to do more, but I only had two 10G iSCSI links to the array, and 2.4GB/s is pretty much the bandwidth limit of 2x10Gb iSCSI links.

As someone who did Computer Engineering, I can tell you that I did a lot of Java programming in my course...

CE is just 50% EE and 50% CS. All the CS students I met HATED the hardware stuff, too. They thought what I was doing would be like their nightmare.

Link to comment
Share on other sites

Link to post
Share on other sites

Yea, I guess you're right. the CEs did learn java. I forgot that. Most of the CEs I know in industry use assembly/C though. *shrug* I must be gettin old.

Link to comment
Share on other sites

Link to post
Share on other sites

Yea, I guess you're right. the CEs did learn java. I forgot that. Most of the CEs I know in industry use assembly/C though. *shrug* I must be gettin old.

There were also a lot of IS (Information Systems) students who did quite a lot of programming with me, though I believe (or, rather, imagine) they mainly focussed on things like Databases and SQL...

Link to comment
Share on other sites

Link to post
Share on other sites

I was just about to post a link to this book, it's very good and gets into the very details or code. I've actually bought it myself around a month back and I'm reading it again to pickup some of the things that I might of missed while reading it for the first time.

 

It's very detailed and very organized, definitely worth reading if you're interested in the way computers function and what actually powers them. I believe that everyone would be able to read it without a hassle simply because it's pretty much a zero to hero book.

Link to comment
Share on other sites

Link to post
Share on other sites

Since this turned into a discussion about degrees, here's my 2¢. For computers, there are three degrees that are 'common'.

 

Software Engineering

Computer Science

Computer Engineering

 

SE teaches you how to be a good programmer in a large corporate IT setting, but you'll learn little to nothing of how the hardware itself works, so some bugs you create will take you forever to understand. Also, performance problems will be confusing to you because you'll have little to no idea how the CPU itself works. This is not true of more seasoned SEs or SEs from earlier generations, I am speaking of if you got an SE degree *today*.

 

On the other end of the spectrum is CE. CE teaches you how to build the circuits that make up a CPU, or any circuit really. You'll do a lot of playing with breadboards and resistors and learn a LOT about electricity in general. A CE degree is a bit like a degree in biology, you could go on to become a doctor, and a specialist in a field, or you could start working in industry doing a lower level, less prestigious job. Unlike a doctor, a B.S. in CE will get you a good job, whereas a degree in biology stands a higher chance of not. A degree in CE would, for example, allow you to design the circuit board of a new cell phone, or create robots, or custom light bars. You will learn some programming as a CE, but it will be in a low level language (C without OS tie-ins, assembly, etc)

 

Finally, there is CS. This is the degree I personally hold. CS is a 50/50 mix of both. You learn some of the basics of high-level software design from the SE side, and you learn how the hardware works from a theoretical level on the CE side. I took to the C programming language personally, and find great joy in writing programs to automate work for myself, but I also have enough knowledge of the hardware that I can, for example, write a little I/O generation program that can flood a multi-million dollar storage array with I/O using a single core of a quad-core Xeon processor. When i say flood, I mean the disk access times are in the 1-.5 second range...on flash drives. Yes, I was using writes. I couldn't get that kind of load doing reads. The best part? Compiled the program is 4K on disk, and about 500K in memory.

 

Why was I able to do this? Because I understand how the CPU handles interrupt requests, I understand how the compiler expands loops, and under what conditions it can and cannot unroll loops. I understand what causes context switches, and when function calls will seriously impede program flow vs not.

 

There are many more degrees that are 'computer-y', but those three are sort of the bread-and-butter of the IT world.

 

edit: yes, they are EFDs. No, the writes aren't small. The smallest write is 4K, the largest is 128K. The writes are sequential. The total write rate was about 2.4GB/s (yes bytes, not bits). The array might have been able to do more, but I only had two 10G iSCSI links to the array, and 2.4GB/s is pretty much the bandwidth limit of 2x10Gb iSCSI links.

 

Thank you for this great explanation. I am a freshman in college and after this I would like to do something like computer science. Very good.

However I do not live in the US. Do you know how these different kind of degrees work in Europe? Thank you.

Learning

Link to comment
Share on other sites

Link to post
Share on other sites

Thank you for this great explanation. I am a freshman in college and after this I would like to do something like computer science. Very good.

However I do not live in the US. Do you know how these different kind of degrees work in Europe? Thank you.

I do not know, sorry.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×