Quiero reaprender la programación desde cero. ¿Cómo debería hacerlo?

Se han publicado varias respuestas que ya hacen suposiciones sobre lo que ya sabe, cuál es su posición financiera y el período de tiempo que tiene en mente para lograr los objetivos iniciales.

Comencemos suponiendo que usted tenía [en algún momento anterior de la vida, ¿cuánto tiempo hacía?] Un poco de talento de programación, pero tuvo que dejarlo de lado o no lo hizo a un lado, pero se encuentra haciendo algo que parece irreconocible desde la modernidad. Ciencias de la Computación.

En mi humilde opinión, lo más importante que ha cambiado desde la década de 1970, cuando aprendí a programar y ahora, es que muchas actividades de programación se pueden hacer en casa y que hay muchas instalaciones informáticas que ayudan y confunden el proceso de programación.

Considere algo de tan bajo nivel como escribir un controlador de dispositivo para una máquina pequeña, que probablemente implique en particular la depuración de este software, una imposibilidad estrictamente dentro de los límites de ese dispositivo pequeño, pero las funciones de depuración remota desde una PC que ejecute Linux a través de cualquier cosa desde una serie El cable al cable JTAG permite que esto ocurra, casi como una aplicación de escritorio simple.

Pero hay muchos muchos aros involucrados para empezar. El diseño de algoritmos no ha cambiado. Buenos hábitos de ingeniería [mantenimiento de registros, copias de seguridad, uso de un sistema de control de código fuente, de los cuales muchos de los mejores son de código abierto], planificación anticipada (varias herramientas en MS Office o, si el presupuesto está restringido, herramientas similares en Google, no son gratuitas sino económicas) .

Dependiendo del contexto, su primer lenguaje para hacer una nueva programación podría ser C, C #, Python, Java o LAMP (Linux, Apache, MySQL, Python, combinados para crear un motor web). Esta última es probablemente la forma más fácil de producir un resultado comercialmente útil para alguien.

Otra dirección a seguir es crear una aplicación para el mundo de los teléfonos inteligentes. Hablaría fuera de mi alcance para describir mucho al respecto, pero los tipos principales son iOS [iPhone], Android y Windows. Como sabrá, a menos que haya evitado estudiosamente las noticias tecnológicas del pasado, iOS es el líder del mercado, pero está perdiendo terreno lentamente a Android. En cuanto a un lugar para comenzar, si su computadora de escritorio actual es una Macbook, puede ejecutar el entorno de desarrollo de iOS con relativa facilidad [hay libros sobre esto]. De manera similar, si su objetivo es Android, querrá una máquina de escritorio Ubuntu y, por último, para crear una aplicación para Windows, también querrá Microsoft Visual Studio [varias opciones]. La buena noticia sobre el desarrollo de Android es que todas las herramientas de software de desarrollo son gratuitas.

Sólo unos pocos consejos semi-aleatorios sobre qué hacer a continuación

Aunque puede hacer algo en diferentes lenguajes de programación, cada lenguaje de programación tiene sus propias características y metodología.

Entonces, aprende un nuevo idioma con un paradigma completamente diferente, que no tienes idea. Si está familiarizado con Visual Basic, cambie a C. Si sabe C, inicie C # o Java para la metodología orientada a objetos, o Objective-C para Model-View-Controller. Si desea aprender a diseñar grandes sistemas de software, aprenda patrones de diseño. Alternativamente, puede aprender el desarrollo de software en tiempo real o el desarrollo integrado si es nuevo en esto. Intenta desarrollar aplicaciones web o aprender javascript. Cada plataforma está llena de cosas de las que puedes aprender.

Te recomiendo que comiences con Python. La sintaxis es muy simple y de sentido común, pero también tiene una característica más que es extremadamente valiosa para los principiantes:
Puede ejecutar python por sí mismo sin ningún programa específico, escriba algún código y ejecútelo a la vez. Con la mayoría de los otros lenguajes tienes que compilar primero. Esto significa que Python tiene un ciclo de retroalimentación más corto que los idiomas que no tienen este modo.
Muchos programadores as empezaron con BASIC, que mucha gente atribuyó al hecho de que estaba incorporada a muchas computadoras durante los años 80, pero creo que incluso más que eso es porque tenía un ciclo de retroalimentación corto similar.

Hay muchos sitios que te permitirán probar la programación sin tener que instalar nada, como:

  1. Aprende los conceptos básicos del lenguaje Ruby en tu navegador.
  2. ¡Prueba Python!
  3. Editar, compilar y ejecutar programas en línea | IDE en línea

(3) cubre una gran cantidad de idiomas, todos en su navegador.

El siguiente paso sería elegir un idioma en el que esté interesado e instalar el (los) kit (s) de desarrollo, los IDE apropiados y similares, y elegir un problema que le interese y comenzar.

El resto se hará cargo de sí mismo si tienes una pasión por el código.

He estado haciendo esto, de la siguiente manera:
1) Instalar Linux en el escritorio.
2) Usando el shell de la línea de comandos, escriba un programa para configurar el escritorio.
3) Trate de hacer que el programa shell esté lo más cerca posible de Pascal en su estructura.

Por lo que puedo ver, hay muy pocos lenguajes informáticos modernos que no se reflejan de alguna manera en alguna versión de shell. Sin embargo, la ascendencia de shell está destinada a hacer que aprecies cualquier lenguaje estructurado con una sintaxis vagamente consistente.

El problema con la mayoría de la programación actual, y en particular con los marcos, es que la estructura de los programas se traslada de la codificación al marco. Es muy difícil aprender a programar en fragmentos con la estructura eliminada. La codificación de shell, por el contrario, no tiene marco, pero es interactiva. Esto hace que una buena práctica de programación sea fácil de aprender.

La programación es lógica. No puedes volver a aprender la lógica.

Puedes aprender otros lenguajes de programación. Diferentes lenguajes de programación permiten diferentes construcciones lógicas, pero en general, una vez que haya hecho suficiente programación, puede intercambiar idiomas fácilmente.

Estoy con Jeremy. Comience con un lenguaje fácil que se interprete y puede comenzar a correr rápidamente. Hay muchos tutoriales y webcasts que pueden ayudarte a aprender lo básico rápidamente. Dicho esto, el desarrollo de software es como el ajedrez. Puede aprender lo básico en poco tiempo, pero el dominio lleva años y nunca llega a un punto en el que no haya más que aprender. Aprendes haciendo, haciendo preguntas y un montón de búsquedas en Google. ¡Buena suerte!

Lo hice un par de veces.

En primer lugar, solo trata de olvidar todo lo que aprendiste. Olvida toda explicación. Olvida cada punto crucial que intentaste memorizar. Usted puede tomar un largo tiempo de descanso para esto. Como 7 días o 1 mes. Luego trata de aprender desde lo básico. Si algo te parece conocido, trata de aprender eso. Si algo parece obvio, no crea eso.

Sólo enchufar y jugar desde cero.

Y mi sugerencia irá por C. Le dará una idea de lo que está sucediendo bajo el capó. ¡Y eso es muy útil!

¡Buena suerte!

Hice un curso en http://lynda.com y fue muy interesante. Se llamaba Fundamentos de Programación: Fundamentos con Simon Allardice. No puedo recomendarlo lo suficiente si eres alguien como yo: no tengo ni idea de lo que significaba la programación.

More Interesting

¿Qué rama en ingeniería debo seguir después de la clase 12?

Voy a poder votar por primera vez en 2016, pero no tengo educación cuando se trata de política. ¿Que puedo hacer?

Enseño ESL en Skype. ¿Cuáles son algunas estrategias de enseñanza que puedo usar para hacer que el aprendizaje sea divertido?

He estado dando clases en línea a algunos estudiantes de los últimos meses. ¿Cómo puedo hacer que los estudiantes de Estados Unidos o el Reino Unido enseñen?

Tengo un doctorado en ciencias biomédicas y quiero dar clases en la escuela secundaria. ¿Cómo debo ser un maestro certificado?

Cómo saber que me está yendo bien para obtener mi licenciatura

¿Cómo se puede seleccionar un [Btech, CSE] más fresco con CGPA 5.7 en Buenas empresas?

¿Debo asistir a la Escuela de Derecho de Nueva York o la Escuela de Derecho de Southwestern?

¿Por qué mi atención y memoria están demasiado bajas cuando leo algo (mi teléfono e Internet están apagados)? Rápidamente me olvido cuando estoy estudiando también. ¿Hay algún consejo?

Soy un estudiante de primer año en una gran universidad económica. Mi especialización es grande, así que no sé qué haré en el futuro. ¿Qué debo hacer para encontrar mi pasión y convertirme en un exitoso hombre de negocios?

¿Es necesario hacer ortodoncia MDS en una buena universidad?

Cuando estás luchando o teniendo un contratiempo, ¿qué harías?

Estoy en el Consejo de Ciencias de HSC. Estoy preparando las matemáticas del documento de los últimos diez años de Uttam, ¿es suficiente?

¿Cuáles son algunas de las cosas que puedo hacer a partir de hoy, tanto dentro como fuera de la universidad, que me ayudarán a convertirme en el mejor estudiante que pueda ser?

Me estoy especializando en Ingeniería Eléctrica este otoño. ¿Qué debo estudiar / aprender / practicar antes de comenzar la universidad este semestre de otoño?