LIVE WEBINAR: Migrating from Confluence to XWiki just got easier and faster! Join our free webinar and discover the latest upgrades. Register here.

How to gain professional tech experience as a student

28 Feb 2023 5 min read

Written by

Dorina Anton

, Marketing Specialist

How do I get a job after graduation if everyone requires experience?

How much work experience should I have when graduating from college to work in a tech company?

Becoming a software developer can be both exciting and frightening and we totally get that. Some of us have been there and understand the initial challenge and the need for wisdom from someone who has already gone through this process. In this article, our XWikiers are sharing how they developed their skills and how they got prepared to start their career in tech companies.

But first, let's understand a bit about what experience in tech means these days.

What does experience in tech mean?

The point of experiences is to develop skills and encounter situations where those skills are practiced consistently so that they become the modus operandi of how you approach projects, tasks, and challenges. The types of experiences and skills will often vary depending on the company you're hoping to work for. But there is a baseline that you can evaluate yourself against and it's split into:

  • Hard skills - They are our technical knowledge or practical skills. Diplomas, certificates, or licenses are all proofs that certify your hard skills and tell the company that you have the competence to carry out the required task.
  • Soft skills - They are transversal skills, such as the ability to work in a team, organize yourself or problem-solve and compromise. Having good communication, for example, is among the most appreciated soft skills together with work ethics and leadership.

With over 18 years of experience in building open-source software and 44 current employees, we've understood that it is more important to have the right soft skills for the role and that having only technical skills will not be sustainable in the long run for you, your team or the company you want to work in. Studies also show that employers hire in general for both soft skills and hard skills.

Insights from our HR team

There is also another way that you can look at experience. Here, our colleague Ioana from HR gave us some theoretical insights into skills theory and what is most desirable from a tech company point of view.

Ioana Însurățelu, HR & Admin Specialist

There are usually 2 types of employees: “T-shaped” employees and the “V-shaped” employees.

The concept of the T-shaped employee stands for someone who is both specialist and a generalist at the same time. They have deep knowledge of one area (the vertical bar of the T) and shallow knowledge about a broad range of other areas (the horizontal bar). The first is needed to do one’s own work, and the second is to collaborate and communicate with others. Their ability to contribute, pinch-hit, and problem-solve makes them high-performers who can boost an organization’s overall productivity.

While it sounds intuitive and contributes to multidisciplinary and interdisciplinary work, there is an even better type, which is called the V-shaped employee. Like the T-shaped employee, a V-shaped employee has deep knowledge in one area. And along the same line, they also have shallow knowledge about a broad range of other domains.

The key difference is the part in between. What is needed to effectively work in organizations today, I believe, is “adjacent knowledge” — knowledge that is related to the employee’s core expertise. It is not deep, nor shallow, but in between — hence the V-shape.

Being a specialist is great, but both from an individual’s career perspective and from an organizational perspective, there is a need for people who are versatile and agile.

Bianca Mantu, HR & Admin Assistant

Nowadays tech companies are looking for candidates who apply analytical reasoning, and who can stay focused for many hours or perform repetitive tasks without losing interest in what they are doing. Employee engagement, a strong company culture, and transparency that fosters a work environment in which employees can communicate freely are also important for tech companies.

Insights from our developers

We also gathered insights from our developers about what companies care about when hiring for tech positions considering their personal experiences:

  • Have a GitHub/GitLab account with some projects you can show or at least other personal projects you've worked on
  • A mindset oriented to life-long learning (growth mindset)
  • A good understanding of the "culture" of IT in general and how things work in a business
  • Being nice/helpful to people. Show that you are listening. If you are not nice, many people won't work with you. Because you need to...
  • ...be able to work in a team, with other people
  • Show others that you are able to negotiate and reason in a discussion
  • It helps to have the know-how
    • But don't try to make it look like you know something if you don't. It shows and it can be a red flag for some companies
    • You can always learn as needed, but already having knowledge of whatever the company does helps a lot
  • If you want to be hired by a (large) open-source project, the best way to go is to be a recognized member of this project because they'll try to hire from their community.

How to get experience in tech

Let's get into the nitty-gritty part of the myriad of ways in which you can get tech experience:

Contributing to open-source projects

Gaining experience in IT can simply start with contributing to open-source projects because you have access to the code of multiple projects and documentation, you learn to write documentation yourself, you can see how others solved an error, bug, or other issues, you get accustomed to development practices and standards from various open-source software communities. It's also a great way to start getting familiar with different technologies, tools, and skills. You can be part of a global community, create software that impacts millions of people, and build confidence in your abilities. You can take for example XWiki and the various ways in which you can get involved in the XWiki open-source community.

Tinkering with personal projects that you care about

You might be thinking about how to make a living, but finding passion, a sense of accomplishment, and meaningfulness will fuel and sustain your career in the long run. Passion for things is found through doing, not the other way around. Therefore, pick up subjects that you love, see what's missing, and start thinking about how you could improve something existing or bring a whole new solution to the world!

This can be very nicely bundled with networking in various developer communities where you can show and even teach fellow peers and inspire others with your story as well.

Participate in Google Summer of Code

Or, for that matter, at any mentor-based program or competition related to your field. While trying to figure out solutions, document yourself, twinkle with ideas, solutions and experiment with the code, you'll find that you also learn to work in a team (many competitions are team-based), present your ideas, gain work buddies along the way, learn how others approach technical challenges and work through them. You can then add this kind of proactive participation to your resume as well. Also, you may never know who also notices you and proposes an internship. Level up in all areas!

By the way, XWiki will also be offering mentorship at GSoC 2023, and we'd be glad if you'd join our open-source community and learn and contribute at the same time. You can read on xwiki.org about the experiences that our mentees had in the past editions.

Participate in Hackathons

Similarly to the idea above, hackathons are more condensed challenge-based team competitions. Besides being very popular in the tech field and some of them even organized by tech companies, you can take the challenge up a notch and test your reaction to developing a solution under time pressures. 

Internships

This is a total no-brainer, but it's a way to also start getting yourself known a bit in the industry (if you're applying locally, in your city) and also start putting into practice what you've learned in college if you're studying something related to the tech field. Here's a tip from our side: approach companies yourself and ask if they offer internship programs. Proactivity gets you really far in life in general.

Reexamine your experiences

If you're the type that has had vastly different experiences, then one thing you can do is to see what lessons and skills you've obtained along the way. Maybe the experiences seem unrelated, but it's possible that when you take a closer look, you learned valuable skills applicable to tech. Check out this video about how to turn "unrelated jobs" into a career. Sometimes you need to shift your narrative to make space for the knowledge and abilities that were already there. While you might not have direct experience in tech, there are so many types of jobs that crossover fields. This is why understanding how businesses operate helps you spot opportunities where others don't.

Build your portfolio

If you don't have an account on GitHub/GitLab to showcase your long-term dedication to learning, skills, and qualifications, then at least have a separate portfolio. Or even better, check out this awesome resource with countless open-source portfolio website projects.

The power of networking

It is less about experience per see, but rather meeting people already on the career path you're interested in that can become future mentors, work colleagues, and managers. You can also find people that are on a similar career path and help, support, and encourage each other along the way. We recommend you attend local events, and IT get-togethers and start "feeling" the culture of IT, not only read about it. It won't happen overnight, so acknowledge that.

Pieces of invaluable advice - developers' tips edition

Ludovic Dubost, CEO

There are quite a few things you can do to build experience in tech. Have your school and personal projects visible on GitHub/GitLab. For example, choose a project in an area you like at the beginning of your studies and improve it with what you learned in school and beyond (make specs, develop an improved version of it, make a website, make it open-source, make a mobile version, etc.). Build your own website with your CV on it. Train yourself in the tools companies are using (GitHub/GitLab, ticket tracking). A good way to start with this is by contributing to an open-source project like XWiki.

Think about who and what you will be working for. IT people are demanded and therefore privileged people. You can choose the easy way and work for the bigger companies that have the marketing capacity to propose many well-paid jobs on trending techs, or you can decide what you are interested in, how useful it is for society, and look for the companies that do it. These are rarely the big ones. Small companies can also give you great opportunities to be a key person in a valuable project.

Raphaël Jakse, R&D Engineer

A big smile and enthusiastic emails when applying can work very well to enter a company. Don't bullshit people. It's okay to not know something. Being passionate does help a lot because you get to know a lot of useful information just because you are curious and it shows. It's not necessary though, don't force yourself to build things on your own if you don't want to do it. Showing that you can learn and are able to reason about things can also get you far.

Also, I want to highlight how contributing to open-source software projects helps you on a lot of topics:

  • Reading code you didn't write
  • Reading complex code
  • Tracking and fixing a bug in an unfamiliar code base
  • Interacting with maintainers
    • Who are a bit like colleagues in the way you are working with them, but who are not paid to accept your contribution
    • You learn to be polite and humble
    • You learn to sell your solution

Have your own projects. If you can have contributors it's very cool because you get to know how it feels on the other side, but you can't rely on this. It's good to "finish" some projects and it's fine to not finish a lot of them. Experiment with different technologies and programming languages.

Tech can do a lot of harm, you are responsible for choosing a career in which you work on things that are at least somewhat aligned with your values. Please reflect on what you choose to build. If done correctly, it can also bring good things, and have a positive impact on the ecology, and on people.

Do realize that tech is useful to people: it's all about people and their needs. It's rarely doing technical stuff for the sake of it. It's also all about money if you are not careful enough.

You need to be able to communicate clearly your ideas and concerns. Don't let issues eat you before it's too late! Be prepared to receive negative feedback in the best way possible.

Take the time to learn your stuff. If you don't take this time, you'll build bloated and buggy software. Users won't be happy. The Earth won't be happy. Black hats will be happy. You'll not be happy about yourself.

Leave places where you don't get along with people very well/you are not happy with the way things are done if you can. Other places/teams might suit you better.

Arnaud Laprévote, Research, CryptPad & XWiki Cloud Business

Try, fail, find, retry, fail, find, go ahead. One day things are going to be natural. Your code editor will be at the end of your fingertip. You will joggle with it like an acrobat or a pilot, and it will be the same for one language, then another.

Be curious! Ask, show, and do not worry if you might seem ridiculous or stupid sometimes. The only stupid question is the one which was not asked.And finally travel, because seeing how others are doing, learning, and developing is important and fruitful.

I think curiosity is the key to the work in tech. Long ago, without the Internet (can you believe that?) I was reading technical newspapers and books. My family is, on the whole, only made of people loving books, history, literature, newspapers, and traveling. I never saw my dad with any tool (maybe once with a screwdriver). So, I was the opposite, very reluctant to anything close to literature.

A radio-amateur club was at the end of my street, and I started at 14 listening to their very interesting talks on electronics and modulation. Luckily after a year, an engineering school teacher came and started teaching digital electronics. It all started from there. Soldering, understanding boolean logic, programming a 6800 Motorola processor. I had my first pocket computer programmable in basic, and then an Apple2 when I was 18. I felt very lucky. I started programming some real things such as a program for my father to print addresses on sticking etiquette. I was selling the etiquette to my father that had hundreds of letters to send regularly. And I continued learning new tricks and tips for 30 years.

Maybe, that's the key thing: accepting that you do not know and that you must learn again and again. 

Nikita Petrenko, Customer support developer

Be interested in the field of tech. Read official documentation, and attempt to implement, emulate and obtain a similar result. If you are already studying, fear nothing which you are about to apply in practice. I've also noticed that tech companies care a lot about communication abilities besides hard skills.

Michael Hamann, R&D Engineer

Learn about best practices and use that knowledge to make contributions of high quality to open-source projects you care about (these should be projects you use personally, otherwise it is hard to stay motivated).

Meet people in the field you're interested in, and if possible attend conferences (like FOSDEM, but there are also many smaller ones), BarCamps, or other kinds of meetups where you can talk with those people even before you're actively looking for a job.

During school, I discovered FLOSS and learned to program by reading books and online tutorials. I also started contributing to open-source projects, which also improved my English at school as a side effect. I also regularly went to meetups of a local Linux user group. I started my own website with a blog. At a local blogger meetup, I met somebody who (among many other things) advises companies how to use social media and write a blog and who asked me, after I had finished school, to help him with the technical side of setting up blogs and also to realize some other projects — that's how I got started with a side business as a self-employed web developer while studying computer science. Through BarCamps I also met other people for whom I did some projects later. I also got more involved in the DokuWiki open-source project which also allowed me to develop paid features in some DokuWiki extensions for clients.

Wrapping up

You can see that there's no one size fits all, but rather through trying out you learn both what you like and you also start building the skills you need for your future career. If you find yourself loving contributing to open-source projects, we'd be more than happy to meet and work together!

You may also be interested in: