I think that someone who is considered Software Engineer must have solid knowledge of OOP, the importance of a clean code, know about software architecture, development practices, usability, software quality, and more, too should have some years of experience in different roles. The studies really are relative, many times the university does not prepare you for the work, the technology and the software advances quite fast so that the self learning is essential.
Any path you choose for studying means you have a chance to learn all of these things but I like how you said a SE 'must have solid knowledge.' Seems to imply that this type is expected to have practical and theoretical know-how, not just one or the other.
I also concur that an understanding in all the areas that make up software development are extremely important for one labeled a software engineer, this person should be more proactive in their approach. While the developer label, to me, belongs to one that creates software solutions and may have formal education they don't engineer the software and tend to be more reactive versus proactive. A programmer doesn't need any formal education just some experience or some internet skills.
I really like that thought, 'reactive' vs 'proactive.' Thanks!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.