Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Exactly what does someone with a CS degree have that someone w/out one may not?

  1. Jan 21, 2012 #1
    I know this is probably one of the more asked questions on just about any forum dealing with technology or science, but I'm tweaking it a bit. I can learn a program easily. It just comes to me like math (most math lol). However, at times, one of two things usually trip me up:

    1. I over complicate the HELL out of it.... or

    2. I forget the simple things (which always kills me in math class. I end up spending far too long on one problem because I forget something I learned from waaaay back in my 10th grade year.)

    Point being, I have for the longest time, been horrified at the daunting task of learning anything at all about computers. When most of my friends were building web pages and custom desktops, and using hip stuff like Unix/Linux, I was in the dark. I'm 22 and am just now stepping up to the plate. However, this is made easier because, for some reason, everything just started clicking. Blame it on neurological development. Blame it on some of the electronics classes I took at the community college a year or so back. However, most things about computers seems easy. Apparently it all boils down to programming.

    But, as is consistent with my nature, I don't believe that to be wickedly smart in terms of computers, one can just get away with knowing how to write "code". I'm an aspiring engineer for crying out loud. I want to know damn near everything that goes on underneath. For example, most things seem to be programmed using a form of C or C++. Both of those languages must be written in a compiler. Okay. How is the compiler made? Is it like one of those Russian dolls (hope I nail this analogy) where it just keeps getting smaller?

    Better yet, let's move to hardware. Hardware is some complex stuff. Especially things like frickin CPUs. Where is the line between hardware and software, who draws it, and who eventually designs that "line".

    I could go on and on ad nauseum. I'm not necessarily seeking a full out textbook (however, a reference to where I can learn this stuff would be nice). However, I am wondering if programming is actually all anyone needs to know to get good at doing stuff with computers. I've heard of so many people landing wicked cool IT jobs and the like without spending more than maybe a semester or two in college. Of course they probably learned programming. But, how does one learn all the insane complexities underneath on their own without the benefit of going to a top tier engineering institute where that person has access to expensive labs? Does anyone seeking to become a seasoned computer expert even need to know all the godlike complexities that make up damn near everything that even makes programming itself possible and could someone learn these things without the assistance of a college degree?

    Sorry to make this post so lengthy. I just had to rant...
  2. jcsd
  3. Jan 21, 2012 #2


    Staff: Mentor

    Cs willm teach you best practices for coding algorithms so you don't go and reinvent it, or the best way to organize your data via tree or list ... And the reason why you do it that way.

    There's a lot of others things you'll learn that become useful as you design a system of applications that use databases or web services or high performance computing.

    I've seen the differences in my team where the cs people solved problems in an organized and understandable manner and the non cs people put together some very unique solutions to problems. A non cs person might use a lot of coordinated arrays whereas the cs person might use a queue. Both work but the cs solution might be more maintainable since its been documented in many books on the subject.
  4. Jan 21, 2012 #3


    User Avatar
    Homework Helper

    Depending on the quality of the school and the curriculum, a lot of hands on experience and exposure to a wide varity of programming and basic circutry logic. The degree itself is not as important as the exposure and learning experience a CS degree offfers.

    The main issue is getting some type of on hands experience with various types of programming. I'm not sure that all CS degress do a lot of work with electronic circuitry other than basic logic. Generally some type of electrical engineering degree with a sub major focusing on computers will get into hardware design plus some amount of programming. It all depends on the school and the curriculum for the degree.

    It's also possible to get hands on experience with self study, such as taking or monitoring some classes in the areas of CS you think you might be interested in. Then there's the issue of what type of programming you plan to get into, especially if it's somewhat niche market. For examples of common and niche market areas: web site development. Server / client side applications. Business type programming on mainframes using Cobol and HLASM (IBM high level assembler, previously there was ALC - assembly language compiler and the simpler BAL - basic assembly language). Encyption schemes such as AES. Multi-tasking or multi-threading operating systems and applications. Scientific work in a specific field. Embedded applications in consumer devices. Analog applications such as recording of data on magnetic media, or servo algorithms.
    Last edited: Jan 21, 2012
  5. Jan 21, 2012 #4
    Right now, I'm trying to get a head start on learning programming for my next academic step after my associates (engineering degree, most likely electrical or biomedical). Also, I think I would find it personally rewarding to learn a language or two for merely "recreational" uses such as developing simple apps for Android, etc. I'm about to buy a Galaxy tab too, so it would be a rather good feeling to personalize it with some stuff that I create. However, in regards to my career choice, if I take the road of a professional software developer (researcher would be so cool too), then I would rather work on the foundation level, building or tweaking system software.
  6. Jan 21, 2012 #5
    However, it seems I have quite a bumpy road ahead of me. In terms of software development, I would have to rate myself as practically clueless.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook