What is a software engineer role and what are its responsibilities
A software engineer is supposed to be familiar with a variety of programming languages and frameworks as well as the development lifecycle. He/she also needs to possess good communication skills and have an eye for detail to implement all the instructions by the business.
“What is a software engineer role and what are its responsibilities”
For every company, programmers are the backbone of the development department. The rise of software engineering has seen an increase in such people and their demand as well. Here are some things that a software engineer is supposed to do:
Programming languages : A knowledge of different programming languages would be useful for any person who wants to work in the job section. The tools you use and work on all depends on which language you want to use or your preference. Having a good knowledge of C, C++, Java, PHP and Python would make any programmer seem more experienced. However, this is not mandatory for getting such jobs as well. Depending upon the kind of job you want to get into in your career, you might need to choose one programming language over another.
What do you know about software engineering processes
In Waterfall, the first process is followed where the business requirements are outlined, a design is created, codes are developed based on the design and then tests are performed after every phase. In Agile or Iterative methodologies, the process is reversed where first a prototype is created and then it is worked upon until business requirements are met. The processes are explained below:
Waterfall development process: In this method, a series of actions are carried out one after another. The steps include requirements analysis, design, implementation, testing and deployment. For example, in the development of a software application for an online store from requirement analysis to designing the system to developing it to deployment – every step is carried out one after the other.
Advantages: In this method, the requirements of the system are clearly defined and thorough testing is carried out to ensure reliability and quality. Since the process is sequential, there are less chances of changes affecting other processes.
How would you approach resolving a problem with a software program
Identify the cause of a problem, try to find a solution, check if it works and fix any bugs. If the problem is complex one or the solution I came up with is not working then I would ask for help or go to Google or ask another person for their opinions and try to find a better solution.
Identify the problem:
An error message appeared. What is the cause of this problem? I think it is a bug in your code and needs to be fixed. What is missing? I need to know where this button is so I can fix it.
Try to fix it:
I would add a function called “PANIC”. This function will handle situations like this. When the button is pressed it will call the function PANIC. PANIC will do a case statement to find out which panic mode to use and displays to user that mode along with an error code.
Check if it works:
Describe your experience with coding languages and tools
I have worked with Python, C, C++ and Java while working on application and scripting software. I was able to quickly pick up the syntax and functionality of these languages. I also possess the skills to write programs using these programming languages. I am also able to pick up new coding languages quickly.
I also have experience using various coding tools. I worked with Eclipse IDE and Android Studio while working on Java applications. I had to compile the code using javac compiler tool and also debug the code using jdb debugger tool. During my internship, I worked on C++ Development tools like Microsoft Visual Studio 2012, Code::Blocks, Dev-C++, CodeLite and Borland C++ Builder. I used GDB debugger for debugging the code.
I worked on Google App engine with Python language. I was able to get started coding using the Python language with the help of tutorials provided by Google. I made use of Flask framework and SQLAlchemy libraries for developing applications. This helped me in quickly getting started with the coding on app engine.