But a basic understanding of computer architecture and organization is important for professional developers. Beyond the very elementary level, it's hard to do much in computing unless you understand how operating systems manage storage and processes. A basic understanding of operating systems concepts includes some knowledge of how the system handles multitasking, process coordination, concurrency, security, and scheduling, as well as device, memory and file management. Additionally, skill with operating systems entails some basic systems management - arranging things to get the most out of an application or making system specific modifications. On another level, if you want to write operating systems or components such as memory managers, you will need more detailed knowledge and hands-on experience with operating systems in general and one or more in particular.
Databases are everywhere.
Once considered a field in itself, database skills are now useful throughout computing. As applications become more complex, the amount of data and the number of relationships explodes. Most areas of computing have found it necessary to take advantage of the modeling and organization afforded by modern database management systems. Database skills apply to all applications with large data requirements, including software engineering tools, artificial intelligence applications, and knowledge-based systems. To make better use of database tools, it helps to understand the underlying approach to data modeling.