Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Una charla sobre cómo dar una charla técnica

Una charla sobre cómo dar una charla técnica

Charla que dí en el Google Dev Fest del 2023. En esta presentación doy buenas prácticas para poder dar una charla de temas técnicos.

More Decks by Jose Flavio Quispe Irrazábal

Other Decks in Education

Transcript

  1. Jose Flavio Quispe Android Dev Perú Singular App @j fl

    avio11 Una charla sobre cómo dar una charla… técnica
  2. Una charla sobre Javascript Esta es una charla sobre Javascript

    • Aquí tengo un texto que vas a leer por unos segundos pero que probablemente ya no quieras leer después. • O quizá sí, pero mientras yo estoy hablando, tú intentas escucharme y leer al mismo tiempo. ¿Un poco complicado, no?
  3. Joseph G. Haworth, Jr. “Los speakers no nacen, se hacen.

    Preparación y práctica son lo que hacen a un speaker”
  4. Prepárate Los speakers no nacen, se hacen. • No distraigas

    a tu audiencia. • Modula tu voz. • Interactuar. • Mímicas (cuando sea necesario). • Agua.
  5. Recuerda: la audiencia está de tu lado. Están en esa

    sala por ti. Para escucharte. Ellos quieren que lo hagas bien.
  6. Jose Flavio “Todo el mundo siente miedo antes de dar

    una charla. Es normal. Abraza esas emociones y lánzate. Créetela.”
  7. data class LoginUiState( val errorInfo: LoginError? = null, val loggedIn:

    Boolean = false ) class LoginViewModel(. . .) : ViewModel() { . . . fun onLogin(username: String, password: String) { . . . loginUiState = loginUiState.copy(loggedIn = true, errorInfo = null) . . . loginUiState = loginUiState.copy(loggedIn = true, errorInfo = ErrorInfo(. . .)) } }
  8. data class LoginUiState( val errorInfo: LoginError? = null, val loggedIn:

    Boolean = false ) class LoginViewModel(. . .) : ViewModel() { . . . fun onLogin(username: String, password: String) { . . . loginUiState = loginUiState.copy(loggedIn = true, errorInfo = null) . . . loginUiState = loginUiState.copy(loggedIn = true, errorInfo = ErrorInfo(. . .)) } }
  9. data class LoginUiState( val errorInfo: LoginError? = null, val loggedIn:

    Boolean = false ) class LoginViewModel(. . .) : ViewModel() { . . . fun onLogin(username: String, password: String) { . . . loginUiState = loginUiState.copy(loggedIn = true, errorInfo = null) . . . loginUiState = loginUiState.copy(loggedIn = true, errorInfo = ErrorInfo(. . .)) } }
  10. • Data Layer (capa de datos) → Aquí se encuentran

    las implementaciones de los repositorios. Acceso a bases de datos, APIs externas, etc. • Domain Layer (capa de dominio) → Lógica del negocio. Modelos principales. De fi niciones (contratos) de repositorios. Casos de uso del sistema. Independiente de cualquier framework o plataforma. • Presentation Layer (capa de presentación) → Lo que se le muestra al usuario. Aquí implementas MVC, MVP, MVVM, MVI, etc. Se maneja el estado de la aplicación a nivel de usuario.
  11. Repository Interactor | Use Case Data Layer Domain Layer Screen

    UI State Composable Presentation Layer UI Element State ViewModel
  12. Cuida los detalles A veces se nos olvida pensar en

    la audiencia • ¿Tu editor de código tiene “modo presentación”? • ¿No tienes una respuesta? Queda en revisarla después. • Todo a la mano. • Plan B.
  13. Recuerda: la audiencia está de tu lado. Están en esa

    sala por ti. Para escucharte. Ellos quieren que lo hagas bien.
  14. Jose Flavio Quispe Android Dev Perú Singular App @j fl

    avio11 Una charla sobre cómo dar una charla técnica