What are some of the things that would make me stand out from the rest of the potential candidates in the future? I'm partaking in one of the scientific clubs, where our main focus is game development. In my team, I fulfill the role of 3D artist with occasional programming sprinkled in.
Should I be focusing on my GitHub portfolio? What ought to be my main focus?
Develop your technical skills during the week, develop your social skill during the weekend. A lot are only doing the first, even on the weekend (or only the second, even during the week). While raw skill is cool, it's important that you can work in a team, that your boss likes you and your colleagues can work with you. Attend parties, talk to strangers, learn how to do some small-talk. A lot of it is really just practice and confidence. It also helps you in your personal life, you have to survive adulthood too. You might move into a new city and need to make friends, or your girlfriend/boyfriend could leave you and you might need to talk up somebody at a bar. University is really ideal for this, there's a lot of interaction during your day. Adulthood can be very lonely. Really try to make some friends that are NOT studying computer science (I can't stress this enough, huge error on my part when I started).
During the week, I would take university seriously and augment it by doing some practical stuff at home. A lot of universities are theoretical, they don't really let you built stuff. Or you could built something during your holidays. I always had some project ready that I could pursue if I found the time. This combines both worlds. Also, hackathons are fun. Since you're in your first year, really nail down linear algebra and calculus, it's the basics for all your future academic endeavours. Try to be a tutor for either or both in the second year, it helps to fortify your skill.
Go to professor's office hours. I was always so shocked when I showed up to office hours and I was the only one there almost every time. You can literally have 1-on-1 time with an expert and nobody takes advantage of it.
Another advantage of office hours is that you don't want to look like you're unprepared, so preparing some questions to ask is actually really good practice to hone in on what your gaps in knowledge are.
On the career side, experiment as much as you can in all the different areas (web programming, data science, ML/AI, game dev, etc.) and see what fits you the most.
I wouldn't worry too much about finding a job in this industry and I think focusing on your portfolio would make most sense only after you've found the niche that interests you most.
Becoming a person who other people want to talk to.
The best thing about university for me was getting to meet a super diverse and exciting group of people. I learned how to listen and be interested in what other people want to talk about, how to be someone who other people want to listen to, and how to be friendly. I truly believe that has landed me more jobs than any technical ability I have.
Anyone can nail a technical interview tests with a bit of practise if they've paid attention in classes. Nailing the "culture fit" interview is how you stand out.
I had three friends who got hired into Google upon graduation. They spent a lot of times on things like the Facebook Hacker Cup, studying graph theory, learning things from obscure programming languages or 40 year old research papers. One was in both the LUG and robotic flight club, doing big competitions. Their GitHubs didn't look as much like side projects, but they still published whatever code they wrote. They'd focused hard on skill building that was highly relevant in challenging technical contexts.
So that's my suggestion to stand out: show that you care about your craft, not just meeting assignments. Juniors are hired based on who they can be molded into, as much as for any skill they already have.
Example: if you want to go into game development, see if you can give a talk at a game conference sometime during your degree. If you nail the talk, show something original and intriguing, make it quality and memorable, you'll get access to job opportunities where you're treated like a competent professional instead of a dime-a-dozen fresh graduate. A degree takes long enough to do something novel that's worth presenting.
But here's my advice:
- Apply to internships/co-ops early and often.
- Develop your social network with the other students in your classes.
- Don't focus on grades beyond what's required to pass your classes.
- DO focus on learning how to be a good programmer by doing side projects and programming constantly.
- If there are programming competitions at your school take part in them. (hackathons, etc.)
- Have a social life, go out to parties, have fun with friends, try to get a significant other.
2) Don't focus too much on grades - focus on subjects you like and other subjects that you don't like just do minimum to pass
3) Nobody ever asked me to show my diploma (I'm not sure if I could even find it by now), you will be mostly judged in the future by either experience, portfolio or asked to do some small homework project to proof you can code.
4) Consider joining IAESTE at your university and do summer international internship somewhere abroad - good way to go somewhere abroad, earn some pocket money, and learn practice some technical skills during holidays.
Having a good time. Learn for the sake of education, not for getting a job. You're so privileged by picking CS, you'll get a job anyway.
You only have one life and this time only now, use it! Socialize, be political and foolish. Make fun experiments and share with people, make friends.
Trust me, in five years you are not going to regret not being more employable, you are going to regret not having partied
Most universities push you surprisingly little towards "doing the thing" so just build something, whether that's for fun or for profit.
I spent my uni time working and barely passing exams and I can recommend it. I can't really say my uni time was particularly useful to my career (I started working before uni) but having working experience and being very productive "straight out of uni" made me advance incredibly quickly in career and compensation.
Also, get out of Poland as soon as you can and go to either Switzerland / UK / USA to build a network of contacts and save some money. Alternatively have a look at what salaries you can get in those places and work your way towards getting a remote job paying that much (which will be significantly higher what you will hear from your developer peers in Poland).
You should also consider whether you want to stomach working in a FANG or not. If so, try to do your Algorithm exams towards the end of your course of study (if possible), do leetcode online for a couple of months and then apply to all of them.
Best of luck
I learnt more in my year working than the all of my university course combined, significantly, it was incredible and one of the best experiences of my life. I was fortunate enough to be invited back permanently after the course, and many businesses see it as an extended "interview" taking on a large proportion of placements students after.
So, my recommendation is if your course offers it take it up, it's invaluable. If they don't, look for opportunities to "intern" during the holidays. Real world experience is the most valuable thing you can build up, and the prospect of it tuning into a permanent position is very strong.
Research is often more self-directed than what you get from classes and will teach you a lot
I'd also suggest extending your time in school in exchange for doing more internships. Internships are the best time to "step up" the caliber of company you work at and also give you a chance to try out new kinds of companies/industries/teams so you know what you want to do.
After you graduate, trying out new companies/industries/teams becomes way way harder
Sleep more than you study.
Study more than you party.
Party as much as you can.
Find ways to connect to your professors. Many are deep experts in their domain. Talk to them in office hours, ask questions in class, read their work, engage.
Find ways to connect to your peers. Talk to the people in your classes. Find things you have in common. Hidden among them all are the few you would call best friend, if only you knew them. Get to know as many as you can.
Find ways to connect to the material (outside of classes). You will of course learn what is put in front of you. But what about the rest? Find other textbooks and materials. Do other projects. Immerse yourself in the field you are studying.
So, put simply, connect.
If a faculty member offers you to join some kind of project they're involved in, by all means go for it.
You'll be exploited for free or for minimum pay, you'll get random urgent requests to get something done quickly on a Friday evening, and you'll get stress migraines.
But I still recommend doing this if you have a chance, and here's why:
- chances are the job is unique, odd, and not something you'd be doing in the corporate IT world. I once found myself teaching a class of art students how to build iOS apps, with ~24 hours of experience in Swift and having never owned or used any Apple device.
- if it's an official contract and you get paid for it, it can become the crown jewel of your CV even if it wasn't rocket science. Especially US-based readers of your resume will value academic achievement.
- you can combine the additional work with regular coursework or a master's thesis, which will help you get more mileage from the time you're spending. Keep in mind this is still much more than would be normally expected from you.
- if you prove to be useful, you'll be on good terms with a potentially important faculty member
Things to keep in mind:
- get ready for a really stressful few months
- expect to be exploited to no end
- don't expect any promises you hear to be fulfilled, except what is written on your contract with the university if you get one
- there will be pressure to go deeper and deeper, and you will hear them discrediting the value of other things you might be planning to do such as a corporate IT career. You need to know whether you want to stay or not, and you need to base this decision on realistic prospects, not on someone's visions and promises (see #3).
Source: one official short-term contract and one unofficial project assistance
I think one of the most important thing you could do is get a great network and surround yourself with amazing people. What's hot in the moment changes every few years, but great connections stay for a long time. Also, being close to amazing people that are very talented means that you'll get to see new trends coming and always be on top of it.
Health Then Wealth
Body healths helps you be nice to be around. Being nice to be around builds your network. Your network provides you with jobs and information for navigating life. Start at health and happiness, your in the nest industry in the world, you don’t need to optimize and more than you already have. That energy is better spent growing wide and expanding your horizons.
But make sure you make as many friends as you can. Make sure you get with as many girls as you can. Believe me, if you do not have any friends later in life because you didn’t prioritize this you will become a foul and wicked person later in life, or at best a depressed one. And if you do not experience the variety of girls there are during this time, you will have regrets later in life about not exploring your options, no matter who you ultimately end up with (if anyone).
Your peers and the students are way more important than your teachers, IMO. You can build businesses with the students, the teacher is just guiding you through a book course.
edit; be the guy who knows everyones skills and talents and partners people up who would be interested in working together? the guy who "knows everyone"
* Keep a daily routine and learn to organise yourself. Unlike school or work, at university you are expected to maintain your own routine. There are no bells or attendance registers. Some people, like me, find this difficult to deal with. Be aware of it from the start and maintain a good daily routine and attendance.
* Join clubs/societies. Opportunities to make friends and find love are handed to you on a plate at university. These things are specifically contrived to get people together. Take advantage of it while you can because these opportunities rapidly fade as you get older.
* Stay healthy. Eat well. Keep fit. This can be easy if you join a society with an active component (it can be walking or something, doesn't have to be sport).
Things I did that I would recommend you do too:
* Find what you are interested in and specialise. Go above and beyond what is required in those areas. University is not just about lectures, doing what is required and passing the exam. This is an opportunity for you to dedicate your life to learning. You won't get a chance to do this again.
* Be open to academia as a career path. For many this is a far more fulfilling career than going into industry. You will have plenty of opportunities to explore this if you want to. Ask your professors about it if you are interested.
* Use the facilities available to you. Not everything is online. A university library is a fantastic resource.
Take risks: tackle projects and subjects where you might not succeed. They are FAR more important to your future than getting super-high marks.
Spend time practicing clear communications. Take a class where a professor guides you in the art of writing clearly and compellingly. If you have the chance, take a class in clear and compelling speaking. Read at least some of Aristotle's Rhetoric. Close friendships help with this: you'll have fun in the time-honored tradition of students' friendly debates in taverns.
If you go into the electronic games industry, do so with your eyes open. The talent pool for that industry is broad and very shallow -- many gaming fans hope to create games. The executives know that, and they shamelessly exploit it. If you go into gaming you want to end up an executive, not just another burned-out developer. (Successful executives communicate very well.)
Sex, drugs, and rock'n'roll are good, but not if they take over your whole life. So, be careful and don't forget that alcohol is addictive.
Above all, have fun doing what you love.
You have people here on this thread on hackernews for gods sake telling people to connect to others. On hackernews, the Nerd Central. So that just emphasizes the importance of doing it when a bunch of nerds are telling you to go out and meet people. And if you are socially anxious, talk to a doctor asap. You want to make this college experience good. Your doctor can help you out with some antidepressants that just lifts all the anxiety from you so you can talk to others. They work, really good too for highly neurotic kids like many of us. Don't focus your efforts on being liked, rather, focus your efforts on connecting deeply with a few really important people in your university.
Also you mention Github. Look at popular projects there that regularly merge in random pull requests (meaning pull requests that are not from the same core of 1-3 people). Look at what open issues the project has and what might be listed in their BUGS file. Fix a problem and put up a pull request. You will probably be fixing defects at a future job and this is not all that different than what you will be doing. They might have some advise if they use your pull request with some changes such as how to simplify it or use a particular coding style, and this is useful too. I say to look at popular projects there that regularly merge in one-off pull requests because some projects might be abandoned so you might not get this.
You want to have some understanding of this - https://missing.csail.mit.edu
Your main problem will be getting a job after graduation with little experience. If you have an internship at a large company that is hiring between junior and senior year and they like you, you might have a leg up on getting a job after graduation. Also try getting internships in earlier years. If you can make small contributions without too much hand holding they might take a chance on you.
From a career perspective, programming skill is relatively easy to come by. Programming AND speaking AND good writing will put you on a better career path. You won't get stuck after a job or two when you know the tools of the trade but not how to handle things outside the compiler.
But also, just as a person who has to make it in this world, it's good to have more ways of understanding people and systems around you. Humanities students are enriched by taking science and math classes, and getting a new way of seeing things. Technical undergrads who learn to tolerate ambiguity and learn some history are rounder humans.
- Maintain contact with more of my friends from different groups. This isn't just beneficial for one's life outside of work - several interesting career opportunities have come to me through university friends.
- Get involved deeper with a diverse range of societies. I was in the committee of a couple and intermittently joined events of several others, but many had great, interesting people, focused on interesting projects and ideologies that I wish I had kept in touch with. University makes it super easy to broaden your horizons and discover new orthogonal interests.
- Get good at presenting. I think I was quite decent when I started work thanks to the dozens of interviews and day-long assessment centres I had to do when applying for jobs in investment banking. Even outside of the interviews, there are plenty of other opportunities for this at university e.g. team projects, societies, etc. This all gives you a better ability to not just present something you've been working on, but also yourself, in an interview, and to others during networking opportunities.
- Follow your passions. For me, a passionate person is a very hireable quality. I'm sure you find something interesting outside of work, get into it more, read about it, do it, speak to others who like it, etc. For me, getting involved in my passions made me happier generally, but was also useful for mentioning in passing in interviews, or striking up networking conversations, or even for drawing analogies in solving a related work problem.
The advice here is great, but there's one caveat: don't focus too much on prestige. No one seems to care about this outside of university. Prestigious jobs are no different from regular jobs, so chasing them is pointless.
Better yet, write in your journal as often as possible. Had an interesting class? Write it down. Met some cool people? Write it down.
A lot will happen in college and yet it will also be over in the blink of an eye. Many of your unforgettable experiences will be forgotten. But if you keep a written record then that time was your own.
You say this is your focus, so I will answer for that.
Seek employment while you study - if you are fortunate, you dont have to work shitty jobs to pay your way through university. Use your summers to intern / experience anywheree you can. Beg / borrow / steal from anyone you know and do 6-8 weeks in holiday time in the sorts of places you want to work in the future. Want to work at google, apply to intern at every company nearby that looks, smells or tastes like google.
The reality is you probably dont know exactly what or where you really want to work, so try different things (it you can).
Do this every long holiday break, fill your other holidays with useful stuff, interesting travel + side projects.
When you secure some roles like that come back and post Ask HN: How to make the most out of time interning in the summer?
Be consistent when studying.
Actually learn what is being taught (instead of copying people's homeworks.
Grow your network.
Don't try to compete with the other students. University is not a competition. It is much much better if everybody just help each other. I landed my dream job because someone from the University liked me.
In terms of career advice: interview your employers just as selectively as they interview you. Take your time making a choice. Don’t hesitate to leave for better opportunities, even if you’ve only worked somewhere a short while. Do side projects. Try to charge by value, not by the hour; get some economic multiplier.
In my experience (YMMV), most people like/want to help out go-getter students. As a student you might reach out to a professor who's work you find interesting to do a collaboration, or for support if your personal project is aligned with their research. You can reach out to companies or individuals for sponsorship for various student activities, etc.
My advice would be to put yourself out there as much as you can while you are a student, since your student status combined with the right attitude can open many doors that are harder to open post-graduation.
Reading. Never again will you have permission to just spend 3/4 years in the library, filling your head every day with great learning. Keep your mind healthy by eating well. Take notes. Dump your phone.
I wrote about the distractions facing bachelors degree students here:
https://www.timeshighereducation.com/campus/joy-text-world-t...
(sorry if it's still paywalled in your neck of the woods)
That and go to office hours, ask your professors about their research. See if there are opportunities to get involved in research yourself. This will expand your knowledge and understanding to depths far beyond most of your peers.
The ability to socialise with others and form connections with people is of maximal importance when it comes to convincing someone to employ you. There is no textbook for this. Interact with different groups of people and you will soon become a very good communicator, as you will be able to talk confidently and amicably with anyone.
Beyond that, a couple of projects that you can demo in an interview is a nice idea.
- get enough sleep
- when your brain is tired, go exercise and make your body tired, too.
- find one or more tenured faculty whose ethics and work style you respect, try to get into their lab/group/…, and make damn sure that they know exactly who you are by the time you graduate.
What doesn’t exist yet that you desperately want to exist? Spend your time on that.
Here is a good example of taking a big picture view:
Modern Artificial Intelligence 1980s-2021 and Beyond
make sure to leave some time to have fun and hang out with people. software engineering is 80% person-to-person communication, 19% solving simple logic problems and 1% glamorous work, if you're lucky.
I am interested in your github and linked in profiles and what school you attend but I don't care about your grades or how long you took to graduate.
Hope that helps.
Anyway Carmack gave some advice about getting into AAA game studios in a 2009 interview. Solid advice I'd say.
Expose yourself to everything you have the least bit of interest in. Go to all kinds of group meetings, sign up for classes that seem interesting, talk to people that are different from you, etc. It is very likely you will never have such easy access to these possibilities ever again.
Do not believe that you must declare a major immediately and that it will be set in stone for the rest of your life.
TLDR: explore your interests without fear
>I'd like to ask you for advice on how to make the most out of the time during my studies, so that I won't have trouble with employment.
So the absolute best advice is to get into Internships early and often during your time in University. It's the most foolproof way to be employed by the time you finish. You will have the most important skill employers look for in this field. EXPERIENCE. You could stack 3-4 internships by the time you finish and if you are doing one when you graduate and you weren't horrible it's almost certain your current employer will hire you full time and if not you already have a stout CV to shop to other employers.
TLDR: Get an Internship ASAP!
The best way to get a good job is to hear about it from someone you know.
Be a person people want to work with, and become a person people like to work for.
Be nice to people. Remember who is good to you.
Sooo many people struggle to make friends after their studies have finished, so make friends now, and keep contact with them afterwards.
Networking.
That's what I wish I did more of. It's disgusting how much of the world operates under "networking", which tends to be just a thin veil concealing from only the most gullible the true underlying activity of cronyism. "It's who you know, not what you know", has become a widespread saying embraced by the corporate world.