Graduate Job Interview Questions

¡Supera tus tareas y exámenes ahora con Quizwiz!

Time management/step savers:

-I was able to break down my job into tasks I would perform, how long they take, what to do per room, what order, and which rooms to be cleaned in what order -fairly logical when you think of it, but when systemise it based on the specific room requirements, the state of environment e.g. people there, messy it becomes something that you have to train towards -had two kinda lists of sorts: one had best-most optimised-shortest path of rooms to complete and in what order (obviously not set in stone, could change on circumstance) but mostly developed around what room people were using when and the size of room/requirements -Then had a more detailed list of tasks to complete per room I.e. dusting/spraying tables first, sweeping second, mopping third, and so on. -As a result was able to not only shave 3-5 minutes per room, but overall saved time by choosing best path of rooms to clean per route

What are the four type of burn down charts?

1. Product burns down chart 2. Release burn down chart 3. Sprint burn down chart 4. Defect burn down chart

Define roles in Scrum

1. Project Owner - responsibility of managing product backlog. Work with end users and customers to provide proper product requirements 2. Scrum Master - works with scrum team to make sure each sprint is delivered on time. Scrum master ensures proper workflow for the team 3. Scrum Team - each member of the work team should be self organised, dedicated and responsible for high quality of work

Different test levels:

1. Unit/component/program testing 2. Integration testing 3. System testing 4. Acceptance testing

What is a class

A class is simply a representation of an object. It is the blueprint/template that defines and captures the behaviours/attributes of a real life thing an object is trying to represent. E.g. dog has attributes like fur colour, size, weight, has behaviours like bark, run, sleep.

What is grey box testing?

A combination of both but not as in depth as either alone.

What are tokens?

A compiler recognises a token, and it cannot be broken down into smaller components/elements. Examples are keywords, identifiers, constants, strings, literals, operators.

What are a constructor and its types

A constructor is a special kind of method that has the same name as its class, and it is used to initialise an object of that class. Default Constructor Copy Constructor Clone Constructor Parameterised Constructor/Alternate Constructor

Composition

A highly restricted form of aggregation where the entities and their containers are highly dependant on each other. This is described by a HAS-A relationship. E.g. A room class belongs to a building class (building HAS-A room). There is a strong relationship here because the containing object OWNS the other object, thus both are tied. If the building is destroyed, the room no longer exists.

What is a method?

A method is like a procedure used to perform some kind of task, a set of instructions. It is option to provide a method data, or have it return a result.

What are the different types of arguments

A param is a variable used during the declaration of the functionality or subroutine, and arguments are passed to the function body should match with what is defined. There are two types of arguments: Call by value - Value passed will be modified only inside the function as a copy of the value itself is essentially made, therefore if you try to refer to variable that you passed in outside of this method the changes/modifications won't be reflected Call by reference - Value passed in will get modified both inside and outside the function you passed it in. If you modify variable within a func, when you access that same variable outside the func it will reflect modifications.

Unit Tests and Unit Testing

A piece of code written by a developer that executes a specific functionality of code and asserts a certain behaviour or state. These typically cover a method or a class. External dependancies should be removed from unit tests e.g. by replacing the dependancy with a test implementation or a mock object created by the test framework These should not be used for testing complex user interfaces of component interaction (should use integration testing for that)

Access Modifiers

Access modifiers defined the scope of the method or variable that can be accessed from other various objects. Private - Something is only accessible within the class it was created Default - Default modifier means that something is accessible within the package and cannot be accessed from outside without getters/setters (PRIVATE ESSENTIALLY) Public - Specifies something can be accessed anywhere Protected - Can access something from within a package and outside a package but only through means of inheritance

Agile testing versus tradition waterfall testing?

Agile testing is done parallel to the development activity whereas traditional waterfall model testing is done at the end of development. With agile, testing is done on smaller features compared to waterfall model where testing is on entire app.

What is scrum

An agile methodology for developing and delivering a complex product - it is used to expand on the finer details when performing agile processes.

What is an object?

An object is an instance of a class. Each will have there own state, behaviour, identity.

Tell me a conflict you've faced and how you dealt with it?

At my tutoring position, I was co-teaching my class with another tutor before noticing that they were giving incorrect information to the students As to not out them in-front of the entire class and potentially embarrass them, I took them to the side and politely informed the of their mistake However they became quite aggressively vocal and were adamant that their version of the information was correct So rather than aggravating them further, I simply took this discussion to a more informed senior who was able to confirm that this particular tutor indeed misguided Because I dealt with this behind the scenes without trying to escalate the issue, as I result I managed to quell the situation before it potentially got out of hand and we were able to return to teaching without any problems or any conflict

When was a time had to achieve a goal outside of your comfort zone?

At the beginning of the year, one of my goals was to strengthen my communication and interpersonal skills, and one of the ways of doing this was to apply for a position as an academic tutor at my university And I did so knowing that being in this role would push me past my comfort zone as it would exercise my least trained/competent qualities So to prepare for this position, I would routinely practise explaining abstract concepts from the unit I was applying for on friends and family members who had no knowledge of the content And as a result of this perseverance I was able to obtain the job, and through exposing myself to such an environment I gradually managed to improve my ability to communicate effectively

Difference between burn-up and burn down

BURN UP and BURN DOWN is used to keep track of progress on the project BURN UP charts represents how much been completed in any project, wheres burn down chart represents the remaining work on a project

What is base class, super class, sub class?

Base class is most generalised class, said to be root class A sub class is one that inherits from one or more base class Superclass is the parent class from which another class inherits

Why do you think you would be good fit for this role? Why do you want this job?

Based on my time at university, and what I've learnt from the past 2 years of varied work experience, I feel like my accumulated qualities make me a suitable candidate for this role. For one, I consider myself competent in both self-directed and team environments which was especially evident during my final year capstone computing project Every sprint, we would have our own tasks that we had to work on individually, but at same time if any member needed any additional support, or was struggling, it learnt it was crucial to go the extra mile to accomodate for such a member so that we could maintain a consistent workflow. I understand this position asks for a andinvidaul that WORKS TIMELY MANNER ON OWN Also understand that this position asks for strong problem solving skills... My tutor position requires a strong level of problem solving, I constantly have to come up with creative ways to explain coding concepts to first year students who have never had any exposure to code before - if someone was struggling to understand concepts I was talking about, I would attempt to draw diagrams and try relating them to real-life objects such as comparing array elements to rooms in a hotel. ^^phrase as store -i.e. had a student, had to explain arrays comparing to real life objects, as a result they were confident enough to grasp and apply concept on their own WHY In terms of why I want this position, I feel like this aligns with what I'm looking for in this point in life, having just graduated, and my overall career trajectory My interest is in technology sector, specifically looking to specialise in cyber and while your role does not offer me that exactly I think it will provide me with excellent foundation to build myself up as a professional and opportunity to immerse myself in an array of skills and technologies in an organisation that I trust and respect. EXCELLENT WAY TO BUILD ME UP PROFESSIONALLY, became an excellent worker for your company or any other company that I wish to work at ------ Fit for job... Mention two + experience in various jobs and uni work I noticed this position emphasises problem solving skills.... Mention problem solving skills in tutor job I know this position requires someone who can handle themselves in both self directed and team environments... Exposed to a team dev environment in capstone, I would make sure to do my part always work to the fullest, submit on time high quality work in a timely manner....do all I can to do part part in this well oiled machine and do it well And if any member needed any additional support, or was struggling, it learnt it was crucial to go the extra mile to accomodate for such a member so that we could maintain a consistent workflow. As for why I want this position...reaching next chapter in my life, want a way to play all this knowledge and skills I've accumulated....want a way to grow both professionally and personally and I feel like this position and what it offers perfectly aligns with that.

What do you think you can benefit?

Based on what I read about your program, I believe this position will be of great value to me for many reasons For starters, I'm at the point in my life where I'm about to graduate uni, and I understand that uni can only prepare you for so much, so I want to find an opportunity to not only apply everything I've learnt so far, but to challenge myself, and allow me to grow both professionally and personally And your X year rotation program, while not-specifically cybersecurity driven, I know that it is an opportunity to develop professional skills, to become accustomed to working in something very close to a real work environment ..real stakes, real impact and responsibility find very appealing (very important experience to have)m But also personally I've briefly touched upon many of the technologies mentioned, so I rent bsdiffethink it would be an interesting to explore these further while being able to contribute to an organisation, so I more than willing to try out all the different technologies offered by this position ^also just exciting opputruinities to work with, different levels and types of people of backgrounds, different experiences from the industry

Static and Dynamic Binding

Binding is the association of a name to a class. Static Binding is binding in which a name can be combined with a class during collection time Dynamic binding is when a name can be identified with the class during execution time

What are the Maturity Levels in CMM?

Capability Maturity Model, is a benchmark for analysing the maturing of an organisation's software development process. Used to refine a company's software dev process and is measured against a scale of five different levels.

Scrum ban

Combination of Scrum and Kraban model for software development.

What is Association

Concept that defines the relationship that two seperate classes have with each other such that one class KNOWS of another class, but none of the objects are part of/member of another. E.g. There is a bank class and an employee class - no reference is made to each other; neither is a member of one another. Both are used alongside each other in main, therefore they are associated.

Importance of daily standup meetings

Daily stand up meetings is essential for any team in which we discuss 1. How much work has been completed (what was done yesterday) 2. What plans to resolve technical issues (any issues) 3. What steps need to be done to complete the project (what is your plan for today)

What is a Taskboard

Dashboard that shows progress of the project. Contains: User Story: has the actual business requirement To Do: tasks that can be worked on In progress: tasks in progress To verify: tasks pending for verification or testing Done: completed tasks Could use something like troll for this

What are the best practises for Unit Testing?

Dev writes test cases at the first stage to help check the functionality of each module independently Best unit testing pro is to copy and paste code in the testing environment Use testing frameworks like JUNIT and TestNG for automating the testing process. Help you verify either all test cases are well written or not

Difference between agile and scrum

Difference - agile is a broad spectrum, a methodology used for project management while Scrum is just a form of agile that describes the process and its steps more concisely. Agile = practise (methodology for project management), Scrum = procedure to pursue this practise (form of agile) Similarity - agile involves completing projects in steps or incrementally. Agile is consider to be iterative in nature. Scrum is also iterative and incremental given that it is a form of agile.

Time worked in a team that was bad? Or describe a challenging workplace situation you had to deal with:

During my final year capstone computing project, one of our team members was in the unfortunate position of obtaining a full time job in addition to full time uni mid-way through the project, so they began to fall behind on their respective elements which put the team as a whole in a difficult position. To resolve this, I sat down with him and discussed what we could do to potentially alleviate this pressure, and together we came up with a way to allocate additional work to other members of the team, including myself, in order to accommodate for his situation. As a result, our team was able to complete more tasks within the allotted deadline than we would've if we did not address our affected team-member

What is Encapsulation? (What concept exposes only necessary info to calling functions)

Encapsulation is the concept of creating and defining restrictions on an object by wrapping variables and methods together inside a class. This essentially means making member variables private so they are only accessible from the outside through public methods such as getters and setters. EXPOSES ONLY NECESSARY INFO TO CALLING FUNCS. Makes data less visible from the outer world Access modifiers control level of visibility of data (public, private, protected, default) Improve maintainability, flexility, reusability

What is the difference between an Epic, User story, Task

Epic - a group of related user stories User Story - defines actual business requirements - generally created by the business owner Task - to accomplish a business requirement the dev team creates a task

Tell me about yourself

FINAL YEAR COMPUTING STUDENT specialising in cyber security although I have exposure to software engineering though the various electives and projects I've taken on. I've always had a deep interest in all things technology in general, (messing around with software) ad so my degree was kind of a by product of just narrowing down and harnessing my interest And through my university work, my volunteer work, and my 2+ years of varied work experience, I've learnt the importance of having a strong and consistent work ethic so always try to implement this mindset to all areas of my life EXAMPLE whether at my tutor job, where I make sure to stay behind/make myself available to students out of hours if they need help or in a team situation for a project where I take on additional tasks that nobody wants, I always try to exercise a solid work ethic In terms of what I like to do, aside from programming, I also like to be quite creative. For instance, as a hobby I like to do film projects from time to time, and I'm usually involved in all stages of development - the writing, acting, editing and directing, and so on. And on weekends, I go bouldering to maintain some kind of physical routine in my life, but also because I enjoy the problem solving aspect involved (trying to optimise where to place your limbs to achieve the best route) And I am also a fairly avid reader But yeah, that's me

What strategies use to motivate team?

From the perspective of a team-member, I find that small-scale gestures such as congratulating successes and acknowledging hard work can be quite effective in boosting an individual's morale especially when done regularly Even something as simple as having your contribution recognised can go a long way I also feel it is also important to provide an encouraging environment for those that may fall behind For instance, during my final year capstone computing project which was team-based, we had members that weren't as capable of meeting the deadline for their tasks, and we found that letting them we're there to support them was crucial for motivating them to do what they could do, and comfortable enough to siphon off what they couldn't which overall increased our team's productivity

Abstraction

HIDING UNWANTED DATA AND SHOWING MOST ESSENTIAL INFO... e.g. if you have banking app, you have customer data and they have attributes such as Name, address, BSB, favourite ice cream flavour...not all of that info is necessary so you can hide some of it, extract what is useful... This is OOPs approach to construct structure of real world objects. Does so by only specifying general states and behaviours where more specific actions are left to be implemented... Data abstraction achieved through: abstract methods, abstract classes, and interfaces Abstract methods - Like a regular java method, but servers as a contract in a parent class, telling subclasses that 'you must implement me' - they do not have a body, just a declaration. The sub-classes must provide implementation Abstract class - This is a restricted class that cannot be used to create objects. Only provides partial abstraction as in some methods are abstract some are not. Typically used in cases of parent classes - think if you have a parent Car class, and subclasses Cruiser, Four-Wheel drive, Jeep. There would never be an use-case where you would need to create an object of a 'generic' car, so you make that an abstract class. Java only allows abstract methods in an abstract class, but other languages permit other types of methods as well. Interface - A class populated with only method declarations. Implementing this serves as a contract to the class that it must satisfy those method definitions.

What do you do when things are slow at work or you finished tasks, what do you do?

I always feel the need to be productive, so even when theres downtime I'm always trying to find ways in which I can contribute value to the workplace because that kind of thing is satisfying to me. One notable instance of this would've been during my volunteering experience at the Salvation Army. As soon as I ran out of assigned tasks, I'd usually speak with the manager or nearest superior to see if there are any additional jobs to be completed, or alternatively I'll ask members if they need help sorting out clothes or putting away priced donations And even then if there were nothing else to do, I'd start cleaning the store, sweeping the floors, dusting the shelves and maintaining the displays and overall store presentation So I was never not doing something at that workplace and that's a mindset I've managed to utilise in other work environments and even my personal life to great effect

When were you most satisfied with job

I am person that derives a great deal of satisfaction from helping other and knowing my work has contributed in some way. I experienced this frequently with my tutor position as I was always engaging with students and answering their queries. I would often work with people who had never coded before, so it was always my favourite experience when I was able to help them devise their own solutions to difficult coding problems or successfully get them to understand concepts they were struggling with group projects - its like hey what I did is now part of this bigger whole, I made a contribution.now part of bigger picture. motivates me to do more work and Which actually contributes a small part of why I want this position, because I see a great opportunity to make more valuable contributions, whether it be to my team members, the company as a whole

Do you think you are good at scheduling/organisation?

I consider myself to be good at scheduling and organisation I believe it is highly important skill, so I try to exercise this as much as possible in all aspects of my life For instance when performing university work, I physically note down the tasks I need to complete on any given day - whether it is tutorial questions, revision, or assignment work (or what parts of the assignment) From there, I typically assign an estimated beginning and completion time for each element, and organise them each task based on their priority, and the expected completion time of each. This way, in any given day, I am able to maximise the amount of important work completed, so even if I unable to complete all my tasks, at least the most critical tasks have been completed first As a result, I am able to optimise my work throughput, allowing me to maintain a good work-life balance as I have more time for other activities

What makes a team function successfully?

I feel like a capable team supervisor is fundamental to any successful team which is something that became very evident to me during my final-year capstone project See, our team supervisor was always extremely invested in our work, and what we had to say. He'd always check in on our team and individual progress on a weekly basis He'd always provide insghtul advise and useful, constructive feedback on our work because he was wanted our product to be the best it could be and he had genuine faith in us to accomplish that And we found this outlook very infectious and as a result we tended to reciprocate that investment, that enthusiasm into our work Essentially, him caring made us care more about what we were doing, which is why I feel like having strong leadership is very important

What do you bring that other people wouldn't?

I feel my creative background will offer me a different lens when approaching any obstacles or problems in this position. Before, I mentioned that I have an interest in film making in my spare time. It is common with that line of work that you will constantly encounter obstacles, on the day of the shoot, through other processes of the film-making process. There's always the need to come up with creative solutions to practical problems,...if your filming in a shopping centre and your crew is caught in the scene on a master shot, the one chosen to be selected for a final cut, then when editing I could composite in shopping bags to make them blend into the background and make them look. Like. A natural part of the shot. I firmly believe my unique perspective to approaching situations will distinguish me a valuable asset to your team.

Why do you want to do cyber security/computing/technology?

I've always harboured an interest in the information security and technology industries. I've attended numerous hacking competitions for instance and outside of my degree (when I have time) I like to read up about the latest security related news and tinker around with small projects of the like I feel like its such a facisnating subject matter and an enormously relevant in today's society. the way I see it, technology permeates through every facet of our daily lives, every business, government, and person is affected as everything becomes more and more connected Thinking towards the future, as technology becomes exponentially more prevalent, so does the risk they carry, it will become equally important that companies protect their information and engage in cyber security practises So I'm interested primarily due to the sheer sphere of influence, the large role cyber security will play in the present, and especially in the future. SO I feel DOING SOMETHING IMPORTANT Like THIS and BEING AT THE FOREFRONT OF THE CHANGE, I FEEL LIKE THIS WOULD BE A VERY SATISFYING LINE OF WORK And I want to be part of something important, I want to be at the forefront of this growing change, and most of all I want to make a difference where it matters So this career path is a way for me to explore my interests in a manner that will provide me with satisfying and fulfilling line of work knowing that I can make this real change

Do you prefer group/individual situations:

I've had various opportunities to work in both self-directed and team environments and I've found that I am equally comfortable in both At my previous paid position as a cleaner I worked independently, so I was completely in control of everything I did - what order to complete tasks in, when to sanitise certain rooms, etc This contrasts my time working on my final year computing project, which involved both roles. We would come together to brainstorm approaches, actively listen to our ideas, allocate tasks, and establish deadlines before splitting off to do our our allocated coding activities individually There were definitely qualities from both that I enjoyed For instance being on a team meant that I benefitted from asking my team for advice or providing/receiving support on certain tasks but this also means that you can't just be concerned with your own work, but everyone else work Compared to being your own boss but lacking this same level of support So I don't have a preference for one over the other as I feel that it is invaluable to have experience in both modes of work so you're exposed and to a wide variety of scenarios which ultimately make you a more adapt individual

How would react if team received negative feedback about a part of the project that was entirely assigned to you?

Important to take accountability for my actions during a project Of course I would first apologise for letting down my team, but I am large proponent of doing actions over words So first I would ensure I actively take on the criticisms (important not to take things personally), try to truly understand where I went wrong, or ask for clarification if I require further enlightenment Then, when I'm tasked with another segment, I will make adjustments based on the feedback to ensure I don't repeat the same mistakes again And I would be more proactive about asking for feedback to ensure my work is up to a quality standard throughout

What are your goals five years from now and how do you plan to achieve it

In 5 years from now I want to be involved in the technological sector, particularly a cyber security role, at the very least something that involves cyber-security to some capacity (cyber sec role in programming/policy maker capacity) I know I need to a geroundwork, a sediment of professional experience before pivoting to such a trole SO I UNDERSTAND I NEED TO BE IN A ROLE that will allow me to grow personally, professional and expose me to a variety of technologies and practical, real world scenarios to test my skills against From there, I need to obtain certifications to then actually bec considered for such positions at all And I feel like this graduate position would be an excellent foundation to all this, an excellent stepping stone for me to harness my full potentiation, so that by the time I'm able to applying for such a position I have the necessary skills and industry knowledge to benefit any company in the industry

What is achievement outside of uni

In terms of achievements, I joined a WACTF last year, which is essentially a state held hacking competition. I managed to place 20th out of upwards of 200 participants, which I feel was decently impressive given it was first time attending such an event. But what made me really proud of this accomplishment was that I had 'sowed' the rewards, so to speak. I had prepared at home, and at the labs at uni - I put a considerable amount of time into giving my self an edge. So it was just very satisfying seeing a positive outcome result from all my hard work.

What are the basic concepts of OOPs:

Inheritance Encapsulation Polymorphism Abstraction

What is stubbing

Involves simulating behaviour of a component, function, etc for the sake of testing. E.g. if you are testing a method and it makes a call to a method that returns a fixed value of some kind, instead of making an actual call, you would just have that mock version of the method return the expected value.

(Follow up) Describe the pace at which you work

It is very methodical, so it can sometimes take a little time to get going Because I like to make sure I fully understand (perception of task specifications is correct before. I attempt to work on it) So theres always that slow-start that's spent systematically

Iterative vs Incremental

Iterative - software developed and delivered to customer based on feedback from agile cycles Incremental - software developed in parts/increments. Each increment is a portion of the complete requirements

Describe a successful team project. What was your contribution.

Last year, had to partake in my final year capstone computing project There were 4 of us in total and every sprint we broke down 'epic goals' into smaller manageable tasks However, after allocating each to each person, there were often additional tasks that nobody wanted to take I volunteered myself on numerous occasions to show my dedication to the project and my co-workers The gesture was appreciated and we were often able to meet our milestones prior to the deadline.

What are operators that cannot be overloaded?

Member Selection Scope Resolution Member Selection through a pointer to a function

What do you think about your current boss

My last boss was this very mortherly and good-natured individual when it counted but she would also be incredibly driven and assertive when it came to getting things done. So it was this great combination and she'd always holds our work to a very high standard So because we all looked up to her and respected her, I would always push myself to work harder so I could meet such a high standard And in doing so, I found myself going above and beyond what I though was possible in terms of my work throughout So working her was a very eye-opening experience to say the least

Problems with waterfall

Not ideal for complex projects where requirements are not clear Needs a lot of time to complete each stage No product will be delivered until the very last stage which is a form of risk

Asked to perform demonstrate skills that were outside of comfort zone

OR mention tutor job and comm skills One instance that I remember quite well was during the beginning stages of my final year computing project See, during the initial briefing I became quite overwhelmed with the information presented to me. Needless to say, there was a lot of information to unpack in one go and it made me quite stressed and worried about how I was going to be able to complete this project So to address this I tried to break down the entire project specification, systematically each point to solid what I did understand and properly identify what I didn't Then whenever I did encounter something I was unsure about, I researched that particular element until I did, or asked questions to people with more insight than myself And after going through and carefully reading and clarifying each section bit by bit, there was no confusion regarding the requirements of the project So I was able to immediately start working on the project with complete confidence that my perception of the requirements were correct thus avoiding any future misunderstandings

What is a challenging experience and how you resolved it. Explain what you did and the result you obtained.

One instance that I remember quite well was during the beginning stages of my final year computing project See, during the initial briefing I became quite overwhelmed with the information presented to me. Needless to say, there was a lot of information to unpack in one go and it made me quite stressed and worried about how I was going to be able to complete this project So to address this I tried to break down the entire project specification, systematically each point to solid what I did understand and properly identify what I didn't Then whenever I did encounter something I was unsure about, I researched that particular element until I did, or asked questions to people with more insight than myself And after going through and carefully reading and clarifying each section bit by bit, there was no confusion regarding the requirements of the project So I was able to immediately start working on the project with complete confidence that my perception of the requirements were correct thus avoiding any future misunderstandings OR person that said bad info in job

Please give example where you were required to change directions of project midway through

One notable instance of this occurred during my final year capstone computing project. For context, we were required to work in two teams on the project for a single client, and essentially every major decision on technology, design, etc had to be run through that client We had initially confirmed to use Docker to deploy our application because it was flexible and met many of the project requirements, so the client agreed to using this However, near completion of the project, the client decided that he didn't want us to use Docker anymore So first the thing we had to do was identify the additional tasks - what parts specifically needed to be removed from the app, or transferred over, the researching for suitable alternatives, and the implementation of the new solution Then of course we assigned and scheduled these new tasks such that the shortest-duration, high-probity tasks were completed first, so that we'd be able to complete as many highly weighted tasks as possible Also because the deadline remained the same, each member took on more components to help speed up the overall rate of completion As a result, we were able to deliver the product on-time, without Docker, where it was able to function in the same capacity as the desired goal

Who is a role model that helped you and made you change the way you think?

One person that comes to mind is capstone supervisor for our final year project His mindset was very pragmatic, very thorough and he had this incredibly strong work ethic Not only this but, usually for these roles students are assigned faculty members to manage them but he was different in the sense that he wasn't a member of the university, and instead owned his own business in addition to doing software development consultancy work on the side. So he was a bit of a hustler. Brought an industry perspective....But that was great because that combination meant he was always very invested in our work and the work we would produce He was very good at providing useful, constructive criticism in an encouraging manner (very used to that) And would consistently hold our work to not just a university standard but an industry standard REALLY PUSHED US TO OUR POTENTIAL So I feel being exposed to that attitude throughout the semesters was very infectious and I feel like as a result, my work ethic has been taken on aspects of this that same enthusiasm and dedication he showed us So his influence is definitely something I continue to carry on into my day-to-day work

Could you describe situations you were asked to work in a team? What did you do/what role did you play? Describe the outcome?

One situation was last year, when I worked as a team member on my final year capstone computing project. My primary responsibility, as with many of the members, was to program my allocated components of the software. While the actual coding portion involved individual work, we met as a team on a weekly basis to discuss how we we're going to break down elements of the program, monitor our trajectory, and approach potential solutions to difficult aspects. So on an individual, I'd make sure to give it my full attention, always make sure to submit my work before the deadline and to a high quality standard, the same with meeting minutes (would always ensure to submit them on the day of meeting, set that limit for myself) if there was the opportunity to take on additional work, I would always take it. And in terms of team work, we always tried actively listening to each other, try to accommodate for strength and weakness (wouldn't give database task to someone who wasn't good at databases), when received feedback would always be sure to incoreperate it into my work So I made sure that, even though I had a regular team potion in the scope of our team, I made sure I played my part in the well oiled machine, and I did iit well. So because I was doing it and everyone else was doing the same, the open communication, and the team work, we were consistently able to reach our milestones before the deadlines.

What is Polymorphism?

Polymorphism is an instance of something in many forms. (Assigning behaviour or value in a subclass to something that was already declared in the main class) Java supports multiple ways of achieving this e.g. polymorphic method, polymorphic reference, polymorphic return types.

Difference between procedural programming and OOPs?

Procedural Based around functions Reveals data to entire program, so no real scoping Complicated in nature so hard to modify and extend, and maintain Offers less code reuse Follows top-down programming paradigm OO Based on real-world objects Encapsulates data Provides scoping and code reuse Less complicated in nature so it is easier to modify, extend and maintain

Product Backlog vs Sprint Backlog?

Product backlog - maintained by the project owner which contains every feature and requirement product Sprint Backlog - can be treated as the subset of product backlog, which contains features relating to a particular sprint only

Five models used in SDLC?

RAD (Rapid app development) Agile Model Iterative Model Spiral Model Waterfall Model

What are valuable steps to resolve while testing?

Record: Log and handle any problems that occur Report: Report the issues to a higher manager Control: Define the issue management process

Five main phases of waterfall

Requirements Gathering Design Development Testing Implementation and Maintenance Each phase is completed sequentially without deviation. Does not require any frequent requirement changes and needs to follow clear documentation at the beginning. The phases and activities are well planned.

What is the importance of the design phase

Requirements specified in form of documents, then converted into logical structure which needs to be implemented in a programming language Useful for specifying hardware/software requirements Complete definition of system architecture OUTPUT of this phase acts as INPUT for subsequent phases

Give some benefits using the V model?

Simple and easy to use Successful because of early integration of test plans (reduces costs of bug fixes) Works better with smaller projects where requirements are small

What is SDLC?

Software dev lifecycle mode. Series of steps that offers a defined model for the development, lifecycle and management for an application.

What are your strengths and weaknesses?

Strength: I pride myself for having a strong work ethic MENTION TUTOR JOB During my occupation as a sessional academic tutor for a first-year computing unit, I often went above and beyond to ensure my students received the best possible learning experience. Every week, we were required to cover the workshop content, however the degree to which you did so was left up to your own discretion. Before every tutorial, I prepared scripts and rigorously tested it against my non-computing friends to guarantee they could understand the concepts I covered. This was crucial as many students often had no coding experience and I wanted to be confident that I was doing my best to explain the information in a way that was most useful to them. After hours, I would also make myself available through the various communication channels for students that needed additional help, even though it was not required of me. I always made sure they knew they could get the help they needed to succeed. I strongly believe that this proved to be of great assistance to my students, as they utilised this additional help throughout the semester whenever they needed, and as a result, a larger percentage of my class achieved passing rates compared to others. Weakness: In the past, I've had difficulties dealing with perfectionism See, I have no problem committing myself to a task, and pouring all my effort into it, however there were numerous occasions where I had taken that to an extreme For example, as a team-member on my final year capstone computing project, I found myself repeatedly dissatisfied with the quality of some of my work so I continually attempted to refine my deliverables as I didn't want to let my team-members down However this resulted in missed deadlines for a number of my other allocated tasks, causing stress to my supervisor and my team as a whole It was a lesson I had to learn the hard way, but since then I have changed my outlook so that I am more conscious my actions and how they affect my team-members Nowadays, I always strive to achieve a balance between doing quality work in the allotted amount of time

Pair Programming

Technique where two programmers work on a team - one writes the code and the other reviews it before switching roles. AD: Improved code quality, knowledge transfer is easy

Difference between test scenarios, test cases, and test scripts

Test Scnarios - any functionality that can be tested Test Cases - Document that contains steps that have to be executed, it has been planned earlier Test Script - written in programming language used to test part of the functionality of a software system

What is black box testing?

Test software with internal structure of code or program. Done to check functionality of an app. Equivalence partitioning Boundary value analysis Cause-effect graphing

What is white box testing?

Testing the code with knowledge of internal structure and source code Involves: Verify the security holes in code Verify the incomplete/broken paths in code Verify flow of structure according to the documentation specs Verify the expected outputs Verify line by line coding and cover 100%

Method Overloading - Static Binding

The ability to define two or more different methods with the same name but different method signatures. E.g. Two methods called userInput, however one returns a double and one returns an int. Both can exist because of the slight differences in arguments, return types. This works because each method (depending on combo of name, arguments, etc) generates a unique method 'address' of sorts, so doesn't exclusively rely on name.

What is inheritance? (What concept is used as a reuse mechanism)

The concept where one or more class shares the same structure and behaviour of another class. It one class inherits from another, it is said to be that class' sub class. There are numerous types of inheritance. Hybrid inheritance Multiple inheritance Single Inheritance Multi-level Inheritance Hierarchal Inheritance

What tasks performed in coding stages?

The design document is converted into an executable programming language OUTPUT is source code and is used in input and maintenance phases

What are the different phases in the Agile method?

The different phases involved are: Planning Requirement ANalysis Design Coding Unit Testing System Integration Testing Non-Functional Testing Acceptance Testing Followed by using agile boards such as Scrum or Kanban Dev is split up into sprints, where all deliverables will be completed in the form of stories

What are beliefs/trends in the business area you are applying for?

The global technological landscape is constantly evolving and growing, and so there are many areas that are becoming increasingly more prevalent in today's society, and in industries as a whole And the area I'm harbouring the most interest towards is cyber security I fully expect this sector in particular to experience exponential growth in the coming years as businesses rely more and more on technology which correspondingly exposes them to more and more risk In terms of trends, I see a huge focus on mitigating risk associated with IoT devices and cloud security is currently a huge issue, especially since nearly all of the major organisations, such as Amazon, Google, Facebook, Microsoft etc, rely on this kind of infrastructure and can easily be exposed to risk due to simple misconfigurations (2017 saw a 300% in direct cloud-based attacks from the previous year) doesn't discount the need to secure softwares

What is the scope of a project?

The goals, objectives and expectation of a product Scope is a well-defined boundary which includes all the processes involved to develop and deliver a software product Defines and identifies what a system will and won't do

What is velocity in agile

The rate at which a team progresses through a sprint. Can be used to predict how much work a dev can complete in a sprint and how much time it will take to complete the project based on current efforts.

Describe situation facing technical issue and normal troubleshooting method wasn't working, what do?

There as such a situation when coding one of my Java assignments, which was essentially a program designed to store period table elements, and I had to just hit a wall in regards of what to do with one of the FileIO/parsing components, specifically what regex to use - none of my usually techniques were able to uncover the source of the problem in my code So I looked outside...I approached my friends with more technical knowledge than myself. I showed them my code and then discussed with them the issue at hand. Following the discussion with numerous friends, a gained a new insight onto my own work, which led to me eventually developing a completely new solution to the problem So I was able to overcome the regex issue, and complete the assignment without more of a hitch

Integration Testing

These aim to test the behaviour of a component or the integration between a set of components (functional testing often synonym for this). These are used to check if the whole system works as intended, reducing the need for intensive manual tests. Tests would resemble expected user interaction with the app. How do unit testing and integration testing differ? Unit Testing checks each module closely whether it works or not WHILE integration testing works on tested units or modules Unit Testing works in simple scenarios, and its scope is narrower. On the other hand, integration testing is suitable for complex scenarios Unit Testing checks the functionality of each module, integration tests how the system works together as whole

What are (Low Level Designs) LLDs or HLD's (High level designs)

These are used to analyse project from a high level POV and low level POV. High level - gives overall system design in terms of functional architecture details, and database design. Low level - like detailing the HLD. It defines actual logic for each and every component in the system. Class diagrams with all the methods and relations between classes comes under LLD.

What is THE INCREMENT?

This is the sum total of all the product backlog items completed during a sprint. Each increment includes all the previous sprints increment values as it is cumulative. I

What is a feasibility study?

This is where you asses how viable a software development will be for an organisation. The software analyst does a complete study to understand the operation, economic and technical feasibility of the project.

What is mocking?

This means creating a fake version of an object or component to serve as a stand in for the real one E.g. In our project, we would test JSON data being sent to particular modules. The some of the model fields would just be references to other models (like their names or something), so during our tests when sending fake test data, we'd also have to mock an object for those fields and obtain the e.g. name of a fake asset object ALL THIS FAKE INFO GENERATED AT RUN TIME.

What is OOPs?

This refers to Object-Oriented Programming system in which programs are treated as a collection of objects. Each object is just an example of a class.

What is V model?

Type of extension model where testing is planned earlier

Explain Testing Types:

Unit Testing: Test the smallest code of an app API Testing: Testing API created for the app Integration Testing: Individual software modules are combined and tested System Testing: Complete testing of the system Agile Testing: Testing through agile technique

What is the super keyword?

Used to invoke the overridden method which overrides one of its super class methods. This allows access to overridden methods and access to hidden members of the superclass. What is exceptions handling? An exception is an event that occurs during the execution of the program. Can be of any type - run time, error, etc. Can be handled with exception handling mechanisms like try, catch, throw keywords.

Verification vs Validation

Verification - static analysis technique. Testing is done without executing the code e.g. reviews, inspections, walkthroughs. Helps you decide whether a product of a given app satisfies the specified requirements Validation - dynamic analysis technique done by executing the code.

Interface

Very similar to a class type but only contains method definitions and no actual implementation. Any class that implements this must implement the specified methods as well (contract). This is used to achieve COMPLETE abstraction -> no keywords required, interface itself is implicitly abstract. Classes cannot accomplish multiple inheritance but interfaces can.

What motivates you [me]?

What motivates me is working in a career path that has tangible affect on the world around us, something that makes a real difference Which is why my goal is to enter the cyber security sector Because you see massive organisations that literally live or die by the strength of their security. You see major banks having their entire customer databases, including their credit card information, be leaked due to weak security infrastructure that now have to shut down or endure massive losses due to these weaknesses So knowing you'll be able to contribute a businesses cyber resilience, be at the centre of that kind of action, is what I think would be a very satisfying and fulfilling to partake in And so I feel a position at your company is an excellent stepping stone towards imbuing me with the necessary skills to pursue this goal, all while working at an organisation I trust and appreciate

What is your greatest failure and what did you learn from it

When I was still working as a cleaner, I would always try to ensure everything was as clean as it would possibly be. However, I hold myself to a very high standard so I'd often get carried away because I would be constantly dissatisfied with my work and so I kept trying to reach this standard This quickly became detrimental as I spent so long doing some tasks that I would do poorly in other areas or never get around to them at all It got to the point where the boss pulled me aside to express his criticism, which was a very embarrassing experience for me, but I knew I had to get my act together So from then onwards, I spent the rest of my time trying to distribute my efforts more evenly, and by the end of the year every was very satisfied with my work I learned that you can't take forever to do what you've been assigned, even if it's not perfect, and instead you must put the best effort into what your doing WITHIN the amount of time given otherwise you'll never get anything done at all!

Method Overriding - Run Time Polymorphism

When a sub-class overrides an existing definition of a method body that has already an implementation in the parent class. It will have the same arguments, return types, etc, but the method body will use that information differently.

What is Aggregation

When you refer to another class within your class e.g. you have a instance of circle class within your shape calculator class

What is Test Driven Development

Where we add a test for a feature first before we write the complete production code. Next we run the test and based on the result, refactor the code to fufill the test requirements.

Difference between Agile and Waterfall

With waterfall, you go from one phase, to the next, and to the next. There is no returning. Good for smaller projects that have well understood requirements If requirements not clear at the beginning, it is less effective Testing process occurs near the end, so if there are any major bugs it will cost lots to fix Whereas in Agile, it is all about iterative development and testing, each sprint go through shorter high productive bursts of development (through all cycles) constantly refining based on client feedback (very client focused) Agile allows changing the project dev requirements Involves simple and easy deliverables within a given sprint to ensure high quality deliverables - these are then iterated son, refining and refining (so constantly looping through dev phases) Used for larger and more complex development projects and usually results in a higher-quality product Cost of implementing is higher compared to other models

Zero Sprint and Spike

Zero Sprint - Defined as prep step for the first sprint in agile. Some activities required before starting project i.e. setting up environment for development, preparation of backlogs. Spike - type of story that can be taken between sprints. Often for activities related to design or technical issues (such as research, design, prototyping, exploration)

Have you ever found it difficult to work with a team member and manager?

• Not really. I've rarely found my self having difficulties with a co-worker or a superior Of course, if I'm meeting them for the first time or they are a new addition to the team, in which case I expect a period of adjustment to our particular team dynamic no difficulties I always try to make them feel welcome (from pow when new people come in, I know of adjustment try to accomodate) This was quite common during my volunteer work at the Salvation Army as they had a very high turn over rate, so there were many occasions where I'd engage with new members in an informal capacity to try and ease this transition period and make them feel like they were part of the team other than can't really say had any difficulties with co worker + otherwise


Conjuntos de estudio relacionados

Managerial Leadership | Chapter 7 Test Bank

View Set

Fundamentals of Nursing Care Chapter 35 Medication Administration-Questions

View Set

Psychology 101 Week 9 - Consciousness

View Set

Personal Finance - Insurance Post Test

View Set

THINK Social Psychology 1st edition by Kimberly Duff. Chapter 6.

View Set

Psychology Themes and Variations Chapter 6

View Set