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.
 
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:
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.
 
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...
 
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 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.
 
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.
 
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.
 
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!
 
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...
 
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).
 
curious about the double major. What were your plans/expectations from also having a graphic design degree?
 
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.
 
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.
 
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).
 
best right now is to program on a phone. made something successful and some company will want to hire you.
 
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.
 
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?
 
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.
 
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.
 
^^ 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:
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.
 
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.
 
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...
 
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.
 
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.
 
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.
 
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.
 
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.
 
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 :-(
 
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.
 
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!
 
Back
Top