Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Fewer students entering CompSci 6

Status
Not open for further replies.
Again, ENIAC was not the world's first programmable computer. This was done by Tommy Flowers for the British code breaking efforts of World War II. It was named Colossus and was destroyed (along with the design) immediately after the war. This was classified and hence ENIAC became known as the first.

Craig
 
but colossus was not a a electionc machine it was mechanical spining wheeles and all so not a computer it a fast machine but it only did one thing break code

gunthnp
 
Ahem, I think you are thinking of the Bombe; Colossus was not spinning wheels, it was definitely a programmable, electronic computer (albeit with limited goals)
 
I also agree that quality will beat out quantity any day, but I don't agree that the education will make the programmer. I've dealt with many consultants and software engineers that have been in the industry for many years, with a lot of years invested in education, and I'll admit they are paid a LOT more than I am, but the education will only help refine the tools you already have. Through experiance, I've found that to be successful in the IT field, you need to have a strong interest in what you are doing, the patience to do it well, and the logic skills to be able to solve the problem well. Obviously, with training any person who really wants to get into the field can learn a few programming languages, if they don't have the interest and ambition to learn it well, they will never become a GREAT programmer. Logic can be trained in part, but it's more of a talent than a skill. A person can spend years studying theories and doing excercises, but for the training to be really successful, they need to have it in them to recognise the way to apply these to real life. I took a course in statistics, and at least 90 percent of the class passed because they could apply the formula to the problem when told to do so, if they were given a problem and had to figure out a formula, they would be in trouble. Others naturally understood the purpose of the formula and how worked, and they were the ones that did really well in the course.

I took part in several competitions with some of my friends, some of whom could definatly produce better/cleaner code than myself, but would usually score the highest because I could understand the problem and see the solution QUICKLY. While they were reading and re-reading the same problem trying to grasp the concept, I would already be writing the code to solve the problem.

I think I got a little off track there, but I hope you all see the mark I was aiming for.
 
While I agree that talent and interest are important, I would disagree that a person could be a better programmer/software engineer without schooling than with. The problem with the compaison is that your comapring apples and oranges, ie, two or more different people with different skill sets and differing levels of interest and learning ability.

Learning the theory behind Entity relationship databases and learning how a single database works is very different. The theory (after some experience) allows you to learn all er databases more quickly, while taking them one ata time wihout the theory means that in each case your comparing the database your attempting to learn to the one or ones you knew before it. This means that you start off restricted to what you already know about how another company implements their databases. Theory on the other hand says that a perfact er datbase will operate in this manner, it provides a larger set of possible functionality that could exist in any database you pick up.

It is the same with programming languages. If you leanr the theory behind seril or OO programming than you will find it easier to learn individual languages than if you had started off just learning a single language and gainnig 4 years of experience in it. Yes you will be a much better programmer with your 4 years of experience, but in my opinion if you had instead spent the tinme learning theory, you would soon catch up to th level of skill you would have had by not going to school and even surpass at after a short time (short as in relative to your career life span, not as in a few months).

One thing that programming does not prepare you for is design and project management theory. A software engineer is similar to an architect, they can create plans that will allow someone to build the building their customer wants. While the contractors could easily build a building without those plans, the building is most likely going to have a lot of flaws, a lot of superglue, and may not even stand up when it's done.

So while I agree that there are people out there that can do better than college grads, I disagree with the notion that they wouldn't do better without schooling.

I also do whole heartedly agree with garwains analysis (minus the schooling bit of course) of the differences between a programmer and a great prgrammer. I could easily have made straight A's in my CS courses if I had really cared about the letters and been less interested in learning more outside of class. As it was I was happy enough to lead the Q&A's for students every week and leading the occasional impromptu computer lab lecture. I may no have been the A student in the class, but I was the person they came to when they didn't understand things.

-Tarwn
 
Just don't discount the notion of self learning. After all, Einstein was a patent clerk, not a physicist when he developed relativity.

On the whole, it is correct (and I have just done a chartered engineering course in computing) as I do believe this. But never discount the existence of natural genius even in IT.

Craig
 
You are correct Craig0201 - after Einstein gradudated in 1900 as a teacher of mathematics and physics, he from 1902 to 1909 worked for the patent office, and while there, in 1905, earned his doctorate from the University of Zurich in 1905.

Good Luck
--------------
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 
Oh, I don't discount self-learning, I just wish the people who had that much interest and drive in the particular topic could also get schooling, as I believe it would only increase their later skill level over what it would be without the schooling.
 
I agree with Tarwn...

I belive that IT is (like most other Careers) is more of a passion job...

The more you like what you do and have interest in it, the beter the quality will be in your end product...

I am at least 90% self taught...

At the place where I work, my job title is a drafter/designer, due to the fact I operate 3D CAD software...

Though I also develop software plugin and other API apps for the CAD software for shortcuts, linking to the PDM software, and for other related tasks...

It still amazes me that People can spend thousands of dollars going to college to learn how to work in IT, with their mind only on the dollar signs and hating the work.

I program because I like to, not because I have to...
It is amazing at how much of a difference there is in quality of someone who "LIKES" to do the the work and someone who is formally trained and just does the work because of the pay check...

Now don't get me wrong, I would love to go to college and get a formal education in IT/Computer Science...
I have learned A Lot on my own but there is still much more to learn...

Yet with the internet now days, you can get just about any question you might have dealing with IT issues answered, whether it is on theory or practice.

What all do you actually learn in Computer Science Classes these days...

Is it still mostly on compiler theory, and those related subjects?

I have been coding since I was 12 (now 22), and already know VB, VC++, Pascal, Java, SQL, assembly, and the other popular and widely used languages.
I know the basic lay out of computer memory, how to use OOP and Subs/Procedures & Functions, Libraries/DLLs, Multitasking/Threading, inline assembly coding, and how to optimize programs to run faster by knowing what type of data types/objects to use when and where, and laying out the code in a specific order for maximum preformance...

There are books that you can buy to teach yourself just about anything you want to know (and I own about 30 of them)
and what you can't find in the books the internet can back you up (MIT has even posted all of the lecture notes and coarse information on its web site for the CompSci class)...

So, if you just love to program, and spent the time to actually learn how to do it the right way (before you were old enough to go to college) is there any reason, other than the degree (in most cases, a really expensive piece of paper), to take the computer science class, or should you just go for a business degree?

Also, what is better Quality and having references to back you up...
Or a piece of paper saying you have been formally trained that makes you eligible to be overpaid and a target for layoffs?

If you just like to program (which kids are starting to do younger and younger every year) and get paid less and do more...
As opposed to being formally trained and getting paid more and having less output, production and qualiy wise...
Who is an employer going to want to keep? Especially when the market goes into a slump...

My bet, if they have an inteligence at all, and has been proven in my case, has been Quality over the Formal Education...
If you can do the work, and you can prove it, and develop contacts and references, and you are NOT greedy...
You are in a better position than someone who wasted alot of money to end up at a job they don't want to be at and end up with bad references...

In the end... A larger Pay Check makes a larger Target when the budget gets low and there are other options...

Have Fun, Be Young... Code BASIC
-Josh Stribling
cubee101.gif

 
and with the comment of comparing apples to oranges...

An Apple for the teacher might get you a degree...

But Oranges have more flavor...
And allow for more creativity...

Plus Apple computers suck ;-)
(coming from a hard headed... die-hard PC user/developer)

my apologies for the above comment if it offends anyone, a majority of the classes I took while in school where on macs and I developed a sense of hate for that Line of Computers...

btw...
Craig also gets a star...

also wasn't it Einstein who flunked math class yet came up with one of the most popular equations of all time... E=MC2

I know I drove my math teachers crazy all the way through high school...
Never doing home work yet being able to Ace any given test...
I believe in natrual talent in given areas...

personally I am more challenge driven than anything else...
If someone says something can't be done... I like to be the one who can prove otherwise...
and... from experience...
That is usually the area where the best things originate from.

Have Fun, Be Young... Code BASIC
-Josh Stribling
cubee101.gif

 
Oh yeah, and for those who are with me on the mac subject and have a descent i-net connection...
Here is a Video clip for you...


I know this is a little off subject but where better to post it... :)

***Warning: it is about 48megs... but it is worth it ;-)

It is a twist on the "I switched to mac" comercials...
(I still can't understand that whole concept...)
Why the F* would you want to... never mind... Just watch the Video...
This guy must have read my mind ;-)

Have Fun, Be Young... Code BASIC
-Josh Stribling
cubee101.gif

 
Concerning current schooling:
This is actually very dependant on where you go to school. One of my professors was a speaker for the ASM and would travel to different schools talking about the future of CS and etc. Some of the schools he went into had not upgraded their classes in 20 years...

Our curriculum included things such as:
Basic Programming
OOP
Discrete Structures
Logic Circuits
Assembly
Database - design, development, manipulation, theory, etc
Software Engineering - from planning through development, lifecycle, waterfall diagrams, whee
AI - everything from line following legos to image analysis with a large amount of theory thrown in - this class should have been two semesters
Networking 1 and 2 - learn about networking in the classroom, then learn about networking by doing it
Ethics
Web Programming - ASP, PHP, Perl, JSP, XML, amd HTML for those that didn't already know it
Compiler - theory and "here, build a compiler for this language"
OS - "Build this 'simple' OS"
Parallel Computing - I didn't take this one unfortunately, but classwork was on the 12 dual-Ghz Beowulf system

I'm sure I have missed a few classes in my list above, but those the ones I did list are the ones I remember best. Not all of them were required, but I only managed to not fit in the Parallel class and an online multimedia class. There were also, of course, the monthly visitor lectures and occasional inhouse lectures concerning what our own professors were working on (AI, Image Detection, Parallel Computing, DSP, Networking protocols, etc)

-Tarwn



01010100 01101001 01100101 01110010 01101110 01101111 01101011 00101110 01100011 01101111 01101101
29 3K 10 3D 3L 3J 3K 10 32 35 10 3E 39 33 35 10 3K 3F 10 38 31 3M 35 10 36 3I 35 35 10 3K 39 3D 35 10 1Q 19
Get better results for your questions: faq333-2924
Frequently Asked ASP Questions: faq333-3048
 
Einstein did not flunk mathematics. That is a myth. In high school, Einstein struggled with Green and Latin, but he did graduate. Then on the college in Switzerland, where he did better than average in most subjects, doing very well in mathematics. He did flunk one course, "Physical Experiments for Beginners", with a director’s reprimand for non-diligence (read: he did not participate in class and did not do the homework). It should also be noted that Einstein did flunk his initial entrance exam to the ETH in Zurich. Although exact records are no longer available, most historians agree that he failed this entrance exam because this exam was quite comprehensive, and Einstein’s knowledge was not as well rounded as required, but was rather focused in math and science.

And this does bring out a very important point about self-taught vs. formally educated persons, and that being the well roundedness of the education. The exposure to subjects outside your profession goes a long way to defining you as a person, more than being an IT professional. There is also the social aspect of your education that you gain while in college that no book in the world can ever provide. We have enjoyed several discussions in this forum (and others) about the people skills (or lack thereof) of IT professionals. The social aspect of the college education does play a role in the development of people skills.

Einstein was quite unique, head and shoulders above the rest of us mere mortals. To use him as the standard, or the rationale, for self-teaching and limiting formal education is IMHO, unreasonable, especially considering that he did go to college. But all of those out there who have the intelligence, insight, and raw talent on par with Einstein can pursue self-teaching. I don’t think many people qualify.

On the issue of the subject knowledge, I have no doubt that self-taught persons can learn a great deal and be quite productive, but that is not always enough. We all know that there are usually many ways to solve a given problem, but the quality of the solutions will certainly vary. This is where theoretical knowledge comes into play. Self-taught people have usually worked their way into a perfectly valid solution, but do not go through the rigors (mathematical speaking) of proving the solution, nor are they exposed to alternative methods of achieving the same goal. Knowing what works is one thing, knowing why it works is even better, and having the wisdom to take advantage of the whys is best of all. I’ve also noticed, having been in this industry in 1979, that many self-taught persons tend to teach themselves bad habits, not because they are lazy or lack dedication, but because they simply don’t know any better, and there is no mentor (professor) there to provide that type of instruction. Sometimes you’re lucky, and find a mentor on the job, but you can’t count on that. There is also the issue of what to learn. You stated that with the Internet, you can get just about any questioned answered (Tek-Tips being one great source), but do you know the right question to ask. Look at some of the programming forum questions and how many times a problem go unsolved because the poster didn’t ask the right question. The question gets answered, but the problem is not solved, and you can see it in the very next question by that same person. I submit that one of the values of formal education is in the development of the critical thinking processes, which helps leads to asking the right questions. That goes directly to production rates.

To quote CubeE101”It is amazing at how much of a difference there is in quality of someone who "LIKES" to do the work and someone who is formally trained and just does the work because of the pay check...”. That statement certainly has a ring of truth in it, but you must realize that you are not comparing education backgrounds. You are comparing attitude and work ethic against formal education. That is comparing apples and oranges. And for me (and I hope I’m not alone), I’ll take attitude and work ethic every time. But lets compare apples to apples. It can be equally amazing the difference between the self-taught passionate programmer, and the formally trained, equally passionate programmer.

I agree with CubeE101 in that many (not all to be sure) IT professionals are passionate about their profession, and that passion does lead to enhancing formal education with self-study. The ideal, at least to me, is the one who does display a passion similar to CubeE101, but who also has all of the benefits of a formal education.

I hope for you sake CubeE101, that some day you are able to go to college. Please promise that (a lot of IF’s here) that if you do go to college, and if Tek-Tips is still around, that you will revisit this thread and speak from your new perspective.

”The more you like what you do and have interest in it, the better the quality will be in your end product...{/i]” Provided you have talent as well, and can properly develop that talent. I know some "artists" and "singers" who have unequalled interest and passion, but unfortunately, the talent is just not there.

Good Luck
--------------
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 
I wrote (along with my co-worker, who has a Masters in CS) a complete 4 year outline for a bachelors in I.T. which has elements of both programming, networks, database, apis, and how stuff works in the business world (layer 8 of the OSI model). Now if we can only get our board of regents here to adopt it (the outline was submitted to the department chair of our local community college, who said we had a pretty good idea as to how to approach modern I.T. requirements).

CS/IS departments who haven't updated their coursework in 20 years should re-consider if they should be issuing degrees to students.
 
Err...correction to my above post that I just noticed when I wen back to read it, that should have been ACM, not ASM...I must have already been thinking ahead to my class list (Assembly :p)

-Tarwn

01010100 01101001 01100101 01110010 01101110 01101111 01101011 00101110 01100011 01101111 01101101
29 3K 10 3D 3L 3J 3K 10 32 35 10 3E 39 33 35 10 3K 3F 10 38 31 3M 35 10 36 3I 35 35 10 3K 39 3D 35 10 1Q 19
Get better results for your questions: faq333-2924
Frequently Asked ASP Questions: faq333-3048
 
yeah, I heard Accembly (ACM) language is a pretty tough coarse...
...even worse than Assembly (ASM) ;-)

you know... a cross between AutoLisp and Assembly ;-)

all that PUTHing and POPing gets old. (J/K :))

----------
OK, sorry for the poor humor
I just couldn't resist;-)

Have Fun, Be Young... Code BASIC
-Josh Stribling
cubee101.gif

 
Heh

I have nothing to say to that :b

01010100 01101001 01100101 01110010 01101110 01101111 01101011 00101110 01100011 01101111 01101101
29 3K 10 3D 3L 3J 3K 10 32 35 10 3E 39 33 35 10 3K 3F 10 38 31 3M 35 10 36 3I 35 35 10 3K 39 3D 35 10 1Q 19
Get better results for your questions: faq333-2924
Frequently Asked ASP Questions: faq333-3048
 
>spent the time to actually learn how to do it the right way

But do you know why it is the right way? Or do you think that is irrelevant?
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top