Is Computer Science a Good Fit for Me?

In summary: I could do it forever...I have an aptitude for it.In summary, the speaker is a 12th grade student studying Physics, Chemistry, Math, and Statistics. They are considering pursuing a B.Tech in computer science but are unsure if it is the right path for them. They are interested in the theoretical aspects of computer science, specifically AI and machine learning, and are trying to determine if they have the aptitude for this field. They mention liking C++ but disliking Java and having a mixed reaction to math. They express a strong interest and aptitude for computing.
  • #1
loom91
404
0
Hi,

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.

Molu
 
Physics news on Phys.org
  • #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:
  • #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?
 
  • #4
mgiddy911 said:
Besides how can anyone Hate Java?

Are you serious :smile:
 
  • #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 that's what I had to use.
 
Last edited:
  • #6
mgiddy911 said:
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?
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 :(
 
  • #7
mr_coffee said:
Java is like programming in English and you can create very robust code with little effort.

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 that's what I had to use.

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, that's 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...
 
  • #8
loom91 said:
Hi,

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.

Molu
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 going to code Assembly.
And if you're going to 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.
Erm
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
 
  • #9
PhY said:
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, that's 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...
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 let's 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.
 
  • #10
mr_coffee said:
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 that's what I had to use.

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.
 
  • #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.
 
  • #12
Agreed. I however don't 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.
 
  • #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.
 
  • #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 that's 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
 
  • #15
mr_coffee said:
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 let's 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.

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 :).
 
  • #16
mr_coffee said:
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.

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..
 
  • #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:

http://www.squeakbyexample.org/

P.S. don't ask me what I'm talking about. Just try it and you will see.
 
  • #18
PhY said:
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..

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.
 
  • #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."
 
  • #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!
 

FAQ: Is Computer Science a Good Fit for Me?

1. What is computer science?

Computer science is the study of computers and computational systems, including their principles, their hardware and software designs, their applications, and their impact on society. It involves both theoretical and practical aspects, such as programming languages, data structures, algorithms, and computer architecture.

2. Is computer science a good career choice?

Yes, computer science is a rapidly growing and in-demand field with a wide range of career opportunities. It offers high salaries, job security, and opportunities for growth and advancement. With the increasing use of technology in almost every industry, the demand for computer science professionals is expected to continue to rise.

3. What skills do I need for computer science?

To be successful in computer science, you will need a strong foundation in mathematics, critical thinking, problem-solving, and attention to detail. You should also have a passion for technology and a willingness to constantly learn and adapt to new developments in the field. Additionally, strong communication and teamwork skills are important for working in a collaborative environment.

4. What can I do with a degree in computer science?

A degree in computer science can open up a wide range of career options in various industries such as technology, finance, healthcare, entertainment, and more. Some common job titles for computer science graduates include software engineer, computer programmer, data scientist, systems analyst, and web developer.

5. Do I need to have prior coding experience to study computer science?

No, you do not need to have prior coding experience to study computer science. However, having some basic knowledge of programming languages can be helpful. Many computer science programs offer introductory courses to teach coding from the ground up, so anyone with a strong interest in technology can pursue a degree in this field.

Back
Top