How good do I need to be at programming before I start my CS degree?

Discussion in 'Mac Programming' started by Cromulent, Mar 7, 2008.

  1. Cromulent macrumors 603


    Oct 2, 2006
    The Land of Hope and Glory
    So, looks like I'll be starting a computer science degree in September. Just how good do I need to be at programming before I begin? What level application should I be looking at being able to develop?

    I really have no idea, I can only program in C but can work out C++ and Java fairly easily with a reference guide. I just need to know how much work I need to put in before September in terms of programming or whether I should concentrate fully on my discrete maths. Any ideas are appreciated.
  2. higgz macrumors member


    Feb 26, 2008
    Boston, MA
    Hey I'm a senior in college with a BS in Comp Sci with a concentration in IT by may. Before I went off to school my only knowledge as far as programming experience was visual basic, C/++, HTML, and a little bit of Java. You seem like you'll be fine in that aspect depending on what school you go to and how hard their curriculum is. The applications I was doing my first semester were very easy and they were just teaching the basics. How far are you with math? That was my set back- I had a teacher I clashed with in High School who failed me not once but twice... IN ALGEBRA!!! But yeah- nevertheless I've had to take up to Calc II, discrete math, linear algebra, calc based physics, and analysis classes. Would've helped if I had more of the basics done in high school (like up to calculus at least=\). If you got a decent jump on that I'd say you'll do just fine!
  3. pilotError macrumors 68020


    Apr 12, 2006
    Long Island
    Don't worry, I work with folks who still can't program! LOL

    Concentrate more on the why than the how in school. If you get a solid foundation in concepts you'll figure out a way to code it.

    It will take you much further in your career as well.

    I do consulting work and will basically sweep the floor as long as the checks clear. I swap languages every few weeks. I probably suck at most of them compared to someone who specializes, but the conceptual structure carries over from language to language.

    After a while you figure out that all modern languages are basically the same. Don't get caught up in not being able to see the forest for the trees. I still know folks who refuse to program in one language or another because their snobs or they have some moral objection to some language construct or another. The purist never survives in a competitive market...

    It comes down to the git'r done mentality. A good attitude, decent programming skills, ability to be flexible (team member or individual coder).

    Later in life when you've had enough or you just aren't as good as everyone else, don't let it get you down. There's a lot more to development than just coding. Not everyone is cut out to be a coder. Some people like the social aspects of a Business Analyst or a Data Architect that meets with the customer and produces specs. Project Management, managing the big picture as well as the nitty gritty. Working with offshore resources and dealing with that bundle of joy.

    The field is so wide open, so don't limit yourself by having to know the in's and out's of a particular language.

    One important thing I would tell you to learn is a Database, be it Sybase or Oracle. Even if you take a relational concepts type of class.

    Good luck.
  4. Cromulent thread starter macrumors 603


    Oct 2, 2006
    The Land of Hope and Glory
    Thank you for the advice. I am most certainly spending a considerable amount of time of maths including getting private tuition. I am also working hard on programming and general programming skills.

    I'm really really keen on this course and just want to make absolutely sure that I have the best chance to do well in it.

    I'm pretty good on general computing knowledge (architecture, processes etc) so I'm too worried about that side of things.
  5. MacDonaldsd macrumors 65816


    Sep 8, 2005
    London , UK
    Im on my final year of a CS degree at the moment and they don't expect you to know that much programming when you start, but they do expect you to pick it up fairly quickly, so having some knowledge when you start off always helps :D
  6. pilotError macrumors 68020


    Apr 12, 2006
    Long Island
    Things along those lines that I think are important are object oriented analysis and design (no programming required), Design Patterns and basically fundamental knowledge of framework construction.

    I hate to break it to you, but there's no college class around that will prepare you for the real world. That's why an understanding of the big picture is important.
  7. mason.kramer macrumors 6502


    Apr 16, 2007
    Watertown, MA
    You don't have to know any coding. Most college programs assume a good grasp of how to use a computer, however. Most will teach you Unix if you don't know it (and you have to know it if you want to call yourself a computer person).

    My advice to CS majors is that you have to pick it up quickly. When they introduce a topic - you have to learn it that week. Next week they won't be teaching it, but you will still have to know it. And the reason for this is that CS is a big field. 90% of what they teach has, or potentially has, relevance to real world programming. All of it has relevance to your final exam. And the pace is lighting fast. You have to learn it, and the only way to grok it is to spend time on it every day, hammering it into your brain, until you not only understand it, but are fluent in it. You have to become fluent. You have to practice every area, too. Don't like recursion? Tough. Don't like regex? Tough. Don't like pointers? Tough. Don't like something else? Tough! Just don't resist the teachings...master them instead.

    80% of CS majors wash out before graduating. You have to become fluent in order to make it. (Every course builds on the one before it).

    caveat: 80% wash out in *good* CS programs
  8. Cromulent thread starter macrumors 603


    Oct 2, 2006
    The Land of Hope and Glory
    Ah sorry this is not college, it is University. Unless Americans call University college? College is for 16 - 18 year olds over here so I am a bit confused :).

    Right so a good way to spend my time would be software design and looking at algorithms for particular programming tasks then?

    I've been dipping my toes in assembler in order to try and give myself a better understanding of low level programming, perhaps I should concentrate more on the hardware aspect?

    The CS course I'm looking at certainly covers alot (AI, OS development, software engineering etc, etc) so I think I'll get a lot out of it, I just want to give myself a head start.
  9. motulist macrumors 601


    Dec 2, 2003
    In America the words college and university are synonyms. Here the school for 14 to 18 years olds is called high school.
  10. mason.kramer macrumors 6502


    Apr 16, 2007
    Watertown, MA
    That's right...language confusion...on this side of the confusion, "College" and "University" are synonymous.

    If I were you, I would download Python or Ruby and start working through "learn to program" tutorials. Try to find small problems or exercises that have been suggested by a programmer and solve them using the language of your choice. Start with ones that have been suggested because sometimes it is difficult to see which problems are easy and which are hard.

    AI and OS development doesn't seem to fit with a first course: it sounds like it will be boring and overly general because the background knowledge isn't yet in place to make an for an interesting discussion. But, who knows.

    People will tell you don't miss the forest for the trees, and that's true, but make sure you don't miss the trees for the forest. You have to understand the basics through and through.

    edit motulist simulpost
  11. Cromulent thread starter macrumors 603


    Oct 2, 2006
    The Land of Hope and Glory
    I can already program in C :), I was just wondering what level I need to be at before I start. At the moment I am writing an NNTP newsgroup reader (command line) would that be the kind of level that would be acceptable to start or should I be looking to advance my skills further?

    Course content:

    Year 1
    • Principles and Practice of Programming
    • Professional Issues and Software Engineering
    • From Languages to Hardware
    • Data Structures
    • Logic and Foundations of Mathematics
    • Mathematics for Computation
    • Modelling Computer Systems
    • Algorithms and Computation
    • Logic Programming
    • Computers Unplugged
    • Introduction to Computing
    Year 2
    • Data Communications and Computer Networks
    • Operating Systems
    • System Specification
    • Database Systems
    • Programming with Objects and Threads
    • Functional Programming I
    • Compilers
    • Theory of Programming Languages
    • Computer Graphics I: Image Processing and Synthesis
    • Software Laboratory
    • Computability Theory
    • Algorithms and Complexity
    Year 3:
    • Foundations of Artificial Intelligence
    • Artificial Intelligence Applications
    • Internet Computing
    • Building Reliable Web Applications
    • Cryptography and IT Security
    • High Integrity Systems
    • Computer Graphics II
    • High Performance Microprocessors
    • Interactive Theorem Proving
    • Concepts of Programming Languages
    • Programming with Abstract Data Types
    • Functional Programming II
    • Designing Algorithms
    • Logic and Semantics
    • Construction Satisfaction Problems and Applications
    • Algebraic Specification of Hardware and Software
    • Numerical Algorithms and Computation
    • Scientific Modelling and Simulation
    • History of Computation
    Obviously some of those are optional modules, but does that sound like a decent course? I thought it was pretty comprehensive.

    As I said I'm pretty good with the basics, I just want to know how far I need to go. From looking at the first year I think I'm pretty much okay on everything in it except the software engineering and the logic programming modules.
  12. mason.kramer macrumors 6502


    Apr 16, 2007
    Watertown, MA
    Ahh, I think there was a miscommunication somewhere. Sounds like you're way ahead of the game. Have fun at University mate!
  13. kainjow Moderator emeritus


    Jun 15, 2000
    Cromulent I think you'll be fine. I'm in my senior year and almost everyone I've come across has had zero experience programming outside of the university, and even at this stage they still don't understand much.

    If you've only done C my only advice would be to learn a little on OOP so you'll be able to move quickly through it once those classes come, but other than that I say just take it easy and go with the flow of your courses. You'll have fun :)
  14. lee1210 macrumors 68040


    Jan 10, 2005
    Dallas, TX
    As is the case with most others in the thread, I'm an American. I got a 4 year degree from what I always heard called a "top 10" CS program. I took some programming classes in high school, and taught myself some things before I started school, but that is definitely not what will make or break your education. What no one has mentioned (at least outright) is that University CS is not intended to teach you to program. I don't know what a similar school would be in the UK (maybe College?), but in the US trade schools/technical institutes are where one would go to learn to program. You go to University to learn to think, no matter what your area of study is. I'm sure for "Computer Graphics II" you will have to program, but they're not going to teach you how to implement a tree structure in C++ or something. They're going to teach you what data structures and algorithms are important to the problem set, and how to think about breaking down relevant problems and solving them.

    To summarize, any work you're doing now on learning how to program is definitely putting you ahead of the curve in terms of the "grunt work". What might be more important to you if you want to get ahead on what they will actually be teaching is reading a book on algorithms or discrete math. The discrete math will definitely be more helpful to you in a "Functional Programming II" course than bettering your C skills, etc.

    With all of that said, and more important than any of it, you are motivated and interested in what you intend to study at University. That's going to serve you better than any amount of programming practice, reading, etc. ahead of time.
  15. 36183 Guest

    Jun 24, 2004
  16. Animalk macrumors 6502

    May 27, 2007
    Montreal Canada
    The only thing i had ever programmed in my life was my ti-83 calculator during my math, physics and chemistry lectures in high school so it would do all the formulas and stuff for me.

    I went into mechanical engineering on my first year in university and I was forced to take a class called "Introduction to programming for engineers" which taught you the basics of C++. The last thing we learned in that course was how to write a C++ class. I went into the final not understanding that concept and came out with a very decent grade.

    I switched to Computer Science the semester after as computers were my next "thing" after toying around with machinery and especially cars.

    So I went into CS not understanding how to write a class and what its purpose was. Absolutely clueless about OOP.

    I am doing great, and about to graduate (hopefully I won't screw it up) in end of april.

    Just work hard and learn to love your field.
  17. MacFan26 macrumors 65816


    Jan 8, 2003
    San Francisco, California
    Knowing any programming at all will help you if you are in an introductory class. Especially since you are younger, the classes probably won't be expecting people to know anything besides basic "how to use a computer" stuff. When I entered University here in the U.S. in Computer Science I didn't know the first thing about programming. They had two different courses, the "you know nothing" class and the "you've use a little bit of some language once" class. In either case, after about a year everyone ends up in the same track. So I'm sure you'll be fine lol.
  18. psingh01 macrumors 65816

    Apr 19, 2004
    I did not know how to program or even own a computer when I started college in 1996. Now I have a grad degree in computer science. You'll learn in school...that's what it is for :)

    Heck I went to school as a Mechanical Engineer, we were all required to take a programming class our freshman year ("C for Engineers"). When I took the class I thought it was fun and easier than I imagined. Didn't seem like magic anymore. So I switched to Computer Engineering and got a degree. Then later on I went back for a graduate degree. Now I work as a software engineer for a big computer company most people have heard of.

    You'll be paying a lot of money for school (one way or another), the least they can do is teach you something ;) Don't expect to go in with all the knowledge. You already know C, you are light years ahead of where I was when I started.
  19. aaronw1986 macrumors 68030

    Oct 31, 2006
    I am in my fourth year at Cal Poly getting my computer science degree. I came with no programming experience (HTML does not count). It's been fine for me. You do have to pick it up relatively quickly, but they don't expect you have to programming knowledge. You are ahead of the game and should be fine.
  20. Jeff Hall macrumors regular

    Jeff Hall

    Apr 10, 2006
    You're good to go. Enjoy the next 4 years!

    I'll share a tip with you. Worry more about understanding the problem you are trying to solve before jumping into coding. I swear to God, if more people did this, we'd have more companies like Apple.

    Coding is EASY. Understanding the problem and designing a great algorithm is the difficult part.

    Keep your designs as simple as possible, but understand you almost always have to compromise somewhere to make everyone happy. Pay attention when your professors are preaching time/space trade-offs and CS concepts like "o-notation".

    If you want a killer job at a place like Google, you'll need to master creative ways of solving difficult problems.

    Having been a professional software engineer for some 13 years now, I wish I had followed this advice I'm giving you now.

    <-- BS, Information and Comp Sci, UC Irvine 1995
  21. Cromulent thread starter macrumors 603


    Oct 2, 2006
    The Land of Hope and Glory
    Thanks for the encouragement guys, I feel much better about it now :).

Share This Page