GOOD INTERNSHIP – what does it mean?
GOOD INTERNSHIP – what does it mean?
Maciek: It is time well-spent, as you can see from delivered projects. Be open, embrace new technologies, including the ones that fall outside of the realm of your internship programme. Cooperate with other interns, share your knowledge and–in case of doubt or problems–do not hesitate to ask for help, and embrace feedback. Tips from seasoned colleagues are valuable. I also believe that working on-site fosters camaraderie (also between colleagues from different departments), turning work into a much more pleasant experience.
Mikołaj: A good internship offers plenty opportunities to learn: it should be well-planned and organized by competent people. It should also define a goal, e.g. a major application or a common project that presents a challenge. My advice: be aware that how dedicated you are will influence how much you learn. Be proactive and try to make that time count. Dare to ask more experienced people for advice. Their assistance will greatly benefit you in the early stages of internship. Be honest whenever talking to your buddy or coach and do not shy from bringing up the difficult subjects.
Alena: For me, it is the number of practical tasks that matters. It is important that they are relevant and represent the category of tasks that a programmer is expected to do on a regular working day.
How to find a good internship?
Michał: Concentrate on the technology that you want to explore. Choose a company with good internship record. Chances are, their programme will offer you an opportunity to acquire knowledge step by step and excel in your field.
Bartosz: Survey your friends and attend job fairs. I learned about Convista from one of my university teachers.
Nina: You can find an internship on job fairs organized by your university. Recommendations by friends/other students are also a valuable lead. These are the most common sources of good opportunities matching your talents and expected skills. Choose the ones that include the technologies and tools that you are going to work with. This way you will avoid the risk of joining a project in COBOL or Java 5.0. 😊 Choose internships with a clear development plan and well-defined tasks. It is important that you work is verified, for example by means of code review. There also should be someone you can address for assistance.
Look for a company that offers an opportunity of signing a contract of employment after the internship. It is a good indicator of whether what you do makes sense and will benefit your career. Look for a paid internship; your work should be valuable for business, and the skills that you acquire–an investment for the company.
How to ace the interview?
Michał: Do not get stressed. Rome was not built in a day. 😉 Nobody expects you to know everything from day one. University only gets you so far, while an internship offers the best possibility of learning the trade and landing your first job in a profession.
Michał: Be open, dare to be ignorant, and keep asking questions. Even if you are not selected by the recruiting team, they will tell you what remains to be improved. Feedback, even negative, offers opportunities to develop.
Dawid: A boring truth is better than a most interesting lie–every recruiter will sense a liar, and liars are not welcome. Tell about the projects you have been involved in and what was your responsibility in them. Be open to work with the company after the internship, it is crucial for the recruiter.
What did we fear BEFORE the internship? Were our fears justified? 😉
Maciej: I worried I would not cope in a new environment. German was another challenge. My knowledge of it was limited to the basics and I had never used it in professional context. However, I quickly settled in! The atmosphere in the office is fantastic and from the very beginning the colleagues (buddy, coach) were very friendly. German classes were very helpful, too, as I am no longer afraid to speak it.
Mikołaj: I thought my knowledge of the technology will be insufficient. I imagined that every intern would have to meet strict deadlines and there would not be enough time to learn. In reality, the programme of the internship was very well-planned and adjusted to our capabilities. We were offered assistance in fulfilling our tasks and guidance on our development path, every step of the way.
What did you learn at the internship?
Alena: Communicating with a team and a new programming language. I am also expanding the knowledge I have already had. I have also learned the workings of the organisation.
Nina: We have gathered the knowledge necessary to implement complete systems-from the basics to DDD, Openshift, CI/CD. I am positively surprised with the freedom I was offered when choosing the technology that we want to learn and utilize in our projects (e.g. Kotlin for backend, GraphQL instead of REST, which is a standard).
Bartosz: I expanded my knowledge of best practices in programming in Swift. I started to concentrate on indentation, the names of variables, and the transparency of code (SwiftLint proved to be extremely helpful). This knowledge has already benefited me a couple of times at my university classes!
What surprised you the most?
Michał: Two months into the internship, I was asked to join a commercial project. So, not only did I expand my knowledge, but I have also gained the experience of working with an international team.
Bartosz: It turned out that working on-site has certain advantages:
- it is easier to meet new people than when working remotely.
- It is easier to leave your domestic life behind and concentrate on the job.
- You can learn a lot about the industry, work, etc. by simply talking to your colleagues.
- Everything can be done faster when you work on-site.
Maciek: I did not expect my supervisors to be so open. I felt I could ask questions and discuss the pros and cons of suggested solutions with them. Another great thing was the sheer number of activities organized by the Parties Committee after work. I keenly attended the events, as they allowed me to bond with the team.
What do you learn at university and what can an internship teach you?
Bartosz: University is great for learning the basics and theory. But only an internship will allow you to see what programming and teamwork look like.
Mikołaj: University provides you with theoretical and practical background that you can apply to various technologies. In a short time, you learn plenty programming languages and technologies, but your knowledge of them is rather superficial. Although you will forget some of them, while never using the other, you will acquire the valuable skill of learning new things in a relatively short time. It will greatly benefit you during a in internship, where you are supposed to learn a selected technology and become familiar with the methodology of a given project.
Another asset of the internship is the broader perspective it provides and the fact that it busts the myths of a programmer’s profession. Although its timeframe is clearly defined, an internship provides you with more freedom. If you find a subject particularly interesting or complex, you can spend plenty of time exploring it. Coding and creating applications is different on an internship. We pay more attention to the workings of applications and other details that are neglected at university for want of time.
What is your perception of the internship at Convista?
Alena: There is no better one. A lot of practical tasks, support every step of the way, and the possibility of combining it with university. The atmosphere in the company is great.
Michał: It offers a great opportunity to prepare for the challenges of a full-time job. We learn practical things that are relevant to projects. We worked on minor projects, both individually and in groups.
Nina: It starts with a broad introduction to technologies and frameworks such as: Spring, Git, Docker, JUnit, Maven/Gradle, Apache Kafka, OAuth, OpenAPI, REST/GraphQL API, or OAuth. At later stages, it allows you to implement individual and group projects, expanding them with yet other technologies, and encourages experiment and refactoring with a view to creating better solutions. It offers you an opportunity to learn the entire life cycle of an application, familiarize with best practices, as well as gather experience in creating and co-creating complete and functional applications.
Maciek: It is a great opportunity to develop and work with new technologies. You start with a comprehensive package of courses selected by your coach and buddy; with them, you can review the technologies used in your daily work. With time, you receive practical tasks that evolve into a larger project involving all the interns. It is also a valuable way of spending time and bonding with your team, for example when playing foosball. 😉
Dawid: We gathered a lot of significant experience. We learned the industry's most wanted technologies, in and out. We participated in the life of the company, getting to know its inner workings. And it looks good in a CV.
Was it worth it?
Michał: Hell yeah! I learned what it is like to work on a major project in cooperation with other programmers. I learned a lot with the assistance of my buddy–their explanations were very transparent, they presented a lot of examples, and we even wrote some code together.
Alena: Absolutely! It was great to see IT processes from inside. In the last months of the internship, I improved my German and met fantastic people, who are passionate about their job. And I developed my programming skills.
Mikołaj: It was worth it. During that time, all my doubts were dispelled–I know I want to work in IT. I became familiar with my selected technology, which really grew on me, and I gathered the valuable experience of working on a commercial project. I am sure that the challenges I faced during the internship will prove useful later in my career.
Bartosz: Although I gave up my previous work for the internship., I have no regrets. I learned things I would have never learned by myself.
Isn't it great?