General

Tech

Advice from Computer Science majors programming?

I am currently 21 years old and a junior and changed my major to computer science. I've taken very basic programming courses before but I don't feel at all confident with even the basics of Java programming--in all honesty, I felt the classes were taught poorly and to be successful, students in those classes needed to be motivated to learn programming on their own time (for example, I took Computer Programming 102 last semester and we were taking quizzes based on powerpoints on general concepts of programming--we never even coded once). I am currently trying to learn Java by myself via Youtube tutorials but often times I feel quite de-motivated as I remember students in high school who were better coders in an AP course I took 5 years ago than probably everyone in my last college programming course. I feel I am too old to learn efficiently (and programming seems to be a constant learning process no matter how good you are) and I have to play catch-up just to be decent. I don't even know if I have the credentials to apply for a CS internship since I just changed majors and took only Programming 101 and 102. I am only slightly above average in math compared to regular college students. As you can see, I am quite lost and I don't even know if I want to go to a graduate school.

What are other things I could be doing to prepare myself for a programming career? How is computer programming different from software engineering? Does programming have opportunities for further advancement as a career? I don't want to approach a salary cap. Are there high-paying programmers in the east coast, or are they limited to big companies in the Silicon Valley? I here stories of programmers with a PhD in Computer Science having to write software at home as a side-project to be able to pay off their tuitions. Any comments to help me get a better grasp of what the field of software development entails would be greatly appreciated. Any forums where I can discuss topics like these with people in the field? I would feel much more confident talking with people with experience.

Thanks.

January 6, 2015

4 Comments • Newest first

immortal192

Thanks, checking them out now!

Reply January 7, 2015
BobR

@immortal192 If you want to go on and do some independent study on programming, you might take a look at this site: https://www.udemy.com/courses/Development/Programming-Languages
They have courses in a lot of different programming languages and tech subjects. They're having a sale where a lot of the courses are $10, and I noticed they have a Java course right now for free: https://www.udemy.com/java-tutorial/?dtcode=i7m5FVL2azIJ

By contrast with what you described as your previous experience with programming classes, this one includes a ton of practical coding lessons, and since it's done by way of online videos you can proceed at your own pace and not have to keep up with a live class. At least it would show you what the real process of programming actually looks like.

Reply January 7, 2015 - edited
immortal192

[quote=Kirbys]Software Engineer here with a few years experience. I'll try to answer some questions but maybe some Sr Engineers can answer better:

What are other things I could be doing to prepare myself for a programming career?
The number one thing you can do is get an internship at some company. It doesn't have to be large, but you have to do some coding related job. This is because when you apply for other internships or full time positions, they will first look at your current experience. If you don't have any then they might not want you unless you have something else going for you (high grades). If you do have some experience you can offset your gpa by a lot. They will ask you about what you did during your jobs and internships though so make sure you know what you're doing. Also, a GPA above 3.0 is recommended but not required. When I got my first internship, my gpa was below 3.0. I had some trouble landing a high paying position but I still got it. Since then after my first internship and upping my GPA my next internship was not difficult at all. Finding a full time job after I graduated was easy and I had multiple offers. To prepare for a career, most people in the field and even professors highly recommend finding an internship that requires programming. The next top thing you can do is up your GPA. Companies don't care too much about GPA but something over 3.5 is highly impressive. I think only Yahoo cares about GPA (3.4+) and Google does too if you're a recent grad (even if they say they don't now, they actually do).

How is computer programming different from software engineering?
It can be seen as something similar. I'd like to think of software engineering as a process. There's design and planning. There's meetings where you work with your peers and superiors. It's much more structured and you learn design principles. For programming I suppose it's just a bigger picture. I've done programming projects with teams before I worked in the field. It's just not as structured but maybe that's because I led a team and I wasn't part of a team.

Does programming have opportunities for further advancement as a career? I don't want to approach a salary cap.
You can become a manager of a project as well as starting your own startup. There's a salary cap of about 150k-200k (150k for higher senior engineers) I guess for the AVERAGE person. That's more than enough for regular people. Starting salary is about 80k if you're not in the bay, and 90k-100k if you're in the bay. This is straight out of university. Also the 80k isn't just 80k. It's 80k if you count salary but there's other things such as sign-on bonus and stock options. I heard facebook gives triple 100k, and I know Yahoo gives 100k/50k/50k for someone who just comes out of college. This also doesn't count holiday bonuses and whatnot. Also some smaller companies have profit sharing. My point is you will have more money than you really need. I don't really know what you need more than 150k a year for unless you really want to live extravagantly.

Are there high-paying programmers in the east coast, or are they limited to big companies in the Silicon Valley?
There's high-paying programming positions everywhere. I don't work in the SV myself (Southern California). They just have higher pay but higher living costs. I have a friend in Ottawa, Canada who is high up in Shopify who makes tons since he's one of the first employees. There's also offices around the world for larger companies. Some large companies are headquartered out of the Silicon Valley like Microsoft and Amazon. You have plenty of options everywhere. I know Riot Games has an office in St. Louis. I think the CIA recruited at the school I went to and they're in VA I think.

I here stories of programmers with a PhD in Computer Science having to write software at home as a side-project to be able to pay off their tuitions. Any comments to help me get a better grasp of what the field of software development entails would be greatly appreciated. Any forums where I can discuss topics like these with people in the field? I would feel much more confident talking with people with experience.
PhD in CS is different from being an engineer. Typically people that do that much schooling are into academia and not really into engineering. There's a difference between school and research and working in the field. This is a little like working as a researcher in a bio lab to advance medicine and practicing medicine. As for forums, I don't know. I've seen questions on Quora and there's a good subreddit for this as well.[/quote]

Thanks, insanely helpful post. I feel much more at ease now. Hopefully I can find a relevant internship, though I don't know what I could bring other than basic Java programming skills...

Reply January 7, 2015 - edited
Kirbys

Software Engineer here with a few years experience. I'll try to answer some questions but maybe some Sr Engineers can answer better:

What are other things I could be doing to prepare myself for a programming career?
The number one thing you can do is get an internship at some company. It doesn't have to be large, but you have to do some coding related job. This is because when you apply for other internships or full time positions, they will first look at your current experience. If you don't have any then they might not want you unless you have something else going for you (high grades). If you do have some experience you can offset your gpa by a lot. They will ask you about what you did during your jobs and internships though so make sure you know what you're doing. Also, a GPA above 3.0 is recommended but not required. When I got my first internship, my gpa was below 3.0. I had some trouble landing a high paying position but I still got it. Since then after my first internship and upping my GPA my next internship was not difficult at all. Finding a full time job after I graduated was easy and I had multiple offers. To prepare for a career, most people in the field and even professors highly recommend finding an internship that requires programming. The next top thing you can do is up your GPA. Companies don't care too much about GPA but something over 3.5 is highly impressive. I think only Yahoo cares about GPA (3.4+) and Google does too if you're a recent grad (even if they say they don't now, they actually do).

How is computer programming different from software engineering?
It can be seen as something similar. I'd like to think of software engineering as a process. There's design and planning. There's meetings where you work with your peers and superiors. It's much more structured and you learn design principles. For programming I suppose it's just a bigger picture. I've done programming projects with teams before I worked in the field. It's just not as structured but maybe that's because I led a team and I wasn't part of a team.

Does programming have opportunities for further advancement as a career? I don't want to approach a salary cap.
You can become a manager of a project as well as starting your own startup. There's a salary cap of about 150k-200k (150k for higher senior engineers) I guess for the AVERAGE person. That's more than enough for regular people. Starting salary is about 80k if you're not in the bay, and 90k-100k if you're in the bay. This is straight out of university. Also the 80k isn't just 80k. It's 80k if you count salary but there's other things such as sign-on bonus and stock options. I heard facebook gives triple 100k, and I know Yahoo gives 100k/50k/50k for someone who just comes out of college. This also doesn't count holiday bonuses and whatnot. Also some smaller companies have profit sharing. My point is you will have more money than you really need. I don't really know what you need more than 150k a year for unless you really want to live extravagantly.

Are there high-paying programmers in the east coast, or are they limited to big companies in the Silicon Valley?
There's high-paying programming positions everywhere. I don't work in the SV myself (Southern California). They just have higher pay but higher living costs. I have a friend in Ottawa, Canada who is high up in Shopify who makes tons since he's one of the first employees. There's also offices around the world for larger companies. Some large companies are headquartered out of the Silicon Valley like Microsoft and Amazon. You have plenty of options everywhere. I know Riot Games has an office in St. Louis. I think the CIA recruited at the school I went to and they're in VA I think.

I here stories of programmers with a PhD in Computer Science having to write software at home as a side-project to be able to pay off their tuitions. Any comments to help me get a better grasp of what the field of software development entails would be greatly appreciated. Any forums where I can discuss topics like these with people in the field? I would feel much more confident talking with people with experience.
PhD in CS is different from being an engineer. Typically people that do that much schooling are into academia and not really into engineering. There's a difference between school and research and working in the field. This is a little like working as a researcher in a bio lab to advance medicine and practicing medicine. As for forums, I don't know. I've seen questions on Quora and there's a good subreddit for this as well.

Reply January 6, 2015 - edited