Software Engineering

Status
Not open for further replies.

poorbugger

Distinguished
Hello all, I am taking software engineering course in my university and in October it will be my third year. If anyone could share my career paths as a software engineer, that would be nice. Because I have no idea what even is a software engineer or what other jobs i can take with this degree. I have learned about Java and C++ programming, html and php. I also learned about some operating system stuff and requirements for software engineering stuff like that. I love building pcs or anything related to components.
 
Hello all, I am taking software engineering course in my university and in October it will be my third year. If anyone could share my career paths as a software engineer, that would be nice. Because I have no idea what even is a software engineer or what other jobs i can take with this degree. I have learned about Java and C++ programming, html and php. I also learned about some operating system stuff and requirements for software engineering stuff like that. I love building pcs or anything related to components.
I graduated 35 years ago. I have written code. I have been a software tester. I have been a database administrator. A database designer. A system architect, and a hardware buyer. Probably some more things I have forgotten. I have been lucky to work for one large company for my entire career.
The job of writing code is a VERY small portion of what a software engineer does. Design, documentation and communication skills are more important than knowledge of language syntax. Knowing how to break up a problem, create testable units of code (methods or subroutines), and then test and integrate that code with dozens or hundreds of others. Those are the skills that are never talked about in college.
If you want something practical then look for a project on GitHub that you are interested in and that you can contribute to. That is very much what a commercial software engineer does. They are given broken code written by somebody else and are told to fix it. Or functional code and told to add function "X" to the code. Then their code has to be integrated with other peoples code and NOT break any previous functionality.
 
I graduated 35 years ago. I have written code. I have been a software tester. I have been a database administrator. A database designer. A system architect, and a hardware buyer. Probably some more things I have forgotten. I have been lucky to work for one large company for my entire career.
The job of writing code is a VERY small portion of what a software engineer does. Design, documentation and communication skills are more important than knowledge of language syntax. Knowing how to break up a problem, create testable units of code (methods or subroutines), and then test and integrate that code with dozens or hundreds of others. Those are the skills that are never talked about in college.
If you want something practical then look for a project on GitHub that you are interested in and that you can contribute to. That is very much what a commercial software engineer does. They are given broken code written by somebody else and are told to fix it. Or functional code and told to add function "X" to the code. Then their code has to be integrated with other peoples code and NOT break any previous functionality.
Wow thanks for the info. Can i know what kind of projects are we talking about? So what is your current career?
 
Wow thanks for the info. Can i know what kind of projects are we talking about? So what is your current career?
In a large company (there are a couple hundred people working on my current project) senior engineers either become managers or become systems engineers. It just depends on how technical you want to stay. I am a still little bit of everything. I oversee large enterprise system tests. I still define and purchase hardware. I work with vendors on support agreements. And I provide cost estimates to my management and to customers on potential system changes. Customers "window shop" software systems just like anything else. "OOOHHH I want a Threadripper 64 core system" ... OK, that is $6500. "Well maybe a Ryzen 3700" ... Same thing happens, in big companies. Just bigger numbers.
 
In a large company (there are a couple hundred people working on my current project) senior engineers either become managers or become systems engineers. It just depends on how technical you want to stay. I am a still little bit of everything. I oversee large enterprise system tests. I still define and purchase hardware. I work with vendors on support agreements. And I provide cost estimates to my management and to customers on potential system changes. Customers "window shop" software systems just like anything else. "OOOHHH I want a Threadripper 64 core system" ... OK, that is $6500. "Well maybe a Ryzen 3700" ... Same thing happens, in big companies. Just bigger numbers.
Ah i never would have thought that software engineers would be in charge of buying hardware for the company. I'm hoping there's plenty of jobs for this degree in Canada then. Thank you for sharing
 
What was your experience starting off as a fresh graduate?
I was hired as a software engineer. I wrote FORTRAN on a Dec VAX 11-780. I learned from very smart people around me. I did a year as a software tester. THAT WAS THE BEST LEARNING EXPERIENCE!!! I saw everybody's code. Good, bad, REAL bad. I learned what software logging meant and what NOT to log. I learned how to debug other people's code. I learned what kind of forensic trail needs to be left to allow someone to recreate the problem.
 
Ah i never would have thought that software engineers would be in charge of buying hardware for the company. I'm hoping there's plenty of jobs for this degree in Canada then. Thank you for sharing
I didn't start buying hardware for 25 years. That is a big responsibility (and may have a big budget). SENIOR engineers are the system (and hardware) architects. Mess up the hardware architecture and the ENTIRE PROJECT can be impacted. Potentially dozens or hundreds of people are depending on your choices.
I got the job, partially because I am a geek. I ENJOY reading Juniper datasheets. I know the difference between and SFP and an SFP+.
Reminds me of another role I have had. I have been a liaison between the facilities department and engineering. We built a new datacenter for our company. I was the first representative from engineering brought into the project. Why? I understand that hardware that has to go into that datacenter. I know what kind of power receptacles are required (there are LOTS of varieties when you get to datacenter scale).
You are only limited by your curiosity, your desire to do the right thing, and your willingness to do whatever is required. If an area needs to be swept and mopped because you have a VIP demo tomorrow, YOU sweep and mop. "But I am a software engineer!!!" Too bad. We need sweepers tonight.... The attitude of picking up a broom will keep you employed as long as you desire.
 
Human interaction is also a good thing to build upon.
Knowing how to determine what people actually want and need, vs what they actually say.

Long ago, building an application for a 2 user office.
They were in charge of allocating millions of dollars of assets, nationwide.

The boss said:
"I want to come in Monday morning, have it show me everything. I push a button and it allocates everything"

My response:
"Well, if you can define "everything" closely enough, I can code that. And then have it push its own button at 9AM, and we don't need you."

He then realized that there were some actual human choices to be made. But it took prodding from me for him to get that.
Someone else may have just "coded" what he stated.
 
Human interaction is also a good thing to build upon.
Knowing how to determine what people actually want and need, vs what they actually say.

Long ago, building an application for a 2 user office.
They were in charge of allocating millions of dollars of assets, nationwide.

The boss said:
"I want to come in Monday morning, have it show me everything. I push a button and it allocates everything"

My response:
"Well, if you can define "everything" closely enough, I can code that. And then have it push its own button at 9AM, and we don't need you."

He then realized that there were some actual human choices to be made. But it took prodding from me for him to get that.
Someone else may have just "coded" what he stated.
Ah never really liked that subject but thank you again
 
I didn't start buying hardware for 25 years. That is a big responsibility (and may have a big budget). SENIOR engineers are the system (and hardware) architects. Mess up the hardware architecture and the ENTIRE PROJECT can be impacted. Potentially dozens or hundreds of people are depending on your choices.
I got the job, partially because I am a geek. I ENJOY reading Juniper datasheets. I know the difference between and SFP and an SFP+.
Reminds me of another role I have had. I have been a liaison between the facilities department and engineering. We built a new datacenter for our company. I was the first representative from engineering brought into the project. Why? I understand that hardware that has to go into that datacenter. I know what kind of power receptacles are required (there are LOTS of varieties when you get to datacenter scale).
You are only limited by your curiosity, your desire to do the right thing, and your willingness to do whatever is required. If an area needs to be swept and mopped because you have a VIP demo tomorrow, YOU sweep and mop. "But I am a software engineer!!!" Too bad. We need sweepers tonight.... The attitude of picking up a broom will keep you employed as long as you desire.
Thanks for sharing and putting some motivation in me. I'll work hard and hoping i'll succeed like you too.
 
Status
Not open for further replies.