Miyagi

 

Armağan Amcalar

JAX London 2017
Oct 11th, 2017

The Secret of

Who am I?

Armagan Amcalar
Head of Software Engineering @ unu GmbH
Founder @ Lonca Works

Authored on GitHub

Craft|krɑːft|noun

1. An occupation that favors skilled labor over capital and requires training, dexterity and mastery.

Aesthetics!

Skilled labor

Labor that produces unique, value-added outcome. Not monotonous, no mass production.

No two code base is the same and one is always required to solve new problems.

Mastery

A new graduate is very different from an experienced engineer.

But an engineer who spent years without gaining mastery is also a lot different than an engineer who achieved mastery in a shorter time.

Dexterity

Required to solve complex problems relatively easily.

 

A dexterous developer solves problems easily and for once. An inept developer's code may break or needs fixing the next day, or may even never work.

Aesthetics

Master software craftsmen take care to produce well-formed code, useful and consistent API, solid software architecture and even that pixel-perfect front-end application.

 

They take pride in their work as their work pleases the eyes and the soul.

Problem

Software engineering taught in schools is not a real craftsmanship training.

 

Craftsmanship training takes long years, working actively on the area of profession, producing real output. The master passes the intricacies and the secrets to the apprentice on a one-on-one interaction.

Learning from the book?

No fear, no pain, no defeat in this dojo.

A complete poser.

Trust. Concentrate. Imagine a picture in your mind and apply it.

If come from inside, the picture is right.

The purpose of Karate is not only fighting.

Solving real problems, discovering a better approach, creating better code and better value.

Karate is in your brain and heart.
Not your belt.

We use canvas belt.

The best way to earn respect is to fight good.

You train to not have to fight.

Don't ask, just learn.

Think outside the fence!

Balance good, everything good.

You always want to learn the cool things but balance is important.

First learn to stand. Then you can learn to fly.

— Can you break a log like that?
— Don’t know, never been attacked by tree.

Trust the quality of what you know, not quantity.

I hate fighting.

There is always someone better than you.

A licence never replaces your eye, ear and brain.

Your heart tells if you are brave. A medal tells only if you are lucky.

For a person with no forgiveness in the heart, living is even a worse punishment than death.

If your roots are strong, you can grow no matter what.

Focus.
Your best karate is still inside you.

Now is the time to let it out.

Thank you.

Let's keep in touch!

Armağan Amcalar

Bonus content!

Ten Commandments of Bertrand Russell

1) Do not feel absolutely certain of anything.

3) Never try to discourage thinking for you are sure to succeed.

4) When you meet with opposition, even if it should be from your husband or your children, endeavor to overcome it by argument and not by authority, for a victory dependent upon authority is unreal and illusory.

7) Do not fear to be eccentric in opinion, for every opinion now accepted was once eccentric.

8) Find more pleasure in intelligent dissent than in passive agreement, for, if you value intelligence as you should, the former implies a deeper agreement than the latter.

Teach resource allocation
and process planning.

When do you do architecture? In what order do you develop the software? How do you prioritize the work ahead?

Trello for process management.

Prefer asynchronous and written communication.

The student can read and learn from the old archives when needed.

Slack for communication.

The best training is by "doing".

Choose one of your student's dreams (of a startup idea).


Develop together.

GitHub or GitLab for SCM & code review.

Lessons to build your software career: The Secret of Miyagi

By Armağan Amcalar

Lessons to build your software career: The Secret of Miyagi

This talk investigates the master – apprentice relationship of fictional yet very inspiring heroes, Miyagi and Daniel, from the movie Karate Kid in a software engineering perspective. Armagan talks about software craftsmanship and gives concrete examples on how engineers should shape their software careers. What is craftsmanship? How does it apply to software engineering? How can we improve our self-learning skills? How can we help junior developers and speed up their learning? In this talk, Armagan goes over various teachings from the 80’s movie Karate Kid, relating them to concrete problems software engineers face in their daily lives. The attendees will instantly recognize the references and how the teachings will apply to their lives. It’s an intriguing and fun presentation and at the end, the attendees will leave with solid best practices for improving engineering skills. Team leaders, lead developers and managers will learn how to properly assist and guide professional development of their junior team members, and junior developers will learn how to embrace apprenticeship in order to steadily improve their craft.

  • 2,561