Presentation is loading. Please wait.

Presentation is loading. Please wait.

Guidelines for Future Software Engineers Svetlin Nakov, Ph.D. Telerik Software Academy academy.telerik.com Senior Technical Trainer www.nakov.com.

Similar presentations


Presentation on theme: "Guidelines for Future Software Engineers Svetlin Nakov, Ph.D. Telerik Software Academy academy.telerik.com Senior Technical Trainer www.nakov.com."— Presentation transcript:

1 Guidelines for Future Software Engineers Svetlin Nakov, Ph.D. Telerik Software Academy academy.telerik.com Senior Technical Trainer www.nakov.com

2  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 What Kind of Developer You Want to Become?

4  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  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  HTML 5, JavaScript / jQuery / AJAX / REST / JSON 5

6  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 / HTML 5 / WebWorks  Cross-Platform Mobile Frameworks / PhoneGap / Titanium / Rhodes 6

7  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  What technology you want to learn?  Game Development  2 D / 3 D 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  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 3 D 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 Join Courses, Follow Tutorials, Watch Videos, Read Books, Articles, Blogs, etc.

11  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  Telerik Academy – academy.telerik.com academy.telerik.com  Free software development courses + videos  HTML 5, C#, algorithms, ASP.NET MVC, mobile development, cloud development, SEO, software engineering, QA, high-quality code, …  School Academy – schoolacademy.telerik.com schoolacademy.telerik.com  PHP, Web development, HTML 5, JavaScript, C#,.NET, databases, SQL, SQL Server, MySQL, ORM, ADO.NET EF, WPF, 3 D game development, embedded systems 12

13  Kids Academy – telerik-kids.com telerik-kids.com  Free C++ programming courses  For 9 - 13 years old children  Algo Academy – algoacademy.telerik.com 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 http://tiny.cc/frontend-videos 13

14  PHP & MySQL  http://tiny.cc/php-mysql-academy http://tiny.cc/php-mysql-academy  C# Programming and Algorithms  http://tiny.cc/csharp-videos http://tiny.cc/csharp-videos  ASP.NET MVC Development  http://tiny.cc/aspnetmvc-videos http://tiny.cc/aspnetmvc-videos  ASP.NET Web Forms Development  http://tiny.cc/aspnet-videos http://tiny.cc/aspnet-videos  Search Engine Optimization (SEO)  http://tiny.cc/seocourse-videos http://tiny.cc/seocourse-videos 14

15  Mobile Development  http://tiny.cc/mobile-dev-videos http://tiny.cc/mobile-dev-videos  iPhone Development  http://tiny.cc/iphone-dev-videos http://tiny.cc/iphone-dev-videos  Android Development  http://tiny.cc/android-videos http://tiny.cc/android-videos  Databases and SQL  http://tiny.cc/databases-academy http://tiny.cc/databases-academy  http://www.db-class.org http://www.db-class.org 15

16  High-Quality Code  http://tiny.cc/quality-code-videos http://tiny.cc/quality-code-videos  Game Development  http://tiny.cc/game-dev-videos http://tiny.cc/game-dev-videos  Java Programming  http://tiny.cc/java-dev-videos http://tiny.cc/java-dev-videos  MIT OpenCourseWare  http://tiny.cc/mit-ocw-dev-courses http://tiny.cc/mit-ocw-dev-courses  Stanford Open Engineering Courses  http://see.stanford.edu/see/courses.aspx http://see.stanford.edu/see/courses.aspx 16

17 Work on Real-World Practical Projects

18  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 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 Practice, Practice, Heavy Practice!

19  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 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 programming every day for few years!

20  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  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 2 D / 3 D graphics  Create your own Popcorn / Xonix / Tetris  Create your own 3 D striker game 21

22  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  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, MP 3 player 23

24  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  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  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 User Groups, Mailing Lists, Seminars, IT School, IT University

28  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  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  initLab (hacker space in Sofia) – initlab.org initlab.org  varnaLab (hacker space Varna) – varnalab.org varnalab.org  SofiaDev.NET user group – sofiadev.org sofiadev.org  Java users group (Sofia) – java-bg.org java-bg.org  Oracle user group – bgoug.org bgoug.org  Sofia JavaScript user group – sofiajs.org sofiajs.org  Ruby on Rails community – bgonrails.com bgonrails.com  Drupal Bulgaria – drupalbg.org drupalbg.org  Joomla Bulgaria – joomla-bg.com joomla-bg.com 30

31  Photoshop Bulgaria – photoshop.bg photoshop.bg  SQL & BI Bulgaria – bgsqlgroup.com bgsqlgroup.com  BG PostgreSQL Group – bgpug.groupsite.com bgpug.groupsite.com  Silverlight Bulgaria – silverlight.bg silverlight.bg  NLP Club Bulgaria – nlpclub.devbg.org nlpclub.devbg.org  SharePoint User Group Bulgaria – sugbg.org sugbg.org  Azure User Group Bulgaria – azure.bg azure.bg  Flex User Group Bulgaria – flex.riabg.org flex.riabg.org  C++ Bulgarian User Group – cppbg.devbg.org cppbg.devbg.org 31

32  Scrum Bulgaria – scrumbulgaria.org scrumbulgaria.org  Linux Bulgaria – linux-bulgaria.org linux-bulgaria.org  Linux for Bulgarians – linux-bg.org linux-bg.org  iPhone Bulgaria – iphone-bulgaria.com iphone-bulgaria.com  Solaris BG User Group – bgsug.filibeto.org bgsug.filibeto.org  Bulgarian Association of Software Developers (BASD) – devbg.org devbg.org  Nakov.com Portal for Developers – nakov.com nakov.com 32

33 Start a Job in the Software Industry Learn and Practice at Work

34 34  The best way to learn real-world software 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!

35 Questions? http://www.nakov.com


Download ppt "Guidelines for Future Software Engineers Svetlin Nakov, Ph.D. Telerik Software Academy academy.telerik.com Senior Technical Trainer www.nakov.com."

Similar presentations


Ads by Google