¿Puedo convertirme en un desarrollador de software?
El principio marino establece: si encuentras a un hombre o una mujer físicamente aptos, puedes convertirlo en un luchador único, siempre que reciba el entrenamiento y la educación adecuados. La programación es la misma habilidad que tocar la guitarra, nadar o andar en bicicleta. Las personas no nacen ciclistas. Cuando veo a mis amigos, que trabajan el doble que yo y ganan cuatro veces menos dinero, comienzo la siguiente conversación: — ¿Te gustaría trabajar como programador? Eres muy inteligente. Tal vez, simplemente no estás en tu lugar?¿Por qué desarrollo de software?
Antes de empezar a enseñar a programar a una persona, es mejor que averigüemos qué le aporta.1 Trabajo simple e interesante.
El ingeniero de software es un trabajo simple e interesante. Tiene un gran espacio para la creatividad. Me encanta. Al principio me volví loco al pensar que hago lo que me gusta y me pagan por ello. Pero luego me acostumbré eventualmente.2 Está bien pagado.
Simplemente disfruto viendo a mis amigos comprar autos y casas en 5 años de trabajo.3 Horarios flexibles.
Un horario de trabajo estricto es una cosa desagradable. Cualquier persona que haya estado en un embotellamiento en hora punta o haya sido multado por llegar 5 minutos tarde puede confirmarlo. ¿Y poder llegar al trabajo a las 11 de la mañana y salir a las 5 de la tarde? Para la mayoría de los programadores es un horario habitual. Solo haz tu trabajo y nadie dirá una palabra cruzada. Incluso puede trabajar en casa en la mayoría de las empresas. Siempre puede llegar a un acuerdo razonable con su empleador.4 Crecimiento profesional.
En la mayoría de las empresas, debe ascender en la escala profesional para obtener un buen pago. Un desarrollador de software solo tiene que ser un desarrollador de software. No tendrá que volver a calificar de desarrollador a gerente o tratar de tomar una posición de liderazgo. Todo lo que necesitas hacer es crecer profesionalmente. A los desarrolladores que tienen de 5 a 10 años de experiencia se les paga como una realeza.5 Alta movilidad internacional.
Hay tres profesiones mejor pagadas en el mundo: un abogado, un médico y un desarrollador de software. Es un verdadero desafío para los abogados que trabajan en el extranjero: diferentes leyes, jurisprudencia, etc. Un médico tiene que aprender el idioma, otras normas médicas y aprobar exámenes. Un desarrollador no tendrá que aprender nada adicional. Mismo lenguaje. Mismos estándares. Para la mayoría de las veces, incluso los clientes son los mismos.¿Por qué Java?
El total de los siguientes tres factores me hizo volver a capacitar a las personas para los desarrolladores de Java.1. Java: es uno de los lenguajes más fáciles de aprender.
Una persona que acaba de terminar la escuela es capaz de aprenderlo en 3 a 6 meses, dependiendo de los conocimientos básicos y la cantidad de horas dedicadas al estudio.2. Alta demanda en el mercado laboral.
Puedes conseguir un trabajo sin experiencia previa. Las empresas emplean a los pasantes con entusiasmo y siguen educándolos.3. Los salarios más altos en el campo.
Uno de los más altos. Esto es especialmente importante para los desarrolladores junior.La programación es una habilidad.
No puedes leer un libro y convertirte en programador de computadoras. Necesitas 500 horas de práctica por lo menos. Al igual que el boxeo. No puedes simplemente ver partidos y convertirte en un profesional. Necesitas entrenar durante años. (Es por eso que CodeGym tiene tantas tareas prácticas). Todas las ofertas de enseñarte a programar en 10 horas son idénticas a las ofertas de enseñarte a boxear en 10 horas. ¡Y luego arrojarte a un ring de boxeo! No hagas eso. A veces, cuando un novato pregunta en los foros cómo convertirse en desarrollador de software, se le dice que invente tareas para sí mismo y las haga. Eso no funcionará.Lo que pasa es que una persona no puede hacer una tarea más allá de su conocimiento. O sabes algo, o no lo sabes. Solo una persona bien versada en el tema es capaz de crear un conjunto de tareas secuenciales para ti, cada una de las cuales te enseñará cosas nuevas y no te tomará semanas resolverlas. Eso es lo que hice en CodeGym.Nuevo método de enseñanza innovador
La educación CodeGym se hace de una manera diferente a la educación universitaria. Lo notarás muy pronto. Es mucho más efectivo. Tus estudios en la universidad probablemente fueron así: conferencias largas y práctica para concretar lo que has aprendido. Siguiendo este enfoque, mejora su conocimiento, no sus habilidades. Para ser honesto, tus habilidades adquiridas de esta manera prácticamente no valen nada. Tengo otro enfoque. Creo que una persona debe hacer preguntas primero, y solo luego obtener respuestas sobre ellas. Una respuesta antes de una pregunta no tiene valor. Mis conferencias son respuestas a sus preguntas. Así que primero te doy tareas prácticas que son difíciles de resolver con tu conocimiento actual. Estas tareas plantean preguntas y luego recibes mis respuestas que son conocimientos y conferencias. Les presento nuevos conocimientos en tres etapas:-
Introducción (Teoría mínima y algunas tareas prácticas)
-
Conocimiento del bloque principal (Debe comprender el tema completamente)
-
Detalles y matices (lleno los huecos aquí)
Nivel 5
1 Elly habla de clases
- ¡Hola, amigo! - ¡Hola, Elly! - Hoy quiero explicarte en qué consisten las clases. - Explicación # 1. Comenzaré con una analogía. Todas las cosas en nuestro universo están hechas de átomos. Pueden ser de diferentes tipos: hidrógeno, oxígeno, hierro, uranio,... La combinación de átomos permite crear varias cosas u objetos. - Lo mismo es cierto para el universo de Java. Aquí los programas consisten en objetos de diferentes tipos (donde la clase es un tipo): Integer, String, File, Object, … La combinación de objetos permite crear varios servicios web o programas. - Diferentes átomos tienen diferente estructura interna. Contienen una serie de electrones, protones y neutrones. - Las diferentes clases (tipos de objetos en Java) también tienen una estructura interna diferente. Contienen diversas variables y métodos. - Sí, tengo una idea general de la estructura del átomo. Soy un robot, ¿no? - Veamos el programa como un todo: los objetos son como bloques de construcción que componen el programa. Las clases son tipos de esos bloques. Los bloques de diferentes tipos son objetos de diferentes clases. - Lo entendí. - Explicación # 2. Creamos una nueva clase cuando necesitamos un nuevo tipo de objeto. Dentro de esta clase describimos el comportamiento deseado de los objetos. - Bueno, he entendido algo, pero no estoy seguro de esto. - Teniendo en cuenta la estructura interna, la clase consta de métodos de clase que hacen algo y de variables de clase donde los métodos almacenan datos compartidos. - Dicho simplemente, ¿la clase es un conjunto de métodos? - Más o menos, más específicamente, la clase es un grupo de métodos que trabajan juntos y variables en las que los métodos almacenan diferentes valores para compartir. - Sí. Para crear una nueva clase, necesitamos escribir estos métodos... - Sí. También necesitamos decidir qué variables son compartidas por diferentes métodos y luego sacar las variables de un método a la clase: convertir las variables de método en variables de clase. - Las clases se crean según el siguiente patrón: 1 El programador decide qué otros objetos necesita. 2 El programador divide estos objetos en diferentes tipos dependiendo de lo que hacen. 3 El programador escribe una clase separada para cada tipo. 4 En la clase, declara los métodos y variables necesarios. 5Los comandos deben escribirse en cada método para que el método haga lo que el programador quiere que haga. 6 La clase está lista, ahora puedes crear sus objetos. - ¡Impresionante! Es un esquema interesante. lo recordaré - Tienes que memorizarlo, te será de utilidad. El enfoque de programación, en el que el programa se divide en objetos, se denomina programación orientada a objetos ( POO ). - Java es un ejemplo clásico del enfoque OOP, porque en Java todo son objetos. - Aprender Java consta de dos tareas principales: aprender a escribir tus propias clases y aprender a usar las clases de otras personas.. Hoy empezamos con las cosas más fáciles. Aprenderás a escribir clases simples y, por supuesto, a crear sus objetos. Los objetos a menudo se denominan instancias de las clases. Estos son sinónimos, cualquier forma es correcta. - Entiendo. - En resumen puedo decir que la clase es un miniprograma: un conjunto de datos y funciones que hacen algo con estos datos. Una característica importante de las clases es la capacidad de crear instancias de estas clases (objetos). - Para crear un objeto de clase, debe escribir el código «new class_name()» . - Un objeto de clase tiene dos características interesantes: - Primero. Cada objeto de clase almacena su propia copia de las variables de clase.Entonces, si las variables x, y se declaran en la clase y se crean 10 objetos de esta clase, entonces cada objeto tiene sus propias variables. Cambiar las variables de un objeto no afecta las variables del otro objeto. - Segundo. Cuando se crea un nuevo objeto, se le pueden pasar varios parámetros. Estos son los llamados «valores de inicio». Es casi como dar un nombre al nacer. Muchos objetos no se pueden crear sin pasar dichos parámetros. - Entiendo un poco. ¿Y qué dijiste sobre las variables de clase? - Cada objeto tiene su copia de los datos (variables de clase).2 Risha habla de paquetes
- ¡Hola, amigo! Ahora te hablo de los paquetes. - Los archivos en la computadora se agrupan en carpetas. Las clases en Java (cada clase está en un archivo separado) se agrupan por paquetes que son carpetas en un disco. Esto no es nada nuevo. Pero hay dos comentarios. - Primero , «un nombre de clase completo único» es el «nombre del paquete» + «nombre de la clase» . Ejemplos: - ¡El nombre completo de la clase siempre es único! - Es muy difícil escribir un nombre largo, como java.util.ArrayList , cada vez. Por lo tanto, en su código puede usar nombres cortos de las otras clases. Pero para eso necesitas usar algo de magia. - ¿Qué magia? - Puede utilizar la instrucción «importar java.util.ArrayList;» - Al comienzo de la clase, inmediatamente después de declarar el paquete, debe especificar el nombre completo de la clase ArrayList utilizada en su código. Supongamos que usa las clases java.util.ArrayList, sun.generic.ArrayList y com.oracle.ArrayList en su código. Puede especificar uno de ellos en las importaciones (por ejemplo, sun.generic.ArrayList;) y usar su nombre corto. Se refiere a una sola clase. - ¿Por qué es esto tan complejo? ¿Puede haber clases con nombres idénticos? - Sí, en diferentes paquetes puede haber clases con el mismo nombre. Pero no podemos importar dos clases con el mismo nombre a nuestra clase., por lo que tenemos que aplicar un nombre completo a uno de ellos. - Aquí hay otra analogía. Tienes a Bill en tu equipo y no hay ningún problema con la comunicación, porque todos saben quién es. Pero si hubiera tres proyectos de ley, tendría que usar sus nombres únicos completos para distinguirlos. - Segundo , es mejor poner las clases en paquetes y no en la carpeta raíz src . No hay problemas cuando hay pocas clases, pero es muy fácil confundirse cuando hay muchas. Por lo tanto, siempre cree clases solo en paquetes. La regla en Java es dar a las clases y paquetes nombres que se explican por sí mismos. Muchas empresas producen sus bibliotecas (conjuntos de clases) y, para evitar confusiones, nombran paquetes de estas clases después de la empresa/sitio web:3 Kim muestra tutoriales en video
- ¡Hola, amigo! Aquí hay un par de videos tutoriales sobre cómo crear clases y paquetes:4 Elly, creación de objetos, referencias a objetos
- Entonces, hemos aprendido las clases la última vez. Hoy me gustaría contarles cómo crear objetos. Es muy sencillo: escribimos la palabra clave new y el nombre de la clase del objeto que queremos crear: - Pero ya lo he oído antes. - Lo sé, pero por favor escucha. - Cuando se crea un nuevo objeto, se pueden pasar varios parámetros entre llaves. Lo explicaré un poco más tarde hoy. Consideremos la clase Cat: - ¿Qué son estos getters y setters ? - Las variables no accesibles desde otras clases son una práctica común en Java. Normalmente, las variables declaradas dentro de una clase tienen el modificador private . - Para dar acceso a una variable privada, debe crear dos métodos: obtenery establecer _ El objetivo del método get es devolver el valor actual de la variable a quien la ha llamado. El objetivo del conjunto de métodos es establecer un nuevo valor. - ¿Y cuál es el punto? - Si no queremos que nadie cambie los valores de nuestras variables de objeto, podemos escribir ningún conjunto de métodos o hacerlo privado . También puede agregar a este método de verificación de datos adicionales. Si el nuevo valor pasado no es válido, no cambie nada. - Es interesante. - Dado que puede haber muchas variables en la clase, los nombres de los métodos se obtienen y se establecensuelen incluir el nombre de una variable con la que trabajan. - Si una variable se llama fullName , los métodos deben llamarse getFullName y setFullName . Y así sucesivamente de manera similar. - ¡Entiendo! En general, es un enfoque comprensible. - Aquí hay un par de ejemplos de cómo trabajar con un objeto recién creado:5 Diego, Tareas para la creación de clases y objetos propios
- ¡Hola, amigo! Aquí hay algunas tareas para crear clases y objetos:Tareas | |
---|---|
1 | Crear una clase Gato Crear una clase Gato. Un gato debe tener su nombre (nombre, Cadena), edad (edad, int), peso (peso, int) y fuerza (fuerza, int). |
2 | Implementar método fight Implementar método boolean fight(Cat anotherCat): implementa un mecanismo de pelea dependiendo del peso, edad y fuerza de los gatos. Crea una dependencia por ti mismo. El método debe determinar si el gato actual (el objeto cuyo método de pelea fue llamado) ganó la pelea u otro Gato, es decir, devolver verdadero si el gato actual ganó y falso si no ganó. Debe cumplirse la siguiente condición:
|
3 | Getters y setters para la clase Perro < Crear una clase Perro. Un perro debe tener un nombre - Nombre de cadena y edad - edad int. Cree getters y setters para todas las variables de la clase Dog. |
4 | C rear tres objetos de tipo Cat Cree tres objetos de tipo Cat en el método main y rellénelos con datos. Usa la clase Cat de la primera tarea. No cree la clase Cat. |
5 | Realiza tres peleas a dos entre gatos Crea tres gatos usando la clase Gato. Realiza tres peleas por parejas entre gatos. No cree la clase Cat. Para la pelea, usa el método booleano fight(Cat anotherCat). Muestra el resultado de cada pelea. |
6 Risha habla sobre la inicialización de un objeto
- Quiero hablarte sobre la inicialización del objeto. Cuando se crea un objeto, es necesario asignar datos de inicio a sus variables para evitar una situación en la que intenta acceder a un objeto y no tiene los datos necesarios para funcionar correctamente. - Consideremos un objeto del tipo Archivo. La información mínima necesaria para el archivo es su nombre. Un archivo sin nombre es una tontería. - Suponga que está escribiendo su propia versión de la clase File (MyFileClass, por ejemplo) para trabajar con archivos. ¿Qué información se necesita para cada objeto de esta clase? - ¿El nombre del archivo con el que trabajará este objeto? - Así es. Es por eso que agregamos el método initialize() a nuestra clase. Se verá así: - Hemos agregado el métodoinitialize , para poder trabajar con un objeto, llame a sus métodos. Esto se puede hacer inmediatamente después de llamar al método initialize. Si no puede trabajar con un objeto, se llama invalid , de lo contrario es valid . El objetivo principal del método initialize es pasar todos los datos necesarios al objeto para que sea válido. - ¡Entiendo! - Ahora compliquemos la tarea. O más bien simplificar. Según como se mire. Imagine que para otro programador que usará nuestra clase es más fácil pasar no el nombre completo del archivo, sino un directorio y un nombre de archivo corto. Podemos implementar esta funcionalidad usando otro método de inicialización ( Java permite crear múltiples métodos con nombres idénticos). Entonces nuestra clase se verá así: - Además, a menudo es necesario crear una copia del archivo temporal al lado del actual. - ¿Podemos hacer un método para este caso? - Claro, mira esto: - Entonces, ¿puedo hacer tantos de estos métodos como desee? - Dentro de lo razonable, por supuesto. Pero, en realidad, tantos como desees. - ¿Y cuándo es necesario llamar al método initialize? - Inmediatamente después de crear el objeto, para convertirlo en uno válido: - ¿Y qué es este método getFolder()? - Puede ver por su nombre que este método es devolver una cadena que contiene el nombre de la carpeta donde se encuentra nuestro archivo. Pero no escribimos su implementación aquí, es solo para mostrar.7 Diego, Tareas de inicialización de objetos
- ¡Hola, amigo! Estoy aburrido sin nuestras lecciones. Aquí hay algunas tareas de inicialización de objetos:Tareas | |
---|---|
1 | Crear un amigo de clase Crear un amigo de clase con tres inicializadores (tres métodos de inicialización): - Nombre - Nombre, edad - Nombre, edad, sexo |
2 | Crear un gato de clase Crear un gato de clase con cinco inicializadores: - Nombre - Nombre, peso, edad - Nombre, edad (peso estándar) - Peso, color (el nombre, la dirección y la edad son desconocidos, es un gato callejero) - Peso, color, dirección (es el gato de la casa de otra persona) La tarea del inicializador es hacer que un objeto sea válido. Por ejemplo, si se desconoce el peso, debe especificar un peso promedio. Un gato no puede tener nada de peso, al igual que la edad. Pero no puede tener nombre (nulo). Lo mismo se aplica a la dirección: puede ser nula. |
3 | Crear una clase Perro Crear una clase Perro con tres inicializadores: - Nombre - Nombre, altura - Nombre, altura, color |
4 | Crear un círculo de clase Crear un círculo de clase con tres inicializadores: - centroX, centroY, radio - centroX, centroY, radio, ancho - centroX, centroY, radio, ancho, color |
5 | Crear una clase Rectángulo Crear una clase Rectángulo. Sus datos serán arriba, izquierda, ancho y alto. Escriba tantos métodos de inicialización (...) como sea posible. Ejemplos: - Se deben establecer 4 parámetros: izquierda, arriba, ancho, alto - No se establece ancho/alto (ambos iguales a 0) - No se establece alto ancho), cree un cuadrado : cree una copia de otro rectángulo (se pasa en los parámetros) |
8 Elly habla de constructores
- Es hora de hablarte de los constructores. Es muy simple: los programadores inventaron una notación abreviada para la creación e inicialización de objetos: - Pero acabo de entender esos inicializadores... - No se moleste. Mira más de cerca. El uso de constructores es más práctico y ahorra espacio. - Sí, se ve mucho mejor. Pero hay una pregunta: sé cómo escribir un método de inicialización en la clase, pero ¿cómo voy a escribir un constructor dentro de la clase? - Primero, mire un ejemplo simple: - Es muy fácil declarar el constructor en la clase. El constructor es como el método de inicialización, pero hay dos diferencias:- El nombre del método constructor es el mismo que el nombre de la clase (en lugar de initialize ).
- El método constructor no tiene tipo de retorno (no se especifica ningún tipo).
9 Diego, Tareas de constructor
- Has descansado un poco, supongo. Bien. Aquí hay algunas tareas de creación de constructores:Tareas | |
---|---|
1 | Crear un Amigo de clase Crear un Amigo de clase con tres constructores: - Nombre - Nombre, edad - Nombre, edad, sexo |
2 | Crear una clase Gato Crear una clase Gato con cinco constructores: - Nombre, - Nombre, peso, edad - Nombre, edad (peso estándar) - Peso, color, (nombre, dirección y edad desconocidos. Es un gato callejero) - Peso, color, dirección (es el gato de la casa de otra persona) La tarea del inicializador es hacer que un objeto sea válido. Por ejemplo, si se desconoce el peso, debe especificar un peso promedio. Un gato no puede tener nada de peso, al igual que la edad. Pero no puede tener nombre (nulo). Lo mismo se aplica a la dirección: puede ser nula. |
3 | Crear una clase Perro Crear una clase Perro con tres constructores: - Nombre - Nombre, altura - Nombre, altura, color |
4 | Crear un círculo de clase Crear un círculo de clase con tres constructores: - centroX, centroY, radio - centroX, centroY, radio, ancho - centroX, centroY, radio, ancho, color |
5 | Crear una clase Rectángulo Crear una clase Rectángulo. Sus datos serán arriba, izquierda, ancho y alto. Cree para él tantos constructores como sea posible: Ejemplos: - Se establecen 4 parámetros: izquierda, arriba, ancho, alto - Ancho/alto no están establecidos (ambos iguales a 0) - Alto no están establecidos (igual al ancho), cree un cuadrado - crear una copia de otro rectángulo (se pasa en los parámetros) |
10 Profesor, Clases y constructores
- Soy yo otravez. Nuestras conferencias son simplemente geniales. No te daré enlaces a conferencias aburridas. ¡Aquí hay un enlace a cosas excelentes! - ¿Sigues aquí? Ve rápido, lee, y debo ir al laboratorio. Discusión de la clase 5 de CodeGym11 julio
- ¡Hola, amigo! Estoy un poco cansado. Descansemos un poco y luego comencemos la lección. He encontrado un nuevo episodio:12 Juan Ardillas
- ¡Hola, soldado! - ¡Buenos días señor! - Tengo una noticia increíble para ti. Aquí hay tareas para reforzar sus habilidades. Hágalo todos los días y mejorará sus habilidades rápidamente. Las tareas están especialmente diseñadas para hacer en Intellij IDEA.Tareas adicionales para hacer en Intellij Idea | |
---|---|
1 | 1. Tres clases 1. Crear la clase Gato y Perro por analogía con la clase Pato. 2. Piense en lo que debería devolver el método toString en las clases Gato y Perro. 3. En el método main, cree dos objetos en cada clase y muéstrelos. 4. Los objetos de la clase Duck se crean y se muestran. |
2 | Hombre y Mujer 1. Crear clases estáticas públicas Hombre y Mujer dentro de la clase Solución. 2. Las clases deben tener campos: nombre (Cadena), edad (int), dirección (Cadena). 3. Cree constructores para pasar todos los parámetros posibles. 4. Usa el constructor para crear dos objetos de cada clase con todos los datos. 5. Muestre los objetos en formato [nombre + " " + edad + " " + dirección]. |
3 | 3. Crear clases estáticas públicas Perro y Gato. Agregue tres campos a cada clase a su elección. Crea objetos para los personajes de dibujos animados de Tom y Jerry, tanto como recuerdes. Ejemplo: Ratón jerryMouse = new Mouse(“Jerry”, 12 (altura, cm), 5 (longitud de la cola, cm)) |
4 | 4. Mostrar la fecha actual Mostrar en pantalla la fecha actual en forma similar a «21 02 2014». |
5 | 5. Leer números desde el teclado y calcular su total Leer números desde el teclado y calcular su total hasta que el usuario ingrese la palabra "total". Visualización en pantalla del total. |
tareas de bonificación | |
---|---|
1 | 1. El programa no se compila ni ejecuta. Arreglalo. Tarea: El programa debe leer del teclado dos números y mostrar su total. |
2 | 2. Agregar nueva funcionalidad al programa. Tarea anterior: agregue una nueva función que lea del teclado dos números y muestre su mínimo. Nueva tarea: agregue una nueva función que lea del teclado cinco números y muestre su mínimo. |
3 | 3. Algoritmo de aprendizaje y práctica. Tarea: Escriba un programa que 1. lea de la consola el número N mayor que cero 2. luego lea N números de la consola 3. muestre el máximo de N números ingresados. |
GO TO FULL VERSION