HNHacker News
TopNewBestAskShowJobs

jasonlhy

8 karma · joined April 20, 2017

submissionscomments
jasonlhy··on Absolute truths I unlearned as junior developer
1. Code and communication are the most important. If you are writing extremely bad code, you will be annoyed how much time you will need to go though to find the bug. The more you do, the more you will not like to touch the code even they are written by you. (I have seen someone with this experience) Understanding what your teammates are doing is also important in order to support each other and provide valued advices, in this case code is a communication medium.

2. To write good software, we cannot just be a coder, we need to understand the business and the project management

3. There are many seniors became senior because of their age not their ability. I am not talking about using a particular tech, I am talking about their mind. Many of them still think like junior even they are at a senior position, the way they are working didn’t scale at all.

4. Fundamentals is very important. https://hackernoon.com/the-doctor-and-the-scalpel-78656f508c...

jasonlhy··on The Many Flavors of “Low-Code”
Low code is designed for some specific purposes. If all you need is what it is designed for, that’s totally fine.

The biggest problem is their price and their nature. Many of them are really expensive. And many of them is closed source, which is pretty ironic because everyone is open source nowadays. Except it can be dominate in that area, I don’t think it is valued for a professional developer,

The customisation is poor if you want to do something that is is not designed for, and maintaining is also a nightmare if it is written by a non-disciplined developer.

For quick prototype and you can’t hire skilled developer, yes. But don’t expect you can do too much with that tool and with that person. The biggest bottleneck in software developer is the people not the tech.

jasonlhy··on C is not your friend: sizeof and side-effects
C is a very "strict" language. It do the right thing only if you write the right code. It has many undefined behaviors. One of the undefined behaviors I found when I studied the compiler course. The purposed grammar from https://www.amazon.com/Programming-Language-Brian-W-Kernigha... allows this kind of structure, there can be statements after the switch but before the case labels. gcc also accepts this, but those statements will not be executed. Note: code modified from https://www.tutorialspoint.com/cprogramming/switch_statement...

#include "stdio.h"

int main () {

   /* local variable definition */
   char grade = 'B';
   int a = 1;

   switch(grade) {
      printf("great!\n" );
      a = a + 1;
      
      case 'A' :
         printf("Excellent!\n" );
         break;
      case 'B' :
      case 'C' :
         printf("Well done\n" );
         printf("a: %d\n", a);
         break;
      case 'D' :
         printf("You passed\n" );
         break;
      case 'F' :
         printf("Better try again\n" );
         break;
      default :
         printf("Invalid grade\n" );
   }
   
   printf("Your grade is  %c\n", grade );
 
   return 0;
}
← PreviousPage 2 of 2