Skip to content

Commit

Permalink
Merge pull request #271 from hexlet-basics/new
Browse files Browse the repository at this point in the history
new structure
  • Loading branch information
Malcom1986 committed Dec 27, 2023
2 parents e756eb8 + d80abb4 commit 27b2ea1
Show file tree
Hide file tree
Showing 426 changed files with 8,358 additions and 0 deletions.
11 changes: 11 additions & 0 deletions modules/10-basics/10-hello-world/es/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Escribe en el editor el código del ejercicio carácter por carácter y haz clic en "Verificar".

```java
class App {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
```

Si escribes *heLLo, woRld!* en lugar de *¡Hola, Mundo!*, se considerará un texto diferente, ya que las mayúsculas y minúsculas son caracteres distintos. El tamaño de las letras se llama *mayúsculas y minúsculas*, y se dice: **¡las mayúsculas y minúsculas importan!** Esto se aplica a casi todo el código, así que acostúmbrate a prestar siempre atención a las mayúsculas y minúsculas.
41 changes: 41 additions & 0 deletions modules/10-basics/10-hello-world/es/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
Tradicionalmente, se comienza a aprender un lenguaje de programación con el programa "Hello, World!", que muestra este texto en la pantalla.

<pre class='hexlet-basics-output'>
¡Hola, Mundo!
</pre>

En Java, este programa se vería así:

```java
class App {
public static void main(String[] args) {
System.out.println("¡Hola, Mundo!");
}
}
```

https://replit.com/@hexlet/java-basics-hello-world

El texto *¡Hola, Mundo!* aparecerá en la pantalla gracias al comando `System.out.println()`, donde `println()` es una abreviatura de la expresión en inglés *print line*. Este comando muestra en la pantalla el valor especificado entre paréntesis `("¡Hola, Mundo!")`, en este caso, una cadena de texto. La cadena de texto se encierra entre comillas dobles `""`. Si no se hace esto, el compilador mostrará un error de sintaxis:

```bash
# Por ejemplo, así
App.java:5: error: unclosed character literal
System.out.println('¡Hola, Mundo!');
```

Este comando se encuentra dentro de varias construcciones que son necesarias incluso para los programas más simples en Java. En este caso, se trata de la clase `App` y el método `main()`.

Por ahora, no nos detendremos en ellos, ya que para entenderlos es necesario tener un poco de conocimiento en programación. Por lo tanto, en muchos ejercicios se proporcionan "tal cual", es decir, no tendrás que definirlos tú mismo. Cuando llegue el momento, los analizaremos.

## JShell

A medida que avances en las lecciones, te encontrarás constantemente con ejemplos de código y descripciones de su funcionamiento. Para comprenderlos mejor y poder utilizar el lenguaje, es necesario practicar y experimentar constantemente.

Por lo tanto, siempre que sea posible, ejecuta todos los ejemplos de la teoría y realiza experimentos con los aspectos que no entiendas.

La forma más sencilla de comenzar con Java es en el sitio web [onecompiler](https://onecompiler.com/jshell), que te permite ejecutar el código línea por línea directamente en el navegador. Intenta ir allí ahora mismo y escribir este código:

```
System.out.println(85 * 3);
```
7 changes: 7 additions & 0 deletions modules/10-basics/10-hello-world/es/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: ¡Hola, Mundo!
tips:
- >
Si en el editor hay una línea que dice `// BEGIN` y `// END`, el código debe
escribirse entre esas líneas.
- |
[¿Qué es un compilador?](https://codica.la/guides/compiler/)
11 changes: 11 additions & 0 deletions modules/10-basics/10-hello-world/ru/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Наберите в редакторе код из задания символ в символ и нажмите «Проверить».

```java
class App {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
```

Если вы напишете *heLLo, woRld!* вместо *Hello, World!*, то это будет считаться другим текстом, потому что заглавные и строчные буквы — это разные символы. Размер буквы называют *регистром*, и говорят: **регистр — важен!** Это касается почти всего в коде, поэтому привыкайте всегда обращать внимание на регистр.
42 changes: 42 additions & 0 deletions modules/10-basics/10-hello-world/ru/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
Изучать язык программирования по традиции начинают с программы "Hello, World!", которая выводит этот текст на экран.

<pre class='hexlet-basics-output'>
Hello, World!
</pre>

На языке Java эта программа будет выглядеть так:

```java
class App {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
```

https://replit.com/@hexlet/java-basics-hello-world

Текст *Hello, World!* появится на экране благодаря команде `System.out.println()`, где `println()` — это сокращение от английского *print line*. Она выводит на экран значение, указанное в скобках `("Hello, World!")` — в данном случае строку. Сама строка обрамляется двойными кавычками `""`. Если этого не сделать, то компилятор укажет на синтаксическую ошибку:

```bash
# Например, вот так
App.java:5: error: unclosed character literal
System.out.println('Hello, World!');
```

Сама команда находится внутри нескольких конструкций, которые нужны для работы даже простейших программ на Java.
В данном случае это класс `App` и метод `main()`.

Сейчас мы не будем на них останавливаться, так как для их понимания нужно уметь немного программировать. Поэтому во многих заданиях они даются «как есть», то есть вам не придется их задавать самостоятельно. Когда придет время, мы их разберем.

## JShell

Двигаясь по урокам, вы постоянно будете встречаться с примерами кода и описаниями его работы. Чтобы их лучше понимать и уметь пользоваться языком, нужно постоянно практиковаться и экспериментировать.

Поэтому по возможности запускайте все примеры из теории и проводите эксперименты с непонятными моментами.

С Java проще всего начать на сайте [onecompiler](https://onecompiler.com/jshell), который позволяет запускать построчно код прямо в браузере. Попробуйте перейти туда прямо сейчас и набрать такой код:

```
System.out.println(85 * 3);
```
7 changes: 7 additions & 0 deletions modules/10-basics/10-hello-world/ru/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: Привет, Мир!
tips:
- >
Если в редакторе есть запись `// BEGIN` и `// END`, то код нужно писать
между этими строчками.
- |
[Что такое компилятор?](https://guides.hexlet.io/compiler/)
1 change: 1 addition & 0 deletions modules/10-basics/20-comments/es/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Crea un comentario de una línea con el texto: *No sabes nada, Jon Nieve!*.
31 changes: 31 additions & 0 deletions modules/10-basics/20-comments/es/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Casi todos los lenguajes de programación permiten dejar comentarios en el código. Estos comentarios no son utilizados por el código y son únicamente para las personas: para que los programadores dejen notas para sí mismos y para otros programadores.

En Java, hay tres tipos de comentarios:

* **Comentarios de una línea** que comienzan con `//`. Después de estos dos caracteres puede seguir cualquier texto, la línea completa no será analizada ni ejecutada.

El comentario puede ocupar toda la línea:

```java
// Por Winterfell!
```

También el comentario puede estar en la línea después de algún código:

```java
System.out.println("Soy el Rey"); // => Por los Lannister!
```

* **Comentarios de varias líneas** que comienzan con `/*` y terminan con `*/`. Es común comenzar cada línea con el carácter `*`, aunque técnicamente no es obligatorio:

```java
/*
* La noche es oscura y
* está llena de terrores.
*/
System.out.println("Soy el Rey"); // => Soy el Rey
```

* **Comentarios de documentación** que comienzan con `/**` y terminan con `*/`. Para estos comentarios es obligatorio comenzar cada línea con el carácter `*`.

Los comentarios de documentación son un subtipo de los comentarios de varias líneas. Además, tienen una función adicional: se pueden recopilar con la herramienta especial javadoc y se pueden generar como documentación para su código. Hablaremos de ellos más adelante, cuando veamos las clases y los métodos.
1 change: 1 addition & 0 deletions modules/10-basics/20-comments/es/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
name: Comentarios
1 change: 1 addition & 0 deletions modules/10-basics/20-comments/ru/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Создайте однострочный комментарий с текстом: *You know nothing, Jon Snow!*.
31 changes: 31 additions & 0 deletions modules/10-basics/20-comments/ru/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Практически все языки программирования позволяют оставлять в коде комментарии. Они никак не используются кодом и нужны исключительно для людей: чтобы программист оставлял пометки для себя и для других программистов.

Комментарии в Java бывают трех видов:

* **Однострочные комментарии** начинаются с `//`. После этих двух символов может следовать любой текст, вся строка не будет анализироваться и исполняться.

Комментарий может занимать всю строку:

```java
// For Winterfell!
```

Также комментарий может находиться на строке после какого-нибудь кода:

```java
System.out.println("I am the King"); // => For Lannisters!
```

* *Многострочные комментарии* начинаются с `/*` и заканчиваются на `*/`. Принято каждую строку начинать с символа `*`, хотя технически это и необязательно:

```java
/*
* The night is dark and
* full of terrors.
*/
System.out.println("I am the King"); // => I am the King
```

* **Документирующие комментарии** начинаются с `/**` и заканчиваются на `*/`. Уже для них обязательно каждую строку начинать с символа `*`.

Документирующие комментарии — это подвид многострочных. При этом несут дополнительную функцию — их можно собрать при помощи специальной утилиты javadoc и выдать в качестве документации к вашему коду. Мы поговорим о них позже – когда разберем классы и методы.
1 change: 1 addition & 0 deletions modules/10-basics/20-comments/ru/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
name: Комментарии
9 changes: 9 additions & 0 deletions modules/10-basics/30-statements/es/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Imprime en pantalla uno tras otro tres nombres: *Robert*, *Stannis*, *Renly*. Como resultado, se mostrará en pantalla:

<pre class='hexlet-basics-output'>
Robert
Stannis
Renly
</pre>

Utiliza una llamada `System.out.println()` para cada nombre.
23 changes: 23 additions & 0 deletions modules/10-basics/30-statements/es/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Una instrucción es un comando para la computadora. El código en Java es un conjunto de instrucciones que generalmente se separan entre sí con el símbolo `;`. Aquí hay un ejemplo de código con dos instrucciones:

```java
System.out.println("Madre de Dragones");
System.out.println("¡Dracarys!");
```

Al ejecutar este código, se mostrarán en pantalla dos frases de forma secuencial:

<pre class='hexlet-basics-output'>
Madre de Dragones
¡Dracarys!
</pre>

¿Por qué es importante saber esto? Una instrucción es una unidad de ejecución. El programa que ejecuta el código en Java realiza las instrucciones estrictamente en orden. Los desarrolladores deben comprender este orden y ser capaces de dividir mentalmente el programa en partes independientes que sean fáciles de analizar.

Teóricamente, las instrucciones se pueden escribir una tras otra sin saltar a una nueva línea:

```java
System.out.println("Madre de Dragones."); System.out.println("¡Dracarys!");
```

El resultado en pantalla será el mismo, pero en la práctica, este enfoque se considera incorrecto.
1 change: 1 addition & 0 deletions modules/10-basics/30-statements/es/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
name: Instrucciones
9 changes: 9 additions & 0 deletions modules/10-basics/30-statements/ru/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Выведите на экран друг за другом три имени: *Robert*, *Stannis*, *Renly*. В результате на экране должно отобразиться:

<pre class='hexlet-basics-output'>
Robert
Stannis
Renly
</pre>

Для каждого имени используйте свой собственный вызов `System.out.println()`.
23 changes: 23 additions & 0 deletions modules/10-basics/30-statements/ru/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Инструкция — это команда для компьютера. Код на Java — это набор инструкций, которые, обычно, отделяются друг от друга символом `;`. Вот пример кода с двумя инструкциями:

```java
System.out.println("Mother of Dragons");
System.out.println("Dracarys!");
```

При запуске этого кода на экран последовательно выводятся два предложения:

<pre class='hexlet-basics-output'>
Mother of Dragons
Dracarys!
</pre>

Почему это важно знать? Инструкция — это единица исполнения. Программа, которая запускает код на Java, выполняет инструкции строго по очереди. Разработчики должны понимать этот порядок и уметь мысленно разделять программу на независимые части, удобные для анализа.

Теоретически инструкции можно написать последовательно друг за другом без переноса на новую строчку:

```java
System.out.println("Mother of Dragons."); System.out.println("Dracarys!");
```

Результат на экране будет таким же, но на практике такой подход считается плохим.
1 change: 1 addition & 0 deletions modules/10-basics/30-statements/ru/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
name: Инструкции (Statements)
7 changes: 7 additions & 0 deletions modules/10-basics/40-testing/es/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Solo es un ejercicio. Muestra en la pantalla el número 420262531.

<pre class='hexlet-basics-output'>
420262531
</pre>

Experimenta con la salida. Pasa otro número o una cadena. Observa la respuesta del sistema, intenta traducirla y entenderla.
21 changes: 21 additions & 0 deletions modules/10-basics/40-testing/es/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Nuestro sitio web verifica automáticamente tus soluciones. ¿Cómo funciona?

En el caso más simple, el sistema simplemente ejecuta tu código y verifica lo que se muestra en la pantalla. Luego lo compara con lo que "esperábamos" según la tarea.

En lecciones más avanzadas, escribirás métodos, que son pequeños programas que toman información del mundo exterior y realizan ciertas operaciones. La verificación de tus soluciones en estos casos es un poco más complicada: el sistema ejecuta tu solución y le pasa cierta información. El sistema también sabe qué respuesta exacta debería devolver el método correcto para esos datos de entrada.

Por ejemplo, si tu tarea es escribir código para sumar dos números, el sistema de verificación le pasará diferentes combinaciones de números y comparará la respuesta de tu código con las sumas reales. Si las respuestas coinciden en todos los casos, la solución se considera correcta.

Aquí tienes un ejemplo sencillo: en una de las futuras lecciones, tendrás que escribir código que realice cálculos y devuelva una respuesta. Supongamos que cometiste un pequeño error y el método devolvió un número incorrecto. El sistema responderá algo como esto:

<pre class='hexlet-basics-output'>expected: "35" but was: "10"</pre>

Lo más importante comienza después de los dos puntos: "se esperaba: "35", pero fue "10"". Es decir, el código correcto debería haber devuelto 35, pero la solución actual no funciona correctamente y devuelve 10.

Además de nuestras pruebas, será extremadamente útil utilizar el servicio [repl.it](https://repl.it/languages/java).

---

A veces, durante el proceso de resolución, puede parecer que has hecho todo correctamente, pero el sistema se "comporta de manera caprichosa" y no acepta la solución. Este comportamiento es prácticamente imposible. Las pruebas no funcionales simplemente no pueden llegar al sitio web, se ejecutan automáticamente después de cada cambio. En la gran mayoría de estos casos (y todos nuestros proyectos en conjunto han realizado millones de verificaciones a lo largo de los años), el error se encuentra en el código de la solución. Puede ser muy sutil, como haber ingresado accidentalmente una letra rusa en lugar de una letra en inglés, haber utilizado minúsculas en lugar de mayúsculas o haber olvidado poner una coma. Otros casos son más complicados. Es posible que tu solución funcione para un conjunto de datos de entrada, pero no funcione para otro. Por lo tanto, siempre lee atentamente la descripción de la tarea y los resultados de las pruebas. Casi seguro que habrá alguna indicación del error.

Sin embargo, si estás seguro del error o has encontrado alguna imprecisión, siempre puedes señalarlo. Al final de cada teoría hay un enlace al contenido de la lección en GitHub (¡este proyecto es completamente abierto!). Al ir allí, puedes escribir un issue, ver el contenido de las pruebas (se puede ver cómo se llama tu código) e incluso enviar un pull request. Si esto todavía te resulta confuso, únete a nuestra comunidad en [Comunidad de Hexlet en Telegram](https://t.me/hexletcommunity/12), allí en el canal de Voluntarios siempre estaremos dispuestos a ayudar.
11 changes: 11 additions & 0 deletions modules/10-basics/40-testing/es/data.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Cómo verificamos tus soluciones
definitions:
- name: Pruebas
description: >
código especial que verifica la corrección de los programas, comparando el
resultado correcto con el resultado real.
tips:
- |
[TDD](https://es.wikipedia.org/wiki/Desarrollo_guiado_por_pruebas)
- |
[Comunidad de Hexlet en Telegram](https://t.me/hexletcommunity/12)
7 changes: 7 additions & 0 deletions modules/10-basics/40-testing/ru/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Просто тренировка. Выведите на экран число 420262531.

<pre class='hexlet-basics-output'>
420262531
</pre>

Поэкспериментируйте с выводом. Передайте туда другое число или строку. Посмотрите на ответ системы, попробуйте его перевести и понять.

0 comments on commit 27b2ea1

Please sign in to comment.