College practice or small internship is a very important aspect of every learning process. Students are given the opportunity to actually engage and participate in real life projects which eventually allows them to gain experience which normally they would not be able to gain in college.
The internship at Vega IT lasts three weeks during which time candidates work on small projects by themselves while a mentor is there to assist for a short amount of time during the day - around 15 minute per day - just to provide the intern with the best practical advice. The reason why we require a certain level of knowledge before the internship begins is because we expect you, the candidate, to begin programming and solving real problems already on your first day in our company. It is really important to distinguish the internship from a training course, since we do not provide one. Throughout the 3 weeks spent interning with us you will gain knowledge that can certainly increase your chances of finding a job afterwards.
The following list shows what would be great to know and understand before applying for the internship as a front-end developer at Vega IT:
- HTML5
- HTML5 markup language
- how you can use the elements to enrich the semantic content of documents
- what a valid HTML page is and you have to know how you can validate your pages
- SCSS/CSS3
- experience with CSS preprocessors (mainly SCSS)
- cascading and selector specificity so you can write an effective code
- CSS box model
- JS/jQuery
- the basics of jQuery framework and JavaScript programming language
- Other
- responsive/adaptive page optimization
- cross-browser optimization - the basics about the cross-browser optimizations/support
- experienced with Photoshop
The following is a list of additions that would provide you with a better chance of being accepted for the internship at Vega IT:
- JavaScript Frameworks (jQuery, AngularJS, KnockoutJS)
- Making performance a priority
- Accessibility
- Conditionally loading JavaScript
- Image optimization
- Progressive enhancement - approach to web development that aims to deliver the best possible experience to the widest possible audience
- Experience with CMS platforms
- be able to work with version control systems such as Git and Subversion
During the internship, we will be developing static responsive web pages by using HTML5 and SCSS (CSS preprocessor), while we will be using JavaScript/jQuery for interactive elements. It’s important to emphasize that we will expect the candidate to write the code themselves from “the ground zero” which means that the use of a front-end framework will not be allowed because the aim of the internship is to learn how to model web pages according to the given design.
All the resources necessary to develop a particular project will be provided to the candidate. The candidate will be given PSD files, necessary fonts, as well as the specification that gives a detailed explanation of what the goal of the assignment is.
Planning and preparation
Before you start working, it’s necessary to read the full specification and do the analysis of the design. The mentor will give you the instructions regarding the things the candidate has to pay attention to while planning in order to be aware of all the potential problems that they may encounter with afterward. The planning includes:
- Reading of the specification - where it is important to check whether you understand everything in detail and ask questions
- The revision of the design which includes identifying a template and generic components
HTML5
You should pay particular attention to the structural semantics and the correct method of writing a code.
Structural semantics includes the specific use of HTML5 tags (main, aside, article, figure, and alike). HTML5 tags provide you with additional description of the content inside of them, transmitting its crucial meaning to the web browser and other devices. This is important because it provides you with a better page design and a better page structure.
After completion of the project, we will check if HTML code is written correctly. Also, the page design which you will create will be in accordance with the assigned design.
CSS/SCSS
In case the candidate is not familiar with CSS preprocessors, the mentor will introduce the candidate with SCSS and help them master the basics. By using a preprocessor, you have the ability to add functionalities to the classic CSS. During the internship we will discuss:
- Introduction to SCSS
- Installation, the preparation of a compiler
- SCSS variables
- SCSS nesting
- SCSS partials
- SCSS mixins
Besides having the knowledge of what CSS property does, it’s necessary to know what the support for different browsers is like and in what way you can optimize and adapt it for different devices because you will need to face different challenges on a daily basis.
JavaScript/jQuery
Javascript allows us to change any part of a web page in real time. By any part of a web page we mean: changing any part of a web page, changing HTML tags, styles, entering new, deleting old ones, doing the calculations, animations and more complex assignments that cannot be performed by using only CSS.
During the internship, the candidate will have the opportunity to create functions/plugins for tabs, accordions, mobile navigation and alike. The assignments will be adapted to the level of a candidate’s knowledge, that is, the candidates with more advanced knowledge will be given more complex assignments.
Conclusion
Considering the fact that the internship lasts three weeks, during that period we will be working on a few smaller projects. The first project is simple and we use it as a test because we adopt the following assignments based on the level of the candidate’s knowledge.
The candidate will be working independently during the internship, while the mentor will be controlling their performance, answering the questions and solving misunderstandings on a daily basis.
It's important to emphasize that the mentor will do a code review after each completed assignment and that they will provide the candidate with a constructive feedback which then they could use to advance and improve their knowledge.