We develop a general method for deriving natural deduction rules from the truth table for a connective. The method applies to both constructive and classical logic. This implies we can derive “constructively valid” rules for any classical connective. We show this constructive validity by giving a general Kripke semantics, that is shown to be sound and complete for the constructive rules. For the well-known connectives (˅, ˄, →, ¬) the constructive rules we derive are equivalent to the natural deduction rules we know from Gentzen and Prawitz. However, they have a different shape, because we want all our rules to have a standard “format”, to make it easier to define the notions of cut and to study proof reductions. In style they are close to the “general elimination rules” studied by Von Plato  and others. The rules also shed some new light on the classical connectives: e.g. the classical rules we derive for → allow to prove Peirce’s law. Our method also allows to derive rules for connectives that are usually not treated in natural deduction textbooks, like the “if- then-else”, whose truth table is clear but whose constructive deduction rules are not. We prove that “if-then-else”, in combination with ┴ and ┬, is functionally complete (all other constructive connectives can be defined from it). We define the notion of cut, generally for any constructive connective and we describe the process of “cut-elimination”.