19 Replies - 3124 Views - Last Post: 18 December 2013 - 08:08 AM

About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 03:22 PM

In about a month I will finally begin my first semester as a Computer Science major!

I would consider myself an absolute beginner when it comes to programming. I see all of my classmates as pure competition, and I want to come out on top! I know their will be some students that already have experience, and I want to be one of those students.

I refuse to go into class the first week lost. Here are some of the classes I will be taking my first semester:

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 07:35 PM

Tiger Stripes, on 11 December 2013 - 05:22 PM, said:

I would consider myself an absolute beginner when it comes to programming.
...
I know their will be some students that already have experience, and I want to be one of those students.

And you have a month? I'm sorry, a month is a month. You can bone up on the basics. You're not going to have experience next month unless you invent a time machine.
So get hold of some book on C++ programming and start learning the syntax of the language. In a month of self-study, from a cold start, you can learn enough to put yourself maybe two weeks ahead of the course. This will be very useful, since it'll mean you have two extra weeks to concentrate on getting the basics down solid.

Quote

I see all of my classmates as pure competition, and I want to come out on top!

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 08:07 PM

jon.kiparsky, on 11 December 2013 - 07:35 PM, said:

And you have a month? I'm sorry, a month is a month. You can bone up on the basics. You're not going to have experience next month unless you invent a time machine.
So get hold of some book on C++ programming and start learning the syntax of the language. In a month of self-study, from a cold start, you can learn enough to put yourself maybe two weeks ahead of the course. This will be very useful, since it'll mean you have two extra weeks to concentrate on getting the basics down solid.

That is exactly what I'm asking for. I don't expect to be an expert, but I expect to be somewhat ahead.

jon.kiparsky, on 11 December 2013 - 07:35 PM, said:

This is an astounding attitude. What do you expect to gain by this?

Every single person in my classes will be the people I will be competing with for jobs in the future. Keeping this in mind keeps me motivated.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 08:35 PM

Tiger Stripes, on 11 December 2013 - 10:07 PM, said:

Every single person in my classes will be the people I will be competing with for jobs in the future. Keeping this in mind keeps me motivated.

Wouldn't it be more useful to view them as the people who can help you get your head around all of these CS concepts? Especially since, as you point out, they have more experience with the coding part of things than you do, and will therefore have a lot of knowledge that you could benefit from.

Do the math. It's vanishingly small odds that any of these people will ever be directly competing with you for any position. "Beating" them in some fashion gains you nothing. On the other hand, developing solid relationships with your classmates and building a network of good programmers who are well-disposed towards you will probably gain you a great deal.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 08:37 PM

Quote

Every single person in my classes will be the people I will be competing with for jobs in the future. Keeping this in mind keeps me motivated.

In your introductory classes, people will be at three tiers: those who are in the class but are bored and know the material (ie., people who have to take the class because it's a prerequsitie); those who don't know the material but can weed through it; and people who have no business being there. Most people fall into the second category.

By the time CS students are in their junior and senior years, they're all probably on comparable levels in terms of programming abilities. They can all implement the linked list, basic trees and graph algorithms, etc. In the upper-level classes, people are all generally in the same boat, except for maybe a few in a given course who have a focused interest in the subject.

So don't focus on being the next rockstar in the industry. Rather, focus now on building your skills. As you get into your junior and senior years, focus on developing a portfolio, getting experience, and working on large projects. Also focus on developing some competency with in-demand languages at the time. That's what will set you apart, not being able to one-up someone in your intro class on basic C++ syntax.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 08:45 PM

jon.kiparsky, on 11 December 2013 - 10:35 PM, said:

Wouldn't it be more useful to view them as the people who can help you get your head around all of these CS concepts? Especially since, as you point out, they have more experience with the coding part of things than you do, and will therefore have a lot of knowledge that you could benefit from.

This is a very good point. Don't underestimate the value of study groups, or even just being able to call someone and say "Hey, what did I miss last class? I was out sick."

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 09:37 PM

I think you guys may not quite understand what I mean.

jon.kiparsky, on 11 December 2013 - 08:35 PM, said:

Wouldn't it be more useful to view them as the people who can help you get your head around all of these CS concepts? Especially since, as you point out, they have more experience with the coding part of things than you do, and will therefore have a lot of knowledge that you could benefit from.

Do the math. It's vanishingly small odds that any of these people will ever be directly competing with you for any position. "Beating" them in some fashion gains you nothing. On the other hand, developing solid relationships with your classmates and building a network of good programmers who are well-disposed towards you will probably gain you a great deal.

When I say competition, I mean it in the healthiest way possible. Of course I would develop relationships with my classmates, hopefully some great friendships. I have no problem asking my peers for help, and I would have no problem helping out my peers. I do not want to "beat" anyone in any way.

My classmates and I will be a sample of a large population of programming students. Scientifically speaking, the results of a sample should reflect the results of a population as a whole. Hypothetically, I could be one of the worst students in the class, which in theory would make me one of the worst programming students.

Kind of like back in high school, we were all "competing" in a sense, and we didn't really know it. The students in the lower percentile could not get in the big universities, while the students in the top 10% (or whatever it is these days) got automatic acceptance into most major universities.

macosxnerd101, on 11 December 2013 - 08:37 PM, said:

So don't focus on being the next rockstar in the industry. Rather, focus now on building your skills. As you get into your junior and senior years, focus on developing a portfolio, getting experience, and working on large projects. Also focus on developing some competency with in-demand languages at the time. That's what will set you apart, not being able to one-up someone in your intro class on basic C++ syntax.

I'm not trying to "one-up" anybody. Correct me if I'm wrong, but isn't every time you apply for a job a competition? You want to have more experience, a more appealing transcript, and a healthier portfolio than the guy sitting next to you waiting to apply for the same position.

Competition is what motivates people to strive for bigger and better things. Without competition where would the personal computer even be at this moment? Would we be exploring mars? What kind of cars would we be driving.

I think you guys are thinking that I am trying to have pissing contest with my classmates, but trust me, that is definitely not the case.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 10:05 PM

Quote

Every single person in my classes will be the people I will be competing with for jobs in the future.

I don't know about mac, but this is what I was responding to. It's incorrect - statistically speaking, you're not going to be competing with your classmates for jobs.

As for the rest - whatever. This starts to sound like some sort of stump speech, and it seems inane to me, but if it gets you out of bed in the morning, well, knock yourself out. Compete away.

Quote

Correct me if I'm wrong, but isn't every time you apply for a job a competition?

Not in my experience. A company isn't grading you against the other applicants, they're evaluating you to see how well you fit the position and the workplace. It's a subtle distinction, but from my experience in hiring and being hired, a candidate stands or falls on their own merits, and they move forward to a next round based on whether they're right for the job at hand - and not based on comparison to anyone else in the running. And when the field is being narrowed, the evaluation is "how strongly do I feel this person will be right for this job", not "which of these candidates is the 'the best' ". In fact, depending on the metric, I would imagine that it's relatively rare that the 'best' programmer to apply is the one hired. Not because it's a bad thing to be a good programmer, but because it's very rare for the same person to be both the best programmer to apply (on some metric or other) and also the best fit for the position.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 10:16 PM

Quote

I don't know about mac, but this is what I was responding to. It's incorrect - statistically speaking, you're not going to be competing with your classmates for jobs.

It's not just statistically incorrect, it's economically incorrect too. Why do you think competent CS grads are high in demand? Why do you think skilled IT-folk are paid so well? It's a supply and demand issue.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 10:34 PM

You guys must know more than my adviser and my department chair, because both have forewarned me that it is a possibility that I may have to move to get a job in the field that I want to go in. Software engineers may be in high demand as a whole, but not in certain areas. I have searched and searched for local companies hiring software engineers, and their is definitely not an abundance of openings.

I am very sorry it sounded like a "stump speech", I did not come here looking for people to criticize my motivation. And to say competition is not an integral part of society, now that is "insane". I came here seeking advice, but instead it has morphed into an argument that in all honesty has not helped me at all.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 10:40 PM

Quote

You guys must know more than my adviser and my department chair, because both have forewarned me that it is a possibility that I may have to move to get a job in the field that I want to go in.

You may. A lot of it depends on your area.

I'm a college student myself; and while I'm not a CS major, I am a CS minor and spend a good deal of time with a lot of my peers in CS. Jon and I have both been in the industry as well, so we're just sharing our insights. This is a large industry with lots of niches and specialties. If you go in trying to be better than everyone else, it's not the right track. There is always another language, niche, etc., that someone has more knowledge in than you. If you are always competing with everyone else in that sense, you'll wear yourself out. Just strive to be the best you can be. As an economist, I appreciate competition and I am happy to be pedantic about free market economics; however, those who focus on being awesome themselves without outdoing others are generally in good positions to do well. Sorry if you feel this is pointless, but it is a taste of reality.

Re: About to Begin First Semester Majoring in Computer Science, Advice?

Posted 11 December 2013 - 10:49 PM

Well, do as you like. It's possible I've got more experience in the real world than your professors - I'm pretty sure I've got more experience than you do, in any case, and my experience tells me that your idea of what life is like is a fantasy. But it's your life, do your thing, and good luck to you.

As for location, I don't know where you're located now, but it's certainly true that software development is strongly localized in certain cities. There are a lot more jobs in, say {Greater Boston, SF Bay, Portland OR, NYC, LA} than in any random selection of five cities in the US. That's no secret - if you want to have a good set of jobs to pick from, locating yourself in one of those cities will give you more options. That being said, everything mac says above is solid advice, particularly this:

Quote

There is always another language, niche, etc., that someone has more knowledge in than you. If you are always competing with everyone else in that sense, you'll wear yourself out.

All of the great programmers I know, to a one, without exception, are fanatical about helping other people learn and excel and have fun. People who are good and know they are good also know that there is plenty of room for other good programmers, so they try to help everyone else be as good as they can be. The mediocre ones are the ones who see it as a zero-sum game and try to play for position against the others. Don't be mediocre. Be great.