De no programador a programador independiente "profesional" [cerrado]

8

Soy un estudiante de 15 años que busca comprar su primer auto y pensé que podría ganar algo de dinero extra aprendiendo a programar, ya que me gusta jugar con la computadora todo el tiempo.

He estado leyendo muchas de las publicaciones aquí y he creado una lista de libros que creo que sería beneficioso para mí, sin embargo, no sé qué información es más importante saber primero o si tengo todo lo que necesitaré. Esto es lo que estaba pensando:

1: Aprende un lenguaje de programación en profundidad. Estoy a punto de terminar con el libro paso a paso 2. Aprenda sobre el diseño orientado a objetos y los patrones de diseño 3. Aprenda sobre las pruebas de software 4. Practique estas habilidades en sitios web como projecteuler, topcoder e intente hacer cosas simples proyectos en sitios web independientes como rent-a-coder.

¿Hay algo más que creas que pueda necesitar o debería considerar?

Gracias.

Microsoft Visual C # 2010 paso a paso

Professional C # 4.0 y .NET 4 (Programador de Wrox a Programador)

C # en profundidad

CLR a través de C #

Aplicando UML Y Patrones

Head First Análisis y diseño orientado a objetos

Patrones de diseño: elementos de software orientado a objetos reutilizables

Desarrollo guiado por pruebas: por ejemplo

Creciente software orientado a objetos, guiado por pruebas

usuario13822
fuente
66
Creo que ganarás dinero más rápido si consigues un trabajo de verano corta el césped (si quieres dinero en efectivo). La programación de aprendizaje tardará un poco más en ser lo suficientemente buena como para ganar dinero real con ella (incluso a través del alquiler de un codificador (los desarrolladores experimentados de India / China / Ucrania le ofertarán)).
Martin York
77
Síguelo. Tendrás tu auto en unos 5 años.
ChaosPandion
1
Buena lista de libros. Sin embargo, aparte de la teoría, necesitas práctica, similar a cómo no puedes obtener un cinturón negro en el karate leyendo libros. Date tiempo para practicar, mira la respuesta de GrandmasterB.
Joppe
1
@Rig FYI: los usuarios con menos de 10 repeticiones (esto se creó cuando el OP tenía 1 repetición) están restringidos a 2 enlaces en una publicación . El hxxp era evitar esa restricción.
@ Michael Gracias por señalar eso. No tenía ni idea.
Aparejo

Respuestas:

19

Tu primer paso = Aprende tu oficio

La experiencia es más importante que el aprendizaje de libros:

Elija un proyecto y descubra cómo lograr sus objetivos.

Sin duda, esto lo llevará a aprender libros, etc., pero le permitirá evaluar su propio progreso y elegir qué leer y cuándo. Algunos consejos:

  • Comience con algo pequeño.
  • Toma las cosas de una en una.
  • Haz las cosas lo mejor que puedas.
  • No agregue elementos a su código hasta que los necesite.
  • No siempre agregar código que no entiende.
  • No repita el mismo código dos veces en su proyecto.
  • Siempre imagine que alguien más estará trabajando en su código mañana: intente dejarlo lo más claro posible para esa persona.

En cuanto a su elección de libros:

Si desea obtener la ruta C #, su lista de libros es excelente. ¡Si llegas a conocer todo eso, valdrás tu peso en oro! He sido un programador (bastante bien) pagado .Net desde los primeros días de .Net, pero todavía no he leído el más avanzado de estos libros (pero están en mi lista de lectura). La lección que extraigo de esto es que las cosas avanzadas tienen su lugar, pero el dominio de lo básico aún puede darte una gran carrera. Por lo tanto, no se preocupe demasiado por los libros avanzados hasta que realmente los necesite. Hay un libro que agregaría a su lista, incluso antes de los libros avanzados de C #: Code Complete 2. Probablemente sea el libro más recomendado en este sitio. Merece la pena, en mi opinión.

Su próximo paso = generar confianza

Mencionaste ganar un poco de dinero. Para decir lo obvio: para ganar dinero desarrollando software, debe encontrar a alguien dispuesto a pagarle. Desafortunadamente para ti, descubrir que alguien va a ser un desafío para ti.

¿Por qué?

  1. Por tu edad .

Puedo estar equivocado acerca de esto, ya que es (por supuesto) bastante irrazonable. Sin embargo, la triste realidad es que las personas tienen prejuicios sobre la edad. En mi experiencia, es probable que muchos empleadores potenciales lo rechacen porque consideran que los jóvenes no son confiables y no pueden cumplir sus promesas. Lo que hace que esto sea particularmente injusto es que no puedes hacer nada sobre tu edad, excepto esperar.

Sin embargo, hay cosas que puede hacer para aumentar la probabilidad de encontrar empleo como desarrollador a pesar de su edad:

a) Mantente en ello. Si no busca clientes porque no espera que lo rechacen, nunca encontrará los que mirarán más allá de su edad y verán sus cualidades como desarrollador. En otras palabras, no permita que los prejuicios de otras personas sobre la edad se conviertan en sus prejuicios sobre otras personas.

b) Consigue un defensor: alguien que responda por tus habilidades y que tenga más credibilidad ante los prospectos que tienes en ti mismo. ¿Quizás tiene un amigo o pariente mayor que puede hablar por usted? Por supuesto, necesitará a alguien que pueda garantizar sus cualidades personales, así que asegúrese de estar realmente a la altura técnicamente.

  1. Porque no tienes experiencia en la industria .

A pesar de que obviamente tienes talento, conocimiento y entusiasmo, no tienes 5 años de experiencia en el trabajo. Este es un problema que enfrentan todos los nuevos en una profesión, sin importar su edad. A menudo, las personas no quieren la molestia de emplear a personas que aún no tienen un historial probado en hacer el trabajo.

Afortunadamente, puedes hacer mucho al respecto:

a) Reconocer que esta es una preocupación razonable

Es difícil para alguien justificar el pago de un servicio cuando no tiene evidencia de que obtendrá lo que paga.

Cuando hable con posibles clientes, sea honesto sobre su falta de experiencia, pero demuestre por qué no será un problema. Si muestra la iniciativa en esto, puede socavar sus objeciones antes de que las hayan pensado adecuadamente. El beneficio de esto no es manipular, sino demostrar que comprende sus necesidades comerciales.

b) Construir una reputación

Realice paquetes de trabajo pequeños y manejables por una tarifa lo suficientemente pequeña como para eliminar el riesgo de la transacción para el cliente. A menudo, esto significa que haces tu primer trabajo gratis. Elija estos clientes con cuidado: debe hacer algo que le dé satisfacción a alguien que cantará sus alabanzas cuando entregue. Me dicen que muchos desarrolladores realizan obras de caridad para comenzar, pero la familia y los amigos de la familia también pueden ofrecerle algo.

c) Desarrollar experiencia

Para demostrar experiencia necesitas ... experiencia. Si no puede encontrar a nadie más para quien trabajar, trabaje usted mismo. Comience un proyecto de pasatiempo. Elija algo que la gente encuentre útil y que (a tiempo) esté dispuesto a pagar. Sin embargo, no trabaje en eso por dinero, sino por la experiencia. Considere esto como una inversión a largo plazo: puede esperar una recuperación a largo plazo, no necesariamente a corto plazo.

d) Desarrolle sus habilidades no técnicas

Si la programación de pago no funciona en este momento, no se preocupe. Los empleadores no solo pagan por las habilidades en un área en particular, sino por un paquete completo.

Las habilidades no técnicas son tan importantes en la industria de TI como las habilidades técnicas: los empleadores buscan profesionalidad y capacidad de programación. Estas cualidades profesionales pueden incluir habilidades de las personas, experiencia financiera, conocimiento comercial y cualidades personales como honestidad, confiabilidad, etc.

Todo esto puede desarrollarse independientemente de sus habilidades técnicas. Por ejemplo, si necesita el dinero, podría tomar un trabajo que no sea de programación. Alternativamente, podría involucrarse con un grupo comunitario, una organización benéfica o un puerto o lo que sea donde pueda desarrollar sus habilidades no técnicas. En última instancia, estas actividades pueden llevarlo a obtener su primer contrato de programación adecuado, si no directamente (nunca sabe qué contactos hará), entonces indirectamente, porque es más completo y tiene más para ofrecer que otras personas.

Kramii
fuente
Muchas gracias por tu perspicaz consejo. Muy apreciado.
user13822
+1, este es el tipo de respuestas que me hacen amar este sitio. Claro, al grano y útil.
¿Por qué un cliente sabe su edad? No conozco ningún sitio independiente que publique la edad de un proveedor. Estoy en el otro extremo de la escala: tengo 66 años, y los únicos clientes que conocen mi edad son aquellos que he conocido cara a cara. Dicho esto, debido a su falta de experiencia, le faltará su currículum.
tcrosley
8

Puede que sea mejor concentrarse ahora mismo en las áreas de desarrollo "más suaves", por ejemplo, configurar sitios web y aprender a instalar y configurar sistemas de gestión de contenido y otras aplicaciones de código abierto.

No veo a un chico de 15 años realmente capaz de trabajar por cuenta propia como programador, a menos que sea realmente excepcional en la programación. Creo que es más probable que pueda obtener contratos pequeños para configurar sitios web para empresas locales y luego avanzar a proyectos más grandes desde allí.

Gran maestro B
fuente
2
Haga esto, y mientras tanto, siga aprendiendo cosas más complejas. ¿Tienes algunos amigos con una banda y todavía un sitio web estático? Implemente un CMS para su sitio. Obtendrá experiencia de producción real y alguna prueba de su capacidad para clientes potenciales.
cbrandolino
Y sin que alguien firme contratos para ellos, como en la mayoría de los países, un joven de 15 años no puede firmar un contrato vinculante.
Aparejo
4

Creo que es increíble lo que estás buscando hacer. ¡Este tipo de cosas deberían ser alentadas! Dicho esto, como solo tiene el verano para trabajar en proyectos de pago, es posible que desee elegir una pila de tecnología más rápida que C # y .NET. Hay muchos contratos cortos para cosas como aplicaciones PHP, aplicaciones RoR, desarrollo de iOS y Android, personalizaciones de CMS, etc. Es menos probable que esos tipos de roles tengan prejuicios contra su edad (un hecho triste pero cierto de que va a ejecutar a través de).

Mucha suerte y no te rindas: la programación es una de las cosas más creativas, divertidas y gratificantes que puedes hacer, punto.

Martijn Verburg
fuente
Gracias por su aliento, así como por otras áreas que pueden ser beneficiosas para mí.
user13822
3

Mi recomendación sería lo que he hecho personalmente. Vaya a trabajar a MacDonald o cualquier otra cosa para ganar dinero. No espere ningún ingreso proveniente de TI antes de graduarse de una universidad.

No quiero decepcionarte, pero en los próximos años creo que serás principalmente un consumidor y no un proveedor de tecnología. Significa que gastará más dinero en TI que podría esperar generar de él :-)

UML_GURU
fuente
Hay mucho trabajo independiente disponible para estudiantes universitarios antes de la graduación.
Norman Ramsey
Tal vez no sea graduación, pero hasta que tengas 18 años, será difícil para cualquiera aceptar hacer negocios contigo. Ser un adulto y poder firmar contratos es una parte importante de hacer negocios.
Sean McSomething
3

Te recomiendo que tomes algunos trabajos de verano en lugar de tratar de ganar dinero a través de la programación. Se necesita mucho tiempo y esfuerzo antes de que seas lo suficientemente competente (en promedio) para que la gente te pague por escribir software para ellos. La programación no es algo que se pueda aprender durante el verano. Por lo tanto, a menos que planee hacer esto a largo plazo, no creo que el desarrollo de software produzca el retorno de la inversión (en términos de tiempo y esfuerzo) que está buscando.

Aparte de eso, si está realmente interesado en la programación, sugeriré una forma un poco más fácil que C # y .Net: configurar sitios web (sin ofender a nadie). Comience con sitios estáticos primero y luego aprenda a configurar un sitio controlado por CMS completo. Aunque si sigue este camino, le recomiendo aprender sobre los conceptos básicos del diseño web y el diseño en general (no es necesario, pero realmente ayuda, especialmente si su cliente quiere sitios personalizados en lugar de usar temas prefabricados).

Buena suerte en su automóvil y espero que pueda disfrutar de la programación en lugar de verla simplemente como una fuente de ingresos. :)

jon2512chua
fuente
1

Siempre he encontrado necesario resolver un problema o un juego que quiero escribir. De esa manera, siempre está buscando formas de resolver ese problema y eso lo llevará a leer libros y buscar en línea. Nunca he podido leer un libro y luego conocer un tema.

Una vez que haya decidido un 'problema' para resolver, su elección de libros puede volverse más obvia.

Pablo
fuente
0

Sugeriría agregar algunos libros de Asp.Net, Webforms o MVC. Mots para trabajos independientes son sobre desarrollo web. Además, Asp.Net no es muy popular en este campo.

Tal vez Ruby / Rails o Python / Django sean más adecuados para el trabajo independiente. También PHP tiene una gran parte de trabajos independientes.

Puede consultar los sitios independientes y analizar las tecnologías más buscadas.

Alexey Anufriyev
fuente