how to become a developer in bulgaria

36
How to Become a Software Developer? Guidelines for Future Software Engineers Svetlin Nakov, Ph.D. Telerik Software Academy academy.telerik.com Senior Technical Trainer www.nakov.com

Upload: telerik-software-academy

Post on 18-May-2015

2.024 views

Category:

Technology


1 download

DESCRIPTION

Guidelines for Future Software Engineers http://academy.telerik.com The website and all video materials language is Bulgarian Step 1: Define Your Goals Web / Mobile / Java / Embedded / QA / … Step 2: Find Resources Courses, Tutorials, Videos, Books, etc. Step 3: Practice, Practice, Practice! Practical Projects every day Step 4: Join the Community User groups, IT school, IT university Step 5: Start a Job in the Industry

TRANSCRIPT

Page 1: How to Become a Developer in Bulgaria

How to Become aSoftware

Developer?Guidelines for Future Software Engineers

Svetlin Nakov, Ph.D.

Telerik Software Academyacademy.telerik.com

Senior Technical Trainerwww.nakov.com

Page 2: How to Become a Developer in Bulgaria

Table of Contents Step 1: Define Your Goals

Web / Mobile / Java / Embedded / QA / …

Step 2: Find Resources Courses, Tutorials, Videos, Books,

etc.

Step 3: Practice, Practice, Practice! Practical Projects every day

Step 4: Join the Community User groups, IT school, IT university

Step 5: Start a Job in the Industry

2

Page 3: How to Become a Developer in Bulgaria

Step 1: Define Your GoalsWhat Kind of Developer You Want to Become?

MyGoals

Page 4: How to Become a Developer in Bulgaria

Defining Your Goals What kind of software engineer you want to become (what position)? Software Developer

Designer / Front-End Developer

Developer Support Engineer

Software Quality Assurance Engineer (QA)

Business Analyst / Requirements Engineer

System Administrator / IT Specialist

Project Manager / IT Manager

4

Page 5: How to Become a Developer in Bulgaria

Defining Your Goals (2) What technology you want to learn? Web Development

PHP / Zend / CakePHP / Symfony / MySQL

C# / ASP.NET MVC / Web Forms / EF / SQL Server

Ruby / Rails / Sinatra / MySQL

Python / Django / MySQL / PostgreSQL

Java / Java EE / Servlets / JSP / JSF / JPA / Oracle

JavaScript / Node.js / MySQL / MongoDB

HTML5, JavaScript / jQuery / AJAX / REST / JSON

5

Page 6: How to Become a Developer in Bulgaria

Defining Your Goals (3) What technology you want to learn ? Mobile Development (Smart

Phones / Tablets) iOS / iPhone / iPad / Objective C /

XCode / Cocoa Touch

Android / Java / Eclipse

Windows Phone / Silverlight / C# / Visual Studio

Blackberry / C / C++ / Java / HTML5 / WebWorks

Cross-Platform Mobile Frameworks / PhoneGap / Titanium / Rhodes

6

Page 7: How to Become a Developer in Bulgaria

Defining Your Goals (4) What technology you want to learn? Server-Side Development

Java / Java EE / Spring Framework /Hibernate / JPS / JAX-WS / JAX-RS / Oracle

C# / .NET Framework / WCF / WWF / ADO.NET Entity Framework / SQL Server

Database Development Oracle / SQL Server / MySQL /

PostgreSQL / Stored Procedures / ETL / Reporting / DBA

7

Page 8: How to Become a Developer in Bulgaria

Defining Your Goals (5) What technology you want to learn? Game Development

2D / 3D Graphics / C++ / OpenGL / DirectX /XNA / Geometry / Physics / AI / Networking

Mobile Games

Facebook Games

Embedded Development Microcontrollers / Real-Time

Systems /RTOS / Embedded OS / C / C++ / Assembler

8

Page 9: How to Become a Developer in Bulgaria

Defining Your Goals (6) Is your desired technology / positionaccurate to the modern trends? You might want to be a spacecraft

developer but do you find any job openings?

You might become a 3D game developer but check whether this is a perspective profession

Prefer technologies and positionswith high demand in the industry! E.g. Web developer / iOS developer

/ .NET Developer / Java developer

9

Page 10: How to Become a Developer in Bulgaria

Step 2: Find ResourcesJoin Courses, Follow Tutorials, Watch

Videos, Read Books, Articles, Blogs, etc.

Page 11: How to Become a Developer in Bulgaria

Find Training Resources Finding teaching resources for learning the technologies you want Join courses

Free / paid / live / online

Watch video tutorials / video courses

Follow tutorials Just search in Google

Read books

Read articles / blogs 11

Page 12: How to Become a Developer in Bulgaria

Free Courses for Developers

Telerik Academy – academy.telerik.com Free software development courses

+ videos

HTML5, C#, algorithms, ASP.NET MVC, mobile development, cloud development, SEO, software engineering, QA, high-quality code, …

School Academy – schoolacademy.telerik.com PHP, Web development, HTML5,

JavaScript, C#, .NET, databases, SQL, SQL Server, MySQL, ORM, ADO.NET EF, WPF, 3D game development, embedded systems

12

Page 13: How to Become a Developer in Bulgaria

Free Courses for Developers (2)

Kids Academy – telerik-kids.com Free C++ programming courses

For 9-13 years old children

Algo Academy – algoacademy.telerik.com Free preparation for the informatics

contests Algorithms, data structures,

competitive programming for contests and Olympiads

Web Design, HTML, JavaScript http://tiny.cc/frontend-videos

13

Page 14: How to Become a Developer in Bulgaria

Free Courses for Developers (3)

PHP & MySQL http://tiny.cc/php-mysql-academy

C# Programming and Algorithms http://tiny.cc/csharp-videos

ASP.NET MVC Development http://tiny.cc/aspnetmvc-videos

ASP.NET Web Forms Development http://tiny.cc/aspnet-videos

Search Engine Optimization (SEO) http://tiny.cc/seocourse-videos

14

Page 15: How to Become a Developer in Bulgaria

Free Courses for Developers (4)

Mobile Development http://tiny.cc/mobile-dev-videos

iPhone Development http://tiny.cc/iphone-dev-videos

Android Development http://tiny.cc/android-videos

Databases and SQL http://tiny.cc/databases-academy

http://www.db-class.org15

SQL

Page 16: How to Become a Developer in Bulgaria

Free Courses for Developers (5)

High-Quality Code http://tiny.cc/quality-code-videos

Game Development http://tiny.cc/game-dev-videos

Java Programming http://tiny.cc/java-dev-videos

MIT OpenCourseWare http://tiny.cc/mit-ocw-dev-courses

Stanford Open Engineering Courses http://

see.stanford.edu/see/courses.aspx16

Page 17: How to Become a Developer in Bulgaria

Step 3: Practice,Practice, Practice!

Work on Real-World Practical Projects

Page 18: How to Become a Developer in Bulgaria

Learn by Practice There is only one way to learn programming and software development

Most people learn the basics of programming in 5-6 months to 1 year (8-10 hours / day) To learn coding well you need to

write30 000 – 50 000 lines of code (at least)

To become an expert you may need3-5 years (full time – 8-10 hours / day)

18

Practice, Practice, Heavy Practice!

Page 19: How to Become a Developer in Bulgaria

Practice Every Day for Years

To become a good developer you need to:

Solve few hundreds of programming tasks E.g. all exercises from the Intro C#

book – introprogramming.info/intro-csharp-book

Create few larger practical projects E.g. create your own simplified

Facebook E.g. develop your own accounting

software

19

Practice programmingevery day for few

years!

Page 20: How to Become a Developer in Bulgaria

Create Real-World Projects

Creating real-world projects is essential! Watching videos / reading books in

not enough

Work on practical projects every day

For Web developers Learn Web design, HTML and some

CMS system

Learn ASP.NET MVC or PHP or Ruby or Python

Create your own web site / blog

Create at least 5-10 web sites and applications

Create your own Facebook / Flickr / YouTube / …

20

Page 21: How to Become a Developer in Bulgaria

Create Real-World Projects (2)

For desktop developers Learn C#, databases, SQL, EF and

WPF Create your own video player /

Minesweeper, Tetris / calculator / Windows explorer / Paint

Create your own accounting software / warehouse management / retail system

For game developers Learn C++, OpenGL and 2D / 3D

graphics Create your own Popcorn / Xonix /

Tetris Create your own 3D striker game

21

Page 22: How to Become a Developer in Bulgaria

For mobile developers Learn some of the mobile platforms

Android / iOS / Windows Phone / Blackberry

Along with the languages, APIs and tools

Create at least 5-10 simple applications E.g. Tetris game / calculator / alarm

clock / gallery viewer / mp3 player / video player / text editor

Create at least 2-3 more complex applications E.g. chat server + mobile client /

foursquare app

Create Real-World Projects (3)

22

Page 23: How to Become a Developer in Bulgaria

Create Real-World Projects (4)

For embedded developers Learn to program for 2-3 embedded

platforms E.g. Arduino + Atmel AVR + PIC

Learn C language, the tools and APIs

Learn to control peripheral devices E.g. GPIO (input / output pins),

buttons, displays, SD card, RS-232 serial interface, USB interface, timers, sensors, networking, RFID, Bluetooth, …

Create 4-5 practical projects: e.g. traffic lights, card based access control system, MP3 player

23

Page 24: How to Become a Developer in Bulgaria

Becoming a Software Engineer

For server-side developers Server-side development is not for

beginners!

Try to start a job and study at work

Two possible tracks Java + Java EE + ORM Frameworks +

Oracle

C# + .NET + ORM + SQL Server + WCF + WWF

Learning server-side development is a big effort Once you learn programming, it will

take 3-5 years to learn server-side development

24

Page 25: How to Become a Developer in Bulgaria

Becoming a Software Engineer (2)

For database developers Several possible tracks

Oracle / SQL Server / PostgreSQL /MySQL / cloud databases

First learn SQL, database design, database transactions and database reporting

Get familiar with database administration

Get familiar with BI (business intelligence),data warehouse systems, etc.

Start a job and learn at work!

25

DEV

Page 26: How to Become a Developer in Bulgaria

Becoming a Software Engineer (2)

For business analysts

Not for beginners – learn businessand IT, start a job and practice at work

For software architects

Not for beginners – learn software development and practice 8-10 years everyday (full time)

For software project managers

Not for beginners – learn to develop software and practice 7-8 years everyday (full time)

26

Page 27: How to Become a Developer in Bulgaria

Step 4: Join the Community

User Groups, Mailing Lists,Seminars, IT School, IT University

Developers

Page 28: How to Become a Developer in Bulgaria

Join the Community To be a developer, you must join the development community Join Telerik academy initiatives Enter in the best High School /

Universityrelated to your goals in your area

Join to the user groups in your area Take part in their seminars and events

Regularly visit the forums related to your goals

Join the mailing lists related to your goals

28

Page 29: How to Become a Developer in Bulgaria

Join the Community (2) To be a developer, you must join the development community Visit regularly any seminars and

conferences related to your goals Join the local hacker space community Join any other community

organizations Take part in all related programming

contests, tournament s and Olympiads Create a blog and share your

knowledge / establish your own events / courses / organizations

29

Page 30: How to Become a Developer in Bulgaria

Developer Communities in BG

initLab (hacker space in Sofia) – initlab.org

varnaLab (hacker space Varna) – varnalab.org

SofiaDev .NET user group – sofiadev.org

Java users group (Sofia) – java-bg.org

Oracle user group – bgoug.org Sofia JavaScript user group – sofiajs.org

Ruby on Rails community – bgonrails.com

Drupal Bulgaria – drupalbg.org Joomla Bulgaria – joomla-bg.com

30

Page 31: How to Become a Developer in Bulgaria

Developer Communities in BG (2)

Photoshop Bulgaria – photoshop.bg SQL & BI Bulgaria – bgsqlgroup.com

BG PostgreSQL Group – bgpug.groupsite.com

Silverlight Bulgaria – silverlight.bg NLP Club Bulgaria – nlpclub.devbg.org

SharePoint User Group Bulgaria – sugbg.org

Azure User Group Bulgaria – azure.bg

Flex User Group Bulgaria – flex.riabg.org

C++ Bulgarian User Group – cppbg.devbg.org

31

Page 32: How to Become a Developer in Bulgaria

Developer Communities in BG (3)

Scrum Bulgaria – scrumbulgaria.org

Linux Bulgaria – linux-bulgaria.org

Linux for Bulgarians – linux-bg.org

iPhone Bulgaria – iphone-bulgaria.com

Solaris BG User Group – bgsug.filibeto.org

Bulgarian Association of SoftwareDevelopers (BASD) – devbg.org

Nakov.com Portal for Developers – nakov.com

32

Page 33: How to Become a Developer in Bulgaria

Step 5: Start a JobStart a Job in the Software Industry

Learn and Practice at Work

IT

software

JOB

Page 34: How to Become a Developer in Bulgaria

Start a Job as Developer

34

The best way to learn real-worldsoftware development:

Working on real-world commercial projects is essential to gain practical skills and experience

The best developers learn their job at work Start by learning programming at

home / class Start as junior developer and

trainee Become regular / senior developer /

team leader

Start a Job as Developer!

Page 35: How to Become a Developer in Bulgaria

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

How to Become aSoftware Developer?

http://academy.telerik.com

Page 36: How to Become a Developer in Bulgaria

Free Trainings @ Telerik Academy

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com