CS major going into final year.....

akg102

Limp Gawd
Joined
Aug 13, 2011
Messages
210
Hey, first post but have been browsing for some time.

As I said, I'm entering my senior year and double majoring in Computer Science and Graphic Design/Comm. I have a bit of knowledge and ability in Photoshop, Illustrator, etc...

Most of my programming experience has been in Java and C++, but I feel as though I simply don't know enough. I'm more comfortable in a hardware tech role but don't know if that is what I'm looking for in the long haul.

I'm honestly scared at this point because I basically have a 4.0, but pretty sure I know close to nothing compared to any competent employee. I don't know what to expect when searching for a job and I don't feel like I have enough experience to market myself in any other way than, "I'm a hard worker and eager to learn."

I have no desire to become a graphic artist and remain poor the remainder of my life, but I don't know that my programming ability/knowledge/experience is up to par. I'm unsure of what would make me attractive to a potential employer......what skills I need to learn and how to improve myself over this last year before I have to get a full-time job.

I'd appreciate any suggestions you have or experiences you would share with me. I'm not sure what role my skill set would fill.....

Thanks in advance.
 

orangeblue

Limp Gawd
Joined
Oct 16, 2009
Messages
325
Internships! If your advisers / professors haven't been harping on you to do them, then they've been doing you a huge disservice. Employers general expect much less industry skills from you at that level as they understand that you're still learning. Plus often times they use internships to find full time employees once they graduate. With a good GPA and strong Java/C++ skills you shouldn't have a problem finding one; just check out any career fairs your school hosts as well as their career resource center (most universities have one). Other important skills to have: good understanding of data structures / algorithms, networking/databases, Object-Oriented programming and discrete mathematics (obviously there's a lot more, but these are some key ones). If you're going the graphics design route, having a portfolio of some of your work (either done on your own, or through class projects), would also be great.

If you don't have time to do an internship, another great way to show your skills would be through personal projects (contributing to open-source projects, building a mobile app, webapp or game, doing programming puzzles / competitions, etc.). This tells employers that you're very motivated and gives you something interesting to talk about in interviews.
 
Last edited:

Jesse B

[H]ard|Gawd
Joined
May 30, 2010
Messages
1,631
The problem I find (I'm currently enrolled in CS) is that you get taught to code rather than program. What I'd advise is that you site down with a nice book (or several) and try to reinforce the fundamentals of programming. That will make any language much easier to learn and excel at. There's a thread in the Programming forum suggesting books, check it out.

Also, internships are a fantastic idea. You get real world experience, you don't have a whole lot of weight on your shoulders, and if you impress them you're basically guaranteed a job.
 

xSnowmaNx

Gawd
Joined
Aug 11, 2004
Messages
708
I don't know what distinction you're trying to make with "get taught to code rather than program".

Maybe you're thinking of getting taught to code vs solving problems or software engineering...
 

Crash250f

Gawd
Joined
Nov 9, 2007
Messages
640
I think I'm pretty much in the same boat. At my college there was a very heavy emphasis on the problem solving portion, but very little emphasis on the coding/programming portion. I understand how important problem solving is, but it worries me that I don't know shit about things like databases, networking, or even organizing a program larger than a thousand lines of code and a couple files. Yes, I've written a generic quicksort in C, implemented Dijkstras in Java and 50 other similar things, but that just seems like a very limited subset of the skills I'll actually need to be a useful employee.

I guess all I can say is you're not the only one feeling like that.
 

berky

2[H]4U
Joined
Aug 28, 2001
Messages
2,233
I don't know what distinction you're trying to make with "get taught to code rather than program".

Maybe you're thinking of getting taught to code vs solving problems or software engineering...

yeah, i assume he means that a lot of times you get taught the ins and outs of a particular language, and you know how to create "code" in language X. However, that means nothing regarding whether you know how to solve problems or create a full-fledged application with proper coding structure and best practices of code-reuse/modularity.
 

orangeblue

Limp Gawd
Joined
Oct 16, 2009
Messages
325
I think I'm pretty much in the same boat. At my college there was a very heavy emphasis on the problem solving portion, but very little emphasis on the coding/programming portion. I understand how important problem solving is, but it worries me that I don't know shit about things like databases, networking, or even organizing a program larger than a thousand lines of code and a couple files. Yes, I've written a generic quicksort in C, implemented Dijkstras in Java and 50 other similar things, but that just seems like a very limited subset of the skills I'll actually need to be a useful employee.

I guess all I can say is you're not the only one feeling like that.

I would recommend reading up on Object-Oriented programming (yes, there are other paradigms, but OO is the main one used in the industry) and design patterns (some people say they're detrimental, but if you use them properly, they can really help you write good OO code). The next step would be to practice these skills with some projects. Try making a simple game (RPGs are good, as well as board games, card games, etc.) with a GUI interface. If that doesn't sound interesting, try building an iPhone/Android application. Also don't be afraid to work on some open source projects. In addition to being another good way to develop your skills, reading and analyzing code written by more experienced programmers is a great way to learn.
 
Joined
Oct 8, 2005
Messages
2,629
Internships and side projects are very important, the amount you learn doing them often matches or exceeds what you learn in school. The real problem is that there is just SO MUCH to learn in the field of computer science/software engineering, that really the goal of my degree programs is to given the students all the problem solving skills, and the ability to quickly pickup new languages. IMO, there is no reason to only look for jobs in languages you know, because often times an interviewer will appreciate it when a candidate has the viewpoint of the language being merely a tool to their problem solving. Now, obviously that is within reason, as even though I do know a little bit of COBOL, I would have to be in a really dire situation to take a job as a COBOL programmer.

Before I ever got an internship I had taken all the core classes - data structures, logic and program verification, software design, etc. But once I started working it is amazing how much more I learned. Because of that experience I was better with algorithms, design, familiar with industry practices.

I was able to get multiple job offers because of that experience

Besides just the knowledge and experience gained from internships and personal projects, they are also helpful in landing jobs because when you go to that career fair, or talk to a company's recruiter they would much rather hear about interesting projects you have worked on than if you have used C++ before, or know how to debug something using gdb.
 

compslckr

[H]F Junkie
Joined
Jun 5, 2002
Messages
8,915
do internships and look for entry level positions at big employers. big employers are great because you get to work with some amazingly smart people and learn from them.

networking is a great area to learn more about. from my experience comp-sci majors either go towards programming, hardware engineering, networking or systems engineering (mostly linux admin and the like).

Sites like microsoft, google, and amazon have job postings on their websites. Take a look at what they are looking for, brush up in those areas, make sure your resume is as strong as possible (internships, volunteer work, etc) and apply!
 

Mr.Dospod

n00b
Joined
Feb 7, 2011
Messages
54
Internships ++
I have a real crappy gpa from family issues, slacking off , work , etcc this last semester , but scooped up a programming internship at the campus research institute, and already in a month I'm learning so much more than I have the past 2 semesters in college. I'm now learning perl, javascript , html5, css3, catalyst , git , etc... I still think my current project is way over my head but if I never received this I know I would be for a even ruder awakening after college...
 

Latex

Weaksauce
Joined
Jan 21, 2004
Messages
85
It's been said once, and I'll say it again... in my opinion internships are probably one of the most important things you can do. If you don't get at least one done while you're in college you are seriously missing out. Employers will look upon you more favorably, you'll get a feel for how the job ACTUALLY works, and honestly...you'll learn a ton. I don't care who you are or what your GPA is...seriously....a ton (Disclaimer: Assumes you get a real internship and not a coffee fetching crapternship).
 

eon

2[H]4U
Joined
Oct 11, 2003
Messages
2,218
curious about the double major. What were your plans/expectations from also having a graphic design degree?
 

akg102

Limp Gawd
Joined
Aug 13, 2011
Messages
210
curious about the double major. What were your plans/expectations from also having a graphic design degree?

Graphic Design/Comm was my only major until my junior year. I went to school on an athletic scholarship to play a sport and ended up red-shirting my freshman year. This gave me an extra year of eligibility and an extra year, into which, to fit another major.

Going into school, my plan was to design/maintain websites. I was a bit mislead because there is only one course in the entire GCOMM program that has anything to do with website design/implementation.

Because of this, I decided to pick up CS as my 2nd major and hopefully expand my knowledge base. Somewhere along the way I lost sight of everything website related and just wanted to pursue something involving software development.

Unfortunately, I have a personality that doesn't give itself to mastering anything. I'm constantly going through stages, in which, I am completely obsessed about something. I completely saturate myself with information about a given topic until my obsession turns to something else because I need some sort of tutelage to learn more.

These obsessions aren't the kind that stay within the CS world. Firearms, Woodworking, the Protestant Reformation, Golf, Fitness/Nutrition etc......are all part of this. (Weird variety, I know) Usually if I haven't gone through some sort of obsession, I have very little knowledge on the subject. With that said, almost all of my programming experience comes from homework-like assignments. I'm a good student, but because I always have something else that has my interest, I only do what is required to get an A.
 

caldera

n00b
Joined
Aug 17, 2011
Messages
14
Coding/development in college is very different from coding/development at an actual job. Your real skills come from the latter. My suggestion is to first get your foot in the door and gain job experience. I wouldn't be scared because everyone (graduates) is in the same boat, including one particular graduate from MIT, if memory serves.
 

ameoba

Supreme [H]ardness
Joined
Jan 9, 2001
Messages
6,413
Internships!

/thread

Your 4.0 degree does *nothing* to separate you from the army of inexperienced/hardly experienced employees looking for any entry level position. It does, however, make you stand out at the top of the pile for internships - internships, in turn, help you stand out when looking for your first job.

Start looking on internships that you can work through the school year/next summer. In the fall, even after just a Summer internship, you'll be *far* more desirable to employers (although, TBH, in most of the country, the job market's still coming back from a slump - you might have to work something out of the industry for a while until you get your feet in the door).
 

TheBuzzer

HACK THE WORLD!
Joined
Aug 15, 2005
Messages
12,956
best right now is to program on a phone. made something successful and some company will want to hire you.
 

FrEaKy

[H] Movie and TV Show Review Guy
Joined
Jan 31, 2003
Messages
13,918
Side note, get to learn JQuery and concurrent language types, such as JSON. Alot of companies are looking for Javascript and JQuery knowledge now and someone in your field who knows photoshop and the like will defenitly benefit from the extra knowledge!

Learn one for of database management as well, weather SQL Server or MySQL.
 

akg102

Limp Gawd
Joined
Aug 13, 2011
Messages
210
Side note, get to learn JQuery and concurrent language types, such as JSON. Alot of companies are looking for Javascript and JQuery knowledge now and someone in your field who knows photoshop and the like will defenitly benefit from the extra knowledge!

Learn one for of database management as well, weather SQL Server or MySQL.

Thanks for the input. I'm currently taking a Database Systems Management class. We'll be working with Oracle throughout most of the class.


And I believe everyone 100% when they say that my GPA is nearly irrelevant when it comes to finding a job. I can vouch for the very fact. Working for lower pay is certainly not beneath me. I'd be grateful for any sort of experience and tutelage I could acquire from an employer.

Do companies consider hiring interns that have already graduated?
 

ShadowStriker

[H]ard|Gawd
Joined
Oct 8, 2009
Messages
1,669
Side note, get to learn JQuery and concurrent language types, such as JSON. Alot of companies are looking for Javascript and JQuery knowledge now and someone in your field who knows photoshop and the like will defenitly benefit from the extra knowledge!

Learn one for of database management as well, weather SQL Server or MySQL.

If you're heading towards the web application side, you should also learn C# and MVC3, its pretty big in Microsoft shops.
 

shadowkill

n00b
Joined
Sep 3, 2006
Messages
6
The advice on here is good but here's something from someone who hires devs:
Learn how to work with a group - I don't care how good you are, if you can't work with a team you're pretty worthless to me. My employer (an insanely large and powerful software company... I'll let you guess who) doesn't care for prima donnas.
You're right on the not knowing how to code because unless your doing something insane, like kernel programming or search algorithms and the like, a lot of your education simply won't be used.
Learn some of the newer program management types like Agile, TDD, and things like that, because I'll tell you straight up, if you show me a guy from UW with a 4.0 who knows nothing about teamwork or a guy from DeVry who really knows Agile, Continuous Intergration and the like, unless the DeVry guy simply screws up in our interview loop he's likely going to get an offer. Someone I don't have to teach from the ground up saves me and my org money. Money that we're more than happy to PAY YOU since you'll be providing a decent ROI much more quickly than the other guy.
That brings you to a chicken and the egg type question: No one will hire you (for something decent) without experience but no one will give that experience. Get your name on some open source stuff. Learn how to write stuff for these new almost ubiquous smartphones. If you say "Oh yeah, I also have an app in the Google and MS phone apps stores." it shows some initiative and that you can actually not only code but plan and execute as well which is incredibly valuable.
I guess my bottom line is this: Programmers are a dime-a-dozen - developers (people who understand that stuff I wrote above) ARE NOT and we and other top tech firms will do what it takes to get a good one.
 

BDV

[H]ard|Gawd
Joined
Dec 12, 2006
Messages
1,957
^^ Stop asking stupid miniature blender questions during interviews :D

And for the love of god... stop asking about red black trees :p

Other than that, spot on :)
 
Last edited:

Blazestorm

Supreme [H]ardness
Joined
Jan 17, 2007
Messages
6,940
The advice on here is good but here's something from someone who hires devs:

I'm just curious, what would you think of the DigiPen program? https://www.digipen.edu/academics/degree-programs/real-time-interactive-simulation/

It has some classes/focus on game development, but most of it is standard CS class material. The one difference between a regular BS degree is we have a team game project every year. Usually the Freshmen/Sophomores work in smaller teams but lately we've been seeing Junior/Senior teams with 5-6 developers, 2-3 artists, game designers and producers. The other thing is except for a few exceptions, everything is written from scratch... the only API's we are allowed to use are things like Win32, DirectX, OpenGL, FMOD... we don't use any pre-built engines like Source, Unity, Unreal etc. And if you care about languages we learn x86 ASM, C, and C++ mostly...

So we're writing code that other people have to work with, read, debug etc. (So our teams do have things like coding standards set in place), along with using tools that real developers will be using.

But say you didn't really want to go into game development and started looking for jobs elsewhere. I have a feeling it doesn't make much of a difference to most companies, but I'm still curious. I remember reading something on hiring at joelonsoftware.com and he sounded kinda snobby like they only hire from Ivy League schools or some crap.
 

Snowpea

Limp Gawd
Joined
Sep 6, 2011
Messages
357
You're honestly not going to become competent when you're in school. You only really learn to program on the job, but what you can gain from the hefty tuition (aside from a piece of paper) is theory. All you can really hope is to gain a strong grasp of the fundamentals of programming, and hope to be smart enough to apply what you learn when you're actually coding and problem solving in the workplace.
With that said, you can however, at least gain a basic understanding of certain design patterns and techniques that you will be using in the workplace. I would try to prepare by learning and getting familiar with a bit of everything, like how to use an MVC, or how to use a debugger, etc.
 

Blazestorm

Supreme [H]ardness
Joined
Jan 17, 2007
Messages
6,940
You're honestly not going to become competent when you're in school. You only really learn to program on the job, but what you can gain from the hefty tuition (aside from a piece of paper) is theory. All you can really hope is to gain a strong grasp of the fundamentals of programming, and hope to be smart enough to apply what you learn when you're actually coding and problem solving in the workplace.
With that said, you can however, at least gain a basic understanding of certain design patterns and techniques that you will be using in the workplace. I would try to prepare by learning and getting familiar with a bit of everything, like how to use an MVC, or how to use a debugger, etc.

If that's how a traditional CS program really is... I'm glad I avoided it...
 

eon

2[H]4U
Joined
Oct 11, 2003
Messages
2,218
I really dont think solid CS programs are that bad. Yes they could do a better job of putting more focus on real world software development but its not a big a leap to transfer your academic programming skills and experience into a entry level development job.
 

Thuleman

Supreme [H]ardness
Joined
Apr 13, 2004
Messages
5,833
I'm honestly scared at this point because I basically have a 4.0, but pretty sure I know close to nothing compared to any competent employee.
That's the same for pretty much anyone coming out of college. Higher education isn't about whether you learned real world skills, it's about broadening your horizon and showing that you were able to commit to something for 4+ years.

Graphic Design/Comm was my only major until my junior year. I went to school on an athletic scholarship to play a sport and ended up red-shirting my freshman year. This gave me an extra year of eligibility and an extra year, into which, to fit another major.
Let me be the first, and no offense to you personally, to call your CS major out as major bullshit then. In any decent school you can't go from two years of liberal arts education (design/comm) to tacking on a CS major within one year.

Traditional CS majors are all about math, stats, and some coding, even if you manage to take 18 credits a semester for two semesters you will not be caught up with Calculus I & II, Linear Algebra, Differential Equations, CS I & II, Assembly, OS, Software Design, Statistics, Senior Project, yadda yadda yadda.

So ..., something doesn't quite add up.
 

akg102

Limp Gawd
Joined
Aug 13, 2011
Messages
210
That's the same for pretty much anyone coming out of college. Higher education isn't about whether you learned real world skills, it's about broadening your horizon and showing that you were able to commit to something for 4+ years.


Let me be the first, and no offense to you personally, to call your CS major out as major bullshit then. In any decent school you can't go from two years of liberal arts education (design/comm) to tacking on a CS major within one year.

Traditional CS majors are all about math, stats, and some coding, even if you manage to take 18 credits a semester for two semesters you will not be caught up with Calculus I & II, Linear Algebra, Differential Equations, CS I & II, Assembly, OS, Software Design, Statistics, Senior Project, yadda yadda yadda.

So ..., something doesn't quite add up.

CS was my minor going into my junior year. So, I bumped it up to a major before my junior year started and am currently in my 5th year.

Basically, it went from a minor to a major and I've been catching up for the past 3 years. 80% of my Fresh/Soph courses were GenEd requirements. It was an easy switch, just required a bit more work. Sorry, I should have been more clear in my original post.
 

akg102

Limp Gawd
Joined
Aug 13, 2011
Messages
210
I'm currently taking a Database Systems Management class and really like it so far. We're working with SQL in Oracle.

What is the average DBA's day like? How do you work your way up to a DBA job? What skills should I learn?

Thanks again for all of your patience.
 

45kicks

[H]ard|Gawd
Joined
Feb 17, 2001
Messages
1,482
I am not sure what a full fledged DBA does, but they would typically manage the DB, make sure its running, accounts are locked out, monitor for intrusions, etc. In some shops, the DBA also does the DB coding, building the database, writing triggers, procedures, and other cool things. It all depends on where you work what roles you are going to take on.

my opinion, only worked closely with the dba's a few times...or at least what we called the dba's.
 

Snowpea

Limp Gawd
Joined
Sep 6, 2011
Messages
357
i'm going to be blunt but i'd have to say that a DBA's life sucks. You basically sit in front of a command line SQL terminal all day and either write complex queries to fetch data, (basically at anybody's beck and call) or you write tedious stuff like stored procedures and backup scripts etc. All in all, not fun :-(
 

eon

2[H]4U
Joined
Oct 11, 2003
Messages
2,218
becoming a legit Oracle DBA is no walk in the park. I sometimes go to the Oracle forums for help and the people there make me feel like I'd need to know 10x more than what I know now to reach their level.

And for most DBAs you are not typically writing queries and such but managing the database systems themselves. With Oracle this usually means you also need to have in depth knowledge of Unix as your constantly doing bash commands and scripts. At my job the DBA also doubles as one of the Unix admins.
 

Ihaveworms

Ukfay Ancerkay
Joined
Jul 25, 2006
Messages
4,521
I was worried about the same thing OP. I had a 3.97 when I graduated and was worried when I started seeing that the job market wanted experience using X and Y framework. Stuff you don't really get into at school. Luckily, I found a job at my level. Even though it is using .NET (something I never used), if you use the concepts you learned from school, you should be able to pick up languages at a decent speed. Also, lots of googling, stackoverflow, and asking the other guys for help!
 
Top