DEV Community

Discussion on: What's your advice for future CS students?

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

Quick thoughts:

  • If you can get courses where you happen to be going on basic set theory and graph theory without needing a bunch of prerequisite courses, try to make a point to take them. Both are exceedingly helpful for understanding a lot of common data structures and algorithms used very widely in computer science. Statistics is also a good math course to pick up as an elective, but that's more because of it's general utility in any engineering focused field, not just CS.
  • Make certain you get an internship. Even if it ends up being unpaid at a company you really don't like. Almost nobody wants to hire a CS student who has no applied experience, and an internship is a good solid way to get such experience. Alternatively, do everything you can to make (useful) contributions to FOSS projects (this gives you a similar demonstration of practical experience you can put on a resumé, which one is better depends on where exactly you're applying, but a lot of big name companies still seem to favor internships over FOSS contributions).
  • Try to make a point to learn to use version control software, even if you have to do it on your own time. One of the biggest complaints I here out of people hiring developers is that the new hires have no idea how to use version control properly. Git is probably your best bet here, as it's very quickly becoming the de-facto standard and it also has reasonably good tutorials and supporting documentation. The aforementioned graph theory will help with this too (many of the large-scale VCS operations are easiest to explain in terms of manipulating a graph representation of the sequence of changes).
  • Learn to use Linux or BSD. The likelihood is consistently decreasing that you will not need to know about UNIX-like environments when you eventually get a job as a developer (pretty much, unless you're doing only business software or bare-metal embedded work, you will almost certainly have to use Linux or BSD at some point).
  • Diversify your skill sets as much as you reasonably can, especially if you're in the US (for some reason, a lot of universities here still seem to think that all you need for CS is Java and C++, which is horribly wrong). This is especially important for employability, as it's becoming rarer as time goes on for any given project to only need one or two languages.
Collapse
 
lautarolobo profile image
Lautaro Lobo

I would say that Git will help you to save your University projects, upload them on GitHub, don't lose them! You'll miss them if not.

Collapse
 
bartoszburgiel profile image
Bartosz Burgiel

And you can always attach your projects to your CV then which would prove your experience and knowledge :)

Collapse
 
lbeul profile image
Louis

Thanks! Especially the last point you mentioned is something I'm really curious about! Right now I just wrapped my head around WebDev and I enjoy it. However, I often feel like there are so many cool fields and technologies out there I never tried myself at!

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

Even finding a specific field that you do well with, you can often still diversify pretty far within that field.

For example, if you really enjoy web development, you might look into learning other web frameworks you've never used before, both client-side (React, Angular, Vue, Svelte, Ember, etc) and server-side (ASP.NET Core, Django, Rails, Laravel, Phoenix, etc).

Aside from what I mentioned above about projects more often using many different technologies, this makes it more likely that you'll have the set of skills needed by any given employer in your field of choice, and also shows them that you're willing to continue to learn when you need to.

Collapse
 
jason_espin profile image
Jason Espin

I disagree with the internship part. Here in the UK, an industrial year or internship is often a wasted year and as someone who did a 3 year degree and found a job a week after University finished I've never had any issues finding a really good job. It's a developers market right now and there are shortages everywhere so scrap the industrial year / internship and go straight into the working world. The sooner you start earning the sooner you get the real developer salaries

Collapse
 
lbeul profile image
Louis

I think of internships as little real world tests. Take BackEnd Development for example. Maybe I'm super into it and like doing it besides my study, but it is really something I want to do all day long for years? Through the right internship I can quickly validate that decision for myself!

It's also more common in Germany to do an internship for only one semester or even in your semester holidays, which are like 2,5 months.

I think it heavily depends on the company you're working at! Google and some other big players also offer 10-week-long internships to give you a first impression of the different roles there. I think that's not only helpful for your future decisions but also a big plus in your CV!

I did an internship in a small app-agency a year ago, having absolutely zero experience in real development and being just capable of writing HTML and CSS. In just four weeks full-time work on my own project (a prototype for some idea of the agency) I gathered a huge knowledge about JS, Webdev, databases and so on!

They even asked me if I was interested in dropping out from school to make my way as a self-taught developer there.

Sometimes it's not just about "being employable" asap, but more about learning and experience!

I also know a lot of graduates that started with way higher salaries than their competitors, just because they had work experience!

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

I guess it's a matter of cultural perspective. Here in the US, it's somewhat challenging to get a job as a developer right out of college unless you either live in a highly tech focused city (like San Francisco or Seattle) or had an internship, especially if you went to a university that isn't known for it's CS program. Things have been shifting, slowly, away from that state of affairs, but I know quite a few people here who went to college to become developers, and haven't been able to find jobs relating to that at all even multiple years after they graduated.