What IS a Journeyman Programmer? Why this program?

Post on 03-Jan-2016

221 views 1 download

Transcript of What IS a Journeyman Programmer? Why this program?

What IS a Journeyman Programmer?

Why this program?

A Journeyman Programmer

• 2-10 years industry experience• Knows the fundamentals (mainly coding)• Interested in technical and career

development• Willing to learn• Wants to improve• 20 years of experience or 1 year of experience

repeated 20 times?

Technical Skills Needed• Coding• Debugging• Infrastructure - Source Code Control and Build

Systems• Test & QA• Integration • Algorithms & Domain Expertise• Design & Architecture• Requirements

Non-Technical Skills Needed

• Teamwork• Time Management• Expectation Management• Negotiation & Influence• Communications• Planning & Project Management• Marketing• Career Planning

Next Steps

• Talk to us!• Give us feedback on Journeyman concept• What should be included in the program?• Join us – help create the program

Are All Managers Idiots?

Do any managers actually “get it”?

Different World Views

• Engineers & Programmers– Introverted, self contained – internal reasoning– Deep knowledge– Satisfaction in solving technical problems• Technology as an end• Focus on technical issues• Tend to approach everything as a problem to be solved

– “Alpha Geek” mentality

Different World Views: Managers

• Broad world view – many factors• Focus on business value• Balance multiple goals and constraints• Use money, people and other assets as tool to

reach business goal• Typically limited technical depth– Only interested in technology as a tool to reach

another goal– Provide other value to organization

Skills Development

Dreyfus Learning Model

Novice

• A novice is someone who needs strict rules to follow clearly. They need monitoring to accomplish immediate tasks and unambiguous instructions to succeed. Some of the tools and resources that can help a novice are:– Checklists– How-to's– Focussed elearning for specific job actions– Ability to seek out help and mentorship

Advanced Beginner• For an advanced beginner, rules start to often become

guidelines and they can start to apply these guidelines in similar contexts. Most new beginners tend to start here. The advanced beginner is keen to start new things, though they struggle with troubleshooting. They are therefore still focussed on their immediate tasks and aren't so fussed about the "big picture". – Controlled Simulations– Virtual Worlds to try out things in safety– Mailing Lists/ Social QnA and Communities to ask

questions and find solutions to common problems.– Online Assignments to practice their new found skills.

Competent• People at this level tend to build conceptual models to

organize complex rules. They can often go a step beyond the Advanced beginner and troubleshoot issues. Most importantly, they like to plan their work, make decisions and take responsibility for their outcomes. A competent practitioner probably needs some of the following tools:– Case Studies to help them understand various real world

scenarios.– The ability to participate on Forums and social platforms to

"listen into" real problems and solutions– Access to blogs documenting peer experiences.– Podcasts and media that help them see work patterns and

various applications of their skills.– And of course, all the experience they can get from their day

job, helps!

Proficient

• Proficient practitioners tend to look at problems as a whole, rather than in terms of individual aspects.

• They need the big picture, and like to gain practical knowledge from unhindered experimentation.

• Oversimplification, rules, policies and guidelines frustrate them.

Experts

• Experts are as the name suggests, masters of their trade.

• They intuitively solve problems without much analysis and planning.

• They've had enough experience in identifying problem patterns and applying generalities to solve these problems.

• Experts often have trouble articulating many of their conclusions

Open Source Software

As a tool for Skills Development

How to Apply What You’ve Learned?

• Do you have the opportunity in your job to exercise everything you’ve learned?– Most people don’t

• Developing skills requires:– Opportunity to use skills– Opportunity to try things and (safely) make

mistakes– Feedback

Open Source Software

• Access to an entire software project• Work on any part you are interested in• Get technical feedback• Get other feedback– Open Source is a full contact sport…

• Learn whatever you are interested in• Get recognition

Getting Started in Open Source

• Start a new project from scratch• Join an existing project– Pick something you are interested in– Look for projects in that area– Research the project and project team– Hack some code, dive in and submit it

• Talk to me for more insight into contributing to Open Source