Un poco de fondo
Hoy tengo 28 años y nunca he recibido capacitación formal en desarrollo de software, pero sí tengo dos títulos de educación superior equivalentes a un BA en Relaciones Públicas y un MBA Ejecutivo centrado en la Gestión de Proyectos. He trabajado en esos campos durante unos 6 años en total y luego, hace 2,5 años, dejé / perdí mi trabajo y decidí cambiar de dirección.
Después de un mes de reflexionar, decidí comenzar a desarrollar sitios web pequeños en WordPress. Aprendí por mi cuenta y hoy puedo decir que tengo una carrera humilde pero exitosa desarrollando temas y complementos desde cero para mis clientes, en su mayoría agencias que externalizan parte de su trabajo de desarrollo para sitios web medianos / grandes.
Pero a veces siento que no haber estudiado suficientes matemáticas o no tener una comprensión formal de las cosas realmente me detiene cuando tengo que competir o trabajar con desarrolladores más experimentados. Estoy constantemente buscando maneras de aprender más, pero parece que me faltan los conceptos básicos.
Desafortunadamente, pasar 4 años más en Ciencias de la Computación no es una opción en este momento, así que estoy tratando de aprender todo lo que pueda de los libros y los recursos en línea. Este método nunca hará que la NASA me emplee, pero realmente no me importa en este momento. Mi objetivo es pasar primero el listón y poder llamarme un verdadero programador.
Actualmente paso mi tiempo libre estudiando Java For Programmers (para obtener un idioma que todo el mundo dice que es difícil / exigente), leer extractos de Code Complete (para conocer las mejores prácticas) y también Code: The Hidden Language of Computer Hardware y software (para comprender el funcionamiento interno de las computadoras).
TL; DR
Entonces, mi situación actual es esta: básicamente soy capaz de escribir cualquier sistema completo en PHP (con la ayuda de Google y algunos libros), integrando Ajax, SQL y otras cosas, y tal vez un poco más lento de lo que esperaría un desarrollador experimentado. debido a toda la investigación involucrada.
Pero ayer me quedé atrapado tratando de encontrar una solución (no Google) para la prueba FizzBuzz porque no tenía memorizado el operador del módulo de if($n1 % $n2 == 0)
método .
¿Qué sugeriría como una buena forma de resolver este dilema? ¿Qué materias / libros debería estudiar que me ayudarían a resolver problemas más rápido y tal vez más "de manera programada"?
EDITAR - Parece que hubo cierta confusión sobre lo que no sabía para resolver FizzBuzz.
Tal vez no me expresé bien: sabía los pasos necesarios para resolver el problema. Lo que no memoricé fue el operador del módulo. El problema estaba en transponer las matemáticas básicas al programa, no en saber las matemáticas básicas.
Tomé el examen por diversión, después de leerlo en Coding Horror . Simplemente decidí que era una buena línea de comparación de bases entre mí y los desarrolladores formados formalmente.
Acabo de usar esto como un ejemplo de cómo no haber tratado las matemáticas en un entorno informático antes me hace perder tiempo buscando cosas básicas como operadores de módulos para poder resolver problemas simples.
stuck b/c I didn't memorize %
problema, vale la pena señalar que hay otras formas de hacer esto: (suponiendo $ n2! = 0) if (is_int ($n1 / $n2))
o if (($n1 / $n2) == (int) ($n1 / $n2))
Conocer palabras clave es una cosa, y saber cómo expresar las ideas subyacentes en ausencia de una solución integrada es otro.
I'm basically capable of writing any complete system in PHP (with the help of Google and a few books)
y combino esto con usted sin saberloif($n1 % $n2 == 0)
, me pregunto acerca de la exposición que ha tenido a las cosas escritas en PHP. Creo que la mayoría de las cosas que haces van más allá de un simple cálculo de módulo. ¿Podría darnos más información sobre lo que cree que puede hacer?