Is it true that a software engineer enjoys more perks and incentives, flexibility, financial security, quick career progression and more opportunities
Vs network engineer who has few and rare good chances, less flexibility, no job security, more stressful, are rarely in demand and always get blamed if something gets wrong?
I've not found any of those points to be true for me personally. I think you got to do what you like, that's the way to success. Now there are challenges in all arenas right now.
One point in particular that I'd like to mention is that you say software engineer is less stressful. As a software engineer, you can make a single mistake that causes some exploit and causes something like happened with Playstation Network. As a software engineer you are more directly responsible for data integrity. As a network engineer, you are responsible for keeping the pipes flowing. Outages can cost huge amounts of money per her, but I'd rather be responsible for that than more directly responsible for data integrity (just me though).
When you are considering network security instead of just network engineering, there is more emphasis on that responsibility. However, netsec would be limited to protecting the network itself if software engineers had no errors in their code. I know that this is a tangent, but most of the network security is trying to fix software designers mistakes. That in and of itself is getting more difficult with the wider adoption of encryption.
Regarding always getting blamed, you have to learn how to troubleshoot. The network gets blamed for everything. A good engineer won't take that blindly. Additionally, not communicating the real problem does nothing to keep it from happening in the future. If it is the network, accept that responsibility. If it is a carrier, make that known. If it is an application malfunctioning, make that clear. My advice is to learn to do protocol analysis with a packet sniffer.
I could say the same things, but reversed. Software engineers always face deadlines, impossible goals, constantly having to strive for performance optimizations, stability being TANTAMOUNT in software, constantly checking for bugs, etc. The list goes on.
No job is perfect. The job market where you are locally may not be the same as where I am - but I see just as many openeings for Network as I do software programmers - the difference being, all of the programming positions are super-specific. They want someone who as worked with Ruby on Rails vX, whereas.....with networking......not so specific.
Do what you enjoy, put diligent quality effort into becoming proficient at it, and success will follow. Whether this is software engineering, network engineering, or basket weaving. Formula stays the same....
Best of luck!
Not really sure on what criteria you've managed to distinguish between the two, I would've thought network engineering is effectively software engineering, albeit from a high-level, though perhaps a little more narrow in scope.
Hardware would be a little pointless without software and vice versa, as we enter the era of Software Defined Networking (SDN), I'd say the opportunities will be equally rewarding (for those with the right skills of course).
uh... I would have to say sometimes it may be true, but as the others have stated, you need to do what you like. I started out thinking I wanted to be a software developer and while in collage, quickly learned I wanted nothing to do with it. I was a little scared of the hardware side, but once I got into it, I found it much more rewarding than developing software.
It would also depend on your emloyer and what kind of a environment you work in.
It's funny you should mention that Daniel. Starting my career as a software developer, I used to think the same. I thought the role of a software developer/engineer would be a higher paying job. Having rotated through roles of systems engineer, software engineer, test engineer and network engineer; I would have to say that flexibility and security depend on the company or department more so than the role.
Knowing what I know now, if I were to do it all over again, I might have spent more time as a systems engineer.
Thank you all for your comments. would it be right to choose a career which is in demand and available then gradually move on to something else that you might like or choose the one that you like from the beginning?
I would say that depends on you Daniel. You control your destiny and what you make of it depends on the decisions you make.
Sixteen years after my first engineering job, I can say I've had jobs I've loved and jobs I've less than desired, but I could generally pick one thing I enjoyed from each. I've also changed roles many times, based on what I saw as roles being in demand. I attribute my flexibility from working at a startup that required me to program, be the sysadmin, network guy and SE.
I used to code as a network engineer, so the alternative might be a job that let's you do everything.
Regarding your question on choosing a career, Marcus' first sentence provides much insight.
Likely nobody here can tell you the best way you should proceed. Much of that will depend upon your desires, your goals, and your current situation. In my experience, you'll be much happier (read: fulfilled) in the long run if you get started in the career that you enjoy. You'll constantly be gaining experience in something that you want to continue and will therefore more easily stay in that field. Starting in something that you don't entirely enjoy may make transition to a different field a little tougher. Note, it won't be impossible, but maybe slightly harder as the more experienced you are, the more employers look for experience in the field in which you are applying. Certainly there can be some overlap thta provides transitional skills.
However, you may be in a situation where you cannot afford to prolong your search for that "perfect" job and must take something sooner for financial or other reasons. There's no harm in that - we must do what we need to survive. Don't lose sight of your goals, however. Continue to work in your field(s) of interest through self-study and volunteering for assignments when possible, even if that means "overtime" for you. In the end, you'll be the more experienced person and your peers will recognize your drive and teamwork.
Best of luck!