Your SlideShare is downloading. ×
0
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
How to Become a Developer in Bulgaria
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

How to Become a Developer in Bulgaria

2,117

Published on

Guidelines for Future Software Engineers …

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

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,117
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
63
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. How to Become a Software Developer? Guidelines for Future Software EngineersSvetlin Nakov, Ph.D.Senior Technical Trainerwww.nakov.comTelerik Software Academyacademy.telerik.com
  • 2. 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
  • 3. Step 1: Define Your GoalsWhat Kind of Developer You Want to Become?
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. Defining Your Goals (6) Is your desired technology / position accurate 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 positions with high demand in the industry!  E.g. Web developer / iOS developer / .NET Developer / Java developer 9
  • 10. Step 2: Find Resources Join Courses, Follow Tutorials, WatchVideos, Read Books, Articles, Blogs, etc.
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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.org 15
  • 16. 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.aspx 16
  • 17. Step 3: Practice, Practice, Practice!Work on Real-World Practical Projects
  • 18. Learn by Practice There is only one way to learn programming and software development Practice, Practice, Heavy Practice! Most people learn the basicsof programming in 5-6 months to 1 year (8-10 hours / day)  To learn coding well you need to write 30 000 – 50 000 lines of code (at least)  To become an expert you may need 3-5 years (full time – 8-10 hours / day) 18
  • 19. Practice Every Day for Years To become a good developer you need to: Practice programming every day for few years! 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
  • 20. 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
  • 21. 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
  • 22. Create Real-World Projects (3) 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 22
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. Becoming a Software Engineer (2) For business analysts  Not for beginners – learn business and 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
  • 27. Step 4: Join the Community User Groups, Mailing Lists, Seminars, IT School, IT University
  • 28. Join the Community To be a developer, you must join the development community  Join Telerik academy initiatives  Enter in the best High School / University related 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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 Software Developers (BASD) – devbg.org Nakov.com Portal for Developers – nakov.com 32
  • 33. Step 5: Start a JobStart a Job in the Software Industry Learn and Practice at Work
  • 34. Start a Job as Developer The best way to learn real-world software development: Start a Job as Developer! 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 34
  • 35. How to Become a Software Developer? курсове и уроци по програмиране, уеб дизайн – безплатно BG Coder - онлайн състезателна система - online judge курсове и уроци по програмиране – Телерик академия форум програмиране, форум уеб дизайн уроци по програмиране и уеб дизайн за ученици ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET http://academy.telerik.com програмиране за деца – безплатни курсове и уроци ASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC безплатен SEO курс - оптимизация за търсачки алго академия – състезателно програмиране, състезаниякурсове и уроци по програмиране, книги – безплатно от Наков курс мобилни приложения с iPhone, Android, WP7, PhoneGap уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop Дончо Минков - сайт за програмиране free C# book, безплатна книга C#, книга Java, книга C# Николай Костов - блог за програмиране безплатен курс "Качествен програмен код" безплатен курс "Разработка на софтуер в cloud среда" C# курс, програмиране, безплатно
  • 36. Free Trainings @ Telerik Academy Telerik Software Academy  academy.telerik.com Telerik Academy @ Facebook  facebook.com/TelerikAcademy Telerik Software Academy Forums  forums.academy.telerik.com

×