Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Upcoming SlideShare
Loading in...5
×
 

Как да станем софтуерни инженери и да стартираме ИТ бизнес?

on

  • 820 views

Конференция "Бизнесът в действие" (УНСС, март 2014, организирана от AIESEC)

Конференция "Бизнесът в действие" (УНСС, март 2014, организирана от AIESEC)

Statistics

Views

Total Views
820
Slideshare-icon Views on SlideShare
818
Embed Views
2

Actions

Likes
4
Downloads
14
Comments
0

2 Embeds 2

http://ipv6.symfony2developer.com 1
http://symfony2developer.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Как да станем софтуерни инженери и да стартираме ИТ бизнес? Как да станем софтуерни инженери и да стартираме ИТ бизнес? Presentation Transcript

    • How to Become a Software Engineer and Start IT Business? Guidelines for Future Software Engineers and Technological StartUpers Svetlin Nakov Technical Trainer www.nakov.com Software University http://softuni.bg
    • 2  Become a Software Developer  Step 1: Define Your Goals  Step 2: Find Resources  Step 3: Practice, Practice, Practice!  Step 4: Join the Community  Step 5: Start a Job in the Industry  Start IT Business  The Lean Startup Principles Table of Contents
    • Become a Software Developer Learn to Code and Start a Job 3
    • Step 1: Define Your Goals What Kind of Developer You Want to Become?
    • 5  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 Defining Your Goals
    • 6  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 Defining Your Goals (2)
    • 7  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 Defining Your Goals (3)
    • 8  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 Defining Your Goals (4)
    • 9  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 Defining Your Goals (5)
    • 10  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 Defining Your Goals (6)
    • Step 2: Find Resources Join Courses, Follow Tutorials, Watch Videos, Read Books, Articles, Blogs, etc.
    • 12  Finding teaching resources for learning the technologies you want  Join courses  Free / paid / live / online  Watch video tutorials  Follow tutorials  Just search in Google  Read books  Read articles / blogs Find Training Resources
    • 13  Software University – http://softuni.bg  High-quality training, profession and job for software engineers + higher education diploma  C#, Java, HTML5, JavaScript, PHP  Plans: free, online and onsite  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, … Free Courses for Developers
    • 14  Telerik School Academy – schoolacademy.telerik.com  PHP, Web, HTML5, JavaScript, C#, .NET, databases, SQL, SQL Server, MySQL, ORM, ADO.NET EF, WPF, embedded systems, …  Kids Academy – telerik-kids.com  Free C++ programming courses  For 9-13 years old children  Web Design, HTML, JavaScript  http://tiny.cc/frontend-videos Free Courses for Developers (2)
    • 15  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 Free Courses for Developers (3)
    • 16  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 Free Courses for Developers (4)
    • 17  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 Free Courses for Developers (5)
    • Step 3: Practice, Practice, Practice! Work on Real-World Practical Projects
    • 19  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) Learn by Practice Practice, Practice, Heavy Practice!
    • 20  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 or develop your own accounting software Practice Every Day for Years Practice programming every day for few years!
    • 21  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 / … Create Real-World Projects
    • 22  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 Create Real-World Projects (2)
    • 23  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)
    • 24  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 Create Real-World Projects (4)
    • 25  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 Becoming a Software Engineer
    • 26  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! Becoming a Software Engineer (2)
    • 27  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) Becoming a Software Engineer (3)
    • Step 4: Join the Community User Groups, Mailing Lists, Seminars, IT School, IT University
    • 29  To be a developer, you must join the development community  Join Software University 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 Join the Community
    • 30  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 Join the Community (2)
    • 31  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 Developer Communities in BG
    • 32  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 Developer Communities in BG (2)
    • 33  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 Developer Communities in BG (3)
    • Step 5: Start a Job Start a Job in the Software Industry Learn and Practice at Work
    • 35  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 Start a Job as Developer!
    • Start Your Own Software Company Guidelines for Startupers 36
    • 37  My recipe for IT startupers  First gain experience  At least 5 years in the IT industry  Starting a company is not for beginners!  Start a company and fail it  to learn how not to do it  Join a really successful company  learn how others do it  Start you own company  find your way to do it Start Your Own IT Company?
    • 38  You already have paying customers  Start an outsorcing company to serve them  Hire additional people, grow your team  You already have a product with real customers  Establish a product development company  You have a really genius idea for a new product  This is very risky! Everyone have a generous idea, right?  Follow the lean startup principles, first verify the idea Reasons to Start a Company
    • ? http://softuni.org/courses How to Become a Software Engineer and Start IT Business?
    • License  This course (slides, examples, demos, videos, homework, etc.) is licensed under the "Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International" license 40  Attribution: this work may contain portions from  "Fundamentals of Computer Programming with C#" book by Svetlin Nakov & Co. under CC-BY-SA license  "C# Part I" course by Telerik Academy under CC-BY-NC-SA license
    • Free Trainings @ Software University  Software University Foundation – softuni.org  Software University – High-Quality Education, Profession and Job for Software Developers  softuni.bg  Software University @ Facebook  facebook.com/SoftwareUniversity  Software University @ YouTube  youtube.com/SoftwareUniversity  Software University Forums – forum.softuni.bg