Monthly Archives: January 2015
I was taking the above coursera course – Learning How to Learn. It was a great course about how to learn effectively, which introduces learning methodologies based on how human brain works. There are various topics covered in the course, but which I started to apply right now is the Pomodoro Technique.
It’s a time management method which uses 25 minutes timer. Wikipedia describes as follows, and also there’re various web sites which covers this topic.
There are five basic steps to implementing the technique:
- Decide on the task to be done
- Set the pomodoro timer to n minutes (traditionally 25)
- Work on the task until the timer rings; record with an x
- Take a short break (3–5 minutes)
- After four pomodori, take a longer break (15–30 minutes)
I once tried to use more complex time-management system, but failed to keep using them. But this pretty-much simple process of Pomodoro works well. I regularly use todo list for managing daily work, but I sometimes face several issues, like
- Procrastinate large tasks by starting from small ones.
It’s easier to close smaller tasks and tends not to do the large or difficult work. Looking at task list, just completing a task drives the motivation, and then results in keep repeating on smaller tasks. Or, just avoid working on tasks and start playing games instead.
- Feel bad about incomplete tasks at the end of the day.
Over-time, tasks are piling up and it becomes difficult to complete all the tasks planned for the day. Not feeling well, and also cycle back to focusing on smaller and easier tasks.
Then, with pomodoro,
- Just start the initial work for large tasks.
The interesting factor of Pomodoro is structured on the “process” to take limited-and-focused time rather than focusing on “completing” tasks. It’s ok to split a large tasks into smaller ones, and also doesn’t have to feel much pressure on completing tasks on each pomodoro cycle.
- Feel OK seeing the number of completed Pomodoro along with the todo list.
It feels a little better to see the daily activities (with graph) based on the amount of time focused in addition to the number of completed tasks.
It’s working well to avoid procrastination. Also, it has similar agile development methodology. Rather than planning for the task completion beforehand, just start with small chunk and run as fast as you can. Then, We can adjust the direction between pomodoro or at the end of the day.
In a longer term, planning process is definitely important, but it can raise the threshold of taking actions. The fear of planning and completion requirement can cause the procrastination. This short period time of sprints and periodical retrospection would be a good approach to maintain the speed of the work.
Some watching notes of the above talk. Mostly about first-half of the talk. second-half is more conceptual and couldn’t understand enough.
[Around 8:00] Microservice concept affects the team structuring. Instead of having technology oriented team structure like UI, Server and DBA, cross technology members can build a team which responsible end-to-end relatively smaller service product.
[Around 8:30] The historical SOA (Service Oriented Architecture) is somewhat similar concept as Microservices, but SOA was focusing too much of smartness in the center of communications which leads to complex structures. Instead, Microservice tries to put the small set of smartness in each endpoint. What’s required is the powerful communication channel between endpoints.
[Around 12:00] Infrastructure automations are required for managing many services, with continuous integration or green/blue deployment technologies. Without this backbone, Microservice approach will fail.
[Around 14:30] What’s the difference between Microservice and SOA? SOA has too broad meaning, and Microservice concept can be considered as useful subset of SOA.
[Around 17:00] How big the Microservice should be? Many organizations are reluctant to answer this question straight. Actually, asking how many people are involved in a service results in wide variety of answers. It’s difficult to find one solution, but amazon’s 2 pizza team is a good notion.
There’re so many MOOCs (Massive open online course) lately, and I’ve completed around dozen of them during the past few years. They’re mostly pretty much well structured by the professors from the popular universities.
The above awesome-courses has a great set of courses mainly for computer science field. There’re so many vendors, but what I’m using are
They’re both nice. Then, my favorite courses I joined so far are,
Stanford University Cryptography I
- The course explains the basic and popular cryptography algorithms. Also, it has nice set of practice problems which includes cracking the encryption which has some flaw in implementation.
École Polytechnique Fédérale de Lausanne Functional Programming Principles in Scala
- The lecture from the creator of Scala. It covers the fundamental model of functional programming, and also good set of exercises to capitalize the power of Scala – pattern match, immutable data structure, higher-order functions, etc.
The MOOCs provides good opportunity for learning new field, through the combination of video lecture, exercise, and discussion forum. Even the field I thought I’m already familiar with, trying out a course provides new insights. I love it.