Soy un programador freelance. La programación ha sido mi ingreso primario desde que me gradué de la escuela secundaria hace 9 años. Todavía tengo la intención de obtener mi título, pero en este momento todavía no es el momento adecuado para mí.
Mi camino hacia el reconocimiento auto dirigido fue el siguiente. No estoy diciendo que estos pasos lo hagan ser reconocido por la comunidad de programación, pero ayudará a aumentar su credibilidad cuando llegue el momento de la entrevista.
Incluso después de que estaba bastante versado en la programación de IMO en ese momento, volví a lo básico, realicé tutoriales y me construí una cartera basada en trabajos inspirados de esos. También comencé a forzarme a comentar mi código de una manera JavaDoc. Es posible que la cartera no esté llena de brillo y glamour en este momento, pero le brinda una base de referencia que puede aprovechar y eventualmente reemplazar lo que tiene allí. Luego tuve un conjunto de demostraciones y ejemplos de código para mostrar a los posibles clientes. Esto es esencial para conseguir tu primer trabajo. Nadie quiere contratar a alguien que no tenga ninguna experiencia; sin embargo, hay varias personas que le darán la oportunidad a un programador de aspecto prometedor que no tiene experiencia profesional.
Más tarde analicé estos programas y comencé a escribir bibliotecas basadas en mis tareas de uso común. Con mis nuevas bibliotecas, comencé a ver los problemas de CompSci en Internet y comencé a calcular el tiempo que me llevaría construir una solución con mis bibliotecas. Esto me proporcionaría una referencia en el futuro sobre lo que debería cobrar por una tarea específica.
Hasta entonces no había descubierto el código abierto. Miré los proyectos en sourceforge en el idioma que me interesaba y encontré las aplicaciones que podía usar. Instalé estas aplicaciones y comencé a usarlas como parte de mi experiencia informática diaria. Pude ver las fortalezas y debilidades de estas aplicaciones en lo que respecta a mi interacción diaria y comencé a ampliarlas para adaptarlas a mis necesidades. Enviaría mis parches a la comunidad en desarrollo para ser revisados, y después de unos pocos solicitaría ser miembro del proyecto. Aquí es donde aprendí a usar las diferentes herramientas que se usaban cuando trabajaba en un equipo que tomó mi "vasta experiencia", como lo consideré en ese momento, y lo llevó al siguiente nivel.
Adapté todas mis prácticas que había aprendido trabajando en proyectos de código abierto e implementé soluciones comprables cuando trabajaba como individuo. Comencé seriamente a seguir una carrera como desarrollador independiente y me uní a varios sitios de reclutamiento independientes. Miré cuáles eran los trabajos populares y empecé a postular. Por cada trabajo que me rechazaran, todavía lo completaría para mí mismo como si hubiera obtenido el trabajo para ampliar mi conocimiento. Esto ayudaría a construir mi cartera y me presentaría a algunos desafíos del mundo real. Cuando finalmente obtuve la primera entrevista, fui directo y les dije que no tenía ninguna experiencia profesional. Entonces comencé a contarles los proyectos de código abierto en los que había trabajado, lo que había logrado allí. Algunos de los principales obstáculos que había encontrado, y cómo los abordé. Pude ofrecer un portafolio de aplicaciones de trabajo y código de ejemplo basado en mi experiencia como aficionado, tomaron toda la información y me brindaron la oportunidad de ingresar al mundo independiente.