<p>Some background, i've always been good at math and science in general and have like computers for pretty long partly due to the fact that they can do so many cool things.</p>
<p>That being said, now that I look at the CS curriculum at the sch i'm going to enroll, its seems pretty different from my initial impressions. </p>
<p>But of course, since CS is more about the theory of computation first than just mere coding but when I look at the style of 'discrete' thinking required in CS, i'm questioning if its my thing. I did Advanced Maths during HS and we covered topics like Graph Theory, Combinatorics and Diff.Eq. And out of the 3, only DE made good sense. The rest seemed highly abstract and hard to follow. </p>
<p>Should I take this as a sign that CS isnt for me? As I think being bored by the academic content of the major is that last thing I want cuz I know it'll kill my interest and performance.</p>
<p>That being said, my initial reason for considering CS was that I found technology to be very pervasive in today's world and thought could leverage that to do something useful. </p>
<p>Also, I've heard that in the long term, developing/coding requires a lot of self-discipline/motivation to be on the top of your game, is this true? Because I don't see myself developing forever but more like a good experiential step into tech.</p>
<p>I'll stop here for now, interested to hear your views.</p>
<p>P.S For those of you who suggest that I take classes in other topics/ do Gen.Eds first, I'm enrolling in a UK-style university where you embark on what you choose. Thanks again.</p>
<p>Also, I’ve tried programming in my spare time in C. While I find that it is useful to solve problems, it seemed tedious and time-consuming for seemingly simple programs. Is that normal? Thanks!</p>
<p>Computer Science is a very mathematical field, but I don’t think you should let that stop you. CS is more or less the degree that puts you on a path to the software industry, which means that many schools will cater towards more practical tendencies in addition to the traditional, rigorous math-based curriculum. This means that you will probably be able to avoid highly theoretical classes after your introductory courses if that is the path you wish to take.</p>
<p>That’s typical of C, but there are other languages out there that make it much easier to get things done quickly (often at the cost of performance, but sometimes that’s a good tradeoff to make). Examples that you should check out include Python and Ruby.</p>
<p>You’re looking at this all wrong. That it’s hard to follow means that you won’t get bored, not that you will. It means you’ll have an incredible opportunity to learn something at college, rather than have things you already understand parroted back to you for four years. What’s more, this stuff is really, actually useful to practicing software developers, and will give you valuable knowledge that most other people - even other engineers - won’t have (everybody knows differential equations; that cannot be said about some of the discrete math you should be introduced to as a CS student).</p>
<p>It’s difficult because it’s new. Stick with it, and it will get easier every day.</p>
<p>CS is a big broad field, and like any major you will have to take classes FOR YOUR MAJOR that don’t interest you or that you find annoying or difficult. I love physics but I don’t love every single thing. Right now I’m taking an “electronics for physicists” course which is worthwhile for me to take but I don’t care for electronics. I know other physics people who never want to deal with relativity again, or some other thing.</p>
<p>I’m also a CS guy, and I do not want to take another class that deals with formal languages, and I’m not that interested in things like artificial intelligence, networks, databases. Good thing I’m not an actual CS major cuz I don’t have to take them, ha ha! I love talking about CPUs and OSes but I’m not that interested in the under-the-hood workings of them cuz it turned out to be much duller than I thought.</p>
<p>Everybody comes to a big field like CS from a different perspective, and it’s okay. Things I love are: computer graphics of all kinds, good software design principles (reusability, portability, correctness, etc.), numerical methods, and physics simulations. I have professors who are far more interested in proving correctness of algorithms or finding and proving properties of graphs than they are in actual programming (or in actual computers), and that’s okay. And I know others who are deep into instruction sets and low-level stuff and don’t care about trees or sorting methods or whatever. I even meet a lot of people who, get this, don’t play videogames! I even met a guy WHO DIDN’T KNOW WHAT 3D GRAPHICS WERE.</p>
<p>But CS is a huge field, and what is the most important, defining part of it for me may not be for you.</p>
<p>That said, a grounding in the fundamentals is important, so they teach them. And you’ve had them before so the second time is much more likely to “click” with you. Then again, some people just aren’t wired to think in discrete math. It doesn’t mean there isn’t a place at the table for you. A love of computers and computing will make up for a deficiency in one class.</p>
<p>Oh, and don’t worry about C. C/C++ are necessary to know and have skills in, but these days it wouldn’t be used for simpler programs. C/C++ are used where speed and/or reliability and/or stability are very important, like in finance or video games.</p>
<p>You may want to switch to Python. I haven’t used it myself but it’s what everybody else recommends.</p>
<p>Tom’s suggestion for python is excellent. I learned a lot of python last month helping DD1’s significant other with his homework… Then I wrote a backgammon analysis program during lunchtime, it is that easy - and powerful. </p>
<p>Some games or similar are programmed in all kinds of strange languages. I’m using NVIDIA UI Composer for UI design work and it is programmed in Lua, as in, the language (scripting, like python) used in Angry Birds :)</p>
<p>I was just wondering, would I be better off studying a more traditional engineering discipline? But that being said, I realise that most engineers do program as a main part of their job unless they’re into niche stuff like product design etc.</p>
<p>Also, other possibilites i have been considering are Physics, Economics or Psychology(highly unlikely).</p>
I can’t imagine the programming done in most engineering firms approaches what is done in software-only shops. If your only concern is programming, then more traditional engineering majors/professions would certainly be much less of a concern.</p>
<p>
Believe it or not, people major in those things every day and go on to be successful. Note that you might find graduate school is required to be competitive in these fields; this isn’t nearly as true in engineering and computing.</p>
<p>You might want to check out the Bureau of Labor Statistics Occupational Outlook Handbook. It gives information - salary, job availability, job growth, job description, job education, etc. - about a large number of professions and trades, and it might help you better understand what you’re getting yourself into career-wise.</p>