Upload
indikamaligaspe
View
272
Download
2
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 :