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

Is Computer Science for me?

  1. Oct 27, 2007 #1

    I'm now in 12th grade and studying Physics, Chemistry, Math and Statistics. I'm in a dilemma over whether a B. Tech in computer science will be right for me. My other interest is physics, so if I do study comp, I'll like to work in the theoretical part, like AI and machine learning etc. How can I find out if I have the aptitude for this?

    In case it helps, I like C++ but hate Java.

    My reaction to math is mixed. While I love the intricate and beautiful logical structures of advanced theoretical math, I don't have much aptitude for problem solving, particularly problems which involve convoluted manipulations.

    Thanks for your help.

  2. jcsd
  3. Oct 27, 2007 #2
    Either way, if you go into computer science or physics your going to have the take the same math classes at the start, and the same physics.

    So if you have the aptitude to major in computer science, you'll also have the aptitude to major in Physics and vice versa, both problem solving intensive majors.

    For instance your going to take:
    Calc 1-3
    Diff EQ
    Linear Algebra
    if your a computer science you'll also take: Discrete Math
    Physics: Mechanics
    physics: E&M
    At my school I also took Quantum Physics and Waves.

    Depending on your school, some schools focus on pure Java, some focus on pure C/C++. Mine was C/C++ but a lot schools are converting to Java because well, Java owns C++. :P

    After programming awhile in both (C++ and Java), and working in the industry for 8 months I can see why so many "shops" are converting to Java. I use to be a huge C++ fan, always making fun of Java people and telling them their code is so slow, but really it isn't. I was just stubborn to realize its potential.

    Also depending on your school you'll take some computer engineering classes that focus on very low level programming such as assembly, and VHDL/Verilog programming where you can build a processors, memory, etc.

    If your a good problem solver, you'll be fine in either major.

    PS: I'm a Computer Science major (3 semesters left)

    This coming spring semester I'll be taking A.I. so I can't comment on that yet but it sounds exciting.

    I never had a love for math, I was always good at it, but when I saw a math class I didn't get the OH BOY feeling, but when I see an interesting computer science class I get excited.
    Last edited: Oct 27, 2007
  4. Oct 27, 2007 #3
    If you do go into computer science you will need to get over the idea that you are a C++ programmer or a C++ fan, you need to learn to code in what people tell you. Sure you could hold out for jobs, classes, or research positions that only cater to to the language you feel like using, but you may be passed up on the way for other students.
    Besides how can anyone Hate Java?
  5. Oct 27, 2007 #4


    User Avatar
    Gold Member

    Are you serious :rofl:
  6. Oct 27, 2007 #5
    Java is like programming in English and you can create very robust code with little effort.

    I don't see how anyone can hate it. What don't you like about it? For people who never caught onto the whole "object oriented" concept then I can see why you would hate java.

    So many times I look at a C++ program that looks like crap. They didn't use classes at all, rather they coded it like a C style program. The great part of Java is, if you don't know OOP you won't survive, you have no choice but to code in OO which makes for cleaner and more maintainable code.

    But mgiddy is right, as a CS, you code in whatever gets the job done.

    My last project I had to code in a language called Rexx. One of the ugliest languages I've ever seen, but it works well on mainframes so thats what I had to use.
    Last edited: Oct 27, 2007
  7. Oct 27, 2007 #6


    User Avatar

    Java is very context sensitive man...its annoying...I couldn't even manage Hello World...
    it kept finding error after error..and if I change a letter like 2 more errors wud come up ...
    Why its popular .... I have no idea.

    Ruby is a great language..its C++ short hand..not worth learning cos its not mainstream :(
  8. Oct 27, 2007 #7


    User Avatar

    Coding Java is like Taking an English Exam that you need 100% marks for .
    Didn't like it... I hope for my course I just have C family, thats a nice stack of languages ...although Ruby is much neater and faster to write.

    Rexx? From the name it sounds Horrible... I can imagine lol.

    How about you tell me why it works well on Mainframes? I'm interested now...
  9. Oct 27, 2007 #8


    User Avatar

    Hard to answer, I just took computing, because I find it more interesting than the other Science courses .
    Computing is Physics and Pure Maths (discrete - AI & CS and Engineering Maths - CE).
    if you want I'll upload a teaser from my A level notes ....
    Programming is not only languages, you have to learn how the CPu works specially if you gonna code Assembly.
    And if you're gonna code in 3rd level ( c java wateve), you still need to learn data structures..which is in my opinion bleh ..which is why I'm choosing Computer engineering.
    iF you'd like I'd upload the Modules you'd have to cover in my university ...
    thers like a description ..and all.
    You can always download the recommended books listed from www.mininova.org

    I mean the only reason I didn't choose Physics to take as a degree, is because I hate lab experiments..and love computers..GL
  10. Oct 27, 2007 #9

    Any language you code in, you have to be 100% correct in the syntax. C isn't any different, if you screw up syntax, forget a ; the program isn't going to run.

    Before reading, I currently am co-oping with IBM, so they are of course going to enforce their own language in development of internal applications. Just like Microsoft would want something done in C# rather than Java.

    REXX (REstructured eXtended eXecutor) is an interpreted computer programming language which was developed at IBM. It is a structured high-level programming language which was designed to be both easy to learn and easy to read. Both commercial and open source interpreters for REXX are available on a wide range of computing platforms, and compilers are available for IBM mainframes.

    Over the years IBM included REXX in almost all of its operating systems (VM/CMS, VM/GCS, MVS TSO/E, AS/400, VSE/ESA, AIX, CICS/ESA, PC-DOS, and OS/2), and has made versions available for Novell NetWare, Windows, Java, and Linux.

    So if you encounter an IBM mainframe and you can code in Rexx you can start programming asap. Its kind of like Windows and Internet explorer.

    I'm guessing you've never used a mainframe or have seen the z/OS environment but you usually don't create stand alone applications for a mainframe.

    Usually elopement of mainframe applications are just "glue" programs, or macros. Thats what Rexx's main purposes is for but you can if you want make a full blown out GUI if you wanted with Rexx but I wouldn't recommend it.

    Rexx was specifically designed to be a general-purpose scripting and extension ("macro" or "glue") language. That is, it lets users easily tailor and enhance advanced software systems such as the z/OS mainframe.

    Frankly, If i had the choice, I would rather code in Java on the mainframe. The problem is here I found out is customers have to pay an extra cost to get the Java JVM pre-loaded onto the mainframe.

    So not many company's are wanting to shell out even more money to get a mainframe pre-loaded with a java JVM.
  11. Oct 27, 2007 #10


    User Avatar
    Gold Member

    I agreed with everything mgiddy said, its just the java part that made it comical (hence the smiley). Its comments like those that start never ending flame wars. I resisted the temptation to critically respond because of flame wars and will continue to do so.
  12. Oct 27, 2007 #11
    thats true, flame wars are informative sometimes though. Some people have a misconception of a language just because they heard some other guy talk smack about it.
  13. Oct 27, 2007 #12


    User Avatar
    Gold Member

    Agreed. I however dont fall into that category, though. I've spent approx. a year in the Java world and can code fairly competently. I don't regret learning it; it was time well spent. For my purposes, C/C++ along with Perl is just simply more efficient. There is a thread in the Programming forums where, IIRC, I hinted why I'm not such a big java fan.
  14. Oct 27, 2007 #13
    I agree what your saying, whatever language fits best for you is what you should use.

    The above was just regarding if you were in a company, and they want loom91 to use Java rather than C++ he shouldn't be hesitant to not switch to java, but rather be open to many different languages and realize the pros and cons of each.
  15. Oct 28, 2007 #14
    I apologize for beginning a flame war. Though I almost saw it coming I just couldn't resist that comment. There's a warm spot in my heart for Java. But the main message was clear I thought, and everyone seems to have agreed.
    To be a little back on subject to the OP though, In regards to "Whether Computer Science is for You?"
    Thats a tough question for us to answer. There's almost no harm in trying it out though. If its something you like then go for it, and if doesn't seem to be working out, you can just about always switch your major. With Comp Sci you'll take some classes that will over lap for other Math/Sci/Eng majors, so you won't be ridiculously far behind if you end up switching.
    Maybe you will find out you like something even more specific then the general Comp Sci major. You could try out Comp Eng, or Software Eng. There's a plethora of options in college level studies, and the Computer Science field is broad, encompassing many different topics. Perhaps you'll find you like Operating Systems design, or Game Design if you are looking more towards AI.
    If you don't get the same feeling from Math as you do from Computer classes thats no problem as long as you can be comfortable using the math as a tool for your programs.
    I hope that helps out a bit
  16. Oct 28, 2007 #15


    User Avatar

    No I have never used a mainframe system.
    Macros? aren't those scripts that are written before and during translation it writes the scripts where ever it was called, making translation time more, but execution of the program faster? I have never heard of a Macro language though lol.

    Can't you crack the java JVM and load it in yourself? if it would make your life simpler why not?

    This is all very interesting thank you :).
  17. Oct 28, 2007 #16


    User Avatar

    I think the main issue with me is I had trouble compiling a Hello World Java program..
    on the other hand with C# I managed to write some basic programs..

    Its weird, even with snippets from the internet the Java jdk on Dos was giving me errors..
  18. Aug 21, 2008 #17
    I spent ten tears programming in Smalltalk, and some more in Object Pascal. So I "caught on" to objects. I was forced to program in Java (in fact to develop a whole suite of programs for a second year course.) I hate Java. If you want to have fun, use a programming language with a transparent run/debug/compile cycle and fully integrated, robust, IDE with transparently accessible, self-documenting, source code for that IDE, and transparent r/d/c connection from that IDE to your source code:


    P.S. don't ask me what I'm talking about. Just try it and you will see.
  19. Aug 21, 2008 #18
    Hahaha! I thought I was the only one!

    I didn't know that (at least with the compiler I was using) you have to call your classes whatever your file's name is. It seems so arbitrary.
  20. Aug 21, 2008 #19
    It's funny; this is a thread about whether the kid will like computer science and here everyone's talking about programming. Yuck.

    If you want to be a programmer, look at software engineering degrees. You'll know CS is right for you if your heart skips a beat when you see things like "discrete math" and "formal logic."
  21. Aug 22, 2008 #20
    The kid should NEVER be around MESSAGE FORUMS to ask for his future.
    He should also learn this is a business

    Hey, if you come back and read this, you then will know I knew you were here!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook