Michele Nasti

Thoughts on what I learn

the story of a programmer (me) that failed in PHP

Some time ago a friend of mine called and said: "Hey! I just coded the app I was thinking about three years ago, would you want to join me?"

The incredible thing about this is that my friend is a law student. He had no idea about programming, so he learned everything by himself.

Three years before, he asked me to code his dream - an e-commerce idea to help websites to get more clients & revenue. I had just graduated, and I had the feeling that I could not program the amazing things that I saw around me. Everybody was doing great things, and all I knew about Computer Science was a bunch of (very important) theorems about what you can and what you can't do with a computer.

So, I had to refuse the offer - starting a startup and having the feeling of not knowing how to work was my biggest fear..

Then I got a regular job as a computer programmer, starting to code in Java and its related technologies (Hibernate, Maven, GWT, than AngularJS).

After three years I have much more control and power on my capacities, so I feel like everything is feasible (the opposite of three years before!).

Returning to my friend, I was very surprised that he could code his idea, and even if the code that I saw was not perfect (it was coded in PHP but using a framework called Symfony), it was CODE that worked someway.

When he asked me to join him and help I had some concerns:

  1. I am a Java programmer. In the last 3 years of my life, plus the years of university, I have studied Java as my primary programming language. I am using it every day. In PHP I have very little experience, based no what it was 5-6 years ago (a big amount of functions with no namespaces; queries, logic & controllers where all together, everywhere. A big mess.).
  2. I have little to no time to dedicate to the project. since I have my job that is 9 to 18, from monday to friday, I have only the weekend to work on such things. And I usually have to care about my family, my house and my life. So ... how to find the right amount of time?
  3. I wanted to work to a side projects to improve my CV and to learn new things. Unfortunately I was unattracted by PHP and its technology stack.

I managed to resolve the second problem: since I have to travel 45 minutes to go to work, I would work in the bus. It's about 1,5 hrs of work everyday.

But I found myself having to study symfony for everything I wanted to do. the shift from Java to Php is not so great but annoying; syntax glitches like <span class="lang:default decode:true crayon-inline">$object.method()</span> and <span class="lang:default decode:true crayon-inline">$object->method()</span> (just to say the first!) have made to loose many hours in debug time. (both the expressions are legal in php so you don't get errors!)

I've spent many hours studying Symfony documentation without studying enough PHP (newest) syntax.

Finally, I managed to do some small bugfixes but still could not make any substantial modification to the codebase.

So what's going on?

After many months I had another personal problem so I had less time to dedicate to this project. At the end I had to inform my partner that I could not help him anymore, at least for now.

This was not an easy decision for me but then I understood that I was asking more from myself, more than I could handle.

Lessons learned:

First, if you want to _startup _you should code in a language that you feel comfortable. My language is Java (not because it's the best, but because I already know how to do everything!) and I have never thought to learn PHP. I have experimented in Node, Ruby, Python... but not PHP. this language was not a priority for me and day after day I ended up hating it.

Second, **if you don't have time to do things, and you also have to learn before you do, you are going to hit your head against a hard wall. **I say this because I think of myself as an average (==> good!) programmer, and I believe that I can learn everything (==> I'm a generalist) given the right amount of time. And I don't have time. So ... It was hard to say, but I cannot work to side projects that demand high availability.

This was harder to accept for me than for my friend.

I really want that he finds a good programmer, skilled in PHP, that can help him growing fast to achieve his MVP. About me, I have still to find my way.