Author: Svetlin Nakov
May 30, 2010
The final round of the Bulgarian IT Olympiad for school students was held on 29-30 May 2010 in Varna. I was invited to be part of the judge team in the category “Software Applications”. The reglament of the Olympiad says that students develop software at home and presents the results at the Olympiad. The most interesting and well done projects were a 3D-Studio like modeling engine, a coding and collaboration platform, universal remote control software and embedded device and platform for measuring motions and accelerations. Nice contest and nice students, very tallanted.

High-Quality Code Lecture
One of the criteria for the judge was the quality of code of the source code of the presented software. Some people could be amazed but half of the projects were written really in “coding horror” style and had variables like TextBox4 and Button2_Click. To reduce this percentage I had a talk in “High-quality programming code”.
Download the presentation here: High-Quality-Code-Presentation-Short.pptx.
Telerik Academy Presentation
I had a talk about Telerik Academy and the free training for .NET software engineers that we do.
Download the presentation: Telerik-Academy-Presentation.pptx.
Tags: collaboration platform, platform, pptx, quality code, quality programming, remote control software, round, Software, team, universal remote control
Author: Svetlin Nakov
May 20, 2010
I was speaker along with my colleague Mihail Stoynov at the seminar organized by the Bulgarian Java User Group (BGJUG) on 20 May 2010 in the Technical University of Sofia. We presented the upcoming Java 7 and its amazing new features like the built-in JVM support of dynamic languages (Da Vinci Virtual Machine), the small language changes that will make the developer’s life better (project Coin) and the proposed support of closures, lambda expressions and extension methods (project Lambda).

It was nice seminar and the developer’s community was actively interrupting our talk with interesting and even quarrelsome questions. Some people just didn’t want to believe that 90% of the new enhancements in Java 7 are already implemented in the Microsoft .NET Framework. I hope one day Java will catch up and .NET will also benefit of its features. The future will show what will happen. In the mean time both Java and C# will benefit from the amazing features from the dynamic languages like Python, Ruby, Groovy, JavaScript Perl and even untraditional functional languages like Lisp and Haskell.

Download the presentation here: Java-7-New-Features-Nakov-BGJUG-Sofia-TU-20.05.2010.pptx.
Download the examples here: NetBeansProjects-Java-7-seminar-BGJUG.zip.
Tags: dynamic languages, functional languages, java user group, lambda expressions, language changes, NET, speaker, support, Technical, User
Author: Svetlin Nakov
May 10, 2010
The Telerik Academy free training program for .NET software engineers is an exciting opportunity for smart and motivated young people to be trained for 6 months for real world software engineers and start their professional career.
C# Fundamentals Course – Part I
We started our first training season in March 2010 with free C# programming course for 6 groups of 16 students. Students attended this course were selected among nearly 250 candidates who were filtered by CV, cover letter, English test, IQ test and computer science test. Best performing 96 candidates started their free trainings in class with the bases of computer programming course (Fundamentals of C# Programming Course – Part I). The first course was just the start. It was held for 1 month (3 times weekly) and was focused on writing simple C# programs with primitive data types, loops and arrays. Trainers were Svetlin Nakov, the principal technical trainer in Telerik Corporation and Momchil Tomov, winner in many Informatics Olympiads.
C# Fundamentals Course – Part II
After a month of trainings with lectures, exercises, assignments and problems solving in class the best 36 attendees (2 groups x 18 students) were selected through an exam to attend the second part of the course (Fundamentals of C# Programming Course – Part II) which focuses on more complicated fundamental programming concepts such as advanced data structures (hash tables, balanced trees, etc.), algorithms, high-quality code construction and problems solving methodology. This course was really advanced and could be compared to the best courses in programming fundamentals, data structures and algorithms in the top 5% of the Universities worldwide. Trainers again were Svetlin Nakov and Momchil Tomov. Problems solved in class and at the graduation exams were nearly the same level like at the Bulgarian National Olympiad of Informatics. The course took 1 month of everyday learning, practicing and problems solving. The final exam was really hard, consisting of 4 problems (Olympiad-level) for 5 hours.

C# Fundamentals Course – Part II
Both C# fundamentals courses were based on the leading free computer programming fundamentals book “Introduction to programming with C#” authored by Svetlin Nakov and his team. All lecture materials, PowerPoint slides, live demonstrations, exercises as well as video-trainings are available for free download and use from the Telerik Academy Web site, in the section C# Programming Fundamentals.
.NET Essentials Course
The best 18 students graduated the C# Fundamentals course will continue their real world software engineering trainings for more 3 months in the course “.NET Development Essentials” which covers the most important .NET development technologies such as databases, XML, ADO.NET, LINQ, LINQ-to-SQL, ADO.NET Entity Framework, ASP.NET and AJAX, Windows Forms, Silverlight, Windows Presentation Foundation (WPF), web services, WCF as well as software engineering fundamental concepts and team working.
Selection Process and Employment in Telerik
Students awarded to take part in the “.NET Essentials” course are selected through an internal selection process which includes series of exams and individual interviews. Telerik trains people for free not just for fun but because it is growing by employing really motivated and extremely skillful young developers that could not be found in the Universities or from other software development companies (with some small exceptions). It is well-known that Telerik is better employer than 95% of the IT companies in Bulgaria due to his excellent team, challengeable projects, cutting edge technologies, development processes based on industry’s best practices, good remuneration and benefits and great work atmosphere. Thus we can easily attract and hire people from other software companies but our requirements are very, very high and the candidates coming from other companies just can’t meet them (with some exceptions). This is the reason why we started our training center and the Telerik Academy free .NET trainings program. We want to train and grow our own .NET ninja developers because we can’t find enough tremendously skillful, well motivated and exciting .NET software engineers to hire. Telerik is large and powerful corporation and we want to grow not just for the number of developers but for extreme quality that drives our success. That’s why we are investing to produce super skillful great developers.
After our internal selection process the best 18 people will start their training in the .NET Essentials course for 3 months (everyday, full time) and will be hired in Telerik as internship trainees. After their graduation they will expand our development teams and will enter in their professional software development career by unique high speed jumpstart like no other else.
The next season of Telerik Academy is planned for September 2010 when new 96 people with have the chance to be trained for free in our unique top-quality training center for .NET developers. In the mean time you could join our official discussion group at http://groups.google.com/group/telerikacademy/.
Tags: Academy, c programming course, computer, computer programming course, development, free c programming, fundamental programming concepts, NET, primitive data types, test
Author: Svetlin Nakov
May 3, 2010
Last week I was invited by Ahmed Hashim, the Egyptian Java User Group (EGJUG) leader for a technical talk about what is coming in Java 7. I was happy to perform a talk in the Faculty of Computers and Informatics (FCI) of Cairo University in front of 60-70 keen Java developers:

I presented the key new features coming with the next release of the Java platform: Java 7, which is expected to be released at the end of 2010. I started by explaining the new concepts about the dynamic languages support in the JVM, the new invokedynamic bytecode instruction, the new module system developed under the project Jigsaw, the extended annotations syntax (JSR 308). I put special attention to the interesting small language enhancements implemented in the project Coin that will make the developer’s life easier: automatic resource management, the new “diamond <>” syntax for generic collections, the concept of collections literals that allow directly specifying the elements of collection at its creation, the indexed [] access to the elements of lists and maps, the new underscore _ syntax for numbers and the new binary format for integers. The exciting new concept of “closures” coming from the functional programming (and already implemented in C# and dynamic languages like Ruby and Python) was explained in details. Special attention was given to the benefits of using function types (method handles) instead of interfaces for implementing callback behavior, the concept of lambda functions and lambda expressions and how all this stuff can be used for efficiently processing collections with extension methods and parallel processing on multi-core / multi-CPU machines. Finally I mentioned few other new features coming with the Java 7 platform: compressed 64-bit oops, garbage-first GC, upgraded class-loaders, URLClassLoader.close(), Unicode 5.1 and support for SCTP and SDP protocols. All features that were implemented in the latest (at the time of presentation) early access preview build 89 of JDK 7 (Java SE 1.7.0-ea-b89) was demonstrated with live examples.

It was interesting seminar and attendees entered into a passionate discussion. Due to the uninterruptable sequence of questions we finished in 3 hours instead of 1.5 hours as initially planned.

I am impressed by the good level of technical expertise of the Egyptian developers in Cairo. The Egyptian Java developers I met were really nice guys and girls, smart and eager for knowledge and motivated to learn new technologies and concepts. Most of them could look a bit strange for the European people (young men with long beards and young girls with covers on their heads) but these people are normal developers, very friendly and polite, smart and skillful – just good developer community.
I didn’t miss my chance to visit Giza and the 7000-years-old pyramids in the desert near Cairo, which is “must visit” when traveling to Egypt.

I hope EGJUG someday will invite me again for exciting technical talks.
Download my PowerPoint presentation about Java 7: Java-7-New-Features-Nakov-EGJUG-Cairo-2-May-2010.pptx.
Download also the demonstration examples: Java7-Demos-Netbeans6.9beta.zip.
Special thanks to Ahmed Hashim who organized this event and my enjoyable stay in Cairo and to my colleague Mihail Stoynov who is my co-author in the presentation.
Tags: access, automatic resource management, class loaders, concept, generic collections, Java, java user group, lambda expressions, platform, User