Top Banner
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
41

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

May 11, 2015

Download

Education

Svetlin Nakov

Конференция "Бизнесът в действие" (УНСС, март 2014, организирана от AIESEC)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Как да станем софтуерни инженери и да стартираме ИТ бизнес?

How to Become a Software Engineer and Start IT Business?

Guidelines for Future SoftwareEngineers and Technological StartUpers

Svetlin NakovTechnical Trainerwww.nakov.com

Software University

http://softuni.bg

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

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

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

Become a Software DeveloperLearn to Code and Start a Job

3

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

Step 1: Define Your GoalsWhat Kind of Developer You Want to Become?

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

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

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

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)

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

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)

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

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)

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

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)

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

10

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

Defining Your Goals (6)

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

Step 2: Find ResourcesJoin Courses, Follow Tutorials, Watch

Videos, Read Books, Articles, Blogs, etc.

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

12

Finding teaching resources for learningthe 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

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

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

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

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)

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

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)

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

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)

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

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)

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

Step 3: Practice, Practice, Practice!Work on Real-World Practical Projects

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

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 write30 000 – 50 000 lines of code (at least)

To become an expert you may need3-5 years (full time – 8-10 hours / day)

Learn by Practice

Practice, Practice, Heavy Practice!

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

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!

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

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

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

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)

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

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 / galleryviewer / 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)

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

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-232serial 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)

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

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

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

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)

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

27

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-10years everyday (full time)

For software project managers

Not for beginners – learn to develop softwareand practice 7-8 years everyday (full time)

Becoming a Software Engineer (3)

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

Step 4: Join the Community

User Groups, Mailing Lists,

Seminars, IT School, IT University

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

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

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

30

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

Join the Community (2)

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

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

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

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)

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

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)

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

Step 5: Start a JobStart a Job in the Software Industry

Learn and Practice at Work

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

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!

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

Start Your Own Software CompanyGuidelines for Startupers

36

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

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?

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

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

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

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

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

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