Today's Question:  What weekend projects have you created?        GIVE A SHOUT



  Data as code

What is a good command line parser API? A good command line parser should consider below 5 aspects: Support convenient help information generation Support sub commands, for example, git has push,pull,commit sub commands. Support single character option, word option, flag option and option with parameter. Support default option, for example, if no -port is set, set it as 5037 Support usage model, for example, tar's -c and -x is mutually exclusive, they belong to different usage models. Here are...

5,822 2          COMMAND LINE API

  Concurrency vs Parallelism

Concurrency and parallelism are two related concepts which deal with executing tasks "simultaneously". From Sun's Multithreaded Programming Guide: Concurrency: A condition that exists when at least two threads are making progress. A more generalized form of parallelism that can include time-slicing as a form of virtual parallelism. Parallelism: A condition that arises when at least two threads are executing simultaneously. These two definitions are too formal to be understood easily. On t...


  What do programmers like to say usually?

Coding is an very important part of programmer's daily work. But beyond coding, programmers need to do other work as well, they need to fix bugs reported by users, they need to write documents for their codes. Also, they often need to answer questions from customers, bosses and colleagues. What do they often say when they are facing different sort of questions? Today we share some. It's done. I just need to clean up a few things. This is hacky, but I'll fix it soon. This can never happen: It's ...

14,970 6          PROGRAMMER BUG EXECUSE

  4 types of programmers

Not every one who writes code is a programmer. Programmers are people who live with programming. There are 4 types of programmers: scientist, coder, expert and artisan.Scientist, they are more like mathematicians rather than programmers. They invented various theories, algorithms and terminologies. Proofs and calculations in textbooks are all from these people. Moreover other programmers more or less benefit from their work. Sometimes one paper published by them can change the way of thinking of...


  Does CEO of a tech company need to know programming?

For tech startups, there are usually only a few people at their early stage. To complete all the coding work in a short period time, it often requires that every one of the team including the CEO knows something about programming so that they can help complete the tense work as soon as possible. But does the CEO of other tech companies also need to know programming? As the CEO of a company, it's not necessary that they have to know about programming. The main job of CEO is to coordinate all the ...


  Simple explanation about process and thread

Process and thread are two basic concepts of operating system, but they are a bit abstract which cannot be  mastered easily. There is an analogy which explains these concepts very well. 1. The kernel of the computer is CPU, it handles all the computing tasks, it's like a factory and will run all the time. 2. Assume there is power limitation for the factory, it can only supply to one unit once,i.e, when one unit is working, other units must stop and wait. The meaning behind this is that eac...


  Should we use Abstract class or Interface?

When we write programs, we may often get into a situation where we don't know whether we should use Abstract class or Interface when we want to define an abstract object. These two are very similar and they are interchangeable in many cases. On Stackoverflow, this question is asked lots of times and it's related to many programming languages. Also in the official documentation of PHP regarding the Abstract class and Interface, people are arguing about this. To understand this question, their dif...


  How to be an excellent programmer

To use a programming language is very easy for a programmer, but it's a dream for many programmers to be an expert software developer. There are five levels of programmers: Novice, Senior novice, competent, proficient, and expert. Most programmers are senior novice. And programmer living in this level are a lot of people who have 1 to 10 years work experience.As a programmer, how to find the bottlenecks for your improvement and how to improve yourself quickly? This is really not an easy question...