LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Not sure my college is good for Programming (https://www.linuxquestions.org/questions/programming-9/not-sure-my-college-is-good-for-programming-587501/)

MasterNat 09-26-2007 08:56 AM

Not sure my college is good for Programming
 
I need some advice maybe from people who have gotten their degrees and know stuff about computer programming degrees and what employers look for. I want to talk to some different companies about getting a computer programming degree at this college and if its good or not. If you know some large companies that I could search for I'd appreciate it.

The reason I'm having trouble is I read this article on my college and it being sued for misleading its students. Apparently people would get their associates there and try to transfer to another college and none of their credits would transfer over. Apparently they were told they would have no problem transfering. I was planning on getting my bachelor's in Computer Information Science. Very computer programming heavy, I'm told. I just started there so I haven't spent a lot of money. I'm concerned because if their associates degrees are worthless when transfering to other colleges, then how good are their bachelors and stuff for getting good jobs? The college is Florida Metropolitan University or FMU.
Not sure if companies would take the time to tell me if a degree at this college would be worth hiring or not. I believe its ACICS accredited. The level of school there is very low. The hardest math on their placement test was dividing fractions no algebra. I think any middle schooler could probably have passed their test. Also the classes, even though I'm only in the first 2, are suspiciously easy.

Anyways any help on this would be greatly appreciated. I'm young and a little unknowledgable about this stuff and don't really know anyone to ask. I feel like if I ask the school they won't tell me the truth.

tronayne 09-26-2007 12:03 PM

First off, you need to ask yourself a couple of questions: what do you really want to do? If you want to be a programmer, that usually translates into a path called software engineering. Software engineering, in a general sense, is sitting down with folks that want something done and figuring out how to do it for them (plus the sheer joys of, "oops, that's not what I needed" and the ongoing maintenance and changes that inevitably are part of the business.

Now, how do you get yourself prepared for that: learn to be a generalist, first and foremost (unless you plan on studying an engineering discipline, and that's a whole other can of worms). You will need to know about how to program but you will also need to know why to program a given way if you're going to be any good at it.

Companies, at least the one's I've worked for, are looking for a set of skills for a given functional area. The department usually named something like "operations" are the folks that do system administration, network management and similar things; all the tasks that keep systems running. Then there are the data base management folks that keep the data bases running; that's a whole career path in and of itself. Sometimes programming staff are part of information services -- IS -- (working for the chief information officer), sometimes programmers work for individual departments spread throughout the organization; that pretty much depends upon the needs of individual departments.

IS organizations care most about put it down, plug it in, configure it, and do not screw with it (companies typically do not fool with compiling kernels and the like). In the Microsoft world, many companies do not permit Patch Tuesday to just run on their servers; they keep an isolated test box(es) to make sure things will continue to function when an update is applied. This is also true of commercial Unix- or Linux based systems -- a test bed(s) are used to test before installing in production (you do not want to be the guy that applies a patch and takes the entire system down, not a good thing, that).

Mostly, though, you need to find the thing you're good at and like to do -- if it's hard to get out of bed in the morning and go to work, you ain't in the right business.

Now, what about education? Well, if they're teaching you Microsoft applications they're wasting your time and money (any damn fool can learn how to use an application program; your job will be to write those, not use them). If they're teaching you Pascal, leave now, you'll never, ever get a job doing that. If they're not teaching you C, C++, SQL, Java, HTML and similar things, leave.

If you're going try to work in a Unix- or Linux based environment, you need to know (in addition to those previously mentioned) shell programming, awk, all the standard utilities, system administration (so you'll have an idea why things work the way they do), how to write clearly (doesn't matter how smart you are if you can't explain your ideas to other people). A good rule to live by is that if you can't write your idea on the back of your business card you haven't thought it through.

Many companies are Sun, H-P, IBM and some minor players shops (you don't do hundreds of data bases with hundreds of million of records in them on PC's). Most of them are running Informix, Oracle and a few other relational data base management systems; you will have to speak SQL fluently in those organizations and most of their programming will be in C, possibly C++.

Notice I haven't said anything about Pearl? That's because Pearl isn't a standard and a lot of companies avoid it for all but the most trivial tasks -- you don't put an interpreted non-ANSI or ISO language in a production system (at least not in the organization I'm familiar with). Wouldn't hurt to know it but you may not have a great deal of use for it.

So, with all that negative stuff, what do you do?

Get a course catalog, study it. If you don't see much of the above in the course syllabus, that is not the school for you.

Best of luck.

PTrenholme 09-26-2007 01:17 PM

Hum. I just looked at FMU's site. The B.S. in computer science offers:
Quote:

The Computer Information Science program includes instruction on the following:

* Principles of accounting
* Computer applications
* Database concepts and applications
* Spreadsheets
* Microcomputer operating systems
* Systems administration
* Desktop publishing
* Computer programming

You will learn skills that enable you to oversee the operation of computer hardware systems, including mainframes, minicomputers, or networks of personal computers. You will also be educated to anticipate problems and take preventive action, as well as solve problems that occur during operations.
(Items in red seem questionable to me.)

From the description of the "skills" you "will learn," it sounds like a program designed for an office manager, not a software engineer.

rshaw 09-26-2007 01:35 PM

most uni's require some relatively non-related courses for a bs degree. it gives the liberal arts department the feeling that they actually matter.

excel28 09-26-2007 04:24 PM

The whole CS/CIS/MIS is confusing. The univ I went to had CS and CIS. CS is the computer science in the science department, while the CIS is the computer information system in the business department.

At another univ, CIS is the equivalent to my univ CS, and MIS (M-something information system) is the equivalent to my univ CIS.

The way I understand it is that the people that got the degree from the business department are the ones that write up the requirements for the developer, does the testing, interact with the customer/project manager, and everything else that's not developing. They would have the basics of programming, but that is for them to know how to troubleshoot better.

The degree from the science/engineering department are the ones that learn the theories behind the code, know how to measure complexities of algorithms, apply theories to real life... basically become a scientist of computers.

indienick 09-26-2007 07:57 PM

My two cents worth:

Don't worry too much about the school's reputation. Instead, focus on the course/program itself. I was considering taking a Computer Programming Analyst program at a local college (Fanshawe), but quickly dropped the idea due to what the description gave, and sources taking the program confirmed.

The course is nothing more than a rather expensive excuse to throw around buzzwords after you graduate. Microsoft this, C# and Java that...I realize that Microsoft controls most of the PC market, but that's still no excuse for programming courses and such, at the post-secondary school level, to fondle it and treat it as though it's the only entity for a PC worth knowing (apparently, Mac OS X is for "losers"). I already know enough of Java and C# to know that they aren't languages I would devote entire projects to. Some of the people I've seen come out of this CPA program were blithering, ignorant MS shills. I actually had one person say to me, "Linux? Yeah, I've heard of it."

The programs I've seen do not teach the student how to theorize and develop algorithms for efficient data processing, or to create tight, clean code. It's just not done any more. From what I've seen of some of my friends' Java code, if it works, it gets an "A+" grade.

And it's not as though this suckling-at-the-Microsoft-tit thing is a recent revelation, either. The software engineer at my work - such a nice guy - knows nothing about low-level system calls. Just the other day, he was discussing, with the manager, about what a returned "FF" value meant. When I asked him what was going on, he told me he was working on a DLL for an optical testing program, and that the serial COM port kept returning a value of "FF". I told him, albeit politely, that if he's getting a value (hex, decimal, or octal) that does not equal 0, it's a failure of some sort. He thanked me later in the day.

Heh, also, my shop manager - just as nice of a guy - keeps trying to buzzword me with Linux terms.
Quote:

Manager: "Yeah, I took a course of Red Hat Fedora Core 3 at Fanshawe a few years back...Yeah, so this is our server running Red Hat 8, and we use a system called Samba. Have you ever heard of Samba?"
Me: "Yep. I use it exclusively at home. It provides a nice gravy of Mac, Linux and Windows file sharing, and half of the headache that NFS requires - I always find myself scrambling to redefine hosts definitions whenever my DHCP router gets reset."
Manager: "What's NF-ah...gotcha....okay...."
Me: *biting tongue*
He even took a course specializing on teaching you how to use a Linux distribution, and still doesn't know what "NFS" or "hosts definitions" are. I'm not disappointed in him - he only knows what he was taught, and what he cares to read in to, which his job does not allow him much free time to do so. I'm disappointed in the course, and the instructor, for teaching him, probably, just how to "hack" the CLI, install/uninstall packages and use a text editor like nano (heaven forbid it be vim or emacs).

What I have noticed, and even read an article on, is that schools offering CompSci programs are slacking, heavily. Some schools are going Java-only. And other schools are even taking that a step further and teaching only Java with a specialized set of libraries, instead of those found in the J2SE, J2ME or J2EE development kits. The colleges and universities I have seen aren't teaching the needed theory behind programming - how can this code be made more efficient for both compiling and execution time; how can I stream in this data, parse it, process it, and spit it out in the needed format? There's no more theory. It has been replaced with libraries upon libraries of "...this class will streamline this particular <function>."

My summative suggestion: talk to people who have taken the course you're interested in. Ask them what they've done, and see if it jives with what you're willing to do/learn/put up with. And, if nothing else - even if you decide to forgo learning a programming language - learn HOW to program. Learn the theory, and the philosophy behind it.

chrism01 09-26-2007 08:02 PM

1. Always read the course content of a degree; you can't trust CS to always be CS theory, sometimes it's 'just' programming ... and vice versa.
2. "Pearl"; Actually it's Perl.
Also, real companies eg merchant banks do use it in production, BTDT (been there, done that).
It's not interpreted, it's compiled on the fly and the 'compiled' version is actually run, result about 80-90% speed of C with easier programming.
See http://www.perl.com/doc/FMTEYEWTK/comp-vs-interp.html for details.
C is a good lang and an understanding (at least) is very worth having.
Also, a basic understanding of assembler is good if you want to know what's going on under the hood.

graemef 09-26-2007 08:54 PM

I think the best advice mentioned here is talk to people who have completed the course. Find out what they learnt and how it is helping them now. Personally I wouldn't get too hung up with the specific programming language that is being taught. Depending upon the duration of the course will depend upon the number of languages you would expect to be exposed to. A rough guide is that you want to be shown a different language each year but you would want one language to be used throughout, this gives you the diversity that you will need in the future along with the opportunity to become very comfortable with one language.

Secondly it is important to have a feeling for what it is you want to do and what you want to get out of the course.

Finally no course will deliver everything that you want a very large part of an education is what you do with the opportunity. Do the assignments but ask yourself why are you doing this, think about how a particular assignment fits into the bigger picture.


All times are GMT -5. The time now is 01:18 PM.