5 answers
5 answers
Updated
Trent’s Answer
I expect you will get many answers to this question. There are many different layers to creating a software program. Most people see what appears on the computer screen or on the phone as the entire software product, but the display is just a small part of it. Granted there are full stack engineers who do it all.
IF you want to write code that is a great deal of the job. Before you start writing code you will need to know what the outcome of the code should be. So, somebody else will likely have a product idea or a new feature to an existing product. Then discussions will take place to acquire more details. It is likely that engineers will discuss the best approach to take. Then you might need to write design documentation. You will eventually get to write that code. You will need to test that code in an appropriate environment. Those are some of the things you might to in a formal job as a software engineer.
Keep in mind not everybody is writing code for the general public. Many software applications are of the internal operations of a business but you will still be writing solutions. It is a great occupation if you like to be creative. I hope this helps.
IF you want to write code that is a great deal of the job. Before you start writing code you will need to know what the outcome of the code should be. So, somebody else will likely have a product idea or a new feature to an existing product. Then discussions will take place to acquire more details. It is likely that engineers will discuss the best approach to take. Then you might need to write design documentation. You will eventually get to write that code. You will need to test that code in an appropriate environment. Those are some of the things you might to in a formal job as a software engineer.
Keep in mind not everybody is writing code for the general public. Many software applications are of the internal operations of a business but you will still be writing solutions. It is a great occupation if you like to be creative. I hope this helps.
Updated
Jerome’s Answer
Trent's right. Software engineering is a huge field; depending on your situation, you may be involved in design (architecture), writing code (development), testing code (QC/QA), testing program interaction with systems (system test), documenting, supporting, managing, or any mix of the above. You may also find yourself doing different things during different parts of your career, and even shifting from function to function in the course of developing a particular product or working in a particular team. Flexibility, adaptability, and curiosity are the basic traits that will enable you to succeed in the software engineering arena; develop those early and keep your skills honed.
Dan Wolf
Retired Electrical/Software Engineer and part-time College Professor (BSEET and MS Engineering Management)
129
Answers
Updated
Dan’s Answer
I am a retired electrical engineer who originally designed microprocessor-based strip-chart recorders but then transferred to writing software for engineering applications. I worked with the following:
Strip-chart recorders via assembly code
Liquid Chromatography Flowmeters via BASIC code
Steel Mill product tracking code via FORTRAN
Pay Phone software via assembler
Nuclear Reactor control and protection via PLM-86
Tracking of a camera film manufacturing process via PASCAL
Railroad freight locomotive braking systems and event recorders via C
Mass Transit vehicles via C
Arduino C (while teaching college classes at night)
Raspberry PI Python (while teaching college classes at night)
Programmable Logic Control, i.e. PLC (while teaching college classes at night)
In addition to writing software, I managed projects and other engineers, tested safety-critical software (where human life was dependent on the software working correctly), peer-reviewed software of other engineers to make sure it worked correctly, assisted the sales staff with client presentations, hired other engineers, managed a team of engineers who monitored the quality of the product development, and taught evening engineering classes.
My career can be summarized as "development of embedded control products" or more simply "controlling physical machines". For comparison, my wife wrote software for the banking industry. Her work didn't control things, rather it allowed the banking staff to track and control the flow of money within the bank. We are able to understand each other's work explanations but neither of us can actually do the other's work. i.e. It's the exact same work, just different. And a description of everything that is involved with software engineering is likely to be unlimited.
In conclusion, yes, you will write software and that could be all that you do. However the type of software and how it applies to the business or product is almost unlimited. And there are many other tasks, related to software that you may choose to do, given your interest and abilities. Your career will evolve over time as you learn new things (everything is always changing and the rate of change is always increasing over time).
It's a lot of fun!!!
Strip-chart recorders via assembly code
Liquid Chromatography Flowmeters via BASIC code
Steel Mill product tracking code via FORTRAN
Pay Phone software via assembler
Nuclear Reactor control and protection via PLM-86
Tracking of a camera film manufacturing process via PASCAL
Railroad freight locomotive braking systems and event recorders via C
Mass Transit vehicles via C
Arduino C (while teaching college classes at night)
Raspberry PI Python (while teaching college classes at night)
Programmable Logic Control, i.e. PLC (while teaching college classes at night)
In addition to writing software, I managed projects and other engineers, tested safety-critical software (where human life was dependent on the software working correctly), peer-reviewed software of other engineers to make sure it worked correctly, assisted the sales staff with client presentations, hired other engineers, managed a team of engineers who monitored the quality of the product development, and taught evening engineering classes.
My career can be summarized as "development of embedded control products" or more simply "controlling physical machines". For comparison, my wife wrote software for the banking industry. Her work didn't control things, rather it allowed the banking staff to track and control the flow of money within the bank. We are able to understand each other's work explanations but neither of us can actually do the other's work. i.e. It's the exact same work, just different. And a description of everything that is involved with software engineering is likely to be unlimited.
In conclusion, yes, you will write software and that could be all that you do. However the type of software and how it applies to the business or product is almost unlimited. And there are many other tasks, related to software that you may choose to do, given your interest and abilities. Your career will evolve over time as you learn new things (everything is always changing and the rate of change is always increasing over time).
It's a lot of fun!!!
Updated
Craig’s Answer
write code to command machines to do tasks
Updated
Mamdouh’s Answer
Hi Danny
As everybody mentioned, this is a vast field. In software engineering you apply principles to design, develop, maintain, test, and evaluate software.
The process involves definition, implementation, assessment, measurement, management, change, testing and improvement of the software life cycle. It relies on software configuration management to control changes to the configuration, maintain the integrity and traceability of the configuration and code using software versioning.
Hope this helps a bit and good luck
As everybody mentioned, this is a vast field. In software engineering you apply principles to design, develop, maintain, test, and evaluate software.
The process involves definition, implementation, assessment, measurement, management, change, testing and improvement of the software life cycle. It relies on software configuration management to control changes to the configuration, maintain the integrity and traceability of the configuration and code using software versioning.
Hope this helps a bit and good luck