The next should be to find a subject you relate to or passionate about as it helps with the sense of purpose. When you spend so many hours and years working, being able to work on subjects that matters to you and with people you trust and support you, makes a huge difference.
The technical challenges, technology, languages etc can come next, there is always a tough problem to solve in anything worthwhile working on, additionally, choosing to become an engineer you are basically signing up for learning and evolving constantly throughout your entire career. As such focusing on a language, O/S or specific technology would not be the optimum priority.
Be a software engineer can involves many kind of jobs and environments , it depends but I prefer being in a free environmente with freedom and creative such s apps development or bots develpment, you may take you own decisiones to deploy a plan but ther are more such as:
Software development, modeling, simulation, testing, and quality assurance.
Analysis of user requirements, software, and code.
Completing systems risk and reliability analysis.
Monitoring systems performance.
Perform maintenance and software integrations for existing systems.
Maintain or exceed compliance with industry standards.
Application development for the full lifecycle of software.
Identify and assess new technologies prior to implementation.
Planning and Project Management
Developing and executing project plans.
Creating technical specifications.
I have two answers. I prefer to work in environments where I can see the direct impact on the clients, teams or business initiatives that I serve. I also prefer to work in environments where I get a chance to build, test, review, design/redesign...in other words I prefer to work in environments where I get some time to think :).
While technically, my title is not as a software engineer, I have been writing code, in various languages, for many, many years. The one thing that I ensure that I carve out is time to think about what I am writing and how what I am writing works for today and then down the road. In my view, this type of anticipatory development can only happen if you know why you are doing what you are doing.
After starting with and understanding "the why" there is no shortage of tools that can get you to the end in an efficient and collaborative manner. Which brings me to a third answer..collaboration...I really enjoy spaces where I can collaborate with others. In my experience, this is time well spent and generally yields better results.
Hope you find this answer helpful. Best of luck to you!
- will respect self and other teammates
- will take responsibility of own works and words
- can collaborate and provide support to each other
- can allow open discussion to explore different designs or opinions
- is open to new ideas and can accept calculated risks to innovate
- can allow and accept mistakes that are reasonable