Doubts about majoring in Computer Science

<p>Hello everyone. I am currently a junior in college and going into my third year. And maybe like many others, I am having doubts about going into this major since I am not sure what I want to do in it. Note that I am 24 going back to school. Prior to now, I went to school for Art and got an Associates Degree in it. </p>

<p>My initial plan was to major in Graphic Design since I am well versed in the programs that are used. But I thought that getting an art degree would put me at a financial disadvantage since it is difficult (not impossible) to make a living with an art degree. Then I thought, hey why not go for computer science since I've also had the initial goal of wanting to work in the video game industry and I thought it would complement my skills with the various design programs that I know. So from there I decided to transfer to a university and I've been a Computer Science Major since then.</p>

<p>The first year was great. Then when I got into a class that "taught" C++, it totally destroyed me. I passed with a B, but I did not retain the information given in that class that is needed for future courses (granted the teacher is horrible) And now my GPA is downing down and I'm seeing myself surrounded by people (including my boyfriend) that are more passionate and knowledgeable about CS than me. I mean I had no prior experience with programming and I probably don't know as much as the other people in class about computers. I could probably repair/restore a computer if I look up stuff and re-install the OS and that's pretty much it aside from what I learned in class. Plus, I could barely program on my own with C++. </p>

<p>As of recently, I've been looking at internships/jobs since my boyfriends is pushing me to do so since I am junior. As I looked, web development has caught my eye and I want to learn more languages in that area. I've used html/css before, just the basics and JavaScript due to using unity. I don't know. I feel like if I go that route I can use my artistic skills as well.</p>

<p>I really don't know what to do. I recently failed my calculus 3 test when I used to be really good in math in high school (got a 4 on the the AP Calculus AB test) My GPA is going down, hanging on with a 3.2 and 3.4 in my major. Everything that I thought I had confidence in is just crumbling right now. I feel like that CS isn't what I thought it would be and wonder if should revert to Graphic Design, Computer information systems, Digital Media or Informatics or something? Maybe I feel like if I go the web/business/entertainment route instead of a more engineering route I feel like I've wasted my time. Moreover, as a girl in CS, I'm really scared about if I would even get hired in this field of work. I'm just overwhelmed with doubt. Any advice?</p>

<p>As a woman in the field, if you are competent, you won’t have any trouble getting hired. however, if you are not excited about being in CS then you probably won’t be too happy when you are working and that will have an impact on whether you are able to build a career.</p>

<p>If you like another field better, then switch. the Math and CS courses you have will never be wasted as you will have that additional experience which will make you more versatile when you are looking for jobs.</p>

<p>MIS/Informatics might be a better option, or something you could research. Maybe that is what you are referring to by web/business/entertainment. There are different sets of jobs out there. Your skills with graphic design may fit better in the web design and/or user interface design types of jobs. You won’t need the same types of programming languages for that. No reason to feel like that is a waste of time if it fits your skills and interests. And frankly, many of the people with the more CS/engineering type degrees don’t do web/user interface design well - they need people with the more artistic and human perspectives. </p>

<p>Do not force yourself into a major or job field you don’t like - you will not be happy if you do and life is too short for that. </p>

<p>I agree don’t go into a job you don’t like you will be miserable for a long time and won’t perform well in your job. This is why CC always recommend do what you love.</p>

<p>C++ is really the core of what can be called computer science - if that just doesn’t appeal to you, then things are going to be pretty tough. Algorithms, theoretical CS, operating systems etc. are really not much fun even if you like the material - grinding through it when you have no interest whatsoever is just straight up miserable.</p>

<p>“Do what you love” is quite short-sighted advice, especially because enough hard work takes the fun out of pretty much anything for normal people. But on the other hand, don’t do what makes you miserable. Focusing towards a more web design-based curriculum might not be a bad idea. Look at how the market looks (i.e. apply and see how well you do) and decide from there.</p>

<p>Hardwork is not synonymous with no fun.</p>

<p>In my experience, with the exception of the obsessive personality type (which to be fair tend to flock to CS), when you work too hard you will eventually start to hate whatever it is that you “love” doing. In the end, work is work, and you almost certainly wouldn’t be doing work if you didn’t have to. Although I have seen strange exceptions to the rule…</p>

<p>@NeoDymium‌ I don’t think that is true at all. If it is the exact same task, maybe. But most jobs vary, and in CS many workers jump from company to company to get that variety as well. I have heard someone say that if you’ve been working the same CS job for more than 4 years, quit and go work elsewhere.</p>

<p>In terms of hard work = hate, I think you are missing an important category of those passionate for something. I do agree it does involve personality types, but not obsessive ones. Many people find logic fascinating and interesting, and those people DO tend to be the ones in CS and purer maths as well as engineering and other sciences.</p>

<p>It isn’t the most common thing in the world but it certainly isn’t rare.</p>

<p>After so many years of working CS becomes second nature. My brother prefers coding because it’s easy for him.
But do watch out for burnt out. Have a bit of fun, relax, watch out for yourself.</p>

<p>@xraymancs You said “As a woman in the field…” Is being a woman in the CS field an advantage? I am a woman and also plan on majoring in Comp Sci so am curious.</p>

<p>@Itiffanysphone - Yes, i think that many employers are interested in hiring a diverse workforce and since the male/female ratio in the CS field is heavily tilted toward men, I believe that women in the field have great prospects for employment.</p>

<p>Personally, I though that Algorithms and OS were very interesting.</p>

<p>Struggling may not be much fun, but succeeding is (and that often involves struggling through roadblocks) and @DrGoogle is right, after a certain point, I could code almost in my sleep. It definitely becomes easier.</p>

<p>Di you have a WISE group you can join on campus? You might feel better to have other women to support and encourage you. You are doing okay with that gpa, I would stick it out a bit longer. As long as you are willing to put in the work you will get better. Once you can get through the program you will be able to teach yourself anything you are interested in. The jobs are there and yes a lot of companies are looking to hire women. It is certainly not a disadvantage. Use an online free class to review your class. Try making something you are interested in.</p>

<p>Isn’t Graphics really heavy in C++?</p>

<p>

</p>

<p>Pffft. C++ is just a language—an awful one to learn CS with at that. Why do you think most top schools start with Python now? Easy syntax that lets teachers spend time teaching actual computer science and not C++. C++ should be saved for an object oriented programming course or a straight up C++ course one can take as an elective. I am speaking from experience—the CS I and II classes at my school teach C++ and we waste so much time on the syntax of the language and barely learn any actual computer science.</p>

<p>Agreed with @Matachines , Many schools are now starting with functional languages and I personally love it. No single language is the core of CS anyways. It’s the logic and principles that don’t change from language to language.</p>

<p>

I will have to disagree with that.
C++ is indeed just a language like any other. But it is useful for many of the things it does emphasize: machine code, efficiency, syntax that doesn’t really do as much for you as simpler languages, etc. Very annoying to start with and I understand why schools start with Java, Python, Scheme, etc. instead, but you can’t really do most of the higher level stuff with those languages because they take the most difficult and confusing aspects of the language away from the control of the user.</p>

<p>My point is that learning to do Java makes you a programmer, someone who can write useful code. But CS is about more than that. Neither Python nor Java let you use pointers, one of the most important aspects of any more complex code design. Very understandable choice, but you need to know how to do those things in order to design larger and more complex pieces of code.</p>

<p>Not that C++ in and of itself is the core of CS - it’s just, in my opinion (and in that of most schools I know of), it’s the most useful one that has low-level (i.e. machine code) features.</p>