Every Software Developers Should know

Every software developers should know_page-0001Posted by Sindhuja Vikram-ADMIN-HR Ramarson Technology developers LLP

Consistent learning and Updating why is it so?

  • The fast-moving tech industry demands updated technologies to implement as fast as it can be
  • The reason is the efficiency and performance of new emerging
    technologies and technology hacks
  • This has a higher impact on the quality of work and also, competing with
    technology partners with better strategies and solutions are also
    important
  • The rapid pace of innovations in the IT industry is on one side, giving
    opportunities to the software developers and on the other side, it is
    becoming challenging for a huge developers community
  • It has always been an issue for the programmers to keep themselves
    up to date with the new programming languages software, algorithms design patterns, programming hacks and strategies.
  • It has always been a debate in the developers’ community about the use cases, versions, frameworks and languages that which is good for certain problem solving Even strategies do not match.                                                                                                                                                                                                                             How can a Software Developer keep Updated with new Technical Skills? 
  • Read Blogs
  • Read News
  • Attend Social Events
  • Be Passionate to Learn new Technologies
  • Read Books
  • Start implementation, Code it, Try it!
  • Make new strategies, your habit                                                                                                                                                            Every software developers should know_page-0005 Every software developers should know_page-0006 Every software developers should know_page-0007                                                                                                                                                       Tips to Improve Programming Skill and Become Better Programmer
  • Coding, Coding, and Coding
  • Reading Books
  • Contributing to Open Source, Signing-up mailing lists
  • Practising data structures and algorithm  and Design Related problems
  • Reading Code
  • Writing Unit tests Doing Code reviews.
  • Talking to a fellow programmer.
  • Participating stack overflow and forums commenting on blogsEvery software developers should know_page-0009

AR Augmented Reality

1

By Vijayalakshmi Rajarajan-Senior Software Developer From Ramarson Technology Developers LLP

What is Augmented Reality ??

  • The interactive experience of a real-world environment
  • See the direct or indirect views of physical real-world environments
  • Augmented with superimposed computer-generated images
  • over a user’s view of the real world, thus enhancing one’s the current Opinion of reality.
  • Used to add or enhance something on real things
  • Graphics, sounds, and touch feedback are added into
  • our natural world to create an enhanced user
    experience

INVENTION OF AR SYSTEM

  • In 1968 -The Sword of Damocles-ØIvan Sutherland invented the first VR head-mounted display at Harvard University.
  • In 1975 -Videoplace-ØMyron Kruegercreated an artificial reality laboratory. The scientist envisioned the interaction with digital stuff by human movements
  • In 1980s –EyeTap-ØSteve Mann formulated the concept ofmediated reality (first portable computer) ,  by using cameras, processors, and display systems
  • In 1992 -Virtual Fixtures System-ØFirst functional AR system developed by Louis Rosenberg in U.S. Air Force
  • In 2000 –ARToolKit-ØHirokazuKato(Japanese scientist) developed and published  –an open-source SDK. Later it was adjusted to work with Adobe.
  • In 2004 -helmet-mounted AR system-Trimble Navigation presented an outdoor .
  • In 2008 -AR Travel Guide-Wikitude made map for Android mobile devices.
  • In 2013 -Google Glass-Google beta tested this –with internet connection via Bluetooth.
  • In 2015 Windows Holographic and HoloLens-Microsoft presented two brand new technologies: with an AR goggles with lots of sensors to display HD holograms
  • In 2016 Pokemon Go game-Niantic launched this for mobile devices. The app blew the gaming industry up and earned $2 million in a just first week.

 TYPES OF AUGMENTED REALITY

  • Marker BasedAR-Also called as Image Recognition,Uses a camera and some type of visual marker [QR /2D Code]
  • Marker-lessAR-Also called location-based, position-based Application

Uses a GPS, digital compass, velocity meter, or accelerometer which is embedded in the device to provide data based on your locationExample: Google Maps

  • Projection BasedAR-Works by projecting artificial light onto real world surfaces.Allow for human interaction by sending light onto a real world surface and then sensing the human interaction (i.e. touch) of that projected lightExample : (3D) interactive hologram  into mid-air.
  • Superimposition BasedAR-Either partially or fully replaces the original view of an object with a newly enhanced view of that same object.object recognition plays a main role

Example :Ikea augmented reality furniture catalogue


3.

4

5.APPLICATIONS OF AR 

Education: interactive models for learning and training purposes, from mathematics to chemistry.

  • Medicine/healthcare: to help diagnose, monitor, train, localize, etc.
  • Military: for advanced navigation, marking objects in real time.
  • Art / installations / visual arts / music.
  • Tourism: data on destinations, sightseeing objects, navigation, and directions.
  • Broadcasting: enhancing live events and event streaming by overlaying content.
  • Industrial design: to visualize, calculate or model.

DISADVANTAGES TO BE NOTED FOR AR

  • Information overload
  • Perception impairment
  • Distraction
  • Privacy
  • Security

The Pragmatic Programmer

Priyanka.R : Ramarson Technology Developers LLP 

A Pragmatic Philosophy is an attitude, a style, a philosophy of approaching problems and their solutions. Taking responsibility, accepting changes &Understanding the context for better software in a continuous learning cycle

Tips for becoming a Pragmatic Programmer ;

1: Care about your craft – Develop your software well with good software tools and best possible technology available.

2: Think ! about your work – Turn off the autopilot, think every decision you are making every day.

The Cat Ate My Source Code

–Provide Options, Don’t Make Lame Excuses–Take Responsibility

Don’t Live with Broken Windows

Don’t leave “broken windows” (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered. If there is insufficient time to fix it properly, then board it up.

Soldier’s story! ‘Be a Catalyst for Change”! The villagers think about the stones and forget about the rest of the world. We all fall for it, every day. Things just creep upon us.

–Take awareness of yourself, don’t be the boiling frog imagine the big picture

–Constantly review what’s happening around you, not just what you personally are doing.

–Being so concerned with the details of a problem, you can’t see its overall structure.

THE PRAGMATIC APPROACH

The Evils of Duplication: The problem arises when you need to change a representation of things that are across all the codebase.

Types of duplication:–Imposed duplication–Inadvertent duplication–Impatient duplication and–Inter-developer duplication

ORTHOGONALITY

–Two or more things are orthogonal if changes in one do not affect any of the others. Orthogonality allows to:

–reduce the numbers of errors–divide functions within an application easier–divide teams more logical–test faster

TRACER BULLETS

–Tracer Bullets Don’t Always Hit Their Target

–Whereas tracer bullets (can be algorithms, techniques, languages, or libraries) should penetrate a bigger area, prototyping provides great feedback when exploring a more focused area of the project.

Advantages:

–Users get to see something working early–Developers build a structure to work in–You have an integration platform–You have something to demonstrate–You have a better feel for progress.–Shell Games–Debugging(Fix the Problem, Not the Blame)

THE BASIC TOOLS

Debugging Strategies:a)Visualize Your Data b)Rubber Ducking

Pragmatic Paranoia: You can’t write perfect software.

CUTTING THE GORDIAN KNOT
CHECKLIST TO IMPROVE: When solving impossible problems, ask yourself:

–Is there an easier way?

–Am I solving the right problem?

–Why is this a problem?

–What makes it hard?

–Do I have to do it this way?

–Does it have to be done at all?

GOALS: 

–Learn at least one new language every year–Read a technical book each quarter–Read nontechnical books, too–Take classes–Experiment with different environments.–Stay current–Get wired.