-
Entradas recientes
Contacta con nosotros
Aprender a programar no es fácil. Se trata de una disciplina que combina diabólicamente la complejidad de las matemáticas con la precisión de la gramática, dos de las materias que más cuesta arriba se le hacen a los estudiantes.
Cuando escribimos código, no solo tenemos que ser precisos, también tenemos que ser correctos. Una falta de ortografía en el código se convierte en un error, y resolver el error, por suerte o desgracia, no implica directamente que nuestro código haga lo que nosotros queremos.
Precisión y corrección son las dos claves de un buen código
Sin embargo, por otro lado, un código elegante y bien escrito nos produce una gran satisfacción personal aparte de facilitarle el trabajo a quien deba retomarlo más adelante. El programador puede sentirse un mago y también un poeta. Además, el mercado laboral, en el mundo informatizado en el que vivimos, siempre demanda personal que sepa crear programas.
Pero no todos los programadores se ocupan de «solucionar» problemas a golpe de tecla: los más creativos buscan el lado artístico del código. La creación de videojuegos, sea como negocio o sea como expresión, añade una capa más a la complejidad del aprendizaje: la visualización gráfica de lo que estamos escribiendo.
Es por ello que los programadores en general, y los programadores de videojuegos y aplicaciones multimedia interactivas en particular, necesitan entrenarse diariamente. En este sentido, podemos ver la programación como un arte marcial.
El autocontrol, la paciencia, la autosuperación y el espíruto de mejora son valores que comparten los programadores con los artistas marciales.
En la práctica diaria, los programadores necesitan una alta dosis de creatividad. Es habitual entre los iniciados enfrentarse a «la página en blanco». Saben lo que quieren hacer, pero no saben cómo hacerlo. El abanico de posibilidades con el código es tan grande que no saben por dónde empezar y se paralizan.
Por ello, una de las mejores prácticas para aprender a programar es hacer muchos ejercicios, y hacerlos una y otra vez. Es muy habitual encontrar programadores seniors que han hecho el mismo juego desde cero varias veces en su vida, para probar diferentes técnicas o aproximaciones. Y lo hacen con constancia, técnica y conocimientos.
Lamentablemente, no existen muchos ejercicios especializados, y el código de proyectos profesionales a veces no es bueno para estudiantes, debido a su complejidad. Un buen juego de ejercicios básicos y fáciles es un gran complemento para aprender programación.
Por ese motivo he escrito un libro en el que he seleccionado cien ejercicios de C# con dificultad progresiva, en la que el alumno pueda ir subiendo poco a poco su nivel con precisión y corrección, en una disciplina tan artística como ingenieril como es programar videojuegos. Además, este manual es muy útil para profesores que quieran poner ejemplos diferentes y seleccionados para cada caso en particular.
Entrenar secuencias de código o pequeños ejercicios como los que propongo son una excelente praxis para lograr una programación limpia, elegante y duradera que permita un mantenimiento y actualización optimizadas.
Si quieres empezar tus primeros pasos en la dirección que te propongo, puedes encontrar mi manual aquí.
Jorge García Colmenar
INFORMACIÓN SOBRE LA PROTECCIÓN DE DATOS
La utilización en esta web del masculino cuando nos referimos a mujeres y hombres en el trabajo colectivo, no tiene intención discriminatoria alguna, sino la de aplicar la ley lingüística de la economía expresiva, para facilitar la lectura con el menor esfuerzo posible.
Cookie | Duración | Descripción |
---|---|---|
_GRECAPTCHA | 5 months 27 days | This cookie is set by the Google recaptcha service to identify bots to protect the website against malicious spam attacks. |
cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
CookieLawInfoConsent | 1 year | Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie. |
elementor | never | This cookie is used by the website's WordPress theme. It allows the website owner to implement or change the website's content in real-time. |
PHPSESSID | session | This cookie is native to PHP applications. The cookie is used to store and identify a users' unique session ID for the purpose of managing user session on the website. The cookie is a session cookies and is deleted when all the browser windows are closed. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Cookie | Duración | Descripción |
---|---|---|
bcookie | 1 year | LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser ID. |
bscookie | 1 year | LinkedIn sets this cookie to store performed actions on the website. |
lang | session | LinkedIn sets this cookie to remember a user's language setting. |
lidc | 1 day | LinkedIn sets the lidc cookie to facilitate data center selection. |
UserMatchHistory | 1 month | LinkedIn sets this cookie for LinkedIn Ads ID syncing. |
Cookie | Duración | Descripción |
---|---|---|
_ga | 2 years | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors. |
_ga_K64EM3X0WF | 2 years | This cookie is installed by Google Analytics. |
_gcl_au | 3 months | Provided by Google Tag Manager to experiment advertisement efficiency of websites using their services. |
utm_campaign | past | Google Ad Services sets this cookie to store session campaign value if present. |
utm_content | past | This cookie is used for storing the session content value if present. |
utm_source | past | This cookie is used to record from where the visitor came to the website orginally. This information is used by the website operator to know the efficiency of their marketing. |
utm_term | past | This cookie is used to record from where the visitor came to the website orginally. This information is used by the website operator to know the efficiency of their marketing. |
Cookie | Duración | Descripción |
---|---|---|
_fbp | 3 months | This cookie is set by Facebook to display advertisements when either on Facebook or on a digital platform powered by Facebook advertising, after visiting the website. |
fr | 3 months | Facebook sets this cookie to show relevant advertisements to users by tracking user behaviour across the web, on sites that have Facebook pixel or Facebook social plugin. |
IDE | 1 year 24 days | Google DoubleClick IDE cookies are used to store information about how the user uses the website to present them with relevant ads and according to the user profile. |
test_cookie | 15 minutes | The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies. |
utm_medium | past | This cookie is used to record from where the visitor came to the website orginally. This information is used by the website operator to know the efficiency of their marketing. |
Cookie | Duración | Descripción |
---|---|---|
_learn_press_session_5167216fe626261582c1f3324b159ee2 | 2 days | No description |
_tt_enable_cookie | 1 year 24 days | No description |
_ttp | 1 year 24 days | No description |
_wordpress_lp_guest | 1 hour | No description |
AnalyticsSyncHistory | 1 month | No description |
past | No description available. | |
gclid | past | No description |
handl_ip | 1 month | No description available. |
handl_landing_page | 1 month | No description available. |
handl_original_ref | 1 month | No description available. |
handl_ref | 1 month | No description available. |
handl_url | 1 month | No description available. |
li_gc | 5 months 27 days | No description |
urlFachada | 1 month | No description |
username | past | No description available. |