Soy un estudiante de secundaria de 16 años, apasionado por la programación de computadoras. Estoy en el grado 11, y lo he estado aprendiendo como parte del programa escolar durante aproximadamente 8 meses. He ido más allá de lo que se enseña en la escuela e ingenio algunas aplicaciones (razonablemente buenas). El lenguaje en el que programo es C ++, en la plataforma de Windows. Eventualmente me gustaría especializarme en CS en una buena universidad y luego trabajar como programador.
Las preguntas específicas que tengo son:
- ¿Cuál es un buen lugar para que noten mi trabajo?
- ¿Hay revistas o publicaciones específicamente para programadores jóvenes?
- Si no son publicaciones, ¿hay algún buen blog o es mejor comenzar uno propio?
- ¿Hay algo más que me ayude a ser notado como programador?
He tratado de ser lo más objetivo posible.
Si todo esto fuera tl; dr: ¿Cuál es la mejor manera de hacerse notar como un joven programador?
Editar: No estoy buscando ser contratado directamente de la escuela secundaria. El objetivo no es impresionar a la comunidad como programador profesional. Esto es con la intención hacia las aplicaciones de la universidad, donde hacer que tu trabajo sea visto y criticado por otras personas mejorará tu aplicación. No estoy buscando ganar dinero con lo que he escrito (hasta ahora).
Respuestas:
Me gustaría darle una advertencia y algunas sugerencias.
Advertencias:
No sobreestime su conocimiento: en este momento puedo suponer que sabe lo suficiente como para escribir una solicitud simple y más de lo que realmente se enseña en clase. Pero eso no te convierte en un "programador profesional"; puede convertirte en un "profesional independiente" como máximo.
No subestimes el valor de lo que se enseña en la escuela. Incluso si algo puede parecerle obvio, estudíelo también: verá "nuevos aspectos" (lo aclararé más adelante) a medida que avance.
Sugerencias:
Las aplicaciones profesionales tienen un ciclo de vida típico de 3-5 años y requieren miles (hasta millones) de horas de trabajo. No pueden ser implementados solo por un desarrollador. Los programadores profesionales tienen que trabajar con otros. No se trata solo de un buen conocimiento de las herramientas (como idiomas, IDEs, etc.) sino también de técnicas, métodos y expresiones idiomáticas.
Si bien las herramientas pueden enseñarse mediante muestras formales y ejercicios, las técnicas y modismos solo pueden "describirse". Para "aprenderlos" tienes que experimentar y compartir la experiencia con otros. Se inventan y mejoran continuamente.
Las empresas, al contratar en la escuela, verifican su comprensión de las herramientas y su habilidad con las técnicas básicas, pero, lo más importante, evalúan su capacidad para aprender rápidamente cosas nuevas y "capturar el trabajo" según sea necesario.
Al contratar a personas con experiencia, observan cuántas cosas han hecho y qué experiencia obtuvieron de esas cosas.
Moral:
Si desea ser más "evaluado", aprenda a trabajar con otros, participando en los problemas de otros (como en stackoverflow ) o en proyectos abiertos (como en sourceforge )
Además, no sea demasiado rápido para pedir dinero; divida su "producción de código" en "algo para compartir" y "algo para vender". Lo que puede compartir puede ser utilizado por otros, pero también puede atraer la participación de otros para expandir el proyecto inicial. Lo que puede vender es lo que hace que su aplicación sea "única" con respecto a otros proyectos similares, lo que la convierte en un producto comercial real.
Para compartir código con otros, puede consultar el proyecto de código del sitio o sourceforge . Su calificación también da una idea de lo interesante que fue lo que hiciste para otras personas.
fuente
¿Has pensado en crear proyectos de código abierto para las aplicaciones que has escrito y alojarlos en línea? SourceForge.net o GitHub.com son buenos anfitriones de proyectos de código abierto. Esto ayudará a ganar visibilidad para sus aplicaciones.
fuente
En primer lugar, seamos claros: la mayoría de los 16 programadores de YO no impresionarán realmente a la comunidad.
Hay una razón para eso en mi opinión. Ser un buen programador no solo depende de las habilidades de programación. Como es de esperar que veas durante tu especialización en CS, la programación es solo un subconjunto de la informática, y la mayoría de las personas que ganan premios (al menos premios académicos) lo habrán hecho porque probaron algo nuevo (un nuevo teorema, por ejemplo), o descubrieron Una nueva forma de lograr algún tipo de tarea (patrones de diseño). Para hacerlo, debe (al menos):
Si siente que ya ha dominado todo eso, entonces sí, probablemente impresionará a la comunidad.
Siempre puede intentar contribuir a un proyecto de código abierto, pero también puede sorprenderse cuánto tiene que ponerse al día antes de poder contribuir realmente.
Finalmente, eche un vistazo a StackOverflow y vea cuánto puede responder allí en su idioma favorito ... tendrá un buen proxy de su nivel.
fuente
Intenta obtener una reputación realmente alta en Stack Overflow. Casi el mismo tema se discutió aquí:
¿La alta reputación en Stack Overflow ayudará a conseguir un buen trabajo?
fuente
Algunas cosas que quizás quieras probar:
fuente
Seguiré la respuesta de Bernard y agregaré un poco más. Hay tantos proyectos de OSS por ahí que aún puede ser difícil hacerse notar a menos que crees un proyecto popular, lo que no será fácil para un programador que recién comienza.
Suponiendo que está tratando de hacerse notar en la comunidad de programación, le sugiero publicar complementos (ya sea OSS o de código cerrado) para las herramientas que usan los programadores. Imagínese ir a una entrevista de trabajo y poder decir que la compañía ya está utilizando el software que usted escribió. Muchas herramientas de desarrollador tienen API para crear complementos y varias incluso albergan "tiendas de aplicaciones" en las que puede obtener algo de exposición para su herramienta sin preocuparse demasiado por comercializarla.
Aquí hay algunos ejemplos fuera de mi cabeza:
Dependiendo de la herramienta que elija, puede apuntar al enclave específico de la comunidad de programación por la que desea que lo noten.
fuente
fuente
Tengo un punto de vista ligeramente diferente aquí.
Si desea que su software se note, la mejor manera es que la gente lo use. Aunque Bill Gates y Mark Zuckerberg fueron grandes programadores jóvenes, hubo muchos programadores mejores. Pero estos dos caballeros consiguieron que mucha gente usara sus productos y, por lo tanto, son más conocidos por su trabajo.
Para que la gente use tu código, puedes:
En mi opinión, el software es casi irrelevante sin proporcionar beneficios a los usuarios. Y se te notará por resolver problemas que a las personas les importan, y esa es una habilidad muy rara.
fuente
Una respuesta que aún no leí: Google Summer of Code.
Desde el sitio web :
Tienes que tener 18 años para participar, pero eso no está lejos. Conozco algunas personas que participaron y tuvieron una gran experiencia. Debido a que todas sus contribuciones son a programas de código abierto, son públicas, por lo que serán notadas.
Como tienes menos de 18 años, Google también tiene un programa similar a GSOC para estudiantes preuniversitarios (13-17 años) llamado Google Code IN .
fuente
Desde mi punto de vista, hay tipos de personas que programan.
Definiciones:
Aviso, usé la palabra "Promedio" arriba. Según los intereses personales y la experiencia laboral, estos porcentajes pueden cambiar drásticamente. Estos son solo estereotipos demasiado generalizados. No juzgues un libro por su portada. También estoy solo BSing porcentajes de mi experiencia.
fuente
Soy un programador independiente. La programación ha sido mi ingreso principal 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 autónomo fue el siguiente. No estoy diciendo que estos pasos lo harán 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 y revisé los tutoriales y construí una cartera basada en obras inspiradas de aquellos. También comencé a forzarme a comentar mi código de manera JavaDoc-esque. Es posible que la cartera no esté llena de ostentación y glamour en este momento, pero le brinda una línea de base que puede construir y eventualmente reemplazar lo que tiene allí. Luego tuve un conjunto de demos 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 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 comúnmente utilizadas. Con mis nuevas bibliotecas, comencé a buscar problemas de CompSci en Internet y comencé a calcular cuánto tiempo me llevaría construir una solución con mis bibliotecas. Esto me daría una línea de base en el futuro en cuanto a lo que debería cobrar por una tarea específica.
No fue hasta entonces que descubrí el código abierto. Revisé los proyectos en sourceforge en el idioma que me interesaba y encontré aplicaciones que podía utilizar. 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 cuanto a mi interacción diaria y comencé a ampliarlas para satisfacer mis necesidades. Enviaría mis parches a la comunidad que se está desarrollando para su revisión, y después de unos pocos me postularía para ser miembro del proyecto. Aquí es donde aprendí a usar las diferentes herramientas utilizadas 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 compatibles cuando trabajaba como individuo. Comencé a seguir seriamente una carrera como desarrollador independiente y me uní a varios sitios de reclutamiento independientes. Miré cuáles eran los trabajos populares y comencé a presentar mi solicitud. Por cada trabajo que me rechazarían, aún así lo completaría por mí mismo como si hubiera obtenido el trabajo para ampliar mi conocimiento. Esto ayudaría a construir mi cartera y presentarme algunos desafíos del mundo real. Cuando finalmente obtuve esa 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í. Me encontré con algunos obstáculos importantes y cómo los abordé.
fuente
PD: Ha pasado mucho tiempo desde que me postulé a la universidad, todavía te dan la oportunidad de enumerar cosas como esta, ¿verdad? (Por ejemplo, una sección sobre pasatiempos o una pregunta de ensayo sobre sus intereses).
fuente
Creo que JohnFX dio una gran respuesta a esta pregunta.
Algunas reflexiones:
Creo que jQueryUI podría ser el mejor lugar para comenzar. Es divertido y visual. Por lo tanto, puede ir al foro de desarrolladores de jQueryUI en el sitio jQuery y solicitar ser colaborador.
Creo que demostrará una gran pasión y dedicación por la programación más de lo que demostrará una gran habilidad. ¡Pero no dejes que eso te detenga! Te recomiendo que te involucres.
En este punto, es posible que tenga que conformarse con hacer QA. El control de calidad es aburrido pero puedes aceptarlo y mostrar dedicación. Pero a partir de ahí, puede contribuir un poco de código y tal vez hacer complementos.
Si pides involucrarte en algo y te lo dificultan, es porque son imbéciles. Solo busque un proyecto donde la gente sea alentadora y agradable.
Después de encontrar un proyecto con personas alentadoras y agradables y contribuir, puede pedirle a uno de los contribuyentes adultos o, con suerte, a una de las personas a cargo del proyecto que le escriba una breve carta de recomendación.
fuente
Respetuosamente estoy en desacuerdo con los que respondieron "¡no te sobreestimes!"
Si te encanta la programación a tu edad, hazlo, probablemente seas mejor y más grande que otros niños de tu edad, y para cuando seas veterano, ¡podrías ser el próximo Brian Kernighan, Edsger Dijkstra o Doug Lea!
Sugeriría aprender el desarrollo de iPhone o Android, y construir algunas aplicaciones reales.
Hazte excelente en algo y mientras llegas allí, habla en conferencias y escribe artículos, eso te hará notar y perfeccionará tus habilidades.
He estado programando desde finales de los 70, y en Java desde 1996. Puedo decirles que el libro de Java más importante que he leído fue la Banda de los Cuatro Patrones de Diseño, que se escribió una década antes de que se inventara Java. ¡Léelo y sé genial!
La industria que más paga hoy es financiera, pero eso está cambiando rápidamente. ¡Creo que volverá, pero nunca se sabe!
¡Sé un programador y disfruta de un alto empleo y satisfacción laboral!
¡Buena suerte, tienes una gran carrera por delante!
fuente
Cree una aplicación web que funcione bien en iPhone y Android (ignore los navegadores estándar por el momento) y aproveche las funciones extendidas de HTML5 (https://developer.mozilla.org/en/HTML/HTML5) para superar la latencia, la red irregular, y la limitación de los navegadores telefónicos. Esto probablemente significa entregar una aplicación de navegador javascript + html5 que se conecta a una API basada en servidor. (elija xmlrpc / json / yaml, no SOAP). hazlo gritar rápido. En el servidor, recomiendo usar cherrypy en linux (debian) en un VPS barato. Puede obtener algunos en 123systems.com, buyvm.net (preferido pero a menudo no disponible) por menos de $ 4 al mes. Aprenda a usar Python y use Fabric para implementar sus cosas en su (s) servidor (es). Obtenga un dominio .info en namecheap.com por $ 2.99 al año, y use dnsmadeasy.com para DNS (más caro, pero vale la pena; los he estado usando durante años, nunca tuve un solo problema) donde puedes hacer balance de carga a través de DNS. Además, no se deje intimidar por las bases de datos. Use sqlite y aprenda a diseñar sus tablas manualmente con sentencias sql. Finalmente, con una máquina probablemente pueda manejar 30,000 usuarios. (2,000 simultáneamente en un golpe al servidor cada 3 segundos). Recuerde almacenar en caché tanto como sea posible en el almacenamiento de HTML5.
Si haces esto, y blogueas al respecto y twitteas sobre las entradas del blog y tu progreso, definitivamente serás notado. De acuerdo, hay mucho que aprender, ¡pero puedes hacerlo!
fuente
Casi en cualquier lugar de Internet, si escribe algo que vale la pena mencionar, como una utilidad que hace algo ordenado o único, que una gran cantidad de personas usará / descargará, entonces ya ha realizado la mayor parte de esta tarea. Aplicaciones geniales, útiles y disponibles, se anuncian.
Ya está aquí, esta es solo una, de muchas comunidades, que por el simple deseo de compartir y ser conocido por saber, otras personas están más que felices de vincular temas de mérito con la discusión actual.
Solo programe por el bien de la programación, siempre que sea productivo, creativo y útil, se tomará nota.
Un punto que veo mencionado en otras respuestas, que también defiendo, son las contribuciones hechas a proyectos de código abierto. La única forma de mejorar la codificación es codificar, y qué mejor manera de hacerlo que resolver los problemas actuales. Porque, sin un problema que resolver, estás codificando en vano ... oh, una cosa más, no te preocupes por los viejos gruñones, con sus comentarios hinchados e intencionalmente desalentadores de "joven azotador": eres joven y entusiasta, eso es todo lo que necesitas.
fuente
Si yo fuera tú, daría a conocer mi conocimiento arrojó mi trabajo, dices que programas,
c
así que comienza a hacer programas orientados a la experiencia de PC de los usuarios cotidianos, crea cosas comoyoutube downloader
y comienza tu propiodev team
hola, solo tengo 19 años y comencé a programar 4 años Hace un momento, soy un joven negro del barrio ... para que pueda entender la pasión que puede tener por la programación, pero al mismo tiempo, la programación puede tomar mucho tiempo y esfuerzo, darse tiempo para vivir ... lo que significa que todo ese tiempo estar frente a una computadora puede ser estresante para un niño pequeño.fuente
Hay toneladas de lugares para que su trabajo sea reconocido, pero si bien puede considerar su trabajo de primera categoría, puede ser un simple día de trabajo para algunos. Cuando tenía 16 años, pensé que mi trabajo era increíble, estaba haciendo cosas geniales, pero ahora estoy trabajando en estos campos, y donde estaba entonces no es nada en comparación con donde estoy ahora, y todavía estoy muy lejos fuera de donde quiero estar.
fuente
Si te gustan los juegos, intenta participar en Ludum Dare. Un buen juego allí obtendrá algo de renombre.
fuente
Si desea hacerse notar Y ganar algo de dinero, le recomendaría el desarrollo móvil en iPhone o Android. Ya conoces C ++, que es un gran comienzo. Para el desarrollo nativo en iPhone necesitarás Objective C, y para Android necesitarás Java. Ambos son similares a C ++ (Java es más fácil ya que no hay administración de memoria), y no será demasiado difícil de aprender. Entonces, no solo escribirás aplicaciones que te harán notar y te harán ganar dinero, sino que también aprenderás nuevos idiomas y plataformas populares en el proceso.
fuente