jueves, 28 de diciembre de 2017
Aunque por aquellos tiempos ya llevaba bastante tiempo enganchado al desarrollo de software, fue en el año 1992 cuando empecé mi andadura profesional en este mundillo, y he de decir que estos más de veinticinco años han dado para mucho. Poco más o menos, creo que he pasado por todos los roles existentes en el mundo del software, en todas las modalidades laborales posibles: programador, analista, consultor, formador, coordinador de equipos de desarrollo, CTO, empleado, empresario, freelance…
Aparte de muchas alegrías y algún que otro disgusto, lo que tengo claro es que esta trayectoria me ha dado una visión bastante amplia de cómo funciona el mundo del desarrollo de software y las personas que trabajamos en él.
Como guardarme estos conocimientos me parecía demasiado egoísta, he decidido compartir con todos vosotros los que considero que son los diecisiete consejos definitivos que debéis seguir si queréis triunfar en el mundo del desarrollo de software.
Por lo que he ido aprendiendo estos años, seguir estas reglas os llevará a conservar indefinidamente vuestros empleos o clientes, aumentaréis vuestro valor en el mercado, mejoraréis salarios y vuestro grado de felicidad y satisfacción personal crecerá hasta límites insospechados.
He de decir que, antes de compartirlos con todos vosotros, varias personas ya los han seguido y sus vidas profesionales han mejorado considerablemente. Por ejemplo, Juan M. R. trabajaba como programador junior en una conocida cárnica hace 6 meses y hoy dirige el equipo técnico en una startup en San Francisco. También, Nacho G. L. pudo firmar hace poco el contrato fijo con el que soñaba, incluso con un aumento de sueldo. Rafael P. G. era un programador del montón y ahora es un reputado project manager por el que se pelean las mejores empresas del mundo.
Aparte de muchas alegrías y algún que otro disgusto, lo que tengo claro es que esta trayectoria me ha dado una visión bastante amplia de cómo funciona el mundo del desarrollo de software y las personas que trabajamos en él.
Como guardarme estos conocimientos me parecía demasiado egoísta, he decidido compartir con todos vosotros los que considero que son los diecisiete consejos definitivos que debéis seguir si queréis triunfar en el mundo del desarrollo de software.
Por lo que he ido aprendiendo estos años, seguir estas reglas os llevará a conservar indefinidamente vuestros empleos o clientes, aumentaréis vuestro valor en el mercado, mejoraréis salarios y vuestro grado de felicidad y satisfacción personal crecerá hasta límites insospechados.
He de decir que, antes de compartirlos con todos vosotros, varias personas ya los han seguido y sus vidas profesionales han mejorado considerablemente. Por ejemplo, Juan M. R. trabajaba como programador junior en una conocida cárnica hace 6 meses y hoy dirige el equipo técnico en una startup en San Francisco. También, Nacho G. L. pudo firmar hace poco el contrato fijo con el que soñaba, incluso con un aumento de sueldo. Rafael P. G. era un programador del montón y ahora es un reputado project manager por el que se pelean las mejores empresas del mundo.
“Sin los grandes consejos de José María,Podéis ser los próximos en dar el salto, sólo depende de vosotros.
mi vida como desarrollador seguiría siendo un infierno”
– Ricardo M. C., 2017
Publicado por José M. Aguilar a las 12:10 a. m.
Hay
7 comentarios, ¡participa tú también!
Etiquetas: buenas prácticas, inocentadas, recomendaciones
martes, 26 de diciembre de 2017
Para celebrar las fiestas, ahí va última colección de enlaces del año. Como de costumbre, espero que os resulten interesantes. :-)
.NET / .NET Core
- Hybridizer: High-Performance C# on GPUs
Florent Duguet & Régis Portalez - C# - All About Span: Exploring a New .NET Mainstay
Stephen Toub - Open Source .NET – 3 years later
Matt Warren - A look at the internals of ‘Tiered JIT Compilation’ in .NET Core
Matt Warren - Interpolated strings: advanced usages
Gérald Barré - Replace a Running Application with a New Version
Tim Patrick - Boost your productivity with Visual Studio’s DebuggerAttributes
Moaid Hathot - How Does Task in C# Affect Performance?
Jeremy Bytes - Controlling the Number of Outgoing Connections From HttpClient (.NET Core or Full Framework)
Pam Lahoud - Devirtualization in .NET Core
Jonathan Allen - 5 .NET Standard Features You Shouldn’t Miss
Ed Charberneau - How to avoid overlapping timer calls?
Gunnar Peipman - Norma ISO 8601, duration y .NET
Jorge Serrano
domingo, 24 de diciembre de 2017
Estimados amigos y amigas,
Simplemente quería aprovechar este rinconcillo para desearos a todos unas felices fiestas, compartidas con la gente que realmente merece la pena. Aprovecho también para deciros que he dejado encargado a sus Majestades de Oriente un grandioso 2018 para todos, así que no lo desaprovechéis ;D
¡Nos seguimos viendo por aquí!
Publicado con mucho espíritu navideño en: www.variablenotfound.com.
Simplemente quería aprovechar este rinconcillo para desearos a todos unas felices fiestas, compartidas con la gente que realmente merece la pena. Aprovecho también para deciros que he dejado encargado a sus Majestades de Oriente un grandioso 2018 para todos, así que no lo desaprovechéis ;D
¡Nos seguimos viendo por aquí!
Publicado con mucho espíritu navideño en: www.variablenotfound.com.
martes, 19 de diciembre de 2017
JSON Web Tokens, o JWT para los amigos, es sin duda una de las fórmulas más utilizadas para autenticación en servicios o APIs HTTP gracias a su sencillez de uso y a la seguridad que aportan en determinados escenarios frente a otras opciones como las populares cookies.
En este post vamos a ver cómo implementar funcionalidades básicas de generación de tokens JWT en ASP.NET Core MVC, y cómo asegurar nuestros APIs utilizándolos para autenticar a los usuarios.
lunes, 18 de diciembre de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- C# 7.1 – Specification: Inferred Tuple Element Names & Default Literals Expressions & Async Main Method
Jorge Serrano - Using C# dynamic Keyword To Replace Data Transfer Objects
Carl Layton - 5 More C# Extension Methods for the Stocking! (plus a bonus method for enums)
Jonathan Danylko - C# 7 Series, Part 7: Ref Returns
Mark Zhou - Deck The Halls With Strategy Pattern Implementations In C#: Basic To Advanced
James Hickey - C# 7.2 - In Parameter And Performance
Banketeshvar Narayan - Are lock and Monitor the same in C#?
Gunnar Peipman
martes, 12 de diciembre de 2017
Seguro que los que os movéis en el mundo del desarrollo web os habéis encontrado alguna vez ante un problema de scripts en un sitio web que sólo ocurre en el entorno de producción. Si habéis subido sólo el archivo minimizado, sin mapas ni nada parecido, intentar depurarlo es una pesadilla y seguro que os gustaría poder hacer pruebas en producción usando vuestro fuente original, sin tener que que hacer cambios que puedan afectar a otros visitantes.
O también se os habrá dado el caso de que necesitéis hacer cambios en un script y os da miedillo subirlo directamente a producción sin haberlo probado antes suficientemente en el entorno real. Esto es un tema especialmente peliagudo si estáis desarrollando una plataforma SaaS en la que cientos de clientes usen en sus páginas web una referencia a vuestro script y cualquier cambio en el mismo puede traer consecuencias graves para el servicio.
Por ejemplo, imaginad que prestamos un servicio similar a Google Analytics, y todos nuestros clientes tienen una referencia en sus páginas a nuestro archivo "analytics.js" para trackear sus visitas. ¿Cómo podríamos introducir cambios en dicho archivo de script para hacer pruebas en sitios donde nos interese, sin que afectara al resto de clientes ni a los visitantes de sus páginas?
A priori no parece haber una respuesta sencilla, pero sí que la hay. Sólo necesitamos Fiddler y tres minutos de nuestro tiempo para conseguirlo :)
O también se os habrá dado el caso de que necesitéis hacer cambios en un script y os da miedillo subirlo directamente a producción sin haberlo probado antes suficientemente en el entorno real. Esto es un tema especialmente peliagudo si estáis desarrollando una plataforma SaaS en la que cientos de clientes usen en sus páginas web una referencia a vuestro script y cualquier cambio en el mismo puede traer consecuencias graves para el servicio.
Por ejemplo, imaginad que prestamos un servicio similar a Google Analytics, y todos nuestros clientes tienen una referencia en sus páginas a nuestro archivo "analytics.js" para trackear sus visitas. ¿Cómo podríamos introducir cambios en dicho archivo de script para hacer pruebas en sitios donde nos interese, sin que afectara al resto de clientes ni a los visitantes de sus páginas?
A priori no parece haber una respuesta sencilla, pero sí que la hay. Sólo necesitamos Fiddler y tres minutos de nuestro tiempo para conseguirlo :)
lunes, 11 de diciembre de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- Accelerated 3D VR, sure, but impress me with a nice ASCII progress bar or spinner
Scott Hanselman - Elasticsearch, Kibana and Docker using .NET Standard 2
Juan G. Carmona - .NET Value Type (struct) as a DDD Value Object
Vladimir Khorikov - ORMs for .NET Core
Jonathan Allen - ASP.NET HttpContext in async/await patterns using the Task Parallel Library – Part 3
Alessandro Bigi - Deep dive to async Main
Gunnar Peipman - Who Says C# Interfaces Can’t Have Implementations?
Brant Burnett - .NET String Interning to Improve String Comparison Performance (C# examples)
Ben Hall - Optimizing memory usage
Frans Bouma - C# 7.0 – Specification – Samples
Jorge Serrano
lunes, 4 de diciembre de 2017
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
.NET / .NET Core
- Writing smarter cross-platform .NET Core apps with the API Analyzer and Windows Compatibility Pack
Scott Hanselman - Where are the differences in execution speed of various method types come from (.NET)?
Jiří Činčura - In Parameters in C# 7.2 – Read-only References
Abhijit Jana - Knowing When to Reflect With Caller Info Attributes
Rion Williams - Listing Strongly Typed Enum Options in C#
Steve Smith - Dissecting the async methods in C#
Sergey Teplyakov - A short tale on two patterns that live in .NET
Eddy Vluggen - Working around the lack of dynamic DbProviderFactory loading in .NET Core
Rick Strahl - C# 8.0 Features: A Glimpse of the Future
Erik Dietrich