¿Es posible aprender programación sin educación formal en el campo? ¿Qué tan difícil puede ser para un principiante absoluto?

Absolutamente posible.

Antes de continuar, formo parte del equipo de Marketing y Comunicación de HackerEarth.

HackerEarth es un centro de programadores de todo el mundo. Para ayudar a las personas a aprender a programar, tenemos una estructura de curso llamada CodeMonk. Tenemos la intención de hacer que la Programación de Aprendizaje sea lo más atractiva y efectiva posible.

Aquí está el Porqué Code Monk es un gran lugar para aprender Programación:

  1. Enfoque estructurado : la mayoría de los artículos o fuentes que obtenemos en google no tienen un contenido estructurado claro donde podamos hacer un seguimiento de nuestro progreso. El curso comienza a partir de los conceptos básicos del algoritmo y pasa gradualmente a conceptos de programación más complicados.
  2. Aprender haciendo: a cada tema también le seguirá un breve desafío de programación para ayudarlo a evaluar su comprensión de los conceptos tratados en el tema. Y hay editoriales y otras notas.

Lo lanzamos en 2015 y tuvimos más de 14K participantes de todo el mundo. Los desafíos de HackerEarth que se llevan a cabo todos los meses te ayudarán a obtener un mejor dominio del dominio.

  • Fácil – Retos fáciles y simples, ideal para principiantes.
  • Choque : desafío de nivel intermedio de 24 horas de duración, con problemas que van desde el nivel medio al difícil.
  • Circuitos : un desafío de 8 días que tiene una combinación de desafíos de programación fáciles, medios y difíciles.

Estos desafíos lo ayudan a poner sus habilidades a prueba contra programadores competitivos de todo el mundo, lo que lo ayuda a mejorar sus habilidades de programación.

Comencé a programar cuando tenía 4 años en un Sinclair ZX81. Continué para obtener un BA, MA, MSci y PhD de la Universidad de Cambridge en física y química con un 25% de ciencias de la computación en mi primer año de licenciatura. Cuando me gradué, creé mi propia empresa de consultoría y software, y desde entonces he trabajado para ello en el desarrollo profesional de software.

De niño tuve mucha suerte de tener un hermano mayor, paciente y bien educado, que pasó muchas horas enseñándome. Cuando tenía 11 años, conocía a Sinclair BASIC, BBC BASIC, Pascal, ensamblador 6502 y ensamblador ARM. Mi primo me metió en la programación de C cuando tenía 15 años. Después de la escuela, trabajé como desarrollador de software para British Petroleum en mi año sabático (1995). Comencé en la universidad al año siguiente (1996). Estudiamos ML Estándar en el primer año (1996-97). Utilicé C ++ para mis estudios de pregrado (1998). Mi doctorado fue escrito en Mathematica y C ++ en 2000-04. Esperando mi PhD viva en 2004, me enseñé OCaml.

Creo que esto me coloca en una buena posición para responder tu pregunta. Cuando llegué a la universidad yo era, francamente, arrogante. Pensé que lo sabía todo. Escribí programas sustanciales que iban desde manejadores de solicitudes de interrupción en ensamblador hasta aplicaciones de gráficos 3D en C y BASIC, y mi trabajo se había publicado y citado internacionalmente. En la universidad, mis profesores me resultaban difíciles de enseñar porque era muy terco. Retrospectivamente, esto fue un gran error de mi parte. Esos maestros sabían muchas cosas útiles que yo no sabía. En particular, sabían de muchas ramas útiles de la informática que ni siquiera sabía que existían.

Por ejemplo, mostré a algunas de las personas de la universidad una demostración 3D que había escrito en el ensamblador ARM usando mi propio rasterizador de esferas. Utilicé el algoritmo del pintor, acercándome lo más cerca posible, lo que requería una clasificación z. Lo ordené usando el algoritmo de clasificación de burbujas. Me dijeron que este era un mal algoritmo, pero expliqué cómo lo había optimizado en el ensamblador. Con el beneficio de la retrospectiva, estaba hablando sin sentido. No había entendido el concepto de complejidad y no sabía que los diferentes algoritmos de clasificación tienen diferentes complejidades y, objetivamente, el tipo de burbuja es malo en O (n²). Así que ciertamente aprendí algunas cosas útiles en mis años de pregrado.

El estudio de posgrado (investigación de doctorado) me enseñó más habilidades que también han sido muy útiles en la industria. Quizás la habilidad más importante que adquirí fue la capacidad de encontrar y comprender documentos de investigación. Por ejemplo, hace un par de años estaba trabajando en el sector financiero en Londres cuando tuve el reto de rediseñar un servidor para reducir la latencia. El servidor había sido optimizado por un gran equipo (40 desarrolladores de C ++) durante un largo período de tiempo (13 años). Saqué documentos de investigación, inventé una nueva arquitectura que redujo la latencia de 50 ms a 0,1 ms, la implementé a la calidad de producción y la probé a fondo en 6 meses. No podría haberlo hecho sin las habilidades que obtuve de mi doctorado.

A la inversa, he trabajado con muchos programadores en la industria que no tuvieron el beneficio de una educación formal. Aunque a menudo son programadores muy capaces, mi impresión es que a menudo no pueden ver el bosque por los árboles (p. Ej., Utilizan la herramienta adecuada para el trabajo) y, a veces, rehuyen las herramientas bien conocidas para resolver problemas técnicos (p. Ej., El uso del estado). máquinas).

Así que claramente hay algunas ventajas al estudiar informática en la universidad. Sin embargo, también hay desventajas. Pasé 7 años en la universidad que es mucho tiempo. Aprendí cosas útiles, pero no lo suficiente, en mi opinión, para justificar 7 años.

En resumen, antes de la universidad me había metido en una zona de confort donde evité estudiar muchos conceptos útiles porque no podía ver su valor práctico inmediato y no era capaz de localizar y comprender investigaciones relevantes. Gracias a la universidad, ahora tengo una comprensión mucho más amplia de temas relacionados y sus inquietudes transversales y disfruto excavando y leyendo artículos de investigación sobre todo tipo de temas extraños y maravillosos (me gusta especialmente leer sobre recolectores de basura y mi conocimiento ha sido útil en más de un proyecto industrial).

Mi consejo sería obtener un lugar en la mejor universidad a la que puedas ingresar, estudiar una licenciatura en ciencias de la computación, respetar a tus maestros y compañeros y sacar lo máximo de cada minuto que puedas dedicar a ellos. Serás un programador mucho mejor para ello.

Soy programador profesional en una importante empresa de tecnología de la ciudad de Nueva York y no tengo capacitación formal en este campo. Tengo una licenciatura y una maestría en teatro y nunca he tomado una clase de Comp Sci en mi vida. Si tiene el enfoque y el impulso para enseñarse a sí mismo, tiene suerte, porque está viviendo el mejor momento para hacerlo. Hay miles de libros, cursos en línea y fuera de línea, videos de capacitación y otras herramientas para autoaprendizaje.

Y pocas compañías se han preocupado por mi falta de grado. Quieren ver portafolios.

La programación es un tema difícil que toma mucho tiempo aprender para la mayoría de las personas. Así que no esperes que sea rápido o fácil.

He sido vicepresidente de ingeniería en varias compañías de software e Internet, además de ingeniero principal y arquitecto. Comencé en 1979 y me quedé al borde de cada nueva tecnología que surgió. No tengo entrenamiento “formal” que no sea más de 30 años de experiencia.

Conozco gente fantástica sin entrenamiento formal. También conozco gente fantástica con una amplia formación formal. Lo que ambos tienen en común es la curiosidad ilimitada y el orgullo de convertirse en los mejores ingenieros que pueden ser.

También ofrecería que algunas personas que he contratado de las escuelas de ingeniería más prestigiosas del mundo no pudieran transferir sus conocimientos de manera productiva a un equipo de trabajo. Otros de escuelas técnicas menos conocidas fueron entrenados de una manera diferente; uno que hizo hincapié en las metodologías de procesos de desarrollo de software, trabajar en equipo, redes básicas y aplicaciones prácticas. Estas personas se pusieron en marcha.

En resumen, he visto a grandes personas sin capacitación formal, de las mejores escuelas, y también de escuelas menos conocidas. Y también he visto ingenieros “no tan buenos” de los 3 fondos. Pasión, curiosidad y orgullo son lo que los grandes ingenieros tienen en común, independientemente de su origen. Aquellos sin entrenamiento formal tuvieron éxito debido a una pasión que los obligó a pasar innumerables horas explorando, leyendo y probando cosas.

Se puede hacer, pero ¿por qué hacerlo duro contigo mismo? Ir al colegio.

Como recién graduado de CS, debo admitir que la universidad podría haber sido mucho más eficiente. El 90% de las veces, estoy usando el conocimiento implícito que he acumulado al intentar que la computadora haga las cosas.

Aprendes programación programando, no estudiando CS. Los dos son, en su mayor parte, ortogonales. Puedes ser un gran programador sin mucho CS. Puedes ser un gran informático sin mucha programación. Dicho esto, saber que ambos es un combo asesino.

Otro punto a considerar es la práctica de contratación de Big Tech. Por lo general, las preguntas de la entrevista están relacionadas con CS. Haber estudiado los gráficos, los árboles, la clasificación y la búsqueda en un entorno formal le da una ligera ventaja en las entrevistas.

Hay muchos recursos para aprender a programar en línea. La mejor manera es elegir un proyecto que sea un poco exagerado y que otra persona dependa de usted para. Google un montón. Constrúyelo. Enjuague y repita. En algún momento, podrá tomar una decisión más informada sobre la educación formal.

Absolutamente sí, todo lo que importa es que el interés básico debe estar allí … La programación tiene que ver con comprender la lógica de lo que se va a programar y cómo se va a utilizar un lenguaje particular para desarrollarlo … hay numerosos sitios web disponibles que ofrecen tutorial desde lo básico con programas de demostración y ejemplos … las universidades solo pueden ofrecerle una visión general, pero solo cuando continúe programando y actualizando sus conocimientos con frecuencia, dominará la habilidad …

Asumir que todo lo que quería es la capacidad de programar, de no ser contratado ni de nada.

Es tan posible aprender como convertirse en médico leyendo libros.

Teóricamente posible, prácticamente imposible.

Uno podría ser capaz de escribir algo, pero la parte difícil no es escribirlo, se trata de resolver problemas invisibles.

Sí, es posible si estás lo suficientemente motivado. Hay un montón de excelentes tutoriales gratuitos para todo tipo de idiomas que hay. Dependiendo de qué tipo de programación le interese, podría estar interesado en el ‘Procesamiento’ (www.processing.org). Tiene una respuesta inmediata (gráfica) que puede ser un motivador adicional.

Creo que este cómic de XKCD responde bien a esto.

En conclusión, sí, definitivamente.

No solo es posible, es probable. Me gradué en ciencias puras a la edad de 21 años sin conocimientos de ingeniería en 1980. No quería ir a la escuela de posgrado, ya tenía suficiente tiempo en los cursos de primer y segundo año y 2 veranos completos en la investigación laboratorios

Así que miré a mi alrededor y decidí intentar programar mi vida, ya que siempre podría volver a la escuela si fuera necesario para obtener una EM en CS. Me enseñé a mí mismo durante unos meses y encontré un trabajo de nivel de entrada. Más de 30 años después, sigo siendo muy útil, más recientemente haciendo big data, hadoop y nosql.

A diferencia de la ingeniería química u otros campos de la ingeniería estática, el campo de la informática se reinventa cada 5 años. Estoy en mi 4to o 5to conjunto de habilidades. Desde un punto de vista económico, existe una barrera baja para ingresar a este campo siempre que tenga el conjunto de habilidades adecuado. No es para todos los que voy a admitir.

Si quieres ser un programador muy bien pagado, todo lo que necesitas es …

ser lógicamente inteligentes con estos atributos de personalidad …
La mayor atención al detalle, la implacable búsqueda de la mejora continua.
Ser capaz de diseñar algoritmos elegantes, flexibles y concisos para resolver el problema en cuestión de manera extensible.
la voluntad de mejorar continuamente su conjunto de habilidades, abarcando las tecnologías más efectivas para resolver el problema en cuestión
crear un grupo de pares de personas afines y compartir ideas con ellos
Mantenerse joven, motivado y enfocado.

oh sí, esté dispuesto a trabajar con personas que son 10 o 20 años más jóvenes si desea permanecer en el juego a largo plazo

¡Absolutamente!
Es un poco más complicado, ya que tiene que encontrar los recursos de aprendizaje para usted (no tiene un profesor que le diga qué debe aprender), sin embargo, encontrar esto es relativamente fácil.
Aprender de esta manera puede ser realmente bueno, o muy malo, depende completamente de ti.
La clave aquí, es no perderse en el camino 😉

Sí. Aprendí programación cuando tenía 12 años. Y solo tuve lecciones formales de computación cuando tenía 17 años.

La educación (algoritmos, estructuras de datos y los temas de CS habituales) solo me hizo un programador más eficiente.

La mayoría de las habilidades de pensamiento de programador y diseño de soluciones provienen de la práctica, que creo que puede ser adquirida por cualquier persona.

Elija un libro práctico o siga un tutorial que pueda ayudarlo a comenzar a programar de inmediato, y luego lea temas avanzados cuando se atasque con un problema.

Comenzar a programar sin educación formal podría no ser el enfoque más eficiente. Pero es divertido y genera pasión e interés, lo que creo que es importante para el éxito en la programación.

Sí, es posible aprender cualquier cosa sin educación formal. Pero te llevará más tiempo.

¿Es posible aprender esto sin ir a la universidad o tomar clases de programación?

Tendrá que aprender de algún lugar si no tiene una educación formal. Prueba libros, cursos en línea y si es posible grupos de estudio.

¿Qué tan difícil puede ser para un principiante absoluto?

¿Hay algo que no sea difícil para un principiante absoluto?
Programar es difícil pero es igual de feliz cuando creas una solución, creas un producto, pones algo en la web, etc.

No se desanime por la falta de educación formal. Si te gusta la programación solo trabaja duro y lograrás lo que quieres.

Sí. Comencé a programar a los 14. Te sugiero que comiences con un lenguaje simple como Python. Consulte esta plataforma interactiva en línea para principiantes absolutos. Aprenda a codificar.

Si te gusta … ¡puedes hacerlo! Entonces, si tu objetivo es aprender programación … ¡aprenderás con esfuerzo y práctica!
Soy autodidacta, ¡te lo digo desde mi propia experiencia!
¡Feliz codificación! 😉

¡Hola!

¡Es posible, por supuesto! Creo que la dificultad depende de sus propias habilidades de aprendizaje … Y también, supongo, un buen consejo profesional para conseguir un trabajo es elegir una o más tecnologías de programación esenciales y progresar en ellas. Pero es necesario tener cuidado con la cantidad, recuerde que es imposible saber todo, por lo que menos es mejor. Es posible que veas aquí más sobre este tema.

¡Atentamente!)

De acuerdo con las respuestas anteriores, ciertamente no es un proceso fácil, pero puede aprender a programar usted mismo. De hecho, no depende de si tomaste clases formales o no, mucho más importante es si estás dispuesto a aprender programación o no. Los que lo hagan lo harán en cualquier entorno y viceversa. Solo tenía una pequeña experiencia en el aprendizaje de R y herramientas de ciencia de datos. Era muy inusual, porque una de las herramientas principales para aprender este idioma era swirl, la extensión del propio lenguaje.

Algunos de mis amigos que estaban obteniendo títulos en informática, al contrario, no prestaron mucha atención a su educación. Los servicios de coaching a menudo solicitados aquí http: //www.domyprogramminghomewo … y no tienen la experiencia necesaria. Finalmente, se graduaron y comenzaron a aprender el tema una vez más.

Me entristece decir eso, pero probablemente sea la única forma en que deberías seguirlo.

Para comparar a mis amigos que han estado aprendiendo programación solo en la escuela con amigos míos que han puesto mucho esfuerzo fuera de la escuela, estos últimos tienen mucha experiencia.

La programación es algo que implica lógica. Si eres bueno para agarrar cosas rápidamente, entonces será un paseo para ti. Tampoco tengo conocimientos de informática, pero me gusta jugar con los códigos. Y soy bastante bueno en eso en comparación con mis amigos que han pasado la ingeniería teniendo como tema a Ciencias de la Computación. Si puedo, definitivamente puedes hacerlo también ..

More Interesting

¿Qué tan diferente es la adopción de la tecnología digital en los EE. UU., Europa y Asia Pacífico? Las perspectivas de los informes de investigación o los enlaces a dichos informes ayudarían.

¿Cómo se calculan los TRP? ¿Son exactamente representativos de lo que se está vigilando activamente?

¿Qué curso debería ser el mejor para el entrenamiento de verano de php / .net / advanced java?

¿Por qué hay tan pocas empresas de productos de TI en la India, en comparación con la actividad de subcontratación? ¿Qué podemos hacer para acelerar el proceso de emprendimiento de productos en la India?

Se dice que India es un centro de TI, pero su industria de TI está muy por detrás de China, incluso en la industria del software. Los ingresos de TI de China son 20 veces mayores que los de India. ¿Cómo puede la India ponerse al día con la industria de TI de China?

Supongamos que, de repente, las máquinas pueden traducir todos los idiomas de manera casi perfecta de uno a otro. ¿Cuáles podrían ser las repercusiones en la evolución del lenguaje?

¿Cuál es el trabajo mejor pagado en el campo de la tecnología de la información / computadora aquí en Indonesia?

Procesamiento de señales: ¿Qué frecuencias negativas realmente significan físicamente? Considerando el hecho de que el ancho de banda se especifica solo por la parte positiva, ¿existen las frecuencias negativas o son simplemente un efecto secundario matemático?

¿Cuáles son los hechos que un experto en TI debe tener en cuenta al unirse a una MNC para un buen crecimiento profesional en el futuro?

¿Cuáles son las diferentes formas / métodos para validar una idea de negocio?