2020

Apr 30, 2020 by Alexandru Bolboaca in

Hack your journey to software craftsmanship with martial arts practices

Apr 29, 2017

code-kata

“Whatever luck I had, I made. I was never a natural athlete, but I paid my dues in sweat and concentration and took the time necessary to learn Karate and become World Champion.” – Chuck Norris (American martial artist and actor. Also, the only man who has counted to infinity. Twice.)

 

 

Japanese concepts from martial arts become common practices in software craftsmanship. It is known that thousands of software developers aiming to become craftsmen are mastering their skills using them.

In fact, in the software industry developers are taught the theory and thrown straight into working on a project. The practice is done on the job, and mistakes occur. Applying the theory is not enough, greatness comes from practising. What makes a programmer to be great is the practice done beyond the software development current job. That’s why so many developers nowadays practice Code Kata.

Why would you do Code Kata?

In karate a kata is an exercise where you repeat a form many times, making small improvements each time. The intent behind code kata is similar. Each iteration is a short exercise (about 30′ to 1-hour duration). The point of the kata is not arriving at the right solution, but to learn some stuff along the way. The only goal is to practice.

Exercise your programming muscles in a way you enjoy and see the progress you make.

According to Code Kata, you need a good practice session and you have to make it fun: you need a bit of time without interruptions, and a single problem to solve in iterations; do as many iterations as it takes for you to improve, and be comfortable making mistakes.

What is Code Kata?

code kata is an exercise in programming which helps a programmer improve their skills through practice and repetition. The term is considered to be coined by Dave Thomas, co-author of the book The Pragmatic Programmer: From Journeyman to Master, in a bow to the Japanese concept of kata in the martial arts.

An example of Kata

Repeat solving the same problem (as the one below), until you know it by heart. You can be sure the next time it pops-up in production it will take you seconds to get it done.

Think of binary numbers: sequences of 0’s and 1’s. How many n-digit binary numbers are there that don’t have two adjacent 1 bits? For example, for three-digit numbers, five of the possible eight combinations meet the criteria: 000, 001, 010, 011, 100, 101, 110, 111. What is the number for sequences of length 4, 5, 10, n? Having worked out the pattern, there’s a second part to the question: can you prove why that relationship exists?

Practice Code Kata at I T.A.K.E. Unconference

On 11-12 May 2017 in Bucharest, there’s a Kata Lounge track waiting for you.
During the 2-day program, at any time, you can join this track to pick up a challenge and start the kata session. The challenge contains the problem (called kata), the time you have for your session, and the name of the person who will review your code. The reviewer will help you improve your coding skills.
Invest a bit of time in your coding-craft. Don’t miss the Kata Lounge as well as many other hands-on sessions at I T.A.K.E. Unconference.

Get inspired: 5 TED talks to start with

Nov 11, 2016

We’ve just opened the Call for Speakers for I T.A.K.E Unconference 2017. While preparing for next edition, we debated (again 🙂 ) what makes a talk memorable and thought-provoking.

In this context, here are 5 TED talks we’d like to share for your inspiration.

#1. Carol Dweck: The power of believing that you can improve

Carol Dweck researches “growth mindset” — the idea that we can grow our brain’s capacity to learn and to solve problems. In this talk, she describes two ways to think about a problem that’s slightly too hard for you to solve. Are you not smart enough to solve it … or have you just not solved it yet? A great introduction to this influential field.

 

 

#2 Elon Musk – The Mind Behind Tesla, SpaceX and SolarCity 

Entrepreneur Elon Musk is a man with many plans. The founder of PayPal, Tesla Motors and SpaceX sits down with TED curator Chris Anderson to share details about his visionary projects, which include a mass-marketed electric car, a solar energy leasing company and a fully reusable rocket.

 

#3. Linus Torvalds – The mind behind Linux

Linus Torvalds transformed technology twice — first with the Linux kernel, which helps power the Internet, and again with Git, the source code management system used by developers worldwide. In a rare interview with TED Curator Chris Anderson, Torvalds discusses with remarkable openness the personality traits that prompted his unique philosophy of work, engineering and life. “I am not a visionary, I’m an engineer,” Torvalds says. “I’m perfectly happy with all the people who are walking around and just staring at the clouds … but I’m looking at the ground, and I want to fix the pothole that’s right in front of me before I fall in.”

 

#4. Kevin Kelly – How technology evolves?

Tech enthusiast Kevin Kelly asks “What does technology want?” and discovers that its movement toward ubiquity and complexity is much like the evolution of life.

#5. Julian Treasure – How to speak so that people want to listen

Have you ever felt like you’re talking, but nobody is listening? Here’s Julian Treasure to help you fix that. As the sound expert demonstrates some useful vocal exercises and shares tips on how to speak with empathy, he offers his vision for a sonorous world of listening and understanding.

 

logo-itake-2017

 

Ready to inspire and challenge yourself the software minds?

Apply to Call for Speakers for I T.A.K.E Unconference 2017!

Rebecca Wirfs-Brock | #womenintech interview

Mar 23, 2017

Rebecca Wirfs-Brock is the object design pioneer who invented the set of design practices known as Responsibility-Driven Design (RDD), the first behavioral approach to object design. She is the lead author of two software design books and design columnist for IEEE Software. By accident, she started the x-Driven Design meme (TDD, DDD, BDD…). Although best known for software design, she is has a passion simply expressing complex requirements and effectively communicating software architecture. Rebecca joined #itakeunconf in 2013 as keynote, at the first edition of the unconference.

When sharing more about #womenintech, Rebecca is one of the most important role models ladies in the field mention or look up to. Read on to find her professional story and lessons learned along the way.

 

#1. What’s your professional story? Why did you choose to develop a career in this domain?

 

I went to university with no idea what I would major in. I liked both sciences and the humanities. I had a part time job at school grading tests. We’d scan the tests (which were marked in pencil) onto a tape, then take that tape to the computer center. They would run a job to print out students’ test results and grades.

I wanted to learn how that program worked. So for fun, I took my first computing class learning FORTRAN. And I was hooked. Writing programs was not only fun; programs could do something useful. So that is how I discovered programming—by accident. I liked solving problems by programming. I still do.

 

#2. Share with us an important lesson you’ve learned since you’ve been working in IT

I’ve learned that you won’t know if something is possible unless you try doing it. Sometimes we hold ourselves back because we don’t think we can do what seems like some seemingly impossible task. If you are a part of a team, you can do even more great things than you can on your own.

Being a software engineer at Tektronix (a company that made oscilloscopes and workstations, among other hardware products), I learned that with good team collaboration, the right management support, and the belief in what we were doing, we could do amazing things. I have taken this spirit of collaboration and can-do attitude with me throughout my career.

#3. What piece of advice would you give to the next generation of #womenintech?

Keep learning. The programming languages, tools, libraries, and database technologies you work with 10 years from now will be different from those you use today. There’s always something new to learn. Don’t just limit yourself to learning new programming languages and tools or the latest popular libraries. Take some time to learn things outside of your daily work. For example, I turn to blog by Adrian Colyer, The Morning Paper, https://blog.acolyer.org/. I find reading about technology trends and research stretches my brain. And then I get on with my daily work.

Take some time to learn things outside of your daily work. For example, I turn to blog by Adrian Colyer, The Morning Paper. I find reading about technology trends and research stretches my brain. And then I get on with my daily work.

But more importantly, take time to find, study, and learn about well-designed code and systems. Learn what makes one codebase more easily maintained than another, or what makes one easier to understand or test. Read others’ code. There’s a lot you can learn.

 

 

At I T.A.K.E Unconference, we aim to move the needle by offering to women in tech access to a fast-learning, practical & inspirational community for their growth. Join the 5th edition, 11-12 May, Bucharest and meet remarkable tech ladies.