Free professional training for software engineers at the Telerik Software Academy starts for the third year running. This year more than 300 participants will train free of charge over several months for the most prosperous profession there is - that of the programmer. Those who complete the academy successfully will be able to start work at the number one employer of 2010 - Telerik. The best participants will have the choice of starting work in one of three prestigious roles:
- .NET Software Engineer (software engineers for the Microsoft .NET platform)
- QA and Test Automation Engineer (software quality engineers)
- Developer Support (engineers for software support and customer communication)
In this blog post I will try to give fairly complete information about the academy. Bear in mind that the information is not final and changes can always occur, both in the deadlines and in the material we teach, because Microsoft technologies change constantly.
Stage zero - Requirements
Let me start the exhaustive information with the requirements for the academy's candidates. Candidates for the Telerik Software Academy must be highly motivated and have an enormous desire to learn new skills that will later help them succeed in one of the highest-paid professions in the world. They must want to develop over the long term as software engineers. The prerequisite knowledge is: basic knowledge of computers, English at a level sufficient to understand written text, and an excellent level of Bulgarian. The best participants in the academy must have the possibility and the desire to work an eight-hour day after graduating successfully. Experience in programming is a plus but not a mandatory requirement.
Stage one - Application
You apply to the academy by sending an email to academy@telerik.com. The documents required for the application are:
- A CV in English with information about the candidate: education, knowledge, skills, work experience, contact information and so on.
- A cover letter in English telling us why you want to join our academy and how the academy can help you.
- You can also attach any references, awards, diplomas and certificates.
Applications opened on 19 September. The deadline for applying is 16 October 2011.
Stage two - Entrance exams
Every candidate approved on documents will have the chance to sit the academy's entrance exams. The entrance exams are held a few days after the documents are submitted. There are three exams: an English test, an IQ test and a computer literacy test. All the tests are in English and are held on a single day. Every approved candidate will receive a message telling them the date and time of their exams. The champions of the other courses run by Telerik will have the chance to start the academy without exams.
English test
The English test consists of 62 closed questions (choosing an answer from several options). The test will be extremely easy for you if you paid attention in your English classes at school. The time you have for the English test is 45 minutes. Here are four sample questions:
- Read the following sentence. Choose the best word or phrase: The cake I made last week tasted ………………… than the one I made today.
- more good
- better
- more better
- best
- Read the following sentence. Choose the best word or phrase: Birds make nests in trees ………………… hide their young in the leaves and branches.
- can where they
- where can they
- where they
- where can
- Choose the best prepositions: dissatisfied ………………… something
- on
- in
- at
- of
- from
- with
- for
- to
- Choose the best prepositions: to consist ………………… several parts
- with
- to
- in
- at
- on
- from
- for
- of
Correct answers: 1 - b); 2 - c); 3 - f); 4 - h)
IQ test
The IQ test consists of 35 closed questions of serious difficulty. The aim of the test is to check the candidates' mathematical abilities and their logical thinking. The time for the test is 90 minutes. Here are two sample questions:
- Add the same digit twice in the following equation so that it becomes true. There are two possible solutions for this problem. Which are they?
16 x 2 = 8 - 2 and 3
- 2 and 4
- 3 and 8
- 2 and 8
- 4 and 8
- Find the next missing number:
23, 48, 84, 133, ? - 188
- 148
- 197
- 184
- 123
- 217
- 200
Correct answers: 1 - a); 2 - c)
Computer literacy test
The computer literacy test consists of 35 closed questions aimed at checking the candidates' knowledge in the field of information technologies. The time for the test is 45 minutes. The questions are similar to those in the test of the olympiad in information technologies. To prepare you can use the videos from the Telerik School Academy. Here are a few sample questions:
- In which layer of the OSI model does the IP (Internet Protocol) work?
- Application Layer
- Presentation Layer
- Session Layer
- Transport Layer
- Network Layer
- Data Link Layer
- Which of the following tags is used in HTML for inserting a hyperlink?
- <a>
- <link>
- <hyperlink>
- <url>
- <location>
- <src>
- What is the binary representation of the decimal number 12?
- 11000
- 110
- 1100
- 1010
- 1110
- 0011
Correct answers: 1 - d); 2 - a); 3 - c)
Stage three - C# Fundamentals Part 1
After the entrance exams, the 300 best-performing candidates (on the exams and on documents) will have the chance to start their training in the course "C# Programming Fundamentals - Part I". The participants will be split into 10 groups of 30 people. The course runs twice a week for 4 hours. Each participant will have a choice of which group to start in. There will be morning, midday and evening groups. The training starts from absolute zero and covers the basic knowledge every future programmer needs.
The programme of the "C# Fundamentals Part 1" course is as follows:
- Introduction to programming (Lectures: 1, Exercises: 1, Homework: 2)
- What is computer programming?
- What is software development and what are its main activities?
- Your first program in C#
- Formatting the program source code
- The C# language and the .NET Framework platform
- Microsoft Visual Studio: compiling, running and debugging C# programs
- The MSDN library - the integrated help system in Visual Studio
- Exercises: creating, compiling and running C# programs
- Primitive data types and variables (Lectures: 1, Exercises: 1, Homework: 2)
- What is a data type?
- Primitive data types in C#: integer types, floating-point types, decimal types, boolean types, strings, objects
- Value types and reference types
- Variables. Using variables: declaring, initialising, assigning a value, accessing values
- Literals: the values of variables in the source code. Boolean literals. Integer literals. Floating-point literals. Decimal literals. String literals and escaping sequences
- Exercises: working with primitive types and variables
- Operators, expressions and statements (Lectures: 1, Exercises: 1, Homework: 2)
- Operators in C#
- Operator precedence
- Arithmetic operators
- String concatenation operators
- Logical operators
- Bitwise operators
- Comparison operators and assignment operators
- The lambda operator => and lambda expressions
- Other operators
- Explicit and implicit type conversion
- Expressions and statements
- Exercises: working with operators and expressions
- Console input and output (Lectures: 1, Exercises: 1, Homework: 2)
- What is the console?
- Writing to the console - writing numbers, strings and more
- Reading from the console - reading numbers and strings
- Exercises: writing to and reading from the console
- Conditional statements (Lectures: 1, Exercises: 3, Homework: 6)
- Comparison operators and boolean expressions
- if and if-else statements
- Nested if statements
- The switch-case statement
- Exercises: working with conditional statements
- Loops (Lectures: 2, Exercises: 4, Homework: 8)
- while loops
- do ... while loops
- for loops
- foreach loops
- Nested loops
- Exercises: working with loops and nested loops
At the end of the course there is an exam. The exam consists of writing C# programs that solve several specific problems. The programs are graded automatically with tests, and a certain number of points is awarded for each correct answer from your program. The 150 best-performing participants in the course carry on to the second part.
Stage four - C# Fundamentals Part 2
The second part of the course carries on with the more complex parts of C#. The course runs twice a week for 4 hours. An exam on practical problems solved with C# will select the best 90 candidates. In this exam (and perhaps in the previous one too) the speed of the programs will also be included as part of the grade. Here is the programme of the second part:
- Arrays (Lectures: 1, Exercises: 3, Homework: 6)
- Declaring and creating arrays
- Accessing elements of an array
- Reading and printing arrays
- Iterating over arrays with for and foreach loops
- Multidimensional arrays
- Exercises: working with arrays and multidimensional arrays
- Numeral systems (Lecture: 1, Exercises: 1, Homework: 2)
- Numeral systems: positional and non-positional
- Converting between positional numeral systems: binary, decimal and hexadecimal
- Representing numbers in the computer memory
- Exercises: converting between different numeral systems
- Methods (Lectures: 1, Exercises: 1, Homework: 4)
- What are methods?
- When and why do we need methods?
- Declaring methods: signature and implementation (body), local variables
- Calling methods
- Using parameters. A variable number of parameters
- Returning values
- Methods Overloading
- Using methods - best practices
- Exercises: using methods
- Recursion (Lecturers: 1, Exercises: 3, Homework: 4)
- Recursion - introduction: what is it? Direct and indirect recursion
- Calculating a factorial recursively and iteratively
- Recursive combinatorial algorithms: simulating n nested loops.
- Comparing recursion and iteration. When should we use recursion?
- Examples: implementing recursive algorithms
- Creating and using objects (Lectures: 1, Exercises: 1, Homework: 2)
- Classes and objects
- Classes in C#: fields, properties, methods, constructors and initialisers
- Accessing fields and calling methods
- Static and non-static members
- Structures
- Namespaces
- The common type system of .NET
- Exercises: working with objects
- Working with exceptions (Lectures: 1, Exercises: 1, Homework: 2)
- What is an exception?
- Catching exceptions
- Throwing exceptions
- The try-finally statement
- Exercises: working with exceptions
- Strings and text processing (Lectures: 1, Exercises: 3, Homework: 6)
- Basic string operations - comparison, concatenation, taking a substring, searching
- More string operations - replacing substrings, removing substrings
- Building strings efficiently
- Formatting strings
- Exercises: working with strings and text processing
- Defining classes (Lectures: 1, Exercises: 3, Homework: 6)
- Defining elementary classes
- Using your own classes and objects
- Access (visibility) modifiers
- Constructors and initialisers
- Defining fields
- Defining properties, getters and setters
- Defining methods
- Exercises: defining and using your own classes
- Text files (Lectures: 1, Exercises: 3, Homework: 4)
- Streams
- Reading text files
- Writing to text files
- Handling exceptions when working with a file
- Exercises: reading and writing text files
Stage five - C# Fundamentals Part 3
The third part of the course carries on with considerably more complex concepts in programming, such as data structures, algorithms, code complexity, high-quality program code, building algorithmic thinking and the skills to solve problems efficiently. The third part again runs as 4-hour sessions twice a week. At the end of the third part there is again an exam solving practical algorithmic problems, and in this exam the quality of the participants' code will also be assessed.
- Linear data structures (Lectures: 1, Exercises: 3, Homework: 4)
- Abstract data types
- Linear data structures
- Static and linked lists
- Generic classes (generics) in C#
- Lists - the List<T> class
- Stacks - the Stack<T> class
- Queues - the Queue<T> class
- Exercises: working with linear data types
- Trees and graphs (Lectures: 1, Exercises: 3, Homework: 6)
- Trees. Defining, creating and traversing trees. Traversing the file system
- Binary search trees. Balanced trees
- Graphs and graph traversal algorithms
- Exercises: working with trees and graphs
- Dictionaries, hash tables and sets (Lectures: 1, Exercises: 3, Homework: 6)
- The abstract data structure - dictionary
- Hashing and hash tables: the Dictionary<TKey, TValue> class
- Implementing a dictionary with red-black trees: the SortedDictionary<TKey, TValue> class
- Sets and implementations: the HashSet<T> and SortedDictionary<TKey, TValue> classes
- Implementing TreeSet<T> by wrapping SortedDictionary<TKey, TValue>
- Exercises: working with dictionaries and sets
- Algorithm complexity and data structure efficiency (Lectures: 1, Exercises: 3, Homework: 4)
- Algorithm complexity
- Efficiency and comparison of the data structures
- How do we choose the right data structure?
- Choosing the right data structure - examples
- Exercises: choosing the most efficient data structure
- Basic principles of object-oriented programming (Lectures: 1, Exercises: 3, Homework: 6)
- Inheritance
- Abstraction
- Encapsulation
- Polymorphism
- Cohesion and coupling
- Object-oriented modelling
- Exercises: object-oriented modelling with C# and the .NET Framework
- High-quality program code (Lectures: 6, Exercises: 0, Homework: 4)
- What is high-quality program code?
- Conventions for writing code
- Naming identifiers in the source code: classes, interfaces, structures, namespaces, methods, fields, constants and more
- Code formatting: formatting methods, formatting classes, formatting loops and conditional statements, using blank lines, breaking up long statements
- High-quality methods: the purpose of the method, the behaviour of the method, strong cohesion and loose coupling, method length and method parameters
- Using variables effectively: declaring, initialising, scope, span and lifetime of the variable
- Using constants effectively
- Effective use of conditional statements
- Defensive programming
- Documentation and self-documenting code
- Refactoring: improving existing code
- Exercises: improving existing low-quality code
- A methodology for solving problems (Lectures: 2, Exercises: 4, Homework: 8)
- Solving problems - principles
- With pen and paper
- Generating and testing ideas
- Breaking problems down into smaller "subproblems"
- Checking that the idea is correct
- Choosing the right data structures: think about efficiency
- Implementing algorithms step by step: write -> test -> correct -> write -> test -> …
- Testing the solutions: usual cases, edge cases, load tests
- Exercises: solving a problem
- Practical problem-solving session #1 (Lectures: 2, Exercises: 2, Homework: 4)
- First problem: extracting text from an HTML document
- Second problem: finding a path in a labyrinth
- Third problem: object-oriented modelling of a car parts shop
- Exercises: extend and improve the solutions
- Practical problem-solving session #2 (Lectures: 2, Exercises: 2, Homework: 4)
- First problem: counting the words in a text
- Second problem: a matrix of prime numbers
- Third problem: evaluating arithmetic expressions
- Exercises: extend and improve the solutions
- Practical problem-solving session #3 (Lectures: 2, Exercises: 2, Homework: 4)
- First problem: a spiral matrix of numbers
- Second problem: counting the words in a text file
- Third problem: object-oriented modelling of a school with teachers, students and classes
- Exercises: extend and improve the solutions
Stage six - Applying for a specialisation
Based on the results of the exams, the work in the classroom, the candidates' work at home, the personal judgement of the trainers and many other additional factors (which the candidates will be told about during the training), a limited number of candidates will be invited to continue their training in the most serious part of the academy - the training for a specific profession using Microsoft technologies. To start the last part of the academy, candidates agree that after graduating successfully they will accept a job at Telerik (employer number 1 for 2010) on exceptionally good terms and with one of the highest salaries in the field of information technologies. After the last exam the candidates will have the chance to apply for one of three specialisations:
- .NET Software Engineer (software engineers for the Microsoft .NET platform)
- QA and Test Automation Engineer (software quality engineers)
- Developer Support (engineers for software support and customer communication)
Stage seven - Training in the specialisations
Once they have been assigned to specialisations, the training continues in three parallel groups, with each specialisation learning what it needs for its future profession. The seventh stage of the training lasts from 2 to 5 months. Every working day, for 6 hours, the participants learn all the most popular Microsoft technologies and everything they need for their future work.
.NET Software Engineer
This track trains software engineers, starting from the basic APIs of the .NET Framework, unit testing, databases, SQL, SQL Server, ADO.NET, LINQ, ORM technologies, Entity Framework, web front-end technologies, HTML, HTML5, CSS, CSS3, JavaScript, ASP.NET, ASP.NET MVC, Windows Presentation Foundation (WPF), Silverlight, web services, WCF, software engineering, teamwork, source control repositories, SCRUM and much, much more.
QA and Test Automation Engineer
This track prepares engineers in software quality management and assurance. The course covers topics such as testing the application lifecycle, automated testing, white-box and black-box testing, web and desktop testing, test management, testing tools and more.
Developer Support
The training for developer support and customer communication engineers covers both technological competences and methodological competences, together with skills for working with customers, English, text-writing skills, problem-solving skills, skills for describing incidents and solutions, producing documentation and more.
Conclusion
If you have not chosen a profession yet, if you are still wondering how to start work at a serious company with good pay without having any experience, the Telerik Software Academy is the perfect choice for you! We will train you free of charge and offer you a job afterwards. We are waiting for you! :)
