We bound the minimum number of wires needed to compute any (asymptotically good) error-correcting code with minimum distance , using unbounded fan-in circuits of depth with arbitrary gates. Our main results are: 1) if , then ; 2) if , then ; 3) if or for some integer , then , where , , and the operation gives how many times one has to iterate the function to reach a value at most 1 from the argument ; and 4) if , then . For depth , our lower bound gives the largest known lower bound for computing any linear map. The upper bounds imply that a (necessarily dense) generator matrix for our code can be written as the product of two sparse matrices. Using known techniques, we also obtain similar (but not tight) bounds for computing pairwise-independent hash functions. Our lower bounds are based on a superconcentrator-like condition that the graphs of circuits computing good codes must satisfy. This condition is provably intermediate between superconcentrators and their weakenings considered before.