programming

the art of programming involves much which goes beyond specific languages or tech. there are many human aspects involved like choice of tools, languages, the approach, project management...

communication

effective communication is an important part of engineering. an engineer should be able to precisely share what he thinks about the project, the problem, the approach or the comments made by others. it involves quite some learning by observation.