2. Encontrando respuestas
Lo sé. Es un título un poco raro, ¿no crees? Vas a tener que confiar en mi cuando digo que esto es importante. Este capítulo es sobre tu confianza como programador en desarrollo. Aprender es duro, pero no te preocupes; voy a echarte una mano.
Los programadores son robots
¿Por qué decidiste convertirte en programador? ¡No, espera! Déjame adivinar. Viste bajarse a un programador PHP de una Limusina en uno de los mejores hoteles de Nueva York, pidió 5 botellas de Champán y pasó la noche relajándose con Jay-Z y el fantasma de Tupac.
Es cierto, la vida del programador es glamurosa. Tengo que escribir estos capítulos en las 5 horas de sobriedad que tengo al día. Probablemente has visto a un programador escribiendo código y pensaste…
Oh dios, ese programador debe ser un robot. Sabe todas esas palabras del código y funciones y cómo funcionan.
Cuando la gente sin experiencia en programación se acercan a los programadores, asumen que son genios con matrícula de honor en matemáticas. Quizá esto sea cierto para algunos programadores, pero ciertamente no lo es para mi. Quiero pensar que otros programadores están en mi misma situación.
La verdad es, que no somos perfectos. Ni siquiera estamos cercas de serlo. Si piensas que los programadores saben todas las funciones de PHP y los fragmentos de memoria, te estás engañando a ti mismo si piensas que nunca podrás hacerlo.
Simplemente, no es cierto. No memorizamos todo. De hecho, la mayoría del código que usamos día a día es de una referencia. Somos guerreros de Google. Hay funciones en PHP que hacen cosas sencillas con cadenas de texto y busco en la documentación de PHP casi cada semana para saber el orden de los parámetros que tengo que pasar.
Cuando estoy completamente perdido, intento usar Google para ver si otro programador descubrió un problema similar. A menudo encontraré una solución buena que otro haya descubierto, o suficiente información para llevarme a una solución. Por supuesto esto funciona en el otro sentido también, intentaré dar mis soluciones a la comunidad. Publicaré respuestas en Stack Overflow y contribuiré en los foros o discusiones. Es importante colaborar con la comunidad.
Como ves, no somos robots. No lo sabemos todo sobre el lenguaje, y no tenemos una solución a cada problema. Sin embargo, somos buenos investigadores. Somos oportunistas. Somos resolutores de problemas con muchos recursos. Somos programadores.
El arte de usar Google
Cuando la gente te dice que busques algo en Google, es fácil tomárselo como un insulto. ¿O quizá sarcasmo? No lo es. Google es nuestra página de inicio por un buen motivo. Vamos a ver cómo podemos encontrar respeustas a problemas de programación comunes.
Estamos escribiendo un programa, y en algún sitio tenemos que darle la vuelta a una sentencia por lo que ‘Los pandas molan’ se convierte en ‘nalom sadnap soL’. No tenemos ni idea de cómo hacerlo. Acabamos de empezar con PHP.
Sabemos que en PHP una secuencia de texto se llama ‘cadena’. Lo sabemos porque no dejamos de leer este libro con ejemplos de Pandas, y descubrimos esto en otro capítulo, ¿verdad?
Ahora sabemos lo que queremos hacer. Queremos invertir una cadena. Vamos a hacer una consulta a Google.
1 invertir cadena
¡No, espera! El problema es que hay miles de lenguajes de programación. Los ordenadores llevan mucho entre nosotros.
Si buscamos ‘invertir cadena’, vamos a obtener resultados para C++, ASP.NET, Erlang, lo que sea. Nuestro foco es PHP. No nos importan el resto de lenguajes. Ya tendremos tiempo de jugar con ellos más tarde cuando nos convirtamos en cerebritos de PHP. Vamos a arreglar el problema añadido el lenguaje a la consulta.
1 invertir cadena php
Perfecto. Echemos un vistazo a los resultados que obtenemos de Google. Puede ser un buen momento para mencionar que no trabajo para Google, y no estoy trabajando a comisión. Puedes usar Bing si quieres aunque quizá acabes comprando un trailer para caballos usados antes de encontrar la función que buscas. Así que, ¿dónde están los resultados?
Invierte una string - PHP
http://php.net/manual/es/function.strrev.php
Invertir una cadena (string) en PHP | Esteban Novo
http://www.notasdelprogramador.com/2010/09/10/invertir-una-cadena-en-php/
Haciendo la pregunta adecuada, obtenemos recursos útiles en respuesta. El manual de PHP (a veces conocidos como la documentación de PHP) y Stack Overflow son dos de los mejores recursos para solucionar problemas de PHP en internet. No sigo que siempre tengan la respuesta adecuada. Hay otros sitios buenos también, pero estoy seguro de que acabarás visitando esos sitios muchas veces.
N. del T. : Como nota personal, he de añadir que hacer las búsquedas en inglés, suele llevar a mejores resultados.
Ahora mismo estamos buscando alguna forma de invertir una cadena. No estamos intentando resolver un problema abstracto, sabemos exactamente lo que queremos.
Ve y prueba el primer enlace, serás recibido por la página del manual del PHP para la función strrev(). No necesitas saber lo que es una función ahora mismo. No te preocupes si esto te resulta demasiado.
Una vez que te hayas familiarizado con las funciones, verás que esta página ofrece todo lo que necesitamos saber para usar la función strrev(), y ejemplos sobre cómo usarla.
Como ves, haciendo las preguntas adecuadas, hemos recibido toda la ayuda que necesitábamos para continuar con nuestro trabajo. No teníamos conocimiento alguno sobre strrev() pero sabíamos el problema que teníamos que resolver. Eso fue suficiente para llevarnos a una solución. No importa si tenemos que volver a la página más tarde.
Quizá no usemos la función con la frecuencia necesaria para tener que recordar cómo usarla. Aunque, te darás cuenta que si comienzas a usar la función más y más, y frecuentas la página del manual, antes de que te des cuenta, dejarás de tener que usar el manual. Pensarás en seguida, ‘Ey, debería usar strrev() que uso siempre y sé cómo funciona’. Será parte de tu memoria y de tu conjunto de conocimientos.
La lección que espero que hayas aprendido es que no deberías entrar en pánico. No tienes que recordarlo todo, es perfectamente natural buscar ayuda. De hecho, es humano, y es humano aprender de tu experiencia.
¡Enhorabuena! Eres un humano, no un robot.