1 / 35

How to Become a Software Developer?

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. Table of Contents. Step 1 : Define Your Goals Web / Mobile / Java / Embedded / QA / …

sanura
Télécharger la présentation

How to Become a Software Developer?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. How to Become aSoftware Developer? Guidelines for Future Software Engineers Svetlin Nakov, Ph.D. Telerik Software Academy academy.telerik.com Senior Technical Trainer www.nakov.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

  3. My Goals Step 1: Define Your Goals What 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

  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

  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

  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

  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

  9. Defining Your Goals (6) • Is your desired technology / positionaccurate to the modern trends? • You might want to be a spacecraftdeveloper 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

  10. Step 2: Find Resources Join Courses, Follow Tutorials, Watch Videos, 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

  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

  13. Free Courses for Developers (2) • Kids Academy – telerik-kids.com • Free C++ programming courses • For 9-13years 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

  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

  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 SQL

  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

  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 • 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 write30000 – 50000 lines of code (at least) • To become an expert you may need3-5years (full time – 8-10 hours / day) Practice, Practice, Heavy Practice!

  19. 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 Practice programmingevery day for few years!

  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 / …

  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

  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

  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

  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

  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! DEV

  26. 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-8years everyday (full time)

  27. Developers Step 4: Join the Community User Groups, Mailing Lists,Seminars, IT School, IT University

  28. Join the Community • To be a developer, you mustjoin 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

  29. Join the Community (2) • To be a developer, you mustjoin the development community • Visit regularly any seminars andconferences 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

  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

  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

  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 SoftwareDevelopers (BASD) – devbg.org • Nakov.com Portal for Developers – nakov.com

  33. JOB Step 5: Start a Job Start a Job in the Software IndustryLearn and Practice at Work software IT

  34. Start a Job as Developer • 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!

  35. How to Become aSoftware Developer? ? ? Questions? ? ? ? ? ? ? ? ? ? http://www.nakov.com

More Related