42
How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Embed Size (px)

Citation preview

Page 1: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

How to become aLabVIEW Professional

and what to expect from your job

Dr. Jan Jacob

Ohio State University, July 29th 2015

Page 2: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Outline

• Introduction

• LabVIEW 101 – and then?

• Software Architecture for LabVIEW

• General Software Development Guidelines

• Prepare for a Software Development Job

• Daily life in an IT-Company

Page 3: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Outline

• Introduction

• LabVIEW 101 – and then?

• Software Architecture for LabVIEW

• General Software Development Guidelines

• Prepare for a Software Development Job

• Daily life in an IT-Company

Page 4: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Introduction• Jan Jacob

• 1999 - 2007 Physics Diploma (University of Hamburg)Preparation and Characterization of Side-Gated InAs Spinfilters

• 2007 - 2009 Ph. D. (University of Hamburg)All-Electrical Spin-Filters

• 2009 – 2012 Postdoc (University of Hamburg)Experiments, Theory, and Simulations in Semiconductor Spintronicstogether with Ohio State, NI, Texas A&M,U Bochum, U Würzburg

Page 5: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Introduction

• Since 2013 at Werum Software & System AG in Lüneburg, Germany

• 2013 – 2014 Project Manager– Wind Tunnel Control Systems– Maritime Data Acquisition Systems

• Since 2015 Program Manager– Measurement and Test Systems

Page 6: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Outline

• Introduction

• LabVIEW 101 – and then?

• Software Architecture for LabVIEW

• General Software Development Guidelines

• Prepare for a Software Development Job

• Daily life in an IT-Company

Page 7: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

LabVIEW 101 – and then?

• Lifelong learning

• Training courses

• Online resources

• Open Source Community

• Community gatherings

Page 8: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Lifelong learning

• You will never be done with learning something new about software development

• Your chosen development environment (LabVIEW) is constantly evolving

• Your peers constantly generate new ideas and concepts

• You constantly improve your own skills by using your tools

• And: Don’t forget to share your knowledge!!!

Page 9: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Training Courses• National Instruments has an extensive set of training courses for

LabVIEW– Core 1, Core 2– Core 3– LabVIEW Connectivity– Object-Oriented Design and Programming in LabVIEW– Managing Software Engineering in LabVIEW– Advance Architectures in LabVIEW– LabVIEW FPGA– LabVIEW Realtime 1 & 2– LabVIEW Machine Vision– Data Acquistion and Signal Conditioning– and many more…

Page 10: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Training Courses

• Courses can be taken at NI headquarters in Austin, TX

• Courses are offered at local NI Alliance Partners

• Courses can be taken online

• Several online courses are FREE for all users of an academic site license!

Page 11: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Online Resources• General information: ni.com/labview

• Support: ni.com/support– Manuals, Download Software, Tutorials, Examples

• Don‘t forget: your academic site license comes with full phone support! call them, if there‘s a problem!

• Advanced Application Development: ni.com/largeapps

• CompactRIO Developer‘s Guide:ni.com/pdf/products/us/fullcriodevguide.pdf

Page 12: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Online Resources

• NI Community: ni.com/community/– Forums: forums.ni.com– Groups: ni.com/groups– Idea Exchange: ni.com/ideas

• Great Source for Reference Designs and Code Libraries provided by NI System Engineering:

http://forums.ni.com/t5/Reference-Design-Discussions/ct-p/ReferenceDesignDiscussions

Page 13: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Open Source Community• Open Source: Software developed by nice guys, who want to

share their work with the rest of the world

• Be careful:– Can be buggy– Has licenses attached (do NOT breach license agreements!)

• Resources:– OpenG– LAVA– All (or most) tools can be downloaded and installed using the VI

Package Manager (included in newer LabVIEW versions – otherwise download from JKI.net)

Page 14: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Community gatherings• NI Week

– 1st Week of August in Austin, TX, 5000+ attendees

• NI Days– October/November, Chicago, Boston, Toronto…

• LabVIEW Developer Days– April/May, 14 Cities (closest: Cincinnati)

• Seminars and User Group Meetings– All year long, regional and virtual

• Summer of LabVIEW WebCast Series

• WebCasts on demand (800+)

Page 15: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Outline

• Introduction

• LabVIEW 101 – and then?

• Software Architecture for LabVIEW

• General Software Development Guidelines

• Prepare for a Software Development Job

• Daily life in an IT-Company

Page 16: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Software Architecture in LabVIEW• Are you a software architect??? (probably yes – at least to some extend…)

• It’s basically the same as in all languages

• Different levels of architecture– System architecture– Hardware architecture– Software architecture– Architecture of the whole software– Architecture of a single process of the software…

• Here: Last three bullets

Page 17: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Software Architecture in LabVIEW

• Disclaimer: This is not a substitution for the Advanced Architectures course!

• Very brief overview / reminder of some basic concepts

• If you know what’s on the next slides good!If not enjoy some more lifelong learning ;-)

Page 18: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Software Architecture in LabVIEW

• Concepts:– Data Flow– State Machine– Master / Slave– Producer / Consumer– Queued Message Handler / Queued State

Machine– Object Oriented Pattern

(becoming more and more important!)

Page 19: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Software Architecture in LabVIEW• Do not re-invent the wheel!

• Use design-patterns to write code that is easily understood by other developers

• Rely on proven and well tested concepts

• But: Don’t use them without thinking!• And: tailor your design patterns to your needs!

• start from common design patterns• extend them to meet your specific needs• keep the extensions modular, so that you can re-use your code• keep your code well documented

Page 20: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Outline

• Introduction

• LabVIEW 101 – and then?

• Software Architecture for LabVIEW

• General Software Development Guidelines

• Prepare for a Software Development Job

• Daily life in an IT-Company

Page 21: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Always have the full software lifecycle in mind!– Specification– Development– Testing– Deployment– Routine Operation– Maintenance / Support– Expansion

Page 22: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Write a specification! (even for smaller problems)

– Thinking about your requirements before implementing code ensures that you have a well defined picture of the problem

– This helps to get clear requirements that are testable

– This allows to define a suitable software architecture

– This avoids to forget important features

Page 23: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Use Source Code Control!– Check in / check out your code– Restore previous version– Work together on larger projects– Document changes to the code– Merge / Diff versions of code– Create branches, if you want to try something new– Create tags for release versions

Page 24: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Test your code!– Unit test for each function– Integration tests for the whole software– Test as early as possible

• Why?– You want reliable software!– You want to be sure that your code really does what you

specified earlier!– Test cost (time) of fixing a bug increases along the timeline

of the project!

Page 25: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Manage your builds!– Nightly build– Latest stable version– Beta versions– Write release notes

• Why?– You don’t want to work with an old buggy version!– You want to ensure that you’re only working with a stable

version and not with risky trials from last night!– You want to be sure which version you’re using, and what it

does!

Page 26: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Keep your code modular!– One process for one set of functions– Have common interfaces / interface types– Keep functions independent of interfaces, work

with “connectors” instead– Keep processes flexible by applying configuration

to them instead of hard-coding settings– Separate functions and user interface– Think in abstraction layers

Page 27: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Keep your code clear and easy to maintain!– Invest in error handling– Provide descriptive and meaningful feedback on

errors, warnings, messages– Allow easy tracking of bugs by having a well

defined task for each function of your code (more VIs is often better!)

– Be careful when fixing something in place A! it could affect places B, C, D,…!

Page 28: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• Keep your code extensible!– Going from N to N+1 should be easy!• Add function• Add interface• Add hardware• Add process• Add instance of process• …

Page 29: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• The whole package: Continuous Integration!• Combine– Source Code Control– Requirements Tracking– Build Management– Deployment Management– Code Reuse and 3rd Party Code Management

Page 30: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

General Software Development Guidelines

• General Workflow– Repository commit triggers Build Management– BM pulls code from repository– BM pulls code from Package Management– BM triggers build machine– Build is executed– Tests are run– Requirements Management is updated– Package Management or delivery directory is updated

Page 31: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Outline

• Introduction

• LabVIEW 101 – and then?

• Software Architecture for LabVIEW

• General Software Development Guidelines

• Prepare for a Software Development Job

• Daily life in an IT-Company

Page 32: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• Basically: Do the same as for any other job application

• General remark: form and content of an application letter, CV, etc. is irrelevant for your personal skills

• BUT: on the other side aren’t highly qualified scientists and engineers, but pretty simple-minded HR employees!!!

• Follow the rules

• Learn how to write your paperwork in such a way that they like it!(at least if you apply at a large company…)

Page 33: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• What might happen in the application process?– Written application

• On your own initiative• On a open position advertisement• Via Mail / E-Mail (free form)• Via online portal (has to fit their form…)

– Assessment center– Interview– Negotiation

Page 34: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• What helps (at least, if your applications makes its way to MY desk)?

– Plausible timeline in the CV• No empty spots, studied in the expected time, did not start N studies and didn’t

finish any• If your CV isn’t a straight line, but has its turning points EXPLAIN THEM!

– Proven knowledge of relevant software development tools (job dependent)

– But, MORE IMPORTANT: Proven general software development knowledge

– Good results in relevant courses• Apply at financial / insurance company there should be some economy in your

coursework• Apply at a DAQ-company there should be some physics, electronics, etc.

Page 35: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• What helps (at least, if your applications makes its way to MY desk)?

– Real-World work experience

– Demonstrated willingness of travel

– Proven team-compatibility

Page 36: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• What helps in an assessment center?– Basically NOTHING…!

– Follow the rules and play their game

– Prepare yourself with resources about assessment centers in general and at the specific employer in particular

Page 37: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• What helps in an interview?– Be yourself!

– Be prepared to be asked questions about the company your applying with!

– Do not only answer questions, talk freely

– Ask you own questions!• The first one shouldn’t be “MONEY…!?” ;-)• Have a list of questions prepared

Page 38: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• What do I try to learn about a candidate in an interview?– Is the candidate suitable for the job?

(in terms of qualification)

– Is the candidate suitable for the job?(in terms of work attitude)

– Is the candidate suitable for the job?(in terms of fitting into the specific team and the company in general)

– Is the candidate suitable for the job?(in terms of long-term perspectives for the candidate and the company)

– Is the candidate suitable for the job?(in terms of working with and for me)

Page 39: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Prepare for aSoftware Development Job

• Negotiations…– Know your market value

– Know the payment structure in that type of business in that region, in a company of such size

– Add a reasonable amount to have something for negotiation, but don’t exaggerate!

– See the whole package!Money isn’t the only component…!• Free coffee, water, etc., Flexible working hours, Annual leave, Amount of

travel, Handling of extra hours• Atmosphere!!! (you’re at work most of your time!!!)

Page 40: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Outline

• Introduction

• LabVIEW 101 – and then?

• Software Architecture for LabVIEW

• General Software Development Guidelines

• Prepare for a Software Development Job

• Daily life in an IT-Company

Page 41: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

Daily life in an IT-Company

Page 42: How to become a LabVIEW Professional and what to expect from your job Dr. Jan Jacob Ohio State University, July 29 th 2015

THANK YOU FOR YOUR ATTENTION!