¿Cuál es el mejor lugar para que un programador de escuela secundaria haga notar su trabajo? [cerrado]

52

Soy un estudiante de secundaria de 16 años, con una gran pasión por la programación de computadoras. Estoy en el grado 11 y lo he estado aprendiendo como parte del programa de estudios de la escuela durante aproximadamente 8 meses. He ido más allá de lo que se enseña en la escuela y he obtenido algunas aplicaciones (razonablemente buenas). El lenguaje en el que programo es C ++, en la plataforma de Windows. Finalmente 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 el tuyo?
  • ¿Hay algo más que me ayude a ser notado como programador?

He intentado ser lo más objetivo posible.

Si todo esto fuera tl; dr: ¿Cuál es la mejor manera de hacerse notar como un programador joven?

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 de presentar solicitudes para la universidad, donde el hecho de que otras personas vean y critiquen su trabajo mejorará su solicitud. No estoy buscando ganar dinero con lo que he escrito (hasta ahora).

    
pregunta viraj 28.12.2011 - 18:33

20 respuestas

61

Me gustaría darle una advertencia y algunas sugerencias.

Advertencias :

  • No sobreestime sus conocimientos: ahora mismo puedo asumir que sabe lo suficiente como para escribir una aplicación simple y más de lo que realmente se enseña en clase. Pero eso no te convierte en un "programador profesional"; puede hacerte un "freelancer" como máximo.

  • No subestime el valor de lo que se enseña en la escuela. Incluso si algo puede parecerte obvio, estudialo también: verás "aspectos nuevos" (lo explicaré más adelante) a medida que vayas a continuar.

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 por un desarrollador solo. Los programadores profesionales tienen que trabajar con otros. No es solo una cuestión de buen conocimiento de herramientas (como idiomas, IDE, etc.) sino también de técnicas, métodos e idiomas.

  • Si bien las herramientas se pueden enseñar con muestras formales y ejercicios, las técnicas y los modismos solo se pueden "describir". Para "aprenderlos" tienes que experimentar y compartir la experiencia con otros. Se inventan y mejoran continuamente.

  • Las empresas, al contratar personal de la escuela, verifican su comprensión de las herramientas y su capacidad con técnicas básicas, pero, lo más importante, ponen a prueba su capacidad para aprender cosas nuevas rápidamente y "capturan el trabajo" según sea necesario.

  • Al contratar personal experimentado, observan cuántas cosas han hecho y qué experiencia han obtenido 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 proyectos abiertos (como en sourceforge )

  • Además, no seas 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 usado 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 sitio codeproject o sourceforge . Su clasificación también da una idea de lo interesante que fue para otras personas.

respondido por el Emilio Garavaglia 14.09.2014 - 02:59
35

¿Ha pensado en crear proyectos de código abierto para las aplicaciones que ha escrito y hospedarlos en línea? SourceForge.net o GitHub.com son buenos proyectos de código abierto Hospedadores. Esto ayudará a ganar visibilidad para sus aplicaciones.

    
respondido por el Bernard 28.12.2011 - 17:43
26

Primero que todo, seamos claros: la mayoría de los 16 programadores YO realmente no impresionarán 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 carrera CS, la programación es solo un subconjunto de ciencias de la computación, y la mayoría de las personas que ganan premios (al menos premios académicos) lo habrán hecho porque demostraron algo nuevo (un nuevo teorema, por ejemplo), o descubrió una nueva forma de lograr algún tipo de tarea (patrones de diseño). Para hacerlo, necesita (al menos):

  • Obtenga una buena base en matemáticas, se requiere entender los algoritmos y, por lo tanto, dominar las diferentes estructuras de datos.
  • Comprenda que un buen programador primero entiende los paradigmas (orientado a objetos, funcional, ...) antes de interesarse por un lenguaje "concreto".
  • Comprenda que la buena programación a menudo también viene para el modelado de código y aprenda los patrones de diseño existentes.

Si sientes que ya has dominado todo eso, entonces sí, probablemente impresionarás a la comunidad.

Siempre puedes intentar contribuir a un proyecto de código abierto, pero también puedes sorprenderte de cuánto tienes que recuperar para poder contribuir.

Finalmente, eche un vistazo a StackOverflow y vea cuánto puede contestar allí en su idioma favorito ... tendrá un buen proxy de tu nivel.

    
respondido por el SRKX 05.09.2014 - 07:40
13

Intenta obtener una reputación realmente alta en Stack Overflow. Casi el mismo tema fue discutido aquí:

Will alta reputación en la Ayuda de desbordamiento de pila para obtener un buen trabajo?

    
respondido por el Doc Brown 12.04.2017 - 09:31
8

Algunas cosas que tal vez quieras probar:

  • Escriba software que resuelva problemas reales, idealmente problemas que no se hayan resuelto antes (o al menos no satisfactoriamente). Si nadie usa su software a pesar de sus mejores esfuerzos promocionales, es probable que simplemente no lo necesiten tan desesperadamente.
  • Anuncie su trabajo en listas de correo relevantes, canales de IRC y foros de Internet. Si su programa hace uso extensivo de alguna biblioteca, considere la posibilidad de publicar en la comunidad de la biblioteca; si se complementa con otras piezas de software existentes, anuncie a sus comunidades, etc.
  • Si es un proyecto lo suficientemente serio, configura un sitio web dedicado para él. El sitio web debe proporcionar un resumen de funciones, enlaces a descargas y documentación y, si corresponde, algunas capturas de pantalla. Asegúrese de que sea un sitio web adecuado, no una abominación al estilo de geociudades baratas y con muchos anuncios: desea que lo tomen en serio, así que actúe en consecuencia. Agregar una sección de noticias, un wiki y / o un rastreador de errores le da al posible usuario una indicación de qué tan activo es el proyecto, que puede funcionar para usted o en su contra (si el proyecto no está muy activo después de todo).
  • Si es un proyecto de código abierto, alójelo en uno de los centros FOSS populares (github, bitbucket, sourceforge si es necesario) y (vea más arriba) exponga el wiki y el rastreador de errores (pero solo si los usa) regularmente).
  • Hagas lo que hagas, proporciona buena documentación. Necesita tanto un breve "inicio" como una referencia completa. Si no tiene el primero, la gente encontrará que su programa es demasiado difícil de usar. Si no tiene el segundo, las personas dejarán de usarlo porque no pueden encontrar la información que necesitan.
respondido por el tdammers 28.12.2011 - 18:05
7

Lo seguiré en la respuesta de Bernard y agregaré un poco más. Hay tantos proyectos OSS por ahí que aún puede ser difícil hacerlos notar a menos que crees un proyecto popular, lo que no será fácil para un programador que recién comienza.

Suponiendo que usted está intentando hacerse notar en la comunidad de programación, sugeriría la publicación de complementos (ya sea OSS o de código cerrado) para las herramientas que usan los programadores. Imagínese entrar en una entrevista de trabajo y poder decir que la compañía ya está utilizando el software que usted escribió. Muchas de las herramientas para desarrolladores tienen API para crear complementos y varias incluso "tiendas de aplicaciones" donde puede obtener cierta exposición de su herramienta sin preocuparse tanto por su comercialización.

Aquí hay algunos ejemplos de la parte superior de mi cabeza:

Dependiendo de la herramienta que elija, puede apuntar al enclave específico de la comunidad de programación en la que desea que se note.

    
respondido por el JohnFx 12.04.2017 - 09:31
4
  1. Vaya a competiciones como Imagine Cup o, al menos, los concursos de su escuela (si los hay)
  2. Ponga sus aplicaciones en línea, quizás proporcione el código fuente y, aunque no esté relacionado con su pregunta, escuche los comentarios de otros y aprenda de ellos
  3. Intenta contribuir a diferentes comunidades
respondido por el Victor Hurdugaci 28.12.2011 - 17:54
4

Tengo un punto de vista ligeramente diferente aquí.

Si desea que su software sea reconocido, la mejor manera es que la gente lo use. Aunque Bill Gates y Mark Zuckerberg eran grandes programadores jóvenes, había muchos mejores programadores. Pero estos dos caballeros consiguieron que mucha gente usara sus productos y, por lo tanto, son más conocidos por su trabajo.

Para que las personas utilicen tu código, puedes:

  • Vende tu producto a mucha gente. Por ejemplo, instale una aplicación móvil en una tienda de aplicaciones y realice un seguimiento de las descargas, las compras y el uso continuo.
  • Haga que mucha gente use su producto y obtenga ingresos por publicidad.
  • Obtenga muchos desarrolladores para desarrollar productos que funcionen con su producto. Esto es duro.
  • Contribuya a un proyecto popular de código abierto para que muchas personas lo utilicen.

En mi opinión, el software es casi irrelevante sin proporcionar beneficios a los usuarios. Y serás notado por resolver problemas que preocupan a las personas, y esa es una habilidad muy rara.

    
respondido por el Jay Godse 28.12.2011 - 22:54
3

Una respuesta que aún no leí: Google Summer of Code.

Desde el sitio web :

  

Google Summer of Code es un programa global que ofrece a los desarrolladores estudiantes estipulaciones para escribir código para varios proyectos de software de código abierto. [...] A través de Google Summer of Code, los solicitantes de estudiantes aceptados se emparejan con un mentor o mentores de los proyectos participantes, por lo que se exponen a escenarios de desarrollo de software en el mundo real.

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úblicos, por lo que se notarán.

Como es menor de 18 años, Google también tiene un programa similar al GSOC para estudiantes preuniversitarios (de 13 a 17 años) llamado Google Code IN .

    
respondido por el Jeroen 29.12.2011 - 19:52
3

Desde mi punto de vista, hay tipos de personas que programan.

  1. "Programadores": estos incluyen 16 años de edad, autodidacta y el 99% de la fuerza de trabajo de "desarrollador de software" disponible en China. Pueden hacer el trabajo ... de alguna manera, en un sentido mínimo, pero tienen pocas ideas de conceptos tales como patrones de diseño, mantenibilidad, codificación robusta / defensiva, algoritmos / estructuras de datos y otras cosas que gustan del uso eficiente de la fuente. software de control Tienen la capacidad de leer efectivamente la documentación y usar la mayoría de las API.
  2. "Ingeniero eléctrico medio": 80% eléctrico, 10% informático, 10% ingeniero de software. Competencia con la electrónica, pero casi tanta programación como el típico "programador". Sin embargo, el pensamiento lógico y crítico, y las habilidades de gestión desde el lado eléctrico ayudarán.
  3. "Graduado medio en ciencias de la computación" - 25% programador, 25% ingeniero de software, 25% informático, 25% de electrónica aplicada (lógica incluida).
  4. "Ingeniero informático promedio": estas personas son una combinación de 50% ingeniero eléctrico, 50% graduado en informática.

Definiciones:

  1. "Ciencias de la computación" - Dijkstra dijo una vez: "La ciencia de las computadoras no se trata más de computadoras que la astronomía, sino de los telescopios". La informática es más acerca de las matemáticas que de las computadoras. Esto incluye la capacidad de desarrollar, comprender y clasificar algoritmos complejos y estructuras de datos.
  2. "Ingeniería de software": patrón de diseño, diagramas que representan programas (no recuerdo cómo se llaman). cosas como esas. Codificación defensiva .. Uso de control de fuente,

Note, usé la palabra "Promedio" arriba. Dependiendo de los intereses personales y la experiencia laboral, estos porcentajes pueden cambiar drásticamente. Estos son solo estereotipos sobre-generalizados. No juzgues un libro por su portada. También estoy solo BSing porcentajes de mi experiencia.

    
respondido por el user606723 29.12.2011 - 22:15
1

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.

    
respondido por el Steve Buzonas 28.12.2011 - 20:11
0
  1. Aprende todo lo que puedas. Esto se puede hacer mediante libros, foros, clases, pero lo más importante es en realidad la programación (y ser criticado). Si ha superado las clases de programación en su escuela secundaria, vea si una universidad local (comunitaria) tiene alguna buena clase de CS que pueda tomar (tal vez durante un verano o como una clase nocturna); o intente tomar material de curso abierto de los tipos MIT / Stanford.
  2. Demostrar iniciativa. Decir que sabes que C ++ será totalmente ignorado. Decir que tiene docenas de confirmaciones en una lista de proyectos de código abierto demuestra que sabe algo, etc. (aunque tenga cuidado, no se comprometa por el simple hecho de cometer). Comience sus propios proyectos de código abierto. Esto no va a ser algo que hagas en una tarde; Pero algo que se convierte en su bebé durante un período de meses. Escribe y publica una aplicación de Android / iPhone que haga algo útil y que la gente la descargue.

PD: Hace mucho tiempo que no me inscribí en la universidad, aún te dan la oportunidad de hacer una lista de cosas como esta, ¿verdad? (Por ejemplo, una sección sobre pasatiempos o una pregunta de ensayo sobre sus intereses).

    
respondido por el dr jimbob 28.12.2011 - 19:44
0

Creo que JohnFX dio una gran respuesta a esta pregunta.

Algunos pensamientos:

  • Creo que jQueryUI podría ser el mejor lugar para comenzar. Es divertido y visual. Así que puedes ingresar al foro de desarrolladores de jQueryUI en el sitio de jQuery y pedir ser un colaborador.

  • Creo que demostrarás una gran pasión y dedicación por la programación más de lo que demostrarás una gran habilidad. ¡Pero no dejes que eso te detenga! Le recomiendo que participe.

  • En este punto, es posible que deba conformarse con realizar un control de calidad. El control de calidad es aburrido, pero puedes aceptarlo y mostrar dedicación. Pero desde allí puedes aportar un poco de código y tal vez hacer complementos.

  • Si pides involucrarte en algo y te lo ponen difícil, es porque son gilipollas. Solo busque un proyecto donde la gente sea agradable y alentadora.

  • Después de encontrar un proyecto con personas alentadoras, amables y con su contribución, puede pedirle a uno de los colaboradores adultos o, con suerte, a uno de los responsables del proyecto que le escriba una breve carta de recomendación.

respondido por el Joe 29.12.2011 - 17:02
0

Respetuosamente, estoy en desacuerdo con quienes respondieron "¡no te sobreestimes"!

Si te gusta la programación a tu edad, es probable que seas genial y más grande que otros niños de tu edad, y para el momento en que seas un veterano, quizás seas el próximo Brian Kernighan, Edsger Dijkstra o Doug Lea!

Sugeriría aprender el desarrollo de iPhone o Android y crear algunas aplicaciones reales.

Gánate bien en algo y mientras llegas, habla en conferencias y escribe artículos, eso te hará notar y pulirá tus habilidades.

He estado programando desde finales de los años 70, y en Java desde 1996. Puedo decirles que el libro de Java más importante que he leído fue Gang of Four Design Patterns, que se escribió una década antes de que Java se inventara. Léelo y sé genial.

La industria que más paga actualmente es financiera, pero eso está cambiando rápidamente. Creo que volverá, ¡pero nunca se sabe!

¡Sea un programador y disfrute de un alto nivel de empleo y satisfacción laboral!

¡Buena suerte, tienes una gran carrera por delante!

    
respondido por el Victor Grazi 29.12.2011 - 17:43
0

Cree una aplicación web que funcione bien en el iPhone y Android (ignore los navegadores estándar por ahora) y aproveche las funciones extendidas de HTML5 (https://developer.mozilla.org/en/HTML/HTML5) para superar la latencia. 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. (seleccione xmlrpc / json / yaml, no SOAP). Hazlo gritando rápido. En el servidor, recomiendo usar cherrypy en linux (debian) en VPS baratos. Puede obtener algunos en 123systems.com, buyvm.net (preferido pero a menudo no disponible) por menos de $ 4 al mes. Aprende a usar Python y usa Fabric para implementar tus cosas en tu (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: lo he estado usando durante años, nunca tuvo un solo problema) donde puede hacer un 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 de sql. Finalmente, con una sola máquina, probablemente pueda manejar 30,000 usuarios. (2,000 simultáneamente en un hit al servidor cada 3 segundos). Recuerde guardar en caché tanto como sea posible en el almacenamiento de HTML5.

Si haces esto, y publicas un blog acerca de él y te das cuenta de las entradas del blog y tu progreso, definitivamente serás notado. Por supuesto, hay mucho que aprender, ¡pero puedes hacerlo!

    
respondido por el Christopher Mahan 29.12.2011 - 23:57
-1
  

¿Cuál es un buen lugar para que noten mi trabajo?

Casi en cualquier lugar de Internet: si escribe algo que vale la pena mencionar, como una utilidad que hace algo limpio o único, que una gran cantidad de personas usará / descargará, entonces ya ha logrado la mayor parte de esto. tarea. Las aplicaciones geniales, útiles y disponibles se anuncian.

  

¿Hay revistas o publicaciones específicamente para programadores jóvenes?

     

Si no son publicaciones, ¿hay algún buen blog o es mejor comenzar el tuyo?

Ya está aquí: esta es solo una de muchas comunidades que desean compartir y ser conocidas por saber, otras personas están más que felices de vincular temas de mérito a la corriente discusión.

  

¿Hay algo más que me ayude a ser notado como programador?

Solo programa por el bien de la programación, siempre que sea productivo, creativo y útil, se tomará una notificación.

Un punto que veo mencionado en otras respuestas, que también estoy atento, 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 ningún problema que resolver, estás codificando en vano ... oh, una cosa más, no te preocupes por los viejos gruñones, con su hinchada y desalentadora intencionalmente, los comentarios del joven "pargo", tú eres joven y entusiasta, eso es todo lo que necesitas.

    
respondido por el tahwos 28.12.2011 - 20:13
-1

Si fuera tú, daría a conocer mi trabajo, dirá que programa en c , así que comience a crear programas que estén orientados a la experiencia diaria de los usuarios de Pc, haga cosas como youtube downloader y comience su propio% co_de. % hey man im solo 19 y comencé a programar hace 4 años y recibo a este joven negro desde el principio ... así que podría entender la pasión que puedes tener por la programación, pero al mismo tiempo, la programación podría tomar mucho de tu tiempo, y esfuerzo, date tiempo para vivir ... lo que significa que todo ese tiempo sentado frente a una computadora puede ser estresante para un niño.

    
respondido por el Youngnate DaGreat 28.12.2011 - 20:59
-1

Hay un montón de lugares para hacer que su trabajo sea reconocido, pero aunque puede considerar su trabajo de primera clase, puede que sea solo un día simple en el trabajo para algunos. Cuando tenía 16 años, pensé que mi trabajo era increíble, estaba haciendo algunas cosas geniales, pero en realidad estoy trabajando en estos campos ahora, y donde estaba entonces no es nada en comparación con donde estoy ahora, y sigo teniendo muchos caminos. fuera de donde quiero estar.

    
respondido por el BrettAdamsGA 28.12.2011 - 21:13
-2

Si te gustan los juegos, prueba a participar en Ludum Dare. Un buen juego allí tendrá cierto renombre.

    
respondido por el Deza 03.01.2012 - 21:27
-3

Si quieres que te noten Y ganar algo de dinero, te recomendaría el desarrollo móvil en iPhone o Android. Ya sabes C ++, que es un gran comienzo. Para el desarrollo nativo en iPhone, necesitará Objective C, y para Android necesitará Java. Ambos son similares a C ++ (Java es más fácil porque no hay administración de memoria) y no será demasiado difícil de aprender. Por lo tanto, no solo escribirá aplicaciones que lo llamarán la atención y le hará ganar algo de dinero, sino que también aprenderá nuevos idiomas y plataformas en el proceso.

    
respondido por el Alex 29.12.2011 - 05:42

Lea otras preguntas en las etiquetas