Estoy en mis veintes y no he escrito una sola línea de código. Si tengo la unidad, ¿puedo convertirme en un programador autodidacta realmente bueno?

Para la última pregunta en la descripción, esto es lo que tengo, ” Nunca demasiado viejo para aprender más “, al menos eso es lo que dice mi abuelo. Tiene unos 90 años y todavía es autor de libros sobre derecho, y he conocido a muchos otros grandes informáticos que están de acuerdo con ese mismo concepto.

Esto es lo que puedo decirte acerca de convertirte en un programador autodidacta. La racionalidad de convertirse en un autodidacta para algo es fuerte. Sin embargo, depende de qué tan lejos lo lleven los primeros empujones iniciales, porque esa ambición necesitará alimentarlo para el resto del camino. Esa es una forma de determinar qué tan malo o bueno podría llegar a ser algo.

Construir un mantra o digamos un plan aproximado puede ser útil. Diría que es un plan aproximado, ya que los planes tienden a ser lindos, hermosos y motivados como los bebés, pero deben cambiarse con frecuencia. Estar listo para cambiarlos es una clave aquí. Evite cosas como cuatro pasos o guías de 10 horas, ya que si uno se atasca en un paso, se sentirá como una tarea abrumadora, el mejor enfoque es seguir el plan general.

Así que aquí está mi plan aproximado:

  • Diversión: Esto debe abordarse como una actividad divertida para hacer en lugar de una ruta de aprendizaje que nunca podría terminar o una rutina de oficina, porque ser autodidacta es un poco diferente a ir a la escuela. Esto es lo que quiero decir con un enfoque divertido:
    1. Jugadores : siempre quieren perder el tiempo con sus videojuegos, modificarlo, hacer un mod o simplemente romperlo de alguna manera, por lo tanto, me convertí en programador (la respuesta de Yad a Cuántos pasos aburridos en la programación había para ti antes se volvió emocionante?)
    2. Investigadores : Quieren automatizar algunas de las tareas aburridas que tienen que hacer a cambio de obtener los resultados divertidos que necesitan, por lo tanto, aprenden la mayor parte de lo que se necesita para sacar esas cosas del camino.
    3. Amantes de los rompecabezas: el poder de la computación siempre puede ser útil para hacer algunos cálculos que no queremos rehacer de vez en cuando en el camino de resolver un gran rompecabezas. (El rompecabezas aquí es una metáfora de los grandes problemas).
    4. Ventas y Marketing ? : Welp, eso es para que respondas lo que es divertido en la búsqueda del campo en primer lugar y ahora puedes aportar potencia de programación.
  • Lo mismo ocurre con cualquier otro campo, ya que hoy en día la tecnología y la programación han evolucionado lo suficiente como para afectar a todos los campos de trabajo y entretenimiento.
  • Fundamentos : Aprender a programar 101 no es difícil, de hecho, hay cientos de sitios web y academias en línea que enseñan programación 101. Pero la otra parte importante es aprender los fundamentos de las computadoras y cómo funcionan, de lo contrario podría dejarse llevar y no saber cómo se muestra todo este galimatías en la pantalla.
    1. Leer libros que introducen aspectos simples de las computadoras es importante.
    2. Aprender sobre la estructura de datos de un lenguaje de programación deseado puede ser bastante útil.
    3. Explorar algoritmos y por qué demonios esto es incluso importante y cómo puede facilitar la vida de un programador.
  • Continúe : una vez que haya algo para aprender, intente usar esa información para crear algo a partir de ella. Quizás, algunas escuelas capturan este aspecto de una buena manera. Los estudiantes pasan aproximadamente 16 semanas de un semestre para aprender de 7 a 8 conceptos de programación y resolver algunos problemas a la semana usando ese concepto.
  • Aprender haciendo en términos de pequeñas piezas de información puede ser su impulso para:
    1. Obtenga recompensas bastante rápido y pruebe cosas nuevas.
    2. Afirma el conocimiento una vez que tu cerebro intente usar un concepto para resolver un problema.
  • Comunidad : necesita encontrar algunos socios para hacer lo que está haciendo, afortunadamente hoy en día cientos de foros y sitios web en línea pueden ayudarlo a que esto suceda. Elegir una tecnología o un lenguaje de programación siempre puede convertirse en algo complicado, pero siempre puede recurrir al que tiene una comunidad más grande y amigable para principiantes.
  • Repetir : una vez que comprenda cómo aprendió una parte, puede regresar y repetir el mismo proceso en las otras partes del lenguaje de programación. Estar obsesionado con aprender algo puede ayudar a encontrar diversión, aprender conceptos básicos y construir más.

Puedo decir con seguridad que lleva tiempo. Ser paciente es importante para evitar dejar de fumar temprano. Se necesita práctica y construir varias piezas más grandes para obtener una perspectiva sobre cómo abordar problemas más grandes.

Hay muchos recursos disponibles, pero recomiendo usar algo que sea comprensivo y contenido amigable y autodidacta.

Cursos en línea pagados :

  • Lynda.com tiene cursos muy largos que revisan los conceptos básicos de numerosos lenguajes de programación.
  • Tuts + tiene algunos de los mejores cursos cortos que pueden ser útiles, pero no demasiado detallados debido a los episodios cortos.

Cursos gratuitos :

Esto es muy recomendado por muchos:

  • CS50x: Introducción a la informática

Hay cursos gratuitos de MIT open-courseware Cursos de programación de introducción de MIT open-courseware y también el resto de los disponibles en Coursera. Aquí hay una lista aproximada de las listas de cursos:

  1. Aquí hay una lista de 154 cursos gratuitos de programación en línea / CS (MOOC) con comentarios (es decir, exámenes / tareas / tareas) que puede comenzar este mes (junio de 2015) • / r / learnprogramming:
  2. prakhar1989 / awesome-cursos
  3. Tabla de contenido:
    • Sistemas
    • Lenguajes de programación / compiladores
    • Algoritmos
    • Teoría CS
    • Introducción a la CS
    • Aprendizaje automático

No te pierdas ni te sientas abrumado por la cantidad de contenido. Simplemente elija algo como un curso introductorio de programación e ir con él.

Libros para leer:

Aaah, hay mucho, pero aún así recomendaría leer algunos de ellos, si no la mayoría, porque los libros son una fuente diferente de información que una vez no puede reemplazar.

  • Lista de Quora: ¿Cuáles son algunos de los mejores libros sobre informática?
  • HN: Debe leer libros de CS para programadores autoaprendidos
  • Reddit: / r / books-list.

También un último consejo, apegarse a una tecnología específica, aprender los conceptos es mejor. Especialmente en el caso de los lenguajes de programación, las personas se sienten violadas cuando se les dice que un lenguaje se ha vuelto obsoleto. Esperemos que se convierta en un gran programador autodidacta. Adaptarse y aprender una vez que haya nuevos jugadores de tecnología clave en el campo y recuerde divertirse.

¿Puedo convertirme en un programador autodidacta realmente bueno?

Los ingenieros de software autodidacta son los mejores y todo lo que necesita es pasión, sin importar su edad.

La tecnología está en constante evolución y también la informática. Considerando esto, los ingenieros de software necesitan constantemente aprender el último marco o sistema de programación para estar en la cima del juego. Alguien que solo puede aprender a través de la metodología clásica; Al escuchar a un maestro, no podrá crecer en una carrera técnica.

Estoy tan seguro de esto que cofundé una escuela de ingenieros de software autodidacta: https://www.holbertonschool.com

Es un programa de 2 años para convertirse en un ingeniero de software Full Stack, es 100% práctico: no hay maestros formales ni conferencias, los estudiantes aprenden trabajando en proyectos a nivel de la industria y colaborando con sus compañeros. La idea es que los estudiantes aprendan a aprender cuál es una habilidad que usarán a lo largo de su carrera.

Si decide ir a aprender solo, aquí hay algunos consejos:

  • Encuentre un mentor: el mundo del software es grande y hay mucho que puede encontrar en Internet al respecto, también, sea honesto, hay demasiado y es difícil saber por dónde empezar. Encuentre a alguien que haya estado en la industria por un tiempo y que se mantenga actualizado. Defina un plan con esta persona sobre lo que debe estudiar.
  • Obtenga un código revisado: por lo general, hay muchas formas de lograr algo y muchas formas muy malas. Si bien Internet está lleno de excelentes recursos, está lejos de ser perfecto. Asegúrese de pedirle a su mentor que revise su trabajo de vez en cuando, para que no esté aprendiendo de la manera incorrecta.
  • Aprende haciendo: leer libros y tutoriales es bueno, pero hacerlo es el rey. El software es como un oficio, es practicando que lo dominarás.
  • Practique en algo significativo: seguir los tutoriales tiende a ser molesto, una vez que se sienta lo suficientemente cómodo con una tecnología, trate de llegar a una idea de proyecto personal donde tenga que usar lo que esté aprendiendo. Eso te ayudará mucho a mantenerte motivado y estar orgulloso de ti mismo. Recuerde que PUEDE HACERLO, es cuestión de tiempo y perseverancia, pero el camino puede ser largo.
  • Diviértete: CodinGame es genial, los videojuegos que controlas usando un lenguaje de programación de tu elección. HackerRank es una plataforma en la que puede evaluar sus habilidades de programación, muchas preguntas son del tipo de entrevistas técnicas que las empresas están utilizando para seleccionar candidatos, una buena manera de ver cuál es su posición.
  • Salga y conozca a los ingenieros de software: hay mucho que necesita saber para ingresar al mundo de la tecnología, mucho que solo podrá saber cuando debata con ingenieros de software reales. Vaya a reuniones y hackathon, algunos sitios web que recomiendo para esto son Meetup.com y Eventbrite. Si vives en el área de SF Bay, visita nuestra página de Meetup.

¿Soy demasiado viejo para comenzar?

Estamos seleccionando estudiantes en base a 3 criterios:

  • (nuestra definición de) Talento
  • Motivación
  • Habilidad para colaborar

No se le da importancia a nada más, incluida la edad.

Para el lote actual que tenemos en la escuela, la edad de los estudiantes llega a los 58 años . Puedo ver claramente que la curva de aprendizaje es más empinada para los estudiantes de último año, pero a menudo también trabajan más duro, son más serios y organizados que los más jóvenes. También desarrollaron habilidades blandas que los estudiantes más jóvenes no tienen, por ejemplo:

  • Márketing
  • Negocio
  • Hablar en público
  • Comunicación

Todo esto hace que puedan terminar haciéndolos un mejor activo dependiendo de la posición cuando se unen a una empresa. Uno de nuestros estudiantes que estaba entre las personas experimentadas consiguió un gran trabajo en Apple, es un excelente orador público, increíble en el trato con las personas y es un gran trabajador, habilidades blandas todo el tiempo.

La mayoría de las personas y muchos ingenieros de software no se dan cuenta de que ser un gran ingeniero de software no se trata solo de ser bueno técnicamente. Anteriormente trabajaba para LinkedIn y vería que compañeros de trabajo muy técnicos no serían promovidos porque eran solistas, no compartían sus conocimientos y participaban en la vida de la empresa. En el lado opuesto, las personas técnicamente promedio que fomentan la colaboración de equipos, comparten sus conocimientos y se incorporan a los recién llegados a puestos con responsabilidades.

Entrar en la industria del software para alguien mayor está lejos de ser imposible, pero necesitará mucha motivación y horas. Pero si la Ingeniería del Software es realmente lo tuyo, no debería ser un problema para ti. Como dijo Confucio, “Elige un trabajo que ames y nunca tendrás que trabajar un día en tu vida”.

Finalmente, concluiría con esta ilustración, que explica muy bien cómo más personas mayores pueden aportar valor al juego.

Si tiene 2 años para invertir (los estudiantes comienzan a trabajar y ganar dinero después de 9 meses), le recomiendo que nos visite, si solo puede invertir unos meses, comience con un programa en línea y luego un campamento de entrenamiento físico.

¡Buena suerte!

Todos somos autodidactas .

Casi la mitad de los desarrolladores no tienen un título en ciencias de la computación (según la encuesta de Stack Overflow), la otra mitad pasó unos años en collage obteniendo una fracción del conocimiento requerido para el trabajo, si son buenos es porque enseñaron ellos mismos el resto.

Es necesario tener una buena cantidad de experiencia (o conocimiento) para poner el pie en la puerta. Pasar unas horas después del trabajo no va a reducirlo, si se refiere a negocios, necesita comprometerse a tiempo completo. Se ha demostrado que es posible obtener una pasantía en Amazon (y un puesto a tiempo completo 3 meses después) después de 6 meses de capacitación intensiva en una de las academias de desarrolladores. De acuerdo, no todos son capaces de mantener una carrera exitosa después, pero una vez que estás dentro, nada te impedirá ser realmente bueno.

No te desesperes. El final de 20 es solo el comienzo, tiene al menos 40 años más por delante para practicar el software.

¡Por supuesto que puede!

Estoy feliz de ver personas interesadas en la programación. Honestamente, la codificación nos enseñó una lección muy importante; nos dimos cuenta de que en realidad podemos presentar nuestra imaginación, ideas e incluso sentimientos a través de la programación. Solo hay una forma de convertirse en programador; debe comenzar a codificar y seguir codificando lo antes posible.

Sin embargo, enumeraré algunas cosas que creo que deberías considerar.

Mientras aprende a codificar, estas son las peores cosas que hacer:

* Marque el más importante allí abajo, otros son solo adicionalmente. *

1. Investiga infinitamente tecnologías sin perder tiempo escribiendo código.

Comenzar es súper intimidante. ¿Qué pasa si elige el lenguaje de programación incorrecto? Marco web? O base de datos? Los expertos a menudo no están de acuerdo sobre el mejor enfoque, por lo que la fase de investigación puede parecer una cámara de eco de opiniones diferentes.

El hecho es que no puedes aprender a codificar leyendo sobre esto. La única forma de aprender es mediante la codificación. No te preocupes por aprender lo incorrecto. Cualquier lenguaje que elija al menos lo ayudará a aprender los conceptos centrales de la programación. Habilidades como nombrar variables, definir funciones y desglosar problemas complejos se aplican a todos los lenguajes de programación. Entonces, no es un gran problema donde comienzas.

2. Trate aprender a codificar como estudiar para un examen.

Pasar tiempo memorizando detalles le impedirá comprender las ideas más amplias que realmente importan. En programación, no vas a ser cuestionado. Es probable que no se encuentre en una situación de peligro en la que necesite encontrar la respuesta sin utilizar ningún recurso.

En cambio, casi siempre podrá apoyarse en los recursos para encontrar la solución. Usar Google para encontrar una respuesta no es hacer trampa. Tampoco está mirando el código que has escrito en el pasado.

Con el código, aprender dónde buscar trampas es más importante que memorizar la respuesta.

3. Deje que los problemas en su código se acumulen sin cesar sin verificar si realmente está funcionando.

Los mejores desarrolladores son escépticos. Constantemente verifican para asegurarse de que su código realmente esté haciendo lo que creen que debería estar haciendo. Esto significa que tardan unos minutos en verificar dos veces antes de pasar a la siguiente.

4. Pase por alto la diferencia entre una letra mayúscula y una letra minúscula.

En programación, los detalles importan. Incluso pequeños detalles, como la diferencia entre una letra mayúscula y minúscula. Presta mucha atención a cosas como:

  • Singular vs. plural es diferente
  • El número 0 es diferente a la letra O
  • Un guión es diferente a un guión bajo.

Es importante acostumbrarse a notar diferencias sutiles entre símbolos similares.

LO MÁS IMPORTANTE:

APRENDIENDO SOLO.

Te estoy dando una alternativa:

Los bootcamps de codificación le enseñan todo lo práctico que usará el día 1. Actualmente estoy trabajando en la Escuela Holberton que ofrece una alternativa para los que se preguntan sobre los bootcamps, así como un título de 4 años en ciencias de la computación. Básicamente, es un programa que combina la vida del campus en el centro de San Francisco, una pasantía y un empleo a tiempo parcial contratado de forma remota o en el campus trabajando como especialista. Su duración es de 2 años. La escuela Holberton realmente ofrece una alternativa increíble por muchos beneficios que produce. No hay costos iniciales para Holberton.

Holberton School entrenará en 3 cosas que harán que nuestros estudiantes sean excelentes ingenieros de software:

  • Tener un conocimiento de la pila completa;
  • Ser capaz de aprender solo;
  • Habilidades blandas (la ciencia de datos no te enseñará;

El programa está organizado de tal manera que tiene una base formal. ¿Qué significa esto? No hay educación formal en las clases y con los maestros. Usted tiene mentores que supervisan su trabajo y están disponibles para consultas. Holberton actualmente trabaja con 100 mentores que trabajan en la misma industria. Además, de esta forma los estudiantes siempre están actualizados con información en nichos específicos. Uno de los mentores, Louis Monier, por ejemplo, dirige el curso de Machine Learning. Primero les dio a los estudiantes un seminario de día completo y una capacitación práctica que los puso en el lugar. Este tipo de educación es exclusiva de la Escuela Holberton. Aprender sobre ingeniería de software no es solo aprender sobre la tecnología. Requiere conocimiento sobre redes, habilidades sociales y tutoría por parte de expertos en el campo. Lo que ocurre con los bootcamps es que te permiten adquirir habilidades que te ayudarán a iniciarte en el mundo de la tecnología. Eso es principalmente lo que los hace atractivos. Sin embargo, si su pasión realmente reside en el mundo de la tecnología, comprenderá que dominar varias áreas requiere tiempo y esfuerzo.

  • “La parte que realmente separa a las personas que tienen éxito de las que no lo son es solo una curiosidad central y un deseo de responder las preguntas que las personas tienen para resolver problemas. No lo hagas porque crees que puedes ganar mucho dinero, es probable que para cuando estés entrenado, o no sabes lo correcto o hay cientos de otras personas compitiendo por el mismo puesto, por lo que el único Lo que se destacará es si realmente te gusta lo que estás haciendo “.

Todos los mejores programadores que conozco son autodidactas. El colegio / universidad les enseñó muy poco sobre programación. Esto se debe a que la programación no se puede aprender de los libros ni de la instrucción en el aula; solo se puede aprender haciendo , practicando . Al escribir mucho software. (Un punto importante es este: aprender un lenguaje de programación NO es aprender a programar. La programación se trata de resolver problemas , de adquirir las habilidades lógicas y analíticas necesarias para resolver problemas de programación).

Piense en aprender a programar como aprender a tocar un instrumento musical o aprender a jugar ajedrez. Se necesita práctica interminable.

Creo que la razón por la cual los buenos programadores son autodidactas es porque tienen una curiosidad natural. Les gusta explorar y jugar. ¡Les gusta jugar y divertirse! Así es como aprenden detalles técnicos y matices que confundirían a las personas que no comparten las mismas sensibilidades intelectuales. Si necesita instrucciones formales, si necesita “agarre manual” técnico, me atrevo a decir que probablemente no se convertirá en un gran programador.

Si nunca ha escrito una línea de código, le recomiendo una forma agradable y amable de aprender a programar: vea la respuesta de Richard Kenneth Eng a ¿Por qué debo aprender a programar y qué idioma debo aprender?

A partir de ahí, es fácil pasar a Java o Python o C ++ o lo que sea.

Si, absolutamente. Lo interesante de aprender a codificar es que es realmente simple SI te acercas a aprender a codificar con la mentalidad correcta. No necesariamente fácil, pero simple. Aprender a codificar se reduce a DOS cosas.

Antes de mencionar las “dos cosas”, quería señalarle un artículo sobre ser “autodidacta” vs educado en la universidad. Puedes leerlo aquí: Programadores autodidactas vs educados en la universidad .

De todos modos, aquí están las dos cosas:

  1. Ser curioso
  2. Resolviendo rompecabezas

No me importó ninguna de esas cosas durante mucho tiempo, y luché mucho. Lo único que me importaba era crear una empresa de tecnología y convertirme en multimillonario (risas). Así que “aprendí a codificar”, que era gritarle a mi computadora porque nunca hizo lo que quería.

Probablemente me tomó un año descubrir cómo funcionaba mi $ PATH porque no me importaba cómo funcionaba mi $ PATH. Solo quería instalar algo en mi computadora. No me importa un estúpido $ PATH.

Entonces … Cada vez que tenía que instalar algo en mi computadora, cruzaba los dedos y esperaba y rezaba para que esta cosa de $ PATH no apareciera, y cuando lo hacía, googleaba como loco y copiaba / pego todo tipo de basura en mi terminal tratando de hacer que las cosas funcionen.

Si me hubiera tomado 20 minutos buscar en Google términos desconocidos y conocerlos, lo habría descubierto mucho más rápido.

No intente buscar soluciones a su problema. En cambio, trate de entender el problema. (curiosidad)

Aquí hay una publicación que escribí que cubre todos los componentes principales que componen una aplicación web Si aprende estas pocas cosas importantes, podrá crear una aplicación web totalmente funcional.

Resolviendo rompecabezas:

Toda la programación es simplemente juntar piezas de un rompecabezas para crear algo o resolver un problema.

Finalmente, me topé con el ” Código de aprendizaje de la manera difícil”. El cual fue un libro que le enseñó algunas cosas y luego le hizo leer la documentación y resolver algunos desafíos.

Eso es realmente toda la programación es: juntar pequeñas piezas de código para hacer algo. Para ello, comienza con desafíos simples como “invertir una cadena” y “zumbido” a cosas más complejas como … Tomar la entrada del usuario, guardarla en una base de datos y mostrar cierta información de la base de datos de manera significativa.

Es como Lego, y a medida que resuelves más desafíos, podrás hacer cosas cada vez más frescas. Hay muchos sitios de desafío por ahí, así que busque en Google “Ejercicios de programación”.

¡Buena suerte!

Sí, con una advertencia.

El pequeño secreto sucio, del que nadie parece hablar, es que la programación es fácil. Averiguar qué programar, esa es la parte difícil.

Al igual que con la escritura, la programación tiene que ser SOBRE algo. Una vez que vaya más allá de la mecanografía básica, la sintaxis y el vocabulario (teclado, lenguaje de programación), debe escribir (programar) sobre algo que sabe y comprende. De lo contrario, solo eres un mono golpeando un teclado. Sí, su prosa (código) mejorará con el tiempo, pero eso es secundario.

Dices que tienes experiencia en ventas y marketing, junto con ingeniería y matemáticas. Espero que hayas creado varias hojas de cálculo para hacer un seguimiento de las perspectivas; adivina qué, eso es programación. El siguiente paso es macros más complejas, escribir extensiones en Excel en vBasic y aprender algo de SQL para absorber datos en sus hojas de cálculo, desde bases de datos.

Y luego está el análisis de mercado y, en general, “Big Data”. Espero que ya sepa cómo analizar los tamaños del mercado, las tendencias, etc., ya sea manualmente o utilizando algunas herramientas de software. Y probablemente conoces una buena cantidad de estadísticas. Convertir los análisis manuales en código, digamos en R, es bastante sencillo.

Teniendo en cuenta sus antecedentes, una analogía para escribir propuestas está en orden. Primero, analiza a su cliente y sus requisitos. Luego, escribe un esquema y completa los puntos que abordan los requisitos y los criterios de evaluación. Luego se te ocurre un horario y un presupuesto. Y finalmente, escribes una prosa que desarrolla los detalles. La codificación es el último paso. Todo lo que viene antes es lo difícil.

Comience con un problema que entienda. Resuélvelo. Aprenda un idioma relevante: diga un tutorial básico y luego obtenga lo que necesita saber para codificar su solución. Lavar, enjuagar, repetir. En el camino, comience a aprender sobre buenas prácticas de programación (estructura, pruebas, documentación) y herramientas (entorno de desarrollo, depurador, sistema de control de versiones, cadena de compilación). Muy pronto, podrá resolver problemas reales y crear software real.

La edad de las personas está directamente relacionada con sus pensamientos.
Un joven de 80 años puede ser joven y un joven de 20 años puede ser mayor
y además hasta que seas mentalmente joven puedes aprender cualquier cosa
así que aprende hasta que te hagas viejo
y para programar los siguientes sitios web pueden ser útiles
Una lista de lectura para el científico informático autodidacta
http://stackoverflow.com/questio
Introducción a la informática y la programación, primavera de 2011
(Editar):
Codecademy
Aprenda programación en línea – Learnstreet
¿Qué debe leer y aprender un programador autodidacta?
¿Qué debería leer y ver para convertirme en un ingeniero de software autodidacta desde cero?

La pasión es básicamente lo que necesitas para aprender una habilidad como la programación y siento la pasión ardiendo en ti, lo cual es un buen comienzo. Si decide ir a aprender solo, aquí hay algunos consejos:

Encuentre un mentor: el mundo del software es grande y hay muchas cosas que puede encontrar en Internet al respecto, para ser sincero, hay demasiado y es difícil saber por dónde empezar. Encuentre a alguien que haya estado en la industria por un tiempo y que se mantenga actualizado. Defina un plan con esta persona sobre lo que debe estudiar

Revise su código: por lo general, hay muchas formas de lograr algo y muchas formas muy malas. Si bien Internet está lleno de excelentes recursos, está lejos de ser perfecto. Asegúrese de pedirle a su mentor que revise su trabajo de vez en cuando, para que no esté aprendiendo de la manera incorrecta.

Practique en algo significativo: seguir los tutoriales tiende a ser molesto, una vez que se sienta lo suficientemente cómodo con una tecnología, trate de llegar a una idea de proyecto personal donde tenga que usar lo que esté aprendiendo. Eso te ayudará mucho a mantenerte motivado y estar orgulloso de ti mismo. Recuerde que PUEDE HACERLO, es cuestión de tiempo y perseverancia, pero el camino puede ser largo.

Para ser un gran ingeniero de software, necesitarás 3 habilidades:

1. Tener un conocimiento de la pila completa: las aplicaciones de software son sistemas complicados compuestos de muchas tecnologías y partes: frontend, back-end, base de datos, servidor web, red. Por ejemplo: cambiar una consulta en la interfaz afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos, la consulta podría hacer que el sitio caiga.

Algoritmo y estructura de datos Programación de alto nivel (lenguajes de programación de objetos orientados) Administración del sistema y un poco de trabajo en red. Con esto, un ingeniero de software podrá navegar casi cualquier sistema / aplicación y podrá tomar decisiones de ingeniería bien pensadas.

2. Ser capaz de aprender por sí mismo: los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las industrias que cambia más rápido, es por eso que constantemente necesita actualizar la aplicación de su teléfono inteligente y que sus sitios web favoritos brinden constantemente una mejor experiencia y características.

En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que los ayudarán a hacer que su aplicación sea más rápida, mejor y más confiable. Los nuevos lenguajes de programación y bibliotecas están constantemente llegando y uno no puede volver a la universidad cada vez que surge una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que pueda aprender solo.

3. Habilidades blandas: a menos que esté dispuesto a trabajar solo, podría ser la habilidad más importante. Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas” porque este libro es muy importante para aprender a ser un ser humano exitoso.

No te puedes imaginar cómo ser amable con las personas y ayudarlas a hacer su trabajo traerá mucho. Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero supongamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas.

Si puedes conseguir estas 3 cosas, serás un programador increíble y todos querrán contratarte. Esto es lo que hacemos en la escuela Holberton http://www.holbertonschool.com

¡Buena suerte en tu camino para convertirte en un gran programador!

Sí, y el autoaprendizaje es lo más importante en la carrera de programación.

  • Aprender en la carrera de programación es un viaje interminable. Tengo más de 15 años de experiencia en programación. También escribo en un blog sobre programación y tecnología. Aprendo muchas cosas en cada nuevo proyecto que hago.
  • Mejores recursos ahora: las cosas son muy diferentes y mejores ahora, ya que hay muchos recursos de aprendizaje para el autoaprendizaje. Eche un vistazo a estos sitios interactivos para aprender programación. Estoy tratando de aprender Python usando Codecademy. Siempre usé Java en el pasado y ahora estoy probando otros idiomas. Python es un lenguaje increíble y muchas cosas se hacen mejor en Python que Java.
  • Cambiar de trabajo: ayuda a aprender: cada cambio de trabajo que hice me ha ayudado a aumentar mi aprendizaje a un ritmo más rápido . Si se queda en un empleador, puede aprender mucho conocimiento de la tribu que puede no ser útil fuera de ese empleador.
  • Tome nuevos proyectos y desafíos : asumir nuevos proyectos ayuda al aprendizaje. En caso de que no lo obtenga debido a la naturaleza del trabajo, puede contribuir a la comunidad de código abierto al ser parte de algunos proyectos nuevos. Con solo comenzar a contribuir, aprenderá mucho sobre cómo funciona la colaboración de grandes proyectos y cómo se diseñan los softwares.

Muchos otros buenos recursos se señalan en otras respuestas, por favor no se los pierda.

Buena suerte aprendiendo.

Descargo de responsabilidad: no aprendí ninguna basura del curso BE CSE que tomé. Toda la programación que aprendí, lo hice yo mismo.

Yo sugeriría:

  • Concéntrese en los conceptos de aprendizaje y la belleza de las computadoras, en lugar de solo la sintaxis de un lenguaje moderno y “cosas de construcción”.
  • También es importante construir cosas, porque la diversión real comienza cuando implementas tus aprendizajes. Así que sigue trabajando en proyectos paralelos de vez en cuando.
  • Use un lector de feeds para agregar algunos buenos blogs de programación, de modo que tenga muchos recursos para leer todos los días. También es bueno cuando necesitas postergar la escritura del código.
  • Tenga algunos buenos libros al lado de su PC / computadora portátil para recordar leer algo nuevo todos los días. Los mejores son Code Complete y The Pragmatic Programmer.
  • Asista a reuniones locales y conozca más programadores. Nunca se sabe cómo podrían ayudarlo en la búsqueda de aprender programación. Rodearse de programadores lo motivará.

Tenía más de 30 años antes de escribir una línea de código. Me enseñé varios idiomas. Tuve una carrera exitosa como desarrollador de software y ahora otra carrera como profesor de tecnología de la información. Enseño Python, C #, Java, SQL, HTML5, CSS, Javascript y más. Eso no es alardear. Mi punto es que la programación no es más que modelar lo que existe en el mundo físico. Si hablas un idioma (parece que sabes inglés), entonces sabes cómo aprender un idioma. Si alguna vez has seguido una receta, entonces sabes qué es un algoritmo. Realmente no es tan difícil. Ve a por ello.

¡La respuesta corta es sí! Puedes convertirte absolutamente en un buen programador que es autodidacta. Realmente parece que tienes la pasión y el impulso para lograr grandes cosas si te lo propones.

Realmente golpeas el clavo cuando dices “Estoy dispuesto a llegar a tiempo todos los días después del trabajo”. ESTO es exactamente lo que va a tomar, con énfasis en CADA DÍA. Eso es realmente lo que frena a las personas que son autodidactas. Quedan atrapados en su vida y no se sientan todos los días y hacen algo. No importa si solo tiene 20 minutos, aún debe sentarse y poner la cabeza en el juego durante esos 20 minutos y codificar algo. Espero que tengas más tiempo que eso regularmente, pero tienes la idea.

Dicho esto, si está interesado y apasionado por aprender a programar, puede ser una carrera excelente y lucrativa. Los salarios de ingeniería de software están en tendencia a $ 155k / año .

Salarios de ingeniería de software en San Francisco, CA

Entonces, ¿por dónde empezar? Hay muchos recursos por ahí. Solo una búsqueda rápida en Google le traerá más videos de YouTube de los que podría ver y más tutoriales de los que podría leer, incluidos cursos para aprender a programar casi cualquier idioma que pueda desear aprender. TeamTreehouse y Code Academy son un par de excelentes recursos para el autoaprendizaje guiado, pero hay muchos más por ahí.

El punto es que solo salgan, comiencen. Ya tiene cierta exposición y conexiones, por lo que una vez que comience a acumular algunas habilidades, su carrera tendrá un buen comienzo.

Mi hermano adquirió ruby ​​on rails, html, css, javascript, etc. básicamente en un año con muy poca experiencia previa en programación. Tenía algo de dinero de nuestra startup anterior (donde hizo gráficos) y empleó más de 40 horas / semana durante el año haciendo diferentes proyectos y ahora diría que es más competente que muchos desarrolladores de rails que conozco. Estamos haciendo otra startup ahora, pero podría estar haciendo seis cifras en algún lugar si quisiera. Creo que DHH habló de ello en Railsconf, pero creo que este artículo del blog se aplica bastante bien a la programación: http://sivers.org/kimo/&nbsp ; (Resumen: no hay límite de velocidad para aprender) Una cosa que diría es ahorrar algo de dinero y renunciar a su trabajo (si es posible) y simplemente trabajar en el aprendizaje a tiempo completo (sé que es un gran salto, pero es realmente difícil hacer dos cosas a la vez, especialmente cuando una de esas cosas es aprender a programar) Si aprendió Rails, por ejemplo, no tendría ningún problema para conseguir un trabajo si pasara un año completo solo trabajando en aprenderlo y haciendo algunos proyectos divertidos a lo largo del tiempo. camino. Solo mis $ 0.02

No tiene sentido que repita lo que han dicho los demás. Entonces, respuesta corta, sí puedes.

Puedes tomar mi palabra por eso. Quería ser escritor pero ahora llevo más de 6 años desarrollando software. Si tuve éxito en los primeros pasos a medias, ciertamente puedes hacerlo mejor. Creo que tienes la actitud correcta.

Pero como se menciona en las otras respuestas, crear algo propio o resolver un problema del mundo real puede ser un poco difícil. Requiere más que pasión por la programación. Entonces, si al final de todos los tutoriales, todavía cree que crear algo original por sí solo es demasiado desalentador, puede intentar aceptar pequeños trabajos independientes o unirse a equipos de desarrollo como colaborador junior. Si bien no puede pagarle mucho, valida las cosas que aprendió y sus prácticas según los estándares de la industria. Además, los plazos pueden darle un empujón si alguna vez se siente perezoso. Puede ser un buen refuerzo de confianza.

Si una empresa brinda capacitación para personas que cambian de carrera, eso es algo que también puede aprovechar. Durante mi entrenamiento en mi primer trabajo, el mayor de mis compañeros tenía 28 años. También conozco a alguien que se unió a una startup de cuarenta y tantos años y que ahora está bien. De hecho, la edad es solo un número si puedes combinar bien con la cultura y realmente puedes hacer el trabajo. Es fácil de olvidar. ¡Ir! Te deseo lo mejor. (:

Por experiencia personal, el impulso y el interés son más importantes que la edad. Mi madre tenía poco más de 40 años cuando comenzó a programar, y ahora lo hace cómodamente para ganarse la vida.

Basándome en tus antecedentes, creo que te divertirás mucho aprendiendo a programar. Podría sugerirle que pase un mes para seguir cada ejemplo y hacer cada ejercicio en los primeros 6 capítulos de Sumérjase en Python. Te llevará a un punto donde puedes realizar tareas útiles típicas.

http://www.diveintopython.net/to

¿Puedo contarte un pequeño secreto? ¡Todos los programadores realmente buenos son autodidactas!

Tienes experiencia con la industria de TI. Eres bueno en matemáticas. Te has conectado en red con programadores inteligentes. Estás motivado Estás dispuesto a poner el tiempo. Te pones metas realistas. Estás dispuesto a aprender ¡Tengo que decir que ya te queda bien!

El momento adecuado para comenzar a aprender programación es hoy. Todo lo que te falta es dirección.

  1. Primero enfóquese en aprender conceptos de CS. Y no un lenguaje de moda. Póngase cómodo con estructuras de datos y algoritmos . Un adelanto de los sistemas operativos también te ayudaría.
  2. Elige tu primer idioma. Recomiendo C. Como esperaste 2 años por esta decisión, creo que tienes mucho más para aprender C.
  3. Comience a codificar. No puedes ser bueno en la programación sin programar. Escribe tu Hola Mundo! programa. Prueba Project Euler o algún sitio web de programación competitivo. Practica a diario.
  4. No te excedas. No gaste 8 horas al día en programación. Lo olvidarás todo en unos días. Empieza pequeño. Sigue revisando.
  5. Nunca dejes de aprender. Al igual que la ley de Moore para los circuitos integrados, la informática es un campo de cambio constante. Acostúmbrese a leer blogs de codificación y trabajos de investigación. Hay límites a lo que puedes aprender de los libros.
  6. Aprende de los programadores inteligentes que conociste antes. ¡Una simple charla sobre el café puede enseñarte mucho! Obsérvalos en el trabajo. Aprende de ellos.

Tomé Biología para mi +2. Ingeniería Electrónica y Comunicaciones para graduación. Trabajó en una de las 5 principales empresas de TI de la India como desarrollador de data warehouse. Aprendí scripting de shell durante este tiempo. Mi gerente de proyecto le dijo una vez a mi equipo: “Cometimos un error al seleccionar Datastage para este proyecto. En cambio, deberíamos haberle pedido a este tipo que desarrollara todo en el script de shell Unix, y podríamos haber completado el proyecto en la mitad del tiempo”. . Ese es uno de los mejores cumplidos que he recibido.

Renuncié y creé mi propia startup. Contraté a más nuevos de TI, y les enseñé / enseñé PHP. He escrito programas simples en Java, Python y Perl. He escrito un módulo PHP en C.

Pude hacer todo esto sin ningún conocimiento serio de educación de TI. Así que la respuesta a tu pregunta es sí. Puedes ser un programador autodidacta.

Elija un idioma fácil de aprender y comience a aprender. No tiene que aprender todas las características del idioma antes de comenzar. Intenta resolver problemas simples con el lenguaje de programación elegido. Intenta contribuir a proyectos de código abierto. Una vez que te acostumbras, aprender otro idioma es muy fácil.

Nunca lo sabrás con seguridad hasta que lo intentes.

La respuesta a “¿Puedo convertirme en un programador autodidacta realmente bueno?” es siempre si . De hecho, todos los programadores realmente buenos son autodidactas.

Su pregunta es realmente dos preguntas: 1. ¿Es posible ser un programador autodidacta realmente bueno? 2. ¿Puedes, específicamente, ser un buen programador autodidacta?

La respuesta a la primera pregunta es sí, y realmente no está en discusión. Hay decenas de miles de desarrolladores autodidactas que trabajan profesionalmente mientras escribo esto. De hecho, después de un cierto período de tiempo, todos los desarrolladores son autodidactas. Esto se debe a lo rápido que cambia la tecnología.

La respuesta a la segunda pregunta no está probada. Aprender a codificar es difícil. Te quedarás atrapado. Te frustrarás. Solo una persona con mucha curiosidad natural y tenacidad podría tener éxito. ¿Eres tu? Vamos a averiguar.

Paso 1. Vaya a este sitio e intente completar los primeros tres proyectos. Puede hacer los cinco si lo desea, pero si puede obtener los primeros tres, tiene el talento necesario para aprender desarrollo web: aprenda a codificar HTML, CSS y JavaScript con Dash

Paso 2. Si aún quieres aprender, ve a este curso gratuito de la Universidad de Stanford y obtén el certificado al final. No se preocupe, no se requieren conocimientos de matemática o programación. Es una introducción a la informática y explicará algunos conceptos que es importante comprender a medida que avanza. Es un curso corto que puede completar en una semana o dos: Computer Science 101

Paso 3. En este momento tendrás una idea básica de a qué te enfrentas. Habrás hecho algunos ejercicios de codificación y has aprendido algo de teoría. Si está listo para comenzar a trabajar en proyectos reales, entonces comprométase a unas 1000 horas de aprendizaje y comience en Free Code Camp. Terminará con una cartera en línea de múltiples proyectos, e incluso algo de experiencia en el mundo real trabajando con organizaciones sin fines de lucro. Conocerá tanto el desarrollo front-end como el back-end, y tendrá un comando sólido de JavaScript, que es el lenguaje de programación de Internet. Aprenda a codificar y ayudar a organizaciones sin fines de lucro

Recuerda, esto es DURO. Te atascarás. No tengas miedo de pedir ayuda. Free Code Camp tiene una comunidad en línea excelente y muy activa, y también puede usar los siguientes recursos:

Desbordamiento de pila: desbordamiento de pila

Red de desarrolladores de Mozilla: Red de desarrolladores de Mozilla

Eso debería ayudarte a comenzar. Honestamente, con los enlaces que te acabo de entregar, no tienes excusas. Hay suficiente para llevar a alguien de cero a desarrollador profesional, suponiendo que esté comprometido con el éxito.

¡Buena suerte!

More Interesting

Cómo hacer una carrera de ingeniero de software

Quiero seguir una carrera en robótica (prótesis y todas las cosas mecánicas), ya que me emociona. ¿Qué debería hacer ahora?

¿Cuáles son otras buenas opciones de carrera después de la ingeniería si uno no desea trabajar en una empresa de TI?

Soy muy educado y talentoso en muchas cosas, pero me cuesta decidir una carrera. ¿Qué tengo que hacer?

¿Es una marina mercante una buena opción educativa y profesional?

¿Cuáles son las diversas opciones de carrera después de la ingeniería?

Quiero ser parte de un estudio de arquitectura, ¿cuál es una buena carrera para seguir y ganar dinero? Los arquitectos mismos no hacen mucho.

¿Qué opciones de carrera están disponibles para un estudiante de comercio que tiene altos ingresos?

¿Cuáles son las opciones de carrera después de completar la maestría en derecho comercial?

¿Cómo pueden las circunstancias afectar nuestras elecciones?

A pesar de ser un graduado en informática (BE), soy débil en programación. No tengo ningún interés en ningún campo relacionado con la programación / red, y no veo ningún futuro para mí. ¿Cuáles son las opciones de cambio de carrera para mí?

¿Cuáles son las mejores opciones para oportunidades de carrera entre un BSc y un BCA?

Estoy buscando un trabajo, pero ninguna otra compañía está lista para pagarme más o incluso igual a mi trabajo anterior. ¿Qué debo hacer y cómo lidiar con un recorte salarial?

¿Qué habilidades necesito obtener si deseo obtener un trabajo de marketing / ventas justo después de completar mi escuela de ingeniería?

¿Qué debo hacer cuando estoy confundido con mis opciones de carrera?