CompSci doubts

I’ve always loved computer science since I began taking beginner classes at my high school a couple years ago. I’m now in the spring of my senior year of high school, and I’m beginning to have doubts. I’m worried i’m not smart enough or I’m not creative enough to come up with algorithms. I’m decent at math (currently in calc 2 ap) and an overall good student, but I dont want to crash and burn in college. I guess I’m just wondering if doubt is normal to have? I really like the challenge and I want to work in technology, I just don’t want to start this expensive college path down that direction if its not meant to be. What is being a software engineer like? Will I learn enough in college to be able to work on projects at different companies? Also, how can I get started on projects outside of school like on github? I know how to use it, I just don’t even know where to begin on these really complicated projects

I don’t understand all of this pressure that one puts on him/herself.

I had NO AP courses in high-school. My final math course in high-school was Analytic Geometry (one semester past Trig). I didn’t touch Calculus until a Freshman in college. Computer Science at my alma-mater (Michigan State) required at 3.4 GPA to get into which I did NOT make.

Soooooo…

I changed to Computational Mathematics as a major (much lower GPA required), added the core CS courses as electives…basically manufactured a CS degree within a math degree and now on year 26 in software engineering.

@GLOBALTRAVELER : I think you didn’t understand his post, his concern is nothing to do with course requirements.

OP, I think you can do it. Don’t worry so much about being smart enough if you are a good student now in math and enjoy CS topics. Why don’t you choose a college with other major options so you can change later if you want or need to? There are a lot of cocky, arrogant people in CS – but that doesn’t actually mean they are better at it. Don’t let them get you down. Yes, you will learn what you need to know at college.

@jdawg88 I was in a similar position as you. While I considered my math skills decent, I knew very little CS beyond basic programming in Java.

As @intparent said, you’ll learn what you need to know. But a lot of it comes through practice. For example, noticing that a certain problem can be reduced to an all-pairs shortest path problem, or noticing that a certain data structure solves the problem nicely.

A lot of software engineering is modular and based on abstraction - in simple terms, projects that look very complicated are usually better thought of as many pieces/methods put together.

Also note that CS is a widely emerging field, and that there are lots of unsolved problems, such as the famous P = NP problem, but also ones such as deciding, given a list of 2x2 matrices of integer entries, whether there exists an algorithm that determines if I can multiply any of them in some order to produce the zero matrix (this is unsolved!).

So yes, CS is a challenging subject (IMO), but it is also very interesting. You don’t have to be the smartest or the most creative (I certainly am not), but you do have to be motivated.