Question to CS Degree holders

Started by
30 comments, last by MilesRobson 12 years, 2 months ago
This is kinda a weird question.

I'm currently in general edu in a community college, and planning on heading to a four year college afterwards.
With Computer Science, it seems like every 4 year college in my state (Florida), has different... languages and requirements.
Some want me to take Intro to C++, or C# or Java. Some go into theory more than classes, I've seen one do only C++, one only Java.

While I'm sure not taking the intro class won't kill me, it seems like it might be limiting me. I'm teaching myself C# just to understand programming in general, but I feel like should be practicing the languages that most schools are gonna throw at me anyway.

Or maybe I shouldn't to expose myself to other langs. more?

My basic question is, did your two years of CS education aid you to a point where self educating to other resources, and languages was easier?

I don't really know what I am asking, but I feel like I have two years of pure practice and self exploration before I hit the college stuff.

On a side note, while I'm sticking with C# for XNA and Head First, I personally liked C++ the most. I don't know why, it just seemed more dependent on me, which was helping me learn.

PS: If anyone has a personal opinion of Florida schools for CS, please share. :D

Twitter

Learning to code in general, Junior at FAU

Advertisement
In my opinion and in my experience a CS degree provides you with the fundamentals and theory. The choice of language is largely irrelevant. Some languages are easier to use than others, but all of them at core levels have the same constructs.

School will teach you such things as data structures, sorts, and algorithms. They can teach you about loops and conditional statements. They can teach you about linear algebra, artificial intelligence, and databases (to name a few).

Most of all school will teach you how to teach yourself. It will force you to learn to study, to budget your time, and to find what a good resource is. Often in my experience the given text books suck and you must find others if you want to do well. You will learn to self educate because your going to be forced to do it in a lot of cases. The classes are a guide. They will show you what to look at, and evaluate your performance, but the learning is going to be on you. Once you have been guided enough you should be able to know how to study properly. The key in my opinion is to know when you do not know. To realize when you are clueless and that you need to find/get additional help/materials. Arrogance can lead to hard lessons when it comes to test grades!

However school will not make you a good programmer. You can know about every ingredient and still not be a good cook. The only way to become good at programming is to practice. If you wish to learn programming (just like anything else I might add) you must write lots and lots of programs. You will write programs and the programs will be horrid, but you will learn. You will implement grand ideas and learn hard lessons about design when your design fails you. Once you feel the pain from deep class hierarchies you begin to rethink your notion of inheritance tongue.png .

My advice is to take as much math as possible. Take as much science as possible. Try to learn things outside of CS as well. Study hard but don't think you must learn everything at once. School should provide you with the background and the knowledge of all of the components, but you must supplement it with your own hard work if you wish to be successful.
If you're in college pursuing a Bachelor's in Computer Science and aren't studying algorithms and data structures your freshman year, you're in a horrible program.
Supplemental questions that may or may not be added to the topic:

How does school that teaches you CS force you to study by yourself? What should I do, if my school doesn't force me to do anything, more like "giving you a laid-back option of learning" and "unable to encourage students to learn"?

I'm in my third year of CS, and I still don't feel like my school is forcing me to do something, other than staying above the passing grade thresholds.

If you're in college pursuing a Bachelor's in Computer Science and aren't studying algorithms and data structures your freshman year, you're in a horrible program.

I'm in a Community College getting my AA, and transferring to a four year college to get my CS Degree.
By the end of my AA, I should have this http://www.ceecs.fau...on-requirements along with this http://www.broward.e...rogramcode=1010.

Florida Atlantic asks for lots of Calculus, Physics, and some intro in to programming, and my community college asks for the humanities, history, and other credits.

Twitter

Learning to code in general, Junior at FAU

I shudder to think how far behind you'll be with that curriculum.

Anyways, back to your original post: Yes, just like anything else, more experience in something allows you to more easily learn advanced topics and make variants on existing knowledge easier to learn.

I shudder to think how far behind you'll be with that curriculum.

Anyways, back to your original post: Yes, just like anything else, more experience in something allows you to more easily learn advanced topics and make variants on existing knowledge easier to learn.

I mean, that's depressing. xD Shuddering is bad.

Twitter

Learning to code in general, Junior at FAU

A college degree is not job training.


A CS program is about data structures, the algorithms to manipulate the structures, and the logic to turn those algorithms into massive applications.

The languages they teach are secondary. The school should teach you a few if you don't know any, but a good school will have classes that require you to learn 3-4 languages before you are done. C++, Java, Eiffel, Scheme, C#, Python, and more, will be options. You will also likely pick up SQL. You will be encouraged to work on other languages that you like, and that is a good thing. You and your peers can pick up as many new technologies and languages as you want.

The critical component of the BS in CS is not that you know how to program in today's current hot language, but that you will have the skills to program in ANY programming language, that you can learn ANY programming langage asked of you, and that you can learn, unlearn, and relearn technologies as the come available by knowing all the fundamentals in the field.

A good programmer from the 1950s could be dropped into the modern day, pick up a book on C#, and once he got over the amazement at how far computers have advanced, would be able to apply the same rules of logic and structure with today's language as he did in Fortran, Lisp, and Cobol that he used in the 50's. Each generation of programming languages and tools allows developers to work at a higher level than the one before; yet with each round of advancements the rules of logic and the underlying data structures and algorithms are the same.

[quote name='Telastyn' timestamp='1326572733' post='4902750']
I shudder to think how far behind you'll be with that curriculum.

Anyways, back to your original post: Yes, just like anything else, more experience in something allows you to more easily learn advanced topics and make variants on existing knowledge easier to learn.

I mean, that's depressing. xD Shuddering is bad.
[/quote]

I disagree. It is on par with many AA and AS programs I have seen.

Remember that an AA or AS is not the basic entry-level ticket to a programming job. That's a bachelor's degree.

The AA or AS program is something you would see in an office worker, such as a secretary or salesman (who isn't going into technical sales) or similar office professionals. It would enable the person to work closely with the regular programmers and not feel dumb. It is also an intermediate step to do exactly what was described -- get your general education and associates degree at a less expensive community college, then transfer to a bigger university for the BS degree where you focus on the topics.

I agree it could have been a little more heavy with CS topics, but it isn't so far out of touch with what many schools do.

Supplemental questions that may or may not be added to the topic:

How does school that teaches you CS force you to study by yourself? What should I do, if my school doesn't force me to do anything, more like "giving you a laid-back option of learning" and "unable to encourage students to learn"?

I'm in my third year of CS, and I still don't feel like my school is forcing me to do something, other than staying above the passing grade thresholds.


Yea...that's all your school is required to do. It's not a problem with the school, it's a problem with attitude. Though I will grant that select professors can be more or less motivating in their own right.

"C's get degrees" or my more favorite "what do you call a med school student that graduates with a 2.0 GPA? Doctor."
Doing only what the courses require is an entirely different mindset from "Wait, they only want me to produce this? But I could make it do SO MUCH MORE...and this other library I was reading about has cool feature X and..." etc etc. And those two mindsets produce two very different graduates. Both employable, both can cite their degree to potential employers, but the latter is going to be a better programmer, hands down.

Hazard Pay :: FPS/RTS in SharpDX (gathering dust, retained for... historical purposes)
DeviantArt :: Because right-brain needs love too (also pretty neglected these days)

This topic is closed to new replies.

Advertisement