|
Apart from knowing atleast one programming language absolutely inside out, its important to first be aware (at least) of the basics of computer science (algorithms, OS, architecture, data structures, graph theory, automata). After that, you'd look to specialize in one area of mainstream (software/hardware) engineering. |