Transcripciones
1. Introudaction: ¿Te has quedado atrapado en el ciclo
interminable de tutoriales? Después del tutorial, estamos
tratando de aprender a codificar, pero no hacer ningún progreso
real. Yo, para uno he estado ahí. Empecé a aprender
a codificar hace más de diez años. Pasé años probando
cursos en línea y viendo videos de
YouTube que no estaban
haciendo ningún progreso real. Si buscas
aprender a codificar, debes saber que no
tiene por qué ser así. Entonces en este video, voy
a compartir cómo iría a
aprender a codificar si pudiera
hacerlo todo de nuevo. Entonces, paso uno, necesitamos establecer
metas y expectativas. ¿Por qué intentas aprender
a codificar? ¿Quieres hacer un sitio web
para tu negocio familiar? ¿Quieres desarrollar alguna app? Siempre has estado
pensando en ¿dónde quieres conseguir un trabajo como ingeniero de
software? No te preocupes demasiado si estos
objetivos cambian con el tiempo. Pero creo que es
importante comenzar
decidiendo qué es lo
que realmente quieres. Adicionalmente, trató de establecer expectativas
razonables
para usted mismo. No vas
a pasar de escribir tu primera línea de código a conseguir un
trabajo de ingeniería de software y solo un mes, simplemente no sucederá de esa manera. Es posible que pueda construir un sitio web o una
aplicación y esa vez. Pero al igual que cualquier
otra habilidad, dominar el desarrollo de
software va
a requerir mucho esfuerzo. La mayoría de los desarrolladores o bien
fueron al campo de entrenamiento, que tardan unos tres
meses de estudio a tiempo completo, o tienen títulos universitarios en
informática, que por supuesto tardan
años en llegar manera realista para competir con estas personas en el mercado laboral, es probable
que necesites
una cantidad similar de experiencia y tiempo
dedicado a aprender.
2. Codificación y informática: Paso para entender
qué es realmente la codificación. Sé que suena
cliché, pero escuchame. La mayor parte de mi tiempo perdido
cuando intenté aprender, dediqué a tratar de
entender la sintaxis de codificación. Buscaría cosas
como Javascript, tutorial, y luego intentaría
seguirlo y aprender JavaScript. Esto suena bastante simple y hasta cierto punto
aprendí algo de JavaScript. Pero, ¿qué podría hacer
con ese JavaScript? Absolutamente nada. Ni siquiera sabía qué
JavaScript era cuatro. Y esto es simplemente un punto tan
pasado por alto pero clave. El recubrimiento es solo un
medio para un fin. Es una herramienta utilizada por los desarrolladores para desarrollar software
como analogía, si querías construir
una casa, la quieres. Ve a buscar tutoriales y cómo usar herramientas como martillos neumáticos. Primero tendrías que entender los fundamentos del
diseño de una casa. Y luego en el futuro, eventualmente
necesitarás
aprender a usar esas herramientas. La analogía no es perfecta, pero ojalá se dé cuenta
de la idea. La codificación es solo el proceso de decirle a la
computadora qué hacer. Pero el desarrollo de software es un proceso más grande de
creación de software. El componente principal de este proceso
va a ser la codificación, pero hay
muchos otros
componentes clave para este proceso. Pero no aprenderás si todo lo
que haces es aprender a codificar. Paso tres, aprende
los fundamentos. Me preguntan todo el tiempo, ¿con qué lenguaje de programación
debo empezar? No te preocupes,
llegaremos en un momento. Pero la realidad es que todos los
lenguajes de programación surgieron de estas mismas ideas básicas y
deberíamos comenzar por
aprender esas ideas. Un gran lugar para comenzar
aquí va a ser CS5, que es el primer curso de
informática que
se ofrece en Harvard. Este es un recurso increíble
porque en realidad es completamente gratis en línea
y tiene de primera categoría. Este curso te dará una visión fundamental de los principios de la
informática. Aprenderás todo
en esta clase, desde la notación binaria hasta la
codificación y C y Python hasta construcción de aplicaciones
web de pila completa con HTML, CSS y JavaScript. Por supuesto, no dejarás esta clase como experto
en prácticamente nada. Sin embargo, se irá con una comprensión del
contexto de la codificación y cómo
encaja en este panorama más amplio del desarrollo
de software y el paso de la
informática para profundizar en un solo lenguaje de
programación. En este punto, te
han introducido una variedad de idiomas
diferentes. Y una cosa que
notarás es que en realidad todos son muy
parecidos entre sí. Podrían tener una sintaxis ligeramente
diferente. Pero una cosa que aprenderás
es que una vez que aprendas uno, podrás
recoger muy fácilmente más idiomas. Entonces, si no estás seguro de
qué lenguaje representa, ten en cuenta que
realmente no importa tanto,
pero normalmente
diría que por defecto
ya sea Python, Java
o JavaScript. Python es un gran lenguaje de programación completo con una sintaxis
increíblemente simple. Es particularmente bueno para ciencia de
datos y el aprendizaje
automático, pero también se usa en
muchos otros lugares, como el desarrollo web backend. Java es otro lenguaje de programación de
propósito general que se puede utilizar en
casi cualquier lugar. Uno de sus grandes beneficios es que viene con la tipificación estática, lo que significa que hay que
definir explícitamente los tipos de cada
variable que cree. Esto es genial, sobre todo
para aprender porque te
obliga a pensar realmente a
través del código que escribes. Dicho esto, también
vale la pena señalar que la sintaxis de Java es mucho más
verbosa que la sintaxis de Python, por lo que puede ser un
poco más difícil ponerse en marcha. Por otro lado, JavaScript es el lenguaje
de programación principal del front-end
de Internet. Y en mi opinión, esto en
realidad lo convierte en uno de los idiomas más fáciles
de aprender debido
a que
el código que escribes a menudo
es más fácil de ver y entender ya que
puedes interactuar con la salida y un navegador web
en lugar de un terminal. Dicho esto, si
eliges seguir esta ruta, también
necesitarás
aprender HTML y CSS, que son los
lenguajes de marcado utilizados para describir el contenido
y el estilo de las páginas web. Una vez que eliges un idioma, también
necesitas encontrar un lugar
para aprenderlo realmente. Hay toneladas de
cursos increíbles por ahí, pero aquí hay algunos que
recomendaría. Primero en el lado
libre está el campamento de código libre
así como Code Academy. Ambos tienen cursos gratuitos
que suelen ser de muy alta calidad, y puedes
complementarlos con videos en YouTube si
encuentras que los cursos
faltan en alguna área, si te interesan los cursos pagados, realmente
me encantaron los expertos
en programación. Yo por supuesto, necesito
abordar mi sesgo y el hecho de que trabajé
para algo expert, la empresa que creó experto en
programación. Pero no te preocupes demasiado. No tengo ningún incentivo financiero
para que compres
el producto terminado. Esto no es patrocinado
por ellos de ninguna manera. Realmente creo que es
un producto de alta calidad, particularmente si
buscas aprender Python. También hay muchos
cursos por ahí sobre Udemy y Coursera. Aunque no he
pasado por estos, así que realmente no puedo recomendar
uno específicamente, pero estoy seguro de que algunos de
ellos son bastante buenos solo para asegurarme de ver primero
el contenido gratuito, para hacerte una idea y tal vez leer las reseñas así como
el lado más pequeño aquí, también
deberías tomarte un
tiempo para elegir un editor de código en
este momento y familiarizarte con sus características. El editor más popular que hay en este momento es
Visual Studio Code. Entonces ese es probablemente un
buen lugar para comenzar, pero cuál eliges
no es demasiado importante. Sin embargo, lo importante
es acostumbrarme a editar código en tu
computadora local en un editor de código, recuerdo haber hecho la mayor parte de mi aprendizaje con tutoriales
en línea, y me sentí perdido cuando
intenté llevar lo que aprendí en línea a este editor local para evitar
esa confusión en el futuro, solo acostumbrarme a usar
un editor local desde el principio y va a
hacer que todo sea un mucho más fácil.
3. Preparación de habilidades y preparación para entrevista: Paso cinco, aprende, practica, repite mientras estás aprendiendo, asegúrate de que
realmente estás practicando. Todo esto vuelve a esa idea
inicial de contexto. Si solo para aprender
la sintaxis de la codificación, estás aprendiendo
cualquier cosa útil a medida que
aprendes más e intentas crear
algunos proyectos simples. No te excedas de la cabeza con
nada demasiado complicado, sino solo trata de asegurarte de que
estás aplicando tus conocimientos fuera de hacer exactamente lo que
algún tutorial dice que hacer. Esta es realmente la única forma de
confirmar que
en realidad estás aprendiendo. Al hacer esto,
te encontrarás buscando en Google
cosas todo el tiempo. Y esto está perfectamente bien. De hecho, más de diez años después, sigo buscando algo en Google
casi cada vez que código. Sin embargo,
asegúrate de no ser solo soluciones de copiar y pegar. Tu objetivo es aprender. Así que asegúrate de que realmente
entiendes cualquier código
que copies. Una buena manera de hacerlo es
encontrar la solución y luego volver después algún tiempo y
volver a implementarla usted mismo. De esta manera confirmas que realmente
entendiste lo que tenías que buscar. Paso seis, aprender habilidades de desarrollo de
software sin codificación. Como dije, la
ingeniería de software no es solo codificación. Hay muchas
otras cosas que aprender, muchas de las cuales serán increíblemente importantes para la mayoría de los trabajos de
Desarrollador. En primer lugar,
necesitas acostumbrarte a
usar un terminal si aún no
lo has hecho. No necesitas ser
un experto en Bash, pero deberías
poder
navegar rápidamente por
directorios y editar archivos. Adicionalmente, aprende el sistema de control de
versiones de Git. Así es como
los ingenieros de software y la industria realizan un seguimiento
de su trabajo. Se te ocurre como la historia de
Google Docs. Pero para el código, ambos consiguen n a la terminal en general son realidad bastante
sencillos de aprender. Entonces si otro curso que has
usado lo enseña, entonces genial. Sólo tienes que seguir con eso. De lo contrario probablemente puedas
aprenderlo a través de algunos videos de YouTube. Y claro, solo
practicando por tu cuenta. A partir de aquí, tratar de
comenzar a desarrollar un conocimiento básico de diferentes aspectos de la ingeniería de
software. No necesitas ser
un experto en ellos, pero puede ser útil
entender un poco de cómo
funciona la nube y potencialmente incluso cómo usar un proveedor de
nube como AWS o Google Cloud Platform. Otra área a explorar sería redes y el diseño de sistemas. Esto esencialmente
responde preguntas como, ¿cómo funciona
realmente Internet y cómo diseñamos aplicaciones
a gran escala? También podrías comenzar a explorar algunas áreas más de nicho como el desarrollo de
juegos, desarrollo
móvil, diferentes frameworks front-end
o machine learning, pero que elijas, si las
hay, va a depender de tus
intereses y tus metas. Paso siete, aprende
más codificación avanzada. Hay algunos aspectos
de la codificación que vale la pena explorar más allá de la
sintaxis de un lenguaje. Primero, aprendería las
diferentes estructuras de datos. Particularmente me
enfocaría en arreglos, conjuntos ,
mapas, pilas, colas,
árboles y gráficos. Esto puede sonar como mucho, pero es probable que
encuentres la mayoría de estas cosas mientras
aprendes tu lenguaje de
programación elegido. De todos modos, además,
querrás aprender algunos
algoritmos que son esencialmente programas
altamente eficientes conocidos para tareas específicas. Entonces, en particular,
quieres conocer algunos algoritmos de clasificación
como merge sort. Quieres aprender algunos algoritmos de
búsqueda como la búsqueda binaria. Y quieres conocer algunos algoritmos de recorrido
gráfico como BFS y DFS. Además de eso,
también te recomendaría
aprender a escribir código en
C o C plus, más. Estos lenguajes no son tan fáciles de usar como
lenguajes como Python, por lo que no son excelentes
primeros lenguajes de programación. No obstante, te dan
mucho más control directo sobre la memoria de tu computadora. Esto es algo que
suele ser
abstraído de ti con lenguajes
más modernos. Pero creo que entender cómo funciona todo y solo para hacerte un mejor programador
general,
paso ocho, prepárate para entrevistas
técnicas. Asumiendo que quieres conseguir un
trabajo como ingeniero de software, es muy probable
que tengas que
pasarle algunas entrevistas
técnicas. Gracias por ver y te
veré en el siguiente video.