Mostrando entradas con la etiqueta charla. Mostrar todas las entradas
Mostrando entradas con la etiqueta charla. Mostrar todas las entradas

domingo, 30 de abril de 2023

How to Become Fluent on Your Own at Home

Some time ago I watched  this video I wrote down some ideas.

 Fluency equation

My motivation and my whys.

My real motivation, why I want to learn English.

Setting up a real goal. Setting up a deadline for reaching this goal. In other words, which level I want to have and in which amount of time.

It is basic to get my goals, create a routine, what I have to do on my daily basis.

Other interesting question is, which kind of English do I want to know?, because there are several types of English. English for Business is not the same as English for tourists.

I learned that C1 English level, is when I feel comfortable speaking the language, I can understand almost everything, but not at a native speaker level.

Other important question is how much time do I invest in learning English?

I have to become an independent learner. I have to take the responsibility or the control of your learnings. I am not used to doing that, because in a typical situation, there is a huge number of academies out there which teach English “without effort”. It seems that the responsibility of teaching/learning is the academy, not mine. The truth is that the responsibility for learning English or whatever, is only mine.

One of the strategies about learning English is to create my own bubble of English with lots of inputs. The author of the video calls It immersion. The cons of this method is that it takes a huge number of hours and the learner has to consume a lot of English content to reach their goal.

Other strategy is learning English through sentences, because context matters. It is like learning vocabulary, grammar and pronunciation all together at once. If I repeat them, I will learn how to put different parts of my mouth (tongue, lips and teeth) in the right way. Very interesting approach of that is, by imitation. Recording a sentence and comparing the difference. I think that it is a very good way of improving and learning as well.

An important aspect which we have to consider is to make this process of learning English really fun, because it is a journey which lasts too much time. In this particular case, consistency is very important.

Most of the learning is subconscious, it is the way that the brain works. For me this tip blows my mind up, because most of my learnings have been doing through effort and in a conscious way.

The other side of the very successful English learning method is time. If I have the best method, but I don't have time, I won't learn anything. By the way it is important to include a part of my routine at least 10 minutes every single day, on my daily basis.

martes, 14 de abril de 2020

Técnica de las costuras y testear clases estáticas.

Refactoring and Design Skills for Test Driven Development SA2013 by Roy Osherove

--> SUT

public class LoginManager
{
    private IReadOnlyCollection<string> users;

    public LoginManager()
    {
        users = new[] { "john", "clare", "Mary", "Tom" };
    }

    public bool IsLoginOk(string user, string password)
    {
        log(user);
        return users.Contains(user);
    }

    protected virtual void log(string user)
    {
        Logger.Log(user);
    }
}

public static class Logger
{
    public static void Log(string message)
    {
    }
}

--> Test
public class LoginManagerShould
{
    private LoginManagerTesteable loginManager;
   
    [SetUp]
    public void SetUp()
    {
        loginManager = new LoginManagerTesteable();           
    }
   
    [Test]
    public void return_false_when_user_is_empty()
    {
        var result = loginManager.IsLoginOk(String.Empty, "password");
       
        Assert.IsFalse(result);
    }
   
    [Test]
    public void return_false_when_user_is_null()
    {
        var result = loginManager.IsLoginOk(null, "password");
       
        Assert.IsFalse(result);
    }

    [Test]
    public void return_true_when_user_is_valid()
    {
        var result = loginManager.IsLoginOk("Tom", "password");
       
        Assert.IsTrue(result);
    }
}

class LoginManagerTesteable : LoginManager
{
    protected override void log(string user)
    {
    }
}

viernes, 8 de noviembre de 2019

Some notes about Pluralsigth course: Encapsulation and SOLID by Mark Seemann

 - CQS for getting code simpler
 - More reading then writing code
 - Hide information (not public setters)
 - Not invalid states
 - Fail Fats
 - Never return null
 - SOLID, for making code more maintainable
rigidity: design difficult to change, easy to break
viscosity: no needed complexity, overkill design (simplicity)
 - Developers have  a tendency  to attempt  to solve specific problems with general solutions by Greg Young
 - Instead of being general code should be specific. by Greg Young
 - Following the SRP, each concrete class is very specific
 - Abstraction is the elimination of the irrelevant and the amplification of the essential by Robert C. Martin
 - Start with concrete behavior and discover abstractions as commonality emerges by rules of three
 - Favor composition over inheritance for example by strategy, decorator, ... patterns.
 - Don´t override inherited base class methods (Liskov Substitution Principle)
 - Implements all methods of inherited interface, don´t remove features from inherited class throwing NotSupportedException (Liskov Substitution Principle)
 - Prefer a tons of small, concrete, trial, simple and granular classes with a low level of abstraction, than a few classes with a lots of code.
 - Client should not depend on method that they do not use (Interface segregation principal)
 - Small interface with one operation.

martes, 1 de octubre de 2019

Aprendiendo algunas cosas sobre la refactorización

Ayer ví la charla que dio Yodra López en la AdaLoversConf

He anotado algunas cosas que me han gustado:
- Tener en cuenta que la aplicación legada es la que más aporta al negocio, aunque no siempre sea la mejor técnicamente hablando.
- Custodiar el valor que nos entregan.
- Pequeñas refactorizaciones cotidianas: mejorar el nombrado, extraer métodos, cuidar los parámetros a métodos.
- Ponerse en la piel del cliente, porque el dinero nos tiene que doler también a nosotros.
- Explicando la técnica de cambios paralelos como técnica para hacer una refactorización.

El repositorio de código del que parte el ejemplo: https://github.com/lean-mind/ultimate-refactoring-java

Hace poco leyendo el blog de Carlos Blé me encontré con este artículo que me ha gustado mucho y voy a intentar añadirlo en flujo de escribir código.