how to become a software developer

15
How to Become a Software Developer Debre Haile Kidus Raguael EOTC IT Professionals Group Eyob Lube - 8/25/2013

Upload: eyob-lube

Post on 26-Jun-2015

403 views

Category:

Technology


1 download

DESCRIPTION

How to start a software development career.

TRANSCRIPT

Page 1: How to become a software developer

How to Become a Software Developer

Debre Haile Kidus Raguael EOTC IT Professionals Group Eyob Lube - 8/25/2013

Page 2: How to become a software developer

Agenda

1. Introduction

i. Definition

ii. Salary Range and Job Market

2. Roles/Responsibilities

3. Requirements

4. Steps

5. Resources

Page 3: How to become a software developer

1. Introduction

i. Definition A software developer is a person who is

concerned with different areas of software development process. Their work includes researching, designing, implementing, and testing software.

A software developer may take part in design, computer programming, or software project management. 

Names like  programmer, software analyst, and software engineer are also used in similar context.

http://en.wikipedia.org/wiki/Software_developer

Page 4: How to become a software developer

ii. Salary Range and Job Market Median pay: $84,200 

Top pay: $121,000 10-year job growth: 24.6%Total jobs*: 3,426,000

#9th best job in america from cnn best-jobs 2012 article

http://money.cnn.com/pf/best-jobs/

*Total jobs is estimated number of people working in broader BLS 'job family.‘ 

Software developers expected to see the highest IT job growth come 2020 http://www.infoworld.com/t/it-jobs/software-developers-expected-see-the-highest-it-job-growth-come-2020-212709

There are around 4.16 million IT professionals working in the United States today, and that number is expected to grow by 22 percent through 2020, according to research company CompTIA.

Page 5: How to become a software developer

2. Roles/Responsibilities Software design Actual core implementation (programming which is often the most important portion

of software development) Other required implementations (e.g. installation, configuration, customization,

integration, data migration) Participation in software product definition, including business case or gap analysis Specification Requirements analysis Development and refinement of throw-away simulations or prototypes to confirm

requirements Feasibility and cost–benefit analysis, including the choice of application architecture

 and framework, leading to the budget and schedule for the project Authoring of documentation needed by users and implementation partners etc. Testing, including defining/supporting acceptance testing and gathering feedback

from pre-release testers Participation in software release and post-release activities, including support for

product launch evangelism (e.g. developing demonstrations and/or samples) and competitive analysis for subsequent product build/release cycles

Maintenance Source: http://en.wikipedia.org/wiki/Software_developer

Page 6: How to become a software developer

3. Requirements You Do Not Have to Have a College Degree to Become a

Good Programmer Computer Science degrees are wonderful things but they

aren’t required to be a programmer or even a good programmer.

Do I Have to Be a Math Guru To become a Programmer? Not necessarily, it might help you in certain situations, to

know complex mathematical structures but many people made a career out of being a programmer.

Then what do I need? If you have passion (interest) , time and dedication to succeed, a computer, internet connection….

How long does it take? It depends on your effort and dedication, for some it may be 3 – 6 months, for others may be 1 year or more.

Page 7: How to become a software developer

4. Steps Step 1. Pick a Pet Project

Find some little project that you want to build and you go and build it. Ex: Church membership management software, calculator…

Find something you like to do in the non-programming world and write an app that helps you in some related way.

Your first app my not be great ..but it’s learning experience Learning about Scope – deadlines and prioritization

Step 2. Buy a starter-level C# book or video course Topics to cover

Building GUIs Working with persistent data storage Working with Files and folders Basic architecture Basic object-oriented architecture and design (OOAD also referred “class design”) Chapters that can be digested individually You don’t want a book/course that, if you skip an early chapter (say, Chapter 5

for example), you can’t finish the rest of the book.

Page 8: How to become a software developer

Steps continued… Step 3: Begin reading the book/taking the course

Keep a Notes and organize your code Questions I have OOAD Data types Working with Files and Folders Best Practices To-do list Working with Databases Code Snippets Tips & Tricks

Step 4: Implement your pet project while reading the book/taking the course As soon as you find something in the book or course from

step 2 that you can use in your pet project, go for it! However don’t be too impatient; it’s not until you get a few chapters into it that you will have the knowledge of how to even get started.

Page 9: How to become a software developer

Steps continued… Step 5: Post your questions in an online C# forum

While you go through the Steps 1-4, you will likely; Get exited about the possibilities that C# has to offer Become confused Get utterly frustrated with how vast C# and the .NET Framework are Get utterly frustrated with how complex software engineering is Mess up with overwriting changes that took you hours to complete,

forget to backup your files, or need a complete refactor. You know what? It’s all normal for you at this stage. Your life as a C#

programmer will likely follow the Gartner Hype Cycle: It’s going to take a lot of time, a lot of practice, and a lot of

frustrations but it will be worth it! Once you love programming – it has rewarding experience.

To minimize learning time, read/study more, find a mentor, ask for help, sleep on it/take a break.

Find an online Forum and ask questions

Page 10: How to become a software developer

Gartner Hype Cycle

Page 11: How to become a software developer

Gartner Hype Cycle The “Technology Trigger” is your deciding to

learn C# or become a good C# programmer and the “Peak of Inflated Expectations” is what happens when you start seeing C# as the solution to everything.

The “Trough of Disillusionment” is when you realize that (a) C# isn’t the solution to everything, (b) that C# is massive, (c) that writing software is hard, (d) that there is so much to learn, and (e) that this isn’t going to be as easy as you thought. The “Slope of Enlightenment” is when you start to “get it” and the “Plateau of Productivity” is when you finally are able to get some quality work done!

Page 12: How to become a software developer

Steps continued… Step 6: Find some C# sample apps and review how the

developers did things Look for complete applications Check CodePlex.com for microsoft community

Step 7: Finish your book/course and buy another beginner/intermediate level C# book/course

Pick a next-level book/course that helps you acquire specific skills that you can use to get a job

Focus on finding a beginner/intermediate level book that helps you accomplish something that you can get paid to do

ASP.NET How to work with SQL databases Working with Silverlight, WCF, webservices .NET framework

Page 13: How to become a software developer

Step 8: Begin answering other people’s questions in your C# forum

Step 9: Pick a new pet project and begin implementing it

Step 10: Review some of the C# open source websites and/or applications

http://www.codeplex.com/ http://www.asp.net /community/projects – open source ASP.NET

Step 11: Contribute to open source projects

Source: How to Become a C# Programmer (How to Become a Programmer) by Scott Whigham (Author)

Page 14: How to become a software developer

5. Resources 1. http://www.learnvisualstudio.net/free/c-training/ 2. http://www.asp.net/get-started - free 3. http://www.w3schools.com/ - free 4. http://www.pluralsight.com/training - starting $29 per month 5.

http://webdesign.about.com/od/onlinetraining/Online_Web_Development_Training.htm

6. http://www.creativebloq.com/web-design/training-online-resources-812225 - has a list of 20 websites that offer web training for free

7. http://freecomputerbooks.com/Programming-C-Sharp-for-Beginners.html

8. http://www.csharpcourse.com/ 9. http://google.com

Page 15: How to become a software developer

Q & A

Thank you!