Am I intelligent enough for Computer Science major?

In summary, the conversation discusses the individual's feelings of insecurity about their intelligence and math abilities, particularly in relation to their chosen major of computer science. The individual has received conflicting opinions about their abilities from others and is seeking validation and advice. The conversation also includes suggestions for the individual to explore programming and to test their skills in certain areas, such as pointers and recursion, which can be predictors of success in computer science.
  • #1
annoyinggirl
218
10
I've always had an inferiority complex. In high school, i felt very insecure about my looks and now i feel very insecure about my intelligence.

When i was about 5 and learning to count, my parents told me that I sucked at math, so I am very insecure about my math ability, even though i know that I'm probably average at it.

I told my classmate that i am going to major in computer science, and she told me that I shouldn't because I got a C in calculus (in which I started slacking towards the end). I also have very poor pre cal foundation.

I have no clue about my abilities, but I'm guessing that I'm probably not very good at math or very intelligent. Now I feel very insecure about my ability to hack computer science major, ultimately fail in it. How much intelligence is needed to complete Computer Science major?

My SAT in math was 540 but i barely studied for it. Is that good enough for Computer Science major?
 
Physics news on Phys.org
  • #2
It is absolutely good enough. The kind of math that is more germane to CS is called Discrete Math and it is quite a bit different from Calculus. You may find it clicks with you.

You can do quite well in CS with a weak background in Calculus (although eventually you should shore up your Calculus abilities!)

The fact you're asking all these questions indicates you are thinking your life choices through very carefully. That is a clear mark of intelligence. Forgot what other people say based on their various preconceptions. You are only responsible to yourself.
 
  • Like
Likes 1 person
  • #3
It's impossible to judge properly from this forum.
You need to ask a college - let them tell you if you are good enough or not.
Most colleges will publish their entry requirements for various courses. Look and see.

Note: afaict the SAT score bodes well.
CompSci does not normally require calc, and any you may end up needing you can pick up when you need it.
 
  • Like
Likes 1 person
  • #4
analogdesign said:
It is absolutely good enough. The kind of math that is more germane to CS is called Discrete Math and it is quite a bit different from Calculus. You may find it clicks with you.

You can do quite well in CS with a weak background in Calculus (although eventually you should shore up your Calculus abilities!)

The fact you're asking all these questions indicates you are thinking your life choices through very carefully. That is a clear mark of intelligence. Forgot what other people say based on their various preconceptions. You are only responsible to yourself.

Oh thanks! :D Is calculus used in computer science major at all? Can you give some examples of situations of which calculus is used for programming/CS?
 
Last edited:
  • #5
Sure it's used. Any computer program dealing with dynamics (that is the movement of machines or anybody for that matter) will use calculus but often working out the equations is not the domain of the programmer. It depends a lot on your speciality. I know programmers who haven't cracked a math book in ages and others who are neck deep in the stuff. You have plenty of time to play to your strengths.
 
  • #6
I don't think it is your intelligence that you should be worried about, but rather your study habits. Twice in the OP you have stated that you've "slacked off" or were too lazy to study. This is something that absolutely needs to end. It might work in high school, but it won't fly in college at all.
 
  • #7
So we are considering "computer science" now? What about Econs at UCB or Davis? That has gone out of style? Or what about Math/Applied Math/Statistics? That's old news by now? What's next in your "shopping list"?

I can certainly understand the need to explore and find out about stuff. But at some point, I get the impression that this is like a kid in a candy store, where everything is fun and tasty, and there's a place that you think will cater to it. I get a sense of deja vu when I see someone going in several different directions and somehow seeking "validation" from other people for what he/she should do.

https://www.physicsforums.com/showpost.php?p=4577746&postcount=13

Zz.
 
  • #8
I would encourage you to just take a look your college's catalog and see what courses that CS majors are required to take. Then look up those courses in the catalog and read their descriptions. Do google searches of certain topics that catch your eye and read about them. Look up youtube videos of lectures. Look at the electives that CS majors are allowed to take and do the same with them. Then you can decide whether or not it seems interesting to you or if you are "intelligent" enough to do well in those types of classes.
 
  • #9
Have you ever programmed? What sorts of languages do you know? Why do you want to do computer science?

I would seriously suggest learning some C++ and code a few simple projects on your own before seriously considering computer science.
 
Last edited:
  • #10
Start learning programming ASAP, in C or C++, NOT Java or Python.

Then, when you get to the following two topics:

•pointers
•recursion

See how well you grasp them AFTER a sufficient amount of practice. Studies have shown that these two topics are good predictors of CS success. Don't be discouraged if you aren't comfortable with these topics right away--pointers took me a while.
 
  • #11
TomServo said:
Start learning programming ASAP, in C or C++, NOT Java or Python.

Then, when you get to the following two topics:

•pointers
•recursion

See how well you grasp them AFTER a sufficient amount of practice. Studies have shown that these two topics are good predictors of CS success. Don't be discouraged if you aren't comfortable with these topics right away--pointers took me a while.

It's not for nothing that languages like Basic and Pascal were invented. C and C++ are dangerous minefields for anyone not already quite disciplined and competent. Even pointers which aren't so difficult, when you start thinking about what const means, for example, can one return a constant pointer? It gets complicated pretty quickly.

As for AnnoyingGRL, I think she needs to fill in the precalculus gaps, that math WILL be needed for sure.
 
  • #12
I was just tutoring a guy yesterday who is apparently struggling in calc 2, but he gets it pretty quickly, with just a few comments from me to get him unstuck. I see that just a small difference could take him from struggling to doing ok. I know professional mathematicians who got a C in calculus or even failed it. Doesn't always mean you're not smart. Just that you're not used to it.

I think it was only somewhere in grad school that I got to the point where it felt like I could add it to my list of subjects that were easy enough that I felt like I was just born knowing it (it's not really a self-contained subject, so in broader sense, I think very few people understand it on an extremely deep level, even if they can do all the problems in a basic textbook without thinking). The first time I took it, I did okay, but it wasn't easy.
 
  • #13
Why does everybody act like learning C/C++ first is too hard? They were my first. Java/C# are too overhead-heavy to be good first languages, IMO, even if they seem easier once you know OOP basics.
 
  • #14
TomServo said:
Start learning programming ASAP, in C or C++, NOT Java or Python.

Then, when you get to the following two topics:

•pointers
•recursion

See how well you grasp them AFTER a sufficient amount of practice. Studies have shown that these two topics are good predictors of CS success. Don't be discouraged if you aren't comfortable with these topics right away--pointers took me a while.

I see. I've read something similar before on another thread. Just out of curiosity: why C++ or C instead of java or python? i was planning to take C++ first anyways, but I'm just curious why C++ over Java or Python. Are those languages easier?
 
  • #15
annoyinggirl said:
I see. I've read something similar before on another thread. Just out of curiosity: why C++ or C instead of java or python? i was planning to take C++ first anyways, but I'm just curious why C++ over Java or Python. Are those languages easier?

C++ forces you to encounter pointers and memory management head on. C++ is, in my opinion, a very difficult language to learn, but it teaches you a lot. I think it is the best language to learn first, since the transition to other languages will be simple. The transition from Java to C++ can be disastrous in terms of improper memory management (heartbleed anyone?).
 
  • #16
What ZombieFeynman said (except C++ isn't hard).

I recommend "Engineering Problem Solving in C++," by some Etter or something.

Did I say "recommend?" I meant "ORDER"! Get crackin! I also strongly recommend installing Linux, it's a much easier programming environment. I recommend Mageia.

EDIT:

Here:

https://www.amazon.com/gp/product/0136011756/?tag=pfamazon01-20
 
Last edited by a moderator:
  • #17
TomServo said:
What ZombieFeynman said (except C++ isn't hard)

Perhaps it is true that hard is not the best word. Still, I think that the syntax of C++ is not as simple as many other languages.

I don't think it is necessary at first to buy a book to learn C++. One can simply go to www.cplusplus.com to learn the fundamentals.
 
  • #18
micromass said:
I don't think it is your intelligence that you should be worried about, but rather your study habits. Twice in the OP you have stated that you've "slacked off" or were too lazy to study. This is something that absolutely needs to end. It might work in high school, but it won't fly in college at all.

I very much agree with this.
 
  • #19
member2357 said:
I very much agree with this.

Ditto. Mega-ditto.
 
  • #20
annoyinggirl said:
I have no clue about my abilities, but I'm guessing that I'm probably not very good at math or very intelligent. Now I feel very insecure about my ability to hack computer science major, ultimately fail in it. How much intelligence is needed to complete Computer Science major?

It sounds like you may be running into the stereotype that girls can't excel in STEM fields:

http://www.huffingtonpost.com/alici...-gap-encouraging-girls-in-stem_b_4508787.html

I would not ask how much intelligence is needed for a CS degree. Rather, you should ask yourself whether you might enjoy CS as a career field.

You should not be listening to people (including your parents) that you can't achieve a goal because you're not smart enough. When you listen to these people, it just sets you up for failure.

You need to change your entire mode of thinking from, "am I smart enough to achieve this goal", to "how can I achieve this goal that I've set for myself", and then just do it.
 
  • #21
austinuni said:
It sounds like you may be running into the stereotype that girls can't excel in STEM fields:

http://www.huffingtonpost.com/alici...-gap-encouraging-girls-in-stem_b_4508787.html

I would not ask how much intelligence is needed for a CS degree. Rather, you should ask yourself whether you might enjoy CS as a career field.

You should not be listening to people (including your parents) that you can't achieve a goal because you're not smart enough. When you listen to these people, it just sets you up for failure.

You need to change your entire mode of thinking from, "am I smart enough to achieve this goal", to "how can I achieve this goal that I've set for myself", and then just do it.

thanks. that's a positive mentality i should adopt.
 
  • #22
verty said:
It's not for nothing that languages like Basic and Pascal were invented. C and C++ are dangerous minefields for anyone not already quite disciplined and competent. Even pointers which aren't so difficult, when you start thinking about what const means, for example, can one return a constant pointer? It gets complicated pretty quickly.

As for AnnoyingGRL, I think she needs to fill in the precalculus gaps, that math WILL be needed for sure.

which topics in pre calc are needed in CS? (for example: trig, polynomials, etc.)
 
  • #23
annoyinggirl said:
which topics in pre calc are needed in CS? (for example: trig, polynomials, etc.)

Look at the two books I mentioned here, I think you will need everything they cover except matrices and conics. Usually colleges will have a class to catch up on the math but try to learn as much of it as you can first because it's always better when something isn't new, when you are used to it and can concentrate on the bigger picture.
 
  • #24
I'm almost certain you will be required to take a linear algebra class as well.
 
  • #25
You can't tell if you are intelligent enough to do something until you have put a lot of effort into it. You can't know what your full potential is if you just slack off. If I had based my opinion of my skills in physics on my first impression, I would have thought I was not as smart as other people in my class. However, over time with a lot of hard work, I discovered I was much better than these people. They assumed they could get along just based on raw intelligence but they quickly fell behind in the upper level courses. Some people might call you a try hard and not intelligent if you put a lot of work into what you do, but in order to be great at something you need to do this to develop your mind and discover your potential.
 
  • #26
Virtually everyone I've ever met is smart enough to become a programmer.

I main variables I know of are:

1) Do they work hard?
2) Do they blame others for their setbacks?
3) Do they find the material interesting?

If you can answer yes, no, and yes, you can be successful.
 
  • #27
analogdesign said:
Virtually everyone I've ever met is smart enough to become a programmer.

I main variables I know of are:

1) Do they work hard?
2) Do they blame others for their setbacks?
3) Do they find the material interesting?

If you can answer yes, no, and yes, you can be successful.

He asked if he was capable of becoming a computer scientist, not just a programmer. By programmer, I think you mean a coder who can just code in a couple of languages. But of course, your criteria is still good.

A good criteria for someone to be a computer scientist is, in my opinion:
1. Are you hard working (this is true for pretty much anything)?
2. Are you willing to think hard on problems and not expect all the answers to come to your mind immediately (ie. do you have patience)?
3. Are you interested in solving difficult problems?
4. Are you interested in how the technology (mainly computers) around you works?
5. Have you ever programmed? Are you interested in it?
6. Are you good (so far) at mathematics?
7. Do you enjoy problem solving?
8. Are you somewhat innovative?
9. Do you like working with computers?
 
  • #28
analogdesign said:
Virtually everyone I've ever met is smart enough to become a programmer.

I main variables I know of are:

1) Do they work hard?
2) Do they blame others for their setbacks?
3) Do they find the material interesting?

If you can answer yes, no, and yes, you can be successful.

Not necessarily. According to the research in this paper, some people instinctively "get" the basic ideas of programming, and others don't. The author suggests that you can test people's programming ability before they have learned anything about how to program, by looking at the way they deal with unfamiliar logical problems. The important factor is not whether people's reasoning processes are "correct", but whether they are consistent.

http://wiki.t-o-f.info/uploads/EDM4600/The camel has two humps.pdf
http://blog.codinghorror.com/separating-programming-sheep-from-non-programming-goats/

To write a computer program you have to come to terms with this, to accept that whatever you might want the program to mean, the machine will blindly follow its meaningless rules and come to some meaningless conclusion.

In the test the consistent group showed a pre-acceptance of this fact: they are capable of seeing mathematical calculation problems in terms of rules, and can follow those rules wheresoever they may lead.

The inconsistent group, on the other hand, looks for meaning where it is not.

The blank group knows that it is looking at meaninglessness, and refuses to deal with it.
 
  • #29
Yellowflash said:
He asked if he was capable of becoming a computer scientist, not just a programmer. By programmer, I think you mean a coder who can just code in a couple of languages. But of course, your criteria is still good.

Actually, she didn't. She asked if she could succeed in a computer science major. As you know the vast majority of CS graduates become programmers, not computer scientists. In my experience almost anyone is smart enough to be a programmer... of course only a few can grasp the needed abstractions of computer science.

Yellowflash said:
A good criteria for someone to be a computer scientist is, in my opinion:
1. Are you hard working (this is true for pretty much anything)?
2. Are you willing to think hard on problems and not expect all the answers to come to your mind immediately (ie. do you have patience)?
3. Are you interested in solving difficult problems?
4. Are you interested in how the technology (mainly computers) around you works?
5. Have you ever programmed? Are you interested in it?
6. Are you good (so far) at mathematics?
7. Do you enjoy problem solving?
8. Are you somewhat innovative?
9. Do you like working with computers?

I mostly agree with your criteria but I think a computer scientist would need a stronger emphasis on math interest rather than computer interest.
 
  • #30
AlephZero said:
Not necessarily. According to the research in this paper, some people instinctively "get" the basic ideas of programming, and others don't. The author suggests that you can test people's programming ability before they have learned anything about how to program, by looking at the way they deal with unfamiliar logical problems. The important factor is not whether people's reasoning processes are "correct", but whether they are consistent.

http://wiki.t-o-f.info/uploads/EDM4600/The camel has two humps.pdf
http://blog.codinghorror.com/separating-programming-sheep-from-non-programming-goats/

That could be true but in my experience as a TA in CS as well as taking the courses I think the main variable isn't whether they "get" it but whether they work hard and are disciplined.

Beginning CS requires learning a lot of new material and being disciplined to do significant programming projects that can take dozens of hours. Many students are not used to this level of work and fail.

I TA'ed a course in C programming for two semesters and was responsible for grading and helping the students. We had about 80 - 100 students total (40 - 50 each semester). I didn't meet a single student who worked hard and failed. Not one. The people I failed were the ones who never showed up for office hours and didn't turn in completed assignments.

Intelligence or "getting" programming really had very little to do with it.
 
  • #31
I guess the people who decide to study CS are self-selecting to some extent, but that research paper certainly rings true working in industry where people (certainly the older ones) may have never had any formal computer training. A minority of people never seem to get hold of the idea that a computer just does exactly what you tell it. They seem to be convinced that if you repeat the wrong commands often enough, it will eventually figure out what you want it to do.
 
  • #32
AlephZero said:
I guess the people who decide to study CS are self-selecting to some extent, but that research paper certainly rings true working in industry where people (certainly the older ones) may have never had any formal computer training. A minority of people never seem to get hold of the idea that a computer just does exactly what you tell it. They seem to be convinced that if you repeat the wrong commands often enough, it will eventually figure out what you want it to do.

That's a good point. I don't have experience working with people who aren't specifically trained in CS (or engineering).
 
  • #33
analogdesign said:
Actually, she didn't. She asked if she could succeed in a computer science major. As you know the vast majority of CS graduates become programmers, not computer scientists. In my experience almost anyone is smart enough to be a programmer... of course only a few can grasp the needed abstractions of computer science.

I understand that many computer science majors take the position of a computer programmer after graduating, but in university as a computer science major, they do a lot more than programming. I agree that is doesn't take a lot of capability to be a regular programmer, but isn't a programmer with little knowledge of computer science and a computer science major very different? I am sure they can succeed at a programmer, but they generally need a computer science as well.
 
  • #34
ZombieFeynman said:
Perhaps it is true that hard is not the best word. Still, I think that the syntax of C++ is not as simple as many other languages.

I don't think it is necessary at first to buy a book to learn C++. One can simply go to www.cplusplus.com to learn the fundamentals.

While everyone is discussing whether they think a C++ or a math major or a CS major is hard. I just want to say, I think going into something expecting it to be easy is not a good way to start. I always expect something to be difficult, and if it turns out to be easy, well good; then I can just work faster. But admitting something is easy will make you work with less fervor and be more distraught when something shows up that is a little difficult. Saying "This is easy" is like saying "I am turning my brain off".

Just try to set the bar for yourself rather high. Anyways, you can major in anything, just be prepared to work.
 
  • #35
Whether or not something is "hard" depends on individual aptitude and the match between your learning style and the particular prof's teaching style. It's neither here nor there are not apropos to OPs concerns anyway.
Hasn't the question already been answered?
 

Similar threads

Back
Top