17
Reservations Gateway Inc. Reservations Gateway Inc. YOUR LINK to e-TRAVEL SOLUTIONS YOUR LINK to e-TRAVEL SOLUTIONS July 2014 So you want to be So you want to be a Software Engineer a Software Engineer You can not climb the ladder of success You can not climb the ladder of success With your hands in your pocket... ” With your hands in your pocket... ” Indika Maligaspe by Arnold Schwarzenegger by Arnold Schwarzenegger

So you want to be a Software Engineer

Embed Size (px)

DESCRIPTION

In this presentation I try to give an idea about what is expected from a Software Engineer. This from an industry perspective.

Citation preview

Page 1: So you want to be a Software Engineer

Reservations Gateway Inc.Reservations Gateway Inc. YOUR LINK to e-TRAVEL SOLUTIONSYOUR LINK to e-TRAVEL SOLUTIONS

July 2014

So you want to be So you want to be

a Software Engineera Software Engineer““You can not climb the ladder of successYou can not climb the ladder of success

With your hands in your pocket... ”With your hands in your pocket... ”

Indika Maligaspe

by Arnold Schwarzenegger by Arnold Schwarzenegger

Page 2: So you want to be a Software Engineer

Intro...Intro...

October 2013

Indika Maligaspe

K. Indika Maligaspe

Chief Technology Officer – RezGateway Inc.

Developer, Designer, Engineer, Architect , Trainer

Specialized in JEE, Web Services , Agile , Software Engineering etc...

Over 15 years if experience in IT / Web Technologies http://www.linkedin.com/profile/view?id=201732082&trk=nav_responsive_tab_profile

Page 3: So you want to be a Software Engineer

What we will coverWhat we will cover

July 2014

What is Software EngineeringWhat is Software Engineering

Views of Software EngineeringViews of Software Engineering

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

Indika Maligaspe

Page 4: So you want to be a Software Engineer

What is Software EngineeringWhat is Software Engineering

July 2014

Software Engineering Software Engineering

– is the study and application of engineering to the design, development, and maintenance of software - Wikipedia

EngineeringEngineering

– is the application of scientific, economic, social, and practical knowledge in order to invent, design, build, maintain, and improve structures, machines, devices, systems, materials and processes. - Wikipedia

Indika Maligaspe

Page 5: So you want to be a Software Engineer

Views of Software EngineeringViews of Software Engineering

July 2014

General View- Software Engineering General View- Software Engineering

– is to code , develop software with the language and tools defined to create a working piece of software.

My View- Software EngineeringMy View- Software Engineering

– is the practice of building and maintaining software with customer or market value in mind by using the most suitable methodologies , standard, tools, designs, technologies and management

Indika Maligaspe

Page 6: So you want to be a Software Engineer

How much do we codeHow much do we code

July 2014

On an average we code only about 5% of our working day other 95% On an average we code only about 5% of our working day other 95% we are we are

– Reading code (understanding other people's code)

– Testing

– Understanding Requirements

– Communicating with colleagues

– Building and Releasing

– Problem Solving (Analyzing and Designing)

Knowing a language, knowing how to code, having a college degree does not make you an Engineer...

Indika Maligaspe

Page 7: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Technology Technology

Not all people do all things But...Not all people do all things But...

Lack of awareness is bad and leads to isolated decisions Which Lack of awareness is bad and leads to isolated decisions Which leads to leads to

– unseasonal requirements

– over engineered systems

– half baked solutions

– maintenance nightmares

Indika Maligaspe

Page 8: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Software Engineering practicesSoftware Engineering practices

– Why are we doing software - To meet a client's need?

– Keep it simple (KISS)

– Know that you only write once but others will consume what you produce (coding standards / clear coding..)

– Be open to the future

– Plan ahead for re-use

– Think and then act (not the other way around)

– Design principles and practices – (SOLID / OOD ...) (http://www.slideshare.net/indikaMaligaspe/writing-quality-software ,http://www.slideshare.net/indikaMaligaspe/software-engineering-principles-

29010733)

– What is out there in the industry ( TDD , XP , Secure coding, Performance based coding etc...)

– Version control , version and release strategy (Jenkins Puppet / Git, SVN, CVS ...

Indika Maligaspe

Page 9: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Technology – Some questions to askTechnology – Some questions to ask

What is related to current work, like What is related to current work, like

– Language (Java / HTML / JQuery / PL-SQL ...)

– IDE (Do we really know eclipse ?)

– Database

– Middle ware

– Web tier (Apache / Tomcat / Jetty ...)

– Test tools

Indika Maligaspe

Page 10: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Technology – Some questions to askTechnology – Some questions to ask

What is related to current project / product like What is related to current project / product like

– How / where are the systems deployed?

Infrastructure - clustered / geographically distributed / in the cloud / mobile platforms ...

– How / where do we store data in production?

DBMS / Caching / NoSQL / ORM ...

– How / where do we host our system

hosting vendors, limitations, performance / logs ...

– How do we build our system, what are the tools?

Jenkins / ANT / Maven ...

Indika Maligaspe

Page 11: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Technology – Some questions to askTechnology – Some questions to ask

• What are used in other projects and why What are used in other projects and why

– Memcache-d or REDIS or HADOOP ?

– Java or Python or .Net ?

– PostgreSQL / MySQL / Oracle / Cassandra / flat files?

• What is out there - What is out there - Not to use them, but to know about them, try them out and be ready

Indika Maligaspe

Page 12: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Tools – Tools – Do we really know them?Do we really know them?

– Current tools used (IDE / Nagios / Ant / Maven / JProfiler / Firebug / DbAnalyzer ....)

– Tools which are out there

– How to build tools that you do not have but need

Try new tools, learn about tools, how to use existing tools (even when you do not need to use them like IDE tools, profiling tools, static analysis tools etc..)

Indika Maligaspe

Page 13: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Soft skillsSoft skills

– Communication - Communication -

Not just with code but with co-workers, managers, business people, clients

– Planning and Estimation – Planning and Estimation –

What you know and what you don't know?

– Mentoring and Guiding - Mentoring and Guiding -

You are not going to do the same thing always, so train , monitor and groom

Indika Maligaspe

Page 14: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Discipline - while planning, coding, versioning, releasing ...Discipline - while planning, coding, versioning, releasing ...

– is difference between a cowboy and an seasoned engineer

– is "controlled behavior resulting from training , study and practice"

– Indiscipline is Caused by lack of focus, laziness and the view that you are doing a job and not as an art.

Indika Maligaspe

Page 15: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

AttitudeAttitude

– Desire to solve problems and see through to the end

– Always learning and ready grow

• How do you get knowledge

– Read, Study, Leverage User Groups

– Participate in the community (Apache / stackoverflow / stackexchange/javaranch/ PyCon / Macsheble)

– Collaborate with colleagues

Indika Maligaspe

Page 16: So you want to be a Software Engineer

What's needed for todays Software EngineerWhat's needed for todays Software Engineer

July 2014

Contribute – Contribute – The best way to feel good about yourself

– Blogs

– Train/Coach

– Participate in the community (Apache / stackoverflow / stackexchange/javaranch/ PyCon / Macsheble)

Indika Maligaspe

Page 17: So you want to be a Software Engineer

July 2014

Indika Maligaspe

Thank You

Reservations Gateway Inc.Reservations Gateway Inc. YOUR LINK to e-TRAVEL SOLUTIONSYOUR LINK to e-TRAVEL SOLUTIONS

Reservations Gateway Inc.Reservations Gateway Inc.

11654 Plaza America Drive , Unit 645 Reston, Virginia 20190-4700

USA

703 286 5331703 433 0146 [email protected] www.rezgateway.com

Tel : Fax :

Email :Web :