Posts

Showing posts from February, 2021

ANY_VALUE and FIRST/LAST (KEEP)

Image
  ANY_VALUE and FIRST/LAST (KEEP) The FIRST and LAST (a.k.a. “KEEP”) aggregate functions are very useful when you want to order a row set by  one column  and return the value of  another column  from the first or last row in the ordered set. I wrote about these functions in the past; for example  here  and  here . To make sure the result of the FIRST (LAST) function is deterministic, we have to define a tie-breaker for the case that multiple rows have the same first (last) value. The tie-breaker is an aggregate function that is applied on the column we want to return. For example, the following query returns for each department the FIRST_NAME of the employee with the lowest SALARY. If there are multiple employees with the lowest salary in the same department, the query returns the “minimum” first_name – so here the MIN function is the tie-breaker. In this example the lowest salary in department 90 is 17000, and both Neena and Lex have this salary. We use MIN(FIRST_NAME), so the result

Code review

Image
  Why do you do code reviews? Perhaps it’s company policy, just an automatic part of your process, but have you ever sat down with your team and asked what everyone hopes to get out of it? As a developer, has it ever felt like playing a strange board game where the rules are secret and keep on changing? Or as a delivery manager, have you ever been puzzled why reviews sometimes seems to take longer than writing the code itself? These are some of the things we were asking ourselves at BBC News a year ago. We’re not sure we’ve found all the answers yet. But we think what we’ve learned so far has improved our engineering culture and helped to make code reviews a better experience for everyone. In this post I’ll share why we started asking these questions, and some of the things we found out along the way. Our first taste of remote-first working Throughout 2019 the teams working on the BBC News and World Service websites went through a period of rapid expansion and changing priorities. What

Best Free Resources For Programming, Software Engineering, and Data Science

  Do you know that you can take the courses from MIT, Stanford, and Harvard for free? Lots of their un d ergraduate and graduate-level course materials are for the students around the globe to use for free. I am going to talk about some of the resources here. I know there are so many very bright and talented students in the different parts of the world who cannot go to all those great schools. But they have the potential to learn. In the tech industry, you can get a job even in Google, without a tech degree. Only the knowledge matters. If you are interested to put the time and effort, you can become a tech giant even if you cannot go to a big school. Here are the resources. MIT You will be amazed to know that you almost can get the course materials of all the undergraduate and graduate-level computer science courses free. You will find courses from all the areas of computer science including: introduction to computer science and electrical engineering, engineering problem solving, Dyna