PHP Mentors

Answers from PHP masters around the world for your questions.
Code, Career, Team work, Working environment, Logs, Tests, Future and much more.

PHP Mentors Book is a set of questions with topics that can help a lot of developers out there (Not just PHP). To answer those questions I contacted about 200 personalities and senior PHP people around the world that came up with the material that you will have access.

PHP Mentors is for sale on Leanpub.

Buy Book Book Preview

About This Book

The Idea

Since my daughter was born, I was far away from writing code and programming. Now that she is growing up and I'm getting my hands dirty again, the need for a mentor appeared. While I was searching for someone, I remembered some words said by Tim Ferris in his book Tribe of Mentors: "Why one mentor if I can have a lot of them?" And I completed the thought with: "Why not bring that to other PHP Developers?"

What is PHP Mentors Book?

PHP Mentors Book is a set of questions with topics that can help a lot of developers out there (Not just PHP). To answer those questions I contacted about 200 personalities and senior PHP people around the world that came up with the material that you will have access.

The Book is finished?

No, it is still in progress. My plan is to bring more names to answers the questions. And since we are on leanpub, you will receive every update of it as soon as I publish.

What are the questions answered in the book?

Here are the questions answered by the mentors

1

What is your current Setup? Any specific method to increase productivity? Do you make notes or snippets while working? Do you listen to music while working? Any different habit? How did you get to this setup?

2

How to earn your space when entering a development team? How to integrate when you are the most experienced among them? How to integrate when you are the least experienced among them?

3

Do you monitor your code in any way? Is this / would it be important? Any continuous tool for code quality control? Any Profiling tool?

4

We see many programmers that have a lot of experience moving to leadership/management positions. Is this natural? How is the job market for seniors? Is there an age to stop programming? Until what age will the market hire me as a developer?

5

Looking back on your career, what would you have studied more and what would you have studied less?

6

What to do when facing legacy code? What is the first thing to do and how to decrease the learning curve with this code? Is there a way to always keep an application modern? Is there any way to modernize an old application?

7

What do you do to learn / master / review a subject? How to learn better/faster? Where to ask questions?

8

How's it going to be the future of technology in 2024 and 2029? How will PHP be in this scenario? How will it be compared to other technologies? Will it survive a world that prefers JavaScript Frameworks?

9

By the easiness that PHP brings, many devs end up NOT studying basic concepts of computer science, operating systems, networks, software engineering, low level and etc. They jump straight to coding. Are these areas important/essential? Would it help or not?

10

How to deal with team code management? Who is responsible for committing? Deploying? Writing tests? Running Tests? Who manages all that?

11

How to improve the communication between IT and stakeholders? How to make better requirements analysis on a project / task? How to avoid miscommunication and task-rework problems?

12

What is the ideal development environment for you? What about production environments? What is the best way to deploy apps between those environments? How to find and fix bugs quicker in production? How to minimize downtime?

13

In the PHP universe we have excellents CMSs, Frameworks and tools. While all of those help popularize the language and standardize the structure, patterns and best practices, many developers get stuck to it and lose some of what it is to be a PHP developer. They become developers of a specific CMS, or a specific Framework. Do you agree with this view? Is it important to be versatile and know more than one of those? Or are there no limits to delve into one of them?

14

What is the optimal level of documentation for an application or suite of applications? Where to document business rules? Where to document architecture and code? Any specific strategy?

15

Are tests always present in your code? Do you write tests before code? When are the tests worth the time and when not?

16

What is the ideal level of logging for you? Server logs? Application logs? Business Logs? Performance logs? Errors Logs? Which logs are worth and which are not worth to keep in your databases? What are the best strategies for saving them?

17

Away from IT, what you do to become a better professional? How to reach that? What gets you out of bed every day?

Who are the Mentors?

Julien Pauli

@julienpauli @jpauli

Dries Vints

@driesvints @driesvints

Jeroen De Dauw

@jeroendedauw @JeroenDeDauw

Denis Sokolov

@Katinas @denis-sokolov

Rob Allen

@akrabat @akrabat

Michelangelo van Dam

@dragonbe @DragonBe

Chris Hartjes

@grmpyprogrammer @chartjes

Junade Ali

@icyapril @IcyApril

Jonathan Wage

@jwage @jwage

Evert Pot

@evertp @evert

Rafael Dohms

@rdohms @rdohms

Alexander Makarov

@sam_dark @samdark

James Titcumb

@asgrim @asgrim

Matthew Turland

@elazar @elazar

Elton Minetto

@eminetto @eminetto

Lorna Mitchell

@lornajane @lornajane

Tobias Nyholm

@tobiasnyholm @Nyholm

Paul M Jones

@pmjones @pmjones

Adam Culp

@adamculp @adamculp

Dave Stokes

@stoker @davestokes

Chris Tankersley

@dragonmantank @dragonmantank

Pablo Dall'Oglio

@pablodalloglio @pablodalloglio

Matthew Weier O’Phinney

@mwop @weierophinney

Ed Finkler

@funkatron @funkatron

Adam Englander

@adam_englander @aenglander

Adrian Cardenas

@aramonc @aramonc

Kenta Usami

@tadsan @zonuexe

Er Galvão Abbott

@galvao @galvao

Joshua Ray Copeland

@ogprogrammer @OGProgrammer

Cees-Jan Kiewiet

@wyrihaximus @WyriHaximus

Mark Story

@mark_story @markstory

Eric Poe

@eric_poe @ericpoe

Matthew Brown

@mattbrowndev @muglug

Larry Garfield

@Crell @Crell

Michael Heap

@mheap @mheap

Jeremy Mikola

@jmikola @jmikola

Tessa Mero

@tessamero @tmero

Samantha Quiñones

@ieatkillerbees @ieatkillerbees

Adrien Crivelli

@PowerKiKi

Gary Hockin

@geeh @GeeH

Eric Mann

@ericmann @ericmann

Ian Littman

@iansltx @iansltx

Pascal Martin

@pascal_martin @pmartin

Pablo Godel

@pgodel @pgodel

Anna Filina

@afilina @afilina

Shawn Mayzes

@smayzes @smayzes

Some answers from the mentors

This is a sample of some words from the mentors to you


Away from IT, what you do to become a better professional? Exercise? Good sleep hygiene? Diet? What gets you out of bed every day?

The things that I do away from my professional work are not so I can be a better professional, but so that I can be a better person.

My exercise regime is weightlifting, specifically barbell training. I like it because it tells me the truth. Programming is a discipline filled with smart people, and while smart people are good at many things, the one thing they are best at is rationalizing their failures in a way that makes it not-their-fault. When it comes to weightlifting, you can't lie to yourself as to whether or not you succeeded in your deadlift; either you pulled that bar up off the ground, or you did not. There is nothing else possibly at fault: it is something related to you directly, and not anything else. I sleep as much as my dog and my children allow. There is no honor or status in sleeping less for its own sake; sleep is happiness, you need it, and your brain needs it.

When I turned 30, I weighed 140 lbs. In four years, I gained 10 lbs; then another 10 in 3 years; then another 10 in 2; then another 10 in 1. By the time I was 40 I weighed 180 lbs, and my vanity demanded that I do something about my weight gain. I had tried various diets, none of them working, and decided to try a low-carb lifestyle as a last resort. On that plan, I lost 20 pounds in 8 weeks, and got down to a manageable 160 lbs. I have managed to maintain that for eight years, eating steak and bacon and eggs and heavily buttered green vegetables. What surprised me most was that my headaches disappeared. Ever since I was a kid, I had regularly gotten terrible cluster headaches over-and-behind my left eyesocket. When I say "regularly" I mean 2-3 times a week; I would go through a bottle of Excedrin in just a few weeks. But once I started the low-carb eating, they went away; I attributed it to the stabilizing of my blood sugar and the reduced insulin reaction from not eating sugard and processed starches. As an accidental test of that hypothesis, I ate a box of candy at the movies one day, and within hours I had a blinding cluster headache again.

Some days it is the joy of duty, some days it is readiness to begin.

Paul M Jones
@pmjones @pmjones


In the PHP universe we have excellents Frameworks and tools. While all of those help popularize the language and standardize the structure, many developers get stuck to it and lose some of what it is to be a PHP developer. They become developers of a specific Framework. Do you agree with this view?

I don't agree that you should feel obligated to know everything about PHP before using a framework. Babies learn how to speak in sentences before they understand what a “verb” or a “gerund” is.

Taylor Otwell
@taylorotwell @taylorotwell


What to do when facing legacy code? What is the first thing to do and how to decrease the learning curve with this code?

I really dislike the term legacy code as it implies a negative. All code that makes money is legacy code! What you're actually asking is how to keep a codebase maintainable over its lifetime.

Essentially it comes down to refactoring as you go along. When adding a new feature, refactor as appropriate. When fixing bugs, refactor to make the code clearer. This is very hard when on a tight time scale, which results in less maintainable codebases.

When you face a large codebase regardless of its age, it's difficult to learn. Hopefully, there is some architecture documentation to provide an overview of the essential design. User-facing help docs are also useful as they tend to describe what the software is supposed to do. Good code-navigation tools are essentially for understanding a large codebase; I use ctags and the code-navigation features of IDEs.

Rob Allen
@akrabat @akrabat


See also: What are they talking about?
Get a full chapter as preview on Leanpub

About Author

What you really love about IT?

Flávio Augusto da Silveira

Computers and programming were not my first choice in life. But Computers were always present on it. I did a website using pure HTML, before the internet bubble, to talk about electric and acoustic guitars. And I remember reading about PHP in some forum at that time.

Doing my own websites, using Flash, HTML, Css and JavaScript was a parallel hobby. I really focused on music and also started a degree in Music Therapy. But unfortunately or luckily, at times it was very difficult to pay bills as a musician, not impossible, but I really gave up (don’t blame me).

One of my students at that time was Technical Lead in a company here in the city, so we talked and he asked me to work with him. This guy taught me the first steps and the rest is history.

I have been in a lot of different roles in my career: Developer, System Analyst, Team Leader, Manager. I Worked in small and big companies. I worked with a variety of languages for Web, Mobile, Infrastructure, etc.

2017, August 23, 10:20am and my daughter was born. I spent the year focused on her first steps and after that in 2018, I decided to start something new in my career, but I didn't knew exactly what. So I went back to what I really love, that is being a developer. After some good years as a leader/manager, I really wanted to get my hands dirty with code, so I started to look for a mentor.

Author-photo

What are they talking about?

Here are some of the common terms, words and tech stuff that mentors talk about in the book

Get a full chapter as preview on Leanpub

Are you ready to become a better professional?

Buy PHP Mentors

Buy Book

Contact With Author