ATTN: Computer Scientists/Programmers
#21
If I had one piece of advice, I'd say make 110% sure that you know what you want to do before you start going down the road to whatever career you think you want. When you first get to college take classes that you need, but aren't in your field of study, sociology, philosophy or psychology for example. Just go through the course offerings and see if anything sticks out at you that you never gave much thought to, then do the same with a list of careers. When I was in HS I was 100% sure that I wanted to be a cop, but now, I have no intrest in that career path. My problem is that I took so many criminal justice electives that it's going to take me logner to compleat college, get the degree I want, and get into the job I want.
#22
mkturbo.com
iTrader: (24)
Join Date: May 2006
Location: Charleston SC
Posts: 15,178
Total Cats: 1,681
Start looking into making some mobile apps for the iPhone or Android. Android apps should not be to hard as they use a variant of Java.
Start programming small things that you think are fun and interesting and then keep making them more complex.
Start programming small things that you think are fun and interesting and then keep making them more complex.
#23
As touted in several replies; math. - It is the closest thing to a language of logic there is, hence the heavy focus on it. Additionally, it teaches multi-step problem solving, leading to an elementary exposure to algorithms.
Don't focus on any particular platform (ie: apps for mobile devices). Yes, there might be money to be found there. However, syntax and platform specific calls/resources/requirements are easy to learn. To be "successful" you need to understand how a computer works (input/output/computation/memory management/storage), problem solving and data manipulation.
Next you need to determine where in the programming field you want to excel. The effective "jack of all trades" is becoming scarce. Do you want to stick w/ mobile apps? Or databases? What about legacy systems, game design, translation applications, control systems, data-mining, etc, ad nausem?
In CS-speak, better (more fully) develop your requirements, then you can develop the specifications needed to design your system (read: education path) to meet your customer's needs. (In this case, customer = you) - In other words, "I want to be a successful programmer" without a clearer vision and plan is like saying "I want to be a successful doctor", then training to be an OB/GYN then attempting neurosurgery.
- L
Don't focus on any particular platform (ie: apps for mobile devices). Yes, there might be money to be found there. However, syntax and platform specific calls/resources/requirements are easy to learn. To be "successful" you need to understand how a computer works (input/output/computation/memory management/storage), problem solving and data manipulation.
Next you need to determine where in the programming field you want to excel. The effective "jack of all trades" is becoming scarce. Do you want to stick w/ mobile apps? Or databases? What about legacy systems, game design, translation applications, control systems, data-mining, etc, ad nausem?
In CS-speak, better (more fully) develop your requirements, then you can develop the specifications needed to design your system (read: education path) to meet your customer's needs. (In this case, customer = you) - In other words, "I want to be a successful programmer" without a clearer vision and plan is like saying "I want to be a successful doctor", then training to be an OB/GYN then attempting neurosurgery.
- L
#27
Want fries with that?
Thread Starter
iTrader: (3)
Join Date: Oct 2009
Location: Twin Cities, Minnesota
Posts: 2,011
Total Cats: 2
Mr. Insanity Wolf, by successful I mean relatively wealthy, nice neighborhood, ability to own a nice car and a project or two. Basically I want to live how I have grown up.
#28
Want fries with that?
Thread Starter
iTrader: (3)
Join Date: Oct 2009
Location: Twin Cities, Minnesota
Posts: 2,011
Total Cats: 2
Hey man, I really appreciate this post. To answer the question, I don't really want to focus in one one specific aspect until I have much more education and experience. See what I like, see what I'm good at and see what I can potentially see myself doing for years to come.
#29
Trig is important? Luckily I was very, very good at trig. I wasn't really good at anything except for Trig in Precalc. I think logically more than academically, if that makes sense. How does this fare with computer science and programming? I "get" things more than I can do them, in an academic sense. That's why I was good at programming and HTML - less plug 'n chug **** and more figuring things out.
You have to learn logic to be a CS person like someone else mentioned. Math is a language of logic. It is the language of the sciences. Also consider that to be conversational in a language it is said that you need to have 1000+ hours of complete immersion. I'd say learning math is no different than learning any language. I'm actually sometimes surprised that CS students dont have to take even more math but I guess it would be ridiculous to expect that. I love math but unfortunately I suck at it. Its the only thing I struggle with in school because my algebra blows.
My girlfriend was a CS student. She switched majors 4 years in. It was simply just too time consuming to manage. She realized that she didn't much like sitting in the computer labs every night programming into the wee hours of the morning. She took AP Calc in HS and struggled through the math requirements for CS but she made it. I remember Linear Algebra blowing her mind the most.
My bet is that your high school isn't challenging you even close to enough to make it worth your while. Get into a college program for your senior year. We have a program called "Running Start" in washington in which you to go a community college for free and earn your first year or two of college credits. I know a lot of people that graduated college before they could legally drink.
#30
Elite Member
iTrader: (2)
Join Date: Jan 2007
Location: Los Angeles, CA
Posts: 8,682
Total Cats: 130
I'm guessing that by relatively wealthy you mean a hundred thousand bucks a year. Well that's not too hard. If you're a decent programmer you can probably make that much in 5 years or so. If you want much more money than that, you shouldn't be a programmer.
#31
+1. Also the first myth that needs to be busted is "go to college and pay retail".
DO NOT PAY RETAIL for a college education. There are many, many ways to reduce the costs without compromising quality.
And DO NOT go into debt to pay for a college education.
One of the best engineers I have ever worked with, does not have a BS degree.
I'm not saying don't get a degree - the technical degrees are the *few* that are worth it (if you don't pay retail).
BTW, MIT's coursework is all available online.
DO NOT PAY RETAIL for a college education. There are many, many ways to reduce the costs without compromising quality.
And DO NOT go into debt to pay for a college education.
One of the best engineers I have ever worked with, does not have a BS degree.
I'm not saying don't get a degree - the technical degrees are the *few* that are worth it (if you don't pay retail).
BTW, MIT's coursework is all available online.
#32
I didn't read the thread, but I'm a programmer and I have a CS degree from McGill. Anyways, most absolutely definitely take CS. Information Technology, Computer Engineering - are all lesser degrees, generally speaking.
You'll take math - Calculus & Linear Algebra. I also had Discreete Mathematics and Abstract Algebra - both are awesome courses.
For classes that you choose I'd recommend Design Patterns and Technical Writing - both are useful in real world but are fairly boring. I took fun **** like Graphics, Crypto and Compiler Design. Hard **** but totally worth it since it was mad fun. Useless in practice
Don't take any language courses... well, maybe C/C++ cause pointers are fun
You'll take math - Calculus & Linear Algebra. I also had Discreete Mathematics and Abstract Algebra - both are awesome courses.
For classes that you choose I'd recommend Design Patterns and Technical Writing - both are useful in real world but are fairly boring. I took fun **** like Graphics, Crypto and Compiler Design. Hard **** but totally worth it since it was mad fun. Useless in practice
Don't take any language courses... well, maybe C/C++ cause pointers are fun
#33
You seem scared of math... well, it's not the kind of math that you do in high school. My memory is a little bit faded, but....
Discrete Math is all about number theory & combinations. Think poker. How many possible combination of 5 cards are there? How many of those combinations are a full house? What is a chance of getting a full house? Etc. It's fun ****.
Abstract Algebra is all about proofs using logic. Proofs about random properties of numbers or sets or whatever. For example, prove that a number is divisible by 3 if the sum of it's digits is divisible by 3... probably a bad example but you get the idea.
What I'm trying to say is that it's a lot less of "solve this equation" and a lot more of "prove this or find a generic solution for this problem"
Discrete Math is all about number theory & combinations. Think poker. How many possible combination of 5 cards are there? How many of those combinations are a full house? What is a chance of getting a full house? Etc. It's fun ****.
Abstract Algebra is all about proofs using logic. Proofs about random properties of numbers or sets or whatever. For example, prove that a number is divisible by 3 if the sum of it's digits is divisible by 3... probably a bad example but you get the idea.
What I'm trying to say is that it's a lot less of "solve this equation" and a lot more of "prove this or find a generic solution for this problem"
#34
Day late and a dollar short but I'll throw this in.
It seems like some have covered the math, math and more math but look at college selection for a second.
What type of CS does your school teach? What program did it evolve from? Lets take 2 schools, 20 miles apart in one state.
School A's CS program came from the math dept and for a long time was a part of the math group. As a result the coursework was math intensive, and the programming classes were taught with this logic in mind. Non math courses included compiler design, algorithm theory and analysis (math heavy but not a math class), object oriented design, Electronic circuit theory and more. CS Majors were two classes off a math minor and one semester of pure math from a dual major. As a result, most graduates went in to jobs focused on low level data processing and design, heavy lifting of algorithms development where speed and accuracy were must haves.
School B's program evolved from the IT Dept, the program was math heavy but not as school A. The focus was taught on how programmers interact with GUI's, algorithms to interact in a customer focus world, less on low level programming design languages and garbage collectors, and more on system interaction and dependency. This is not IT as it is programming, but higher order languages (Java, .NET framework, etc).
So what does it matter? It matters in what you want to do. Where is your focus, what is your love. I'm a school A guy, my best friend from college is a professor at school B and sends me graduates to hire, and I do, as well as hiring from school A. Both sets are needed, what do you feel comfortable in doing. College isn't just about you learning, its about environments you want to be in.
With your professed focus issues and "I get bored" you have to interview the school to be a good fit. I almost didn't make it at school A because I was similar and the program chewed me up hard. While I agree with Jason that you can learn externally, in this market it is hard to get past the recruiters door step without a degree listed on your resume. Take some community college classes, or see if you can audit a few classes at UM TC (for pass fail or similar) and see if you can hang. If you can't, perhaps work for a year or two to mature (we all have to) and then try again. School is a job, and should be treated as such.
-Greer
It seems like some have covered the math, math and more math but look at college selection for a second.
What type of CS does your school teach? What program did it evolve from? Lets take 2 schools, 20 miles apart in one state.
School A's CS program came from the math dept and for a long time was a part of the math group. As a result the coursework was math intensive, and the programming classes were taught with this logic in mind. Non math courses included compiler design, algorithm theory and analysis (math heavy but not a math class), object oriented design, Electronic circuit theory and more. CS Majors were two classes off a math minor and one semester of pure math from a dual major. As a result, most graduates went in to jobs focused on low level data processing and design, heavy lifting of algorithms development where speed and accuracy were must haves.
School B's program evolved from the IT Dept, the program was math heavy but not as school A. The focus was taught on how programmers interact with GUI's, algorithms to interact in a customer focus world, less on low level programming design languages and garbage collectors, and more on system interaction and dependency. This is not IT as it is programming, but higher order languages (Java, .NET framework, etc).
So what does it matter? It matters in what you want to do. Where is your focus, what is your love. I'm a school A guy, my best friend from college is a professor at school B and sends me graduates to hire, and I do, as well as hiring from school A. Both sets are needed, what do you feel comfortable in doing. College isn't just about you learning, its about environments you want to be in.
With your professed focus issues and "I get bored" you have to interview the school to be a good fit. I almost didn't make it at school A because I was similar and the program chewed me up hard. While I agree with Jason that you can learn externally, in this market it is hard to get past the recruiters door step without a degree listed on your resume. Take some community college classes, or see if you can audit a few classes at UM TC (for pass fail or similar) and see if you can hang. If you can't, perhaps work for a year or two to mature (we all have to) and then try again. School is a job, and should be treated as such.
-Greer
#35
What you NEED is highly dependent on what type of programming you're going to do. Basic math skill will get you by for a lot of user application stuff, but trig and some calc would be needed for graphics in games or any type of graphical app. If you choose to do FPGA or DSP programming, you're talking a TON of calc and you'll need at least basic electronics classes, but more advanced classes would be recommended. You'll need things like data structures, maybe database if you plan to do web stuff, signals if you're into that sort of thing, etc. I went to school for Computer Engineering and I would say it's a better degree than CS if you like getting into the real nuts and bolts of the hardware - microcontrollers, DSP, FPGA, embedded systems, etc. Honestly, even if you aren't, I'd say it's a better degree than CS since it gives you a much better understanding of what you're dealing with. Most hardware guys blame the software guys cuz they don't understand the hardware. That's just my opinion, though. Lots of math, lots of science and lots of electronics in CpE.
#36
Being lazy is going to mess you up if you think it will change in college. Case and points:
Friend 2100+ sat college for biometric engineering. Was lazy, failed out now an ambulance driver.
Friend to 2100+ sat accepted to mit, Stanford and uah. Aeronautical engineering. Was lazy and is now mobile tech support.
Friend 2100 plus sat. Biochemical engineering. Now mobile tech support for dell.
Me so lazy I didn't take sat or act. Went to community college got some decent grades and went to major university for cs. Failed out because I didn't do my crap and was lazy.
Just because you are smart does not mean you will do good. Get off your butt now and learn how to focus yourself and get crap done. All the people listed above just floated through hs and learned to b lazy and not study nor apply themselves. They all graduated with 4.0 or near that. Now are working for peanuts.
Friend 2100+ sat college for biometric engineering. Was lazy, failed out now an ambulance driver.
Friend to 2100+ sat accepted to mit, Stanford and uah. Aeronautical engineering. Was lazy and is now mobile tech support.
Friend 2100 plus sat. Biochemical engineering. Now mobile tech support for dell.
Me so lazy I didn't take sat or act. Went to community college got some decent grades and went to major university for cs. Failed out because I didn't do my crap and was lazy.
Just because you are smart does not mean you will do good. Get off your butt now and learn how to focus yourself and get crap done. All the people listed above just floated through hs and learned to b lazy and not study nor apply themselves. They all graduated with 4.0 or near that. Now are working for peanuts.
Thread
Thread Starter
Forum
Replies
Last Post