Chapter 27. Conclusionx

farmacridInternet και Εφαρμογές Web

2 Φεβ 2013 (πριν από 4 χρόνια και 8 μήνες)

194 εμφανίσεις

Conclusion

If you are reading this conclusion and if you have read carefully the entire
book, then please accept our well
-
deserved congratulations! We are certain
that you've earned
valuable knowledge in the principles of programming that
will stick for life. Even if the years pass, even if technology evolves and
computers are far from their current state, the fundamental knowledge of
data structures in programming and the algorithmic

way of thinking as well as
the experience gained in solving programming problems will always aid you, if
you work in the field of information technology.

Did You Solve All Problems?

If you've solved all problems from the chapters, in addition to reading
c
arefully the entire book, then you can proudly declare yourself a
programmer. Whatever technology you pick up from now on will be child's
play. Now that you've grasped the basics and fundamental principles of
programming, you'll easily learn to use databas
es and SQL, develop Web
applications and server
-
side software (e.g. with ASP.NET and WCF), write
HTML5 applications, develop for mobile devices and whatever else you'd like.
You have a great advantage over the majority of programmers who don't
know what a
hash table is, how searching in a tree works and what algorithm
complexity is. If you've really made the tremendous effort to solve all
problems from the book, then you've most certainly reached a level of
fundamental understanding of the concepts in progr
amming and a
programmer's correct way of thinking, which will aid you for many years.

Have You Encountered Difficulties with the
Exercises?

If you haven't solved all exercise problems or at least the vast majority of
them, turn back and solve them! Yes, i
t does take a lot of time, but that's the
way to learn programming


with a lot of work and effort. You won't learn
programming without practicing it diligently!

If you've encountered difficulties, use the discussion group of the courses on
fundamentals of

programming at
Telerik Software Academy

which follow this
book:
http://forums.academy.telerik.com
. Several hundred people have taken
these courses and the majori
ty of them have solved all problems and shared
their solutions. So, examine them, try solving the problems, and then try
again without using any guides.

2


Fundamentals of Computer Programming with C#

Many lectures and video tutorials have been uploaded on the book's Web site
(
http://www.introprogramming.info
). We have free PowerPoint slides and
videos in English and Bulgarian for each chapter of the book. They will be of
great use to you, especially if this is the first time you're getting involved in
pro
gramming. If you decide to teach C#, programming or data structures and
algorithms, the slides and exercises will help you focus on the training and
save time preparing the content. It's worth checking them out. Also, check
out the free courses at Telerik
Academy (
http://academy.telerik.com
). All of
their lectures' study materials and video recordings have been made available
for free download on each course's respective Web site. These courses are an
excellent fol
low
-
up to your progress as software engineers and professionals
in software development. All materials (lecture slides, exercises, demos) and
some video recordings, both at this book's and at Telerik Academy's Web site,
are available in English.

How Do You

Proceed After Reading the Book?

Maybe you're wondering how you should continue your development as a
software engineer. You've laid solid foundations with this book, so it won't be
difficult. We can give you the following instructions:

1.

Choose a language a
nd a programming platform
, e. g. C# + .NET
Framework, Java + Java EE, Ruby + Rails or PHP + CakePHP. There's
nothing wrong with giving up C#. Focus on the technologies your platform
supports; you'll learn the corresponding language quickly. For example, if

you choose Objective
-
C and iPhone / iPad / iOS / Xcode programming, the
algorithmic way of thinking you've acquired with this book will help you
make progress.

2.

Read a book on relational databases

and learn how to model your
application's data using tables

and relations between them. Learn how to
build queries for selecting and updating data in SQL. Learn how to work
with a database server, like Oracle, SQL Server or MySQL. The next natural
course of action is to acquire some ORM technology, like ADO.NET En
tity
Framework, Hibernate or JPA. You might also try the NoSQL database
systems available in the public clouds.

3.

Acquire a technology for building dynamic Web sites
. Start with a
book on HTML, CSS, JavaScript and jQuery, or with our free course on
HTML5, CS
S3 and JavaScript (
http://html5course.telerik.com
). Then
explore the web development tools your platform supports, such as
ASP.NET Web Forms / ASP.NET MVC using the .NET Platform and C#,
Servlets / JSP / JSF
using the Java platform, CakePHP / Symfony / Zend
Framework with PHP, Ruby on Rails using Ruby or Django using Python.
Learn how to make simple Web sites with dynamic content. Try creating a
Web application for mobile devices using some mobile UI toolkit.

4.

Take up working on a
more serious project
, like a Web market or a
program for managing warehouse or accounting software. This will give
you the opportunity to encounter the practical problems of practical
Conclusion


3

software development. You'll gain the more valuable

practical experience
and you'll see for yourself that coding advanced software is much more
difficult than coding simple programs.

5.

Get a job at a software company!

This is very important. If you've
really solved all problems from this book, you'll easily
get a job offer. By
working on practical software projects you'll learn a great deal of new
software technologies, unlike your colleagues, and you'll come to realize
that, even though you know a lot about programming, you're only at the
very beginning of
your career as a software engineer. You'll only get to
tackle the challenges of team work and practice, and acquire the tools for
dealing with them by working on actual software projects at an actual work
place. You'll have to work at least for a few years

until you establish
yourself as a software development specialist. Then, perhaps, you'll
remember this book and you'll realize that you haven't gone wrong by
starting with data structures and algorithms rather than directly with web
technologies and datab
ases.

Free Courses at Telerik Software Academy

You can save yourself a lot of trouble and nerves, if you decide to go through
all of the above steps of your development as a software engineer at
Telerik
Academy
. You'll learn under the guidance of
Svetlin Nakov

and instructors
with practical experience in the software industry. The Academy is the easiest
and absolutely free
-
of
-
charge way to lay the foundations of your developm
ent
as a software engineer, but it's not the only way. Everything depends on you!

If you do decide to take advantage of the free courses in programming and
software technology at Telerik Academy for software engineers (on
-
site or
online), take a look at th
e courses of the academy. As of April 2012 the
following free courses are available:

Fundamentals of C# Programming

The course follows very closely the subject matter of this book, which is its
principal textbook. The course provides free tutorials in the
form of lectures,
examples, demos, homework and video recordings of the lectures held at
Telerik Software Academy which are also available in English.

Successful course graduates may participate in the next installment of free
courses at Telerik Academy an
d train in becoming .NET developers, QA
engineers, Web Front
-
end developers, developer support specialists or other
software engineering professionals.

The course is held annually and starts in fall (September
-
October).

Official
C#
course Web site:
http://csharpfundamentals.telerik.com

(in
Bulgarian).

4


Fundamentals of Computer Programming with C#

.NET Development Essentials

The course consists of a very thorough training in software development
targeting the .NET Framework with C#. It lasts for 5
months full
-
time and
covers all essential technologies a .NET software engineer has to be fully
skillful at: .NET Framework, databases, SQL, SQL Server, NoSQL databases,
ORM technologies, ADO.NET Entity Framework, Web services, REST and WCF,
Web front
-
end
technologies, HTML5, JavaScript, jQuery, ASP.NET, ASP.NET
MVC, XAML, WPF, Silverlight, Win8 apps, mobile apps, rich Internet apps,
software engineering, design patterns, unit testing, team work and SCRUM.

Software Quality Assurance and Test Automation
(Tel
erik QA Academy)

The course is a very extensive and thorough training in software quality
assurance and includes theoretical fundamental knowledge in software
testing, as well as practical knowledge and skills in utilizing test automation
tools. The course

covers the fundamentals of software testing, black
-
box and
white
-
box test design techniques, test automation techniques and tools,
testing of web applications, desktop applications, web services and rich
Internet applications, load tests and QA process ma
nagement.

Successful graduates with good results have the opportunity to start working
at Telerik as software quality assurance engineers. The course study materials
are not public.

The course is held annually, free of charge, and starts in spring. Only
gr
aduates of "Fundamentals of C# Programming" may participate. Official
Web site:
http://qaacademy.telerik.com

(in Bulgarian).

Telerik School Academy

Telerik School Academy is an initiative for software and softwa
re technology
development aimed at high school students which aids them in preparing for
the National Olympiad in Information Technology (NOIT). Trainings are held
monthly, full
-
time, over the course of 3 days each month. They are free of
charge, but any a
dditional expenses are covered by the students themselves
or their schools. Non
-
students may participate whenever there are free seats.

The curriculum of Telerik School Academy covers a wide variety of languages
and technologies: C# PHP, the .NET Framework

environment, databases, SQL
Server, MySQL, ORM technologies, front
-
end web applications development
with HTML5, JavaScript and jQuery, Web applications development with
ASP.NET, MVC and AJAX, HTML5, game development, mobile applications
development, deskt
op applications development with Windows Presentation
Foundation (WPF) and RIA development using Silverlight, Win8 apps,
embedded development. Special emphasis is placed on the preparation for the
official technical test at the Bulgarian National Olympiad
in Information
Technology (NOIT)


http://noit.devbg.org
.

Conclusion


5

All study materials for the trainings are put out for free download, and are
also available in English. The lectures can be watched for free through video
recor
dings at the academy's Web site.

Telerik School Academy is held for free once every two years (since it's very
extensive). It starts in fall at the beginning of the school year. Official Web
site:
http://sc
hoolacademy.telerik.com

(in Bulgarian).

Kids Academy

The
Kids Academy for Computer Programming

introduces primary school
students between 4th and 6th grade to the fundamentals of programming.
Currently, 25 divisi
ons have been formed and actively teach 600 kids from the
entire country (Bulgaria). Session trainings are held on
-
site in 17 cities. The
fundamentals of programming with C++ are studied and all participants
compete in online programming competitions which

are held every month of
the school year.

Telerik Kids Academy is an excellent start in programming and information
technology. It aims to spark students' interest in computers and software
development. Upon completing it, they may either proceed to Teleri
k School
Academy or tread the path of competitive programming in Algo Academy.

The course is held annually and starts at the beginning of each school year.
Official Web site:
http://www.telerik
-
kids.com

(in Bulg
arian).

Algo Academy

The academy in algorithmic programming (
Algo Academy
) helps the high
school and college students during their preparation for contests and
Olympiads in Informatics such as the
International Olympiad in Informatics
(IOI)

and
ACM International College Programming Contest (ICPC)
.

During the training meetings, complex algorithms and data structures are
examined. All students take part in practical contests and learn to solve
problems from national and international informatics Olympiads. The
participants study programming techniques
, implement algorithms, share
knowledge and gain experience, in order to become world
-
class competitors.
They can use either the C++ or C# programming languages (at their own
convenience). AT each meeting a training contest is organized which
comprises of
5 easy and 5 hard practical problems for 6 hours. The problems
are automatically evaluated through our online judge system BG Coder


http://bgcoder.com
.

All study materials, lectures, exercises, solutions, algorithms, so
urce code and
other resources are put out for free download on the Algo Academy's Web
site. Whenever possible, videos of the trainings are recorded and uploaded.

Trainings are held monthly over the course of 3 days, full
-
time. They are free
of charge, but any additional expenses for travel and accommodation are
6


Fundamentals of Computer Programming with C#

covered by the students themselves or their schools. Official Web site:
http://algoacademy.telerik.com/

(in Bulgarian).

Web Applications with ASP.NET MVC

The "
Web Applications with ASP.NET MVC" course introduces students to the
practical development of modern web applications on Microsoft's ASP.NET
MVC platform
. The course starts with the fundamentals of and object
-
oriented
programming with C#, relational databases, SQL,
Microsoft SQL Server,
ADO.NET, LINQ and ADO.NET Entity Framework. The subject matter
emphasizes mainly on web technology and web programming wi
th .NET.
Subjects covered during the course include unit testing, test
-
driven
development, security, tuning and monitoring of ASP.NET MVC applications.
There is also a practical session where, step by step, an entire, fully functional
ASP.NET MVC web appli
cation is built from scratch.

The best participants who have submitted all their homework assignments
and defended their projects successfully receive certificates signed by the
course instructors.

All subject materials are available in English and put out

for free download.
Video recordings of the lectures are also available (in Bulgarian).

The course is held annually and starts in fall. Official Web site:
http://mvccourse.telerik.com

(in Bulgarian).

Software D
evelopment in the Cloud

The course covers the most frequently offered services in platforms for cloud
development: non
-
relational (cloud) databases, relational databases in the
cloud, blob / file storage, queues and others. Special emphasis is placed on
th
e practical development of applications on leading cloud platforms like
Amazon AWS
,

Google App Engine
,
Windows Azure
,
AppFog
,
Heroku
and

AppHarbor
.

The course ends with the development of a practical project which includes
building an entire cloud
-
based sy
stem. Students who submit all homework
assignments, develop and defend their practical projects and perform
excellently on the test will receive certificates signed by the instructors.

All subject materials and lectures are available in English and publish
ed
online. Video recordings of the lectures are also available.

The course is held annually and starts in spring. Official Web site:
http://clouddevcourse.telerik.com

(in Bulgarian).

SEO


Search Engine Op
timization

The course on search engine optimization aims to provide basic knowledge on
better indexing and discovery of web pages by Google and other search
engines. Course participants learn how to choose a domain, find and pick
keywords, build links, wor
k with useful SEO tools and apply important
Conclusion


7

techniques for online reputation management (ORM). Current subjects, like
interactions in social networks, generating friend circles, creating a blog and
optimizing its content, are also covered. The free trainin
g in SEO is suitable
for all Web site developers, beginner digital marketing specialists and PR
practitioners.

All subject materials are available in English and are published on the course's
Web site. Video recordings of the lectures are also available.

C
urrently, there are no plans for holding the SEO course again. Official Web
site:
http://seocourse.telerik.com

(in Bulgarian).

Web Design with HTML5, CSS3 and JavaScript

The training provides concepts,
technology and skills in web front
-
end
development. The subjects of the course focus on HTML5, CSS3, JavaScript
and jQuery. Work with popular CMS systems, such as WordPress, is also
covered. The free lectures on web design are suitable for all high school
and
college students who want to make progress in the field of web design and
web development.

Course participants who submit their homework assignments and develop and
successfully defend their practical projects will be awarded a certificate signed
by th
e course instructors as well as the opportunity for professional growth.

All lectures and subject materials are in English and published online. Video
recordings of the lectures are also available.

The course is held annually and starts in spring. Official

Web site:
http://html5course.telerik.com

(in Bulgarian).

Mobile Applications Development Course

The course covers modern technologies for applications development
targeting mobile devices. The course deeply
explores cross
-
platform
development technologies, such as Apache Cordova and PhoneGap, and
development for leading mobile platforms, such as Android, iPhone, Windows
Phone and Windows 8.

All study materials of the training (lectures, exercises and demos) a
re
published on the course's Web site and are available in English. Video
recordings are also available.

The course is held annually and starts in fall. Official Web site:
http://mobiledevcourse.telerik.c
om

(in Bulgarian).

High
-
Quality Code

The course covers the concepts in creating high
-
quality programming code in
the process of software development. The quality of code is examined
regarding its three most important characteristics: correctness, readabili
ty
and maintainability. The course gives out guidelines, recommendations and
8


Fundamentals of Computer Programming with C#

best practices for writing classes and methods, working with loops and data,
formatting code, defensive programming and many others. The principles of
unit testing, test
-
driven de
velopment (TDD) and refactoring are introduced.

All participants must defend, along with the theoretical knowledge gained, a
practical project through which they acquire the real
-
world principles of high
-
quality code, unit testing and refactoring of low
-
qu
ality code.

All study materials of the training (lectures, exercises and demos) are
published on the course's Web site and are available in English. Video
recordings are also available.

The course is held annually and starts in spring. Official Web site:
http://codecourse.telerik.com

(in Bulgarian).

Web Applications Development with .NET Framework
and ASP.NET

The course introduces its students to the practical development of modern
web applications on the Micro
soft .NET platform. It covers the fundamentals
of the C# programming language, the .NET platform, databases and web
applications development with ASP.NET Web Forms and AJAX. Course
participants learn how to build dynamic web applications with databases
bas
ed on ASP.NET, SQL Server and ADO.NET Entity Framework. The subject
matter emphasizes mainly on web technology and web programming on the
.NET platform


starting with HTTP, HTML, CSS, and JavaScript, going
through the fundamentals of ASP.NET and ASP.NET W
eb Forms and
concluding with more complex concepts in ASP.NET (state management,
master pages, user controls and AJAX). The course also touches upon topics
such as Rich Internet Applications, Silverlight and ASP.NET MVC.

All subject materials of the traini
ngs (lectures, exercises and demos) are
available in English and are published on the course's Web site. Video
recordings of the lectures are also available.

The course is archived and there are no plans for holding it again. Official Web
site:
http://aspnetcourse.telerik.com

(in Bulgarian).

Good Luck to Everyone!

On behalf of the entire panel of authors, we wish you endless success in your
career and personal life!

Svetlin Nakov,

Technical Training Manager, T
elerik Corp.,

Telerik Academy for software engineers


http://academy.telerik.com

23.08.2012