What IS a Journeyman Programmer? Why this program?

19
What IS a Journeyman Programmer? Why this program?

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

Page 1: What IS a Journeyman Programmer? Why this program?

What IS a Journeyman Programmer?

Why this program?

Page 2: 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?

Page 3: What IS a Journeyman Programmer? Why this program?

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

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

Page 4: What IS a Journeyman Programmer? Why this program?

Non-Technical Skills Needed

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

Page 5: What IS a Journeyman Programmer? Why this program?

Next Steps

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

Page 6: What IS a Journeyman Programmer? Why this program?

Are All Managers Idiots?

Do any managers actually “get it”?

Page 7: What IS a Journeyman Programmer? Why this program?

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

Page 8: What IS a Journeyman Programmer? Why this program?

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

Page 9: What IS a Journeyman Programmer? Why this program?

Skills Development

Dreyfus Learning Model

Page 10: What IS a Journeyman Programmer? Why this program?
Page 11: What IS a Journeyman Programmer? Why this program?

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

Page 12: What IS a Journeyman Programmer? Why this program?

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.

Page 13: What IS a Journeyman Programmer? Why this program?

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!

Page 14: What IS a Journeyman Programmer? Why this program?

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.

Page 15: What IS a Journeyman Programmer? Why this program?

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

Page 16: What IS a Journeyman Programmer? Why this program?

Open Source Software

As a tool for Skills Development

Page 17: What IS a Journeyman Programmer? Why this program?

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

Page 18: What IS a Journeyman Programmer? Why this program?

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

Page 19: What IS a Journeyman Programmer? Why this program?

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