I know high school students (with strong science backgrounds) who cracked open comp. Sci texts, browsed newsgroups & now develop (not just code) better than 60% of the CS grads at the Univ Of WA.
These kids pick up programming languages in a jiffy.
Concepts like recursion, unions, general structs are familiar b'se of a solid science (esp. math) background.
Set theory? Yep, they have that covered. Helps them easily understand databases better than most professionals out there. (they can easily identify Oracle's & MS SQL server's weaknesses)
They came across classic problems like the " Traveling salesman Problem", "Hamilton circuits" in their math classes. This ability to discern patterns, dev. Algos & solve probs., IMHO is the #1 skill a good SW developer needs. (Unfortunately most college courses stress languages, basic concepts and mundane projects-- Can you see code monkeys in the making?).
So if you think you have to go to college to learn this stuff, compared to people like these kids, not only are you ignorant, you're blindly arrogant.
(BTW: most of the kids moved onto other fields like Bioengineering, microbiology, medicine & work as developers for big software firms in their free time with no formal software training! Just ordinary kids; not geniuses).
True, many learn a programming language & think they're set. But you're not that much different if you know when to use a bubble sort have never looked under the hood and pondered whether it could be improved upon.
You have to realise Computer Science is a relatively young field that relies so heavily on other sciences that it's possible for someone to pick up a text at B&N (+ some passion) and become an ace.
As for the reinventing the wheel argument...you contradict yourself b'se as much as stuff like sorting routines have been almost exhausted, you still gain a lot by learning the guts of those routines. And in the process learn both their weaknesses & strengths. Another example; if you code in C and have a cool string lib. (e.g the ones used at Stanford) you still learn a lot by using strings the old way. That's how better algos & routines are created in the 1st place. Sure you can cram (you call it learn) when to use a bubble sort but if you get into it's guts you could get inspiration for some other algo even in a totally different branch.
All this can be done in less than 4yrs. For less money.
Now again, there are other benefits to a college education but the ones you give and the manner in which you present them depicts... (well I have to stay civil here.)
To get back on track, it's easy to learn the right concepts by simply contacting some Comp sci instructor at a reputable college to recommend the right materials and studying them in no short time.
What bothers me is the fact there used to be the 3 rules of software dev. 1- RTFM & think before nagging anybody. 2- Do not be afraid to ask. 3- Teach someone else (or encourage them).
It's the last one, #3 that is dying out.
As for the main parent post, create a portifolio. Create useful programs you can present. For ideas just look at the kind of problems you solve on the help desk. Master 1 or 2 languages. I recommend C/C++ b'se then you can easily pick Java, Python, Small-talk, C#, et hoc genus omne.
Learn concepts like OOP & before you dive into something like Oracle or SQL Server dev. read up on the Practices & principles of databases. Learn the standards before jumping deep into vendor implementations. I stress read. If you don't enjoy doing that try VB.
I know high school students (with strong science backgrounds) who cracked open comp. Sci texts, browsed newsgroups & now develop (not just code) better than 60% of the CS grads at the Univ Of WA.
... (well I have to stay civil here.)
These kids pick up programming languages in a jiffy.
Concepts like recursion, unions, general structs are familiar b'se of a solid science (esp. math) background.
Set theory? Yep, they have that covered.
Helps them easily understand databases better than most professionals out there.
(they can easily identify Oracle's & MS SQL server's weaknesses)
They came across classic problems like the " Traveling salesman Problem", "Hamilton circuits" in their math classes.
This ability to discern patterns, dev. Algos & solve probs., IMHO is the #1 skill a good SW developer needs.
(Unfortunately most college courses stress languages, basic concepts and mundane projects-- Can you see code monkeys in the making?).
So if you think you have to go to college to learn this stuff, compared to people like these kids, not only are you ignorant, you're blindly arrogant.
(BTW: most of the kids moved onto other fields like Bioengineering, microbiology, medicine & work as developers for big software firms in their free time with no formal software training! Just ordinary kids; not geniuses).
True, many learn a programming language & think they're set. But you're not that much different if you know when to use a bubble sort have never looked under the hood and pondered whether it could be improved upon.
You have to realise Computer Science is a relatively young field that relies so heavily on other sciences that it's possible for someone to pick up a text at B&N (+ some passion) and become an ace.
As for the reinventing the wheel argument...you contradict yourself b'se as much as stuff like sorting routines have been almost exhausted, you still gain a lot by learning the guts of those routines. And in the process learn both their weaknesses & strengths. Another example; if you code in C and have a cool string lib. (e.g the ones used at Stanford) you still learn a lot by using strings the old way. That's how better algos & routines are created in the 1st place.
Sure you can cram (you call it learn) when to use a bubble sort but if you get into it's guts you could get inspiration for some other algo even in a totally different branch.
All this can be done in less than 4yrs. For less money.
Now again, there are other benefits to a college education but the ones you give and the manner in which you present them depicts
To get back on track, it's easy to learn the right concepts by simply contacting some Comp sci instructor at a reputable college to recommend the right materials and studying them in no short time.
What bothers me is the fact there used to be the 3 rules of software dev.
1- RTFM & think before nagging anybody.
2- Do not be afraid to ask.
3- Teach someone else (or encourage them).
It's the last one, #3 that is dying out.
As for the main parent post, create a portifolio.
Create useful programs you can present.
For ideas just look at the kind of problems you solve on the help desk. Master 1 or 2 languages.
I recommend C/C++ b'se then you can easily pick Java, Python, Small-talk, C#, et hoc genus omne.
Learn concepts like OOP & before you dive into something like Oracle or SQL Server dev. read up on the Practices & principles of databases. Learn the standards before jumping deep into vendor implementations. I stress read. If you don't enjoy doing that try VB.