Hey developers out there!
I guess at least some if you went to university and studied computer science or software engineering. What are your tips and advices for those of us who are also planning to do so?
What parts were especially hard for you?
What do you wish you've had paid more attention to when you look back?
Please share your wisdom with the next generation! :)
Feel free to fill the comment section with any advice you have, also related to internships, semesters abroad or something like this.
Top comments (25)
Quick thoughts:
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!
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.
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.
And you can always attach your projects to your CV then which would prove your experience and knowledge :)
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
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!
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.
Stay curious. There is a lot of learn, now and in the future. Staying curious will only help in the in school, and after it.
Go beyond the curriculum. Odds are your school wont teach you a bunch of different languages (JavaScript, Python) nor will they teach you a bunch of different tools you may need (like git, github, Linux). Also, doing more to show off only helps down the line when you graduate. Build stuff if you have time, save all of it with the idea of showing it off when you go on the job search.
Try to be a jack of all trades as reasonably as you can. Not specializing will only help keep more doors open, staying flexible helps you learn and grow faster than if you stick to just one thing.
Some math is overrated. I had to learn calculus and physics, yet haven't touched either since graduating. If you don't plan on going into anything related to physics, you wont ever need this knowledge.
Some math is critical. "Computer science math", IE data structure, and algorithms is the single most important thing to learn from school. It applies in all code, all languages, and all use-cases.
Be a team player. Learning how to work with others is an excellent time to learn team dynamics. Odds are you will end up working with other people, so learn to be nice π
Take advantage of the schools networking and job opportunities. This is hands down the #1 reason to go to school, as colleges usually provide services to help with the job search. Take advantage of job fairs, internship opportunities, scholarships, and networking opportunities. This is the closest thing to a "sure-bet" way of getting a job or at least an internship. Don't expect to be 100% hire-able when you graduate, but getting experience before graduating sets you a head above the rest.
Finally, enjoy it! Going to college/higher education seems like it will take forever, but before you know it it will be over. Stick to your guns, work hard and stick it out. (Usually) no one forces you to go to college, and its totally fine to not go through with it, but ask yourself if not doing it is worth it. Computer Science is all about learning, why not get something official out of it?
I think I'm already going beyond the curriculum as I'm tinkering a lot with web technologies like React, graphQL and so on. I'm also quite familiar with git & GitHub already.
However, I really look forward to university as I hope to gather a solid, independent foundation of skills and knowledge to build on top of!
Sounds like your on the right path, and have the right mindset for the career. Even if college doesn't go over everything you think you need to know, it will give you context to a lot you already know, or never thought about.
If you already use git and github, definitely put all your work, projects, notes (if you take them) on it. Not only does it give you more practice, it also gives you more to show off later. Don't worry about it being "not up to par", no one expects you to be uploading perfect code if your just starting out haha.
If you get to choose some classes, and want to focus on web development, I suggest looking into classes related to web development and networking if available.
As a CS student myself, I would say:
edit: I forgot, start a blog!
I often feel like I'm literally the only CS-interested guy who isn't interested in gaming (shame on me)!:D
Last summer I worked as a WebDev intern for an insurtech agency in Cologne, Germany and next Summer (right before my study begins) I'm going to do another one, also WebDev.
I really want to go to university because I
I often thought about the pros and cons of going to an university or not and I always ended up to at least try it, as it's basically free in Germany.
Well, to me it seems like you are a good fit for CS! Graphs, algorithms, and a scientific approach are the things I like the most. I struggle with math, I can't just sit all day long applying theorems... but sometimes I do... (freaking Physics!). Oh and yeah, we had a teacher that said the first day in class: "Who's here because of game development? Well we won't be writing games. We won't do that." π Many hearts broked that day
~ Tips based off of my experience
NOTE: This path requires you to study harder but hey, you're not in debt :P
I live in Germany and I don't really think that studying somewhere else could be cheaper in any way. As German citizen, the semester fees range between 90 and 300 euros, already including public transportation in your university's area.
Based on your parents' income, Germany offers you an interest-free student loan to cover your living cost and the by far coolest thing about it is that you just have to pay back 50% of it afterwards, the rest is paid by the government after you graduated.
However, your story sounds so damn cool! I did an apprenticeship in banking and often thought about doing an microfinance internship in a third world country! If you ever write an article about your time over there, I'd be happy to read it!
You did that? Quite an adventure!
As a Systems Engineering student, i would look back in keeping my programming side projects as a way to learn how to code and work without the fear of doing mistakes, since that's a good way to learn.
Try to rush the science and non CS subjects first so you can learn by doing if you land a job while studying in all the programming stuff.
Work will demand you to learn even more useful stuff, but don't feel overwhelmed and take it on your own pace
Yeah that's exactly my strategy of choice: Cracking every bit of math-related and sciency stuff as early as possible to build my real world skills on top of that!
Persevere. There is always something to learn, no matter how much experience you have. Persevere through the challenges and keep up a positive attitude!
Failures = Steps to success. Don't be afraid to fail. Learn from your failures. Without them, you won't know what to avoid and what to do to get you to finally succeed.
Learn source control. Normally not taught in school. It's crucial for professional work.
Learn soft skills too. Written and verbal communication skills, ability to work well with people, being collaborative are all skills that will earn you a promotion faster and will generate more $$$.
Learn project management. Software is complex and majority will require adequate project management. Again, extra $$$ if you can do this.
Thanks a lot Cristina! I think especially your 1st and 2nd advice does not only fit for CS students but for everyone who's into learning new things! I like it!
First 2 will ensure your success in any endeavor for sure! Always important no matter what field you go into π
Good luck!
I'll keep it small and simple.
Yeah, I really want to meet motivated peers and who knows, maybe we'll build something cool together!