Download presentation
Presentation is loading. Please wait.
Published byCameron Hicks Modified over 8 years ago
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.