Focus on the "lab building" and share a project tutorial every day
Each web developer enters the development team early in his or her career. How to make yourself work more efficiently and be the person the other team members want to collaborate with. Here are 7 skills you need to master, and believe that the following content is also helpful to you who are looking for a job.
Text total: 2340 words
Estimated reading time: 6 minutes
Skill 1: Learn to initiate GitHub pull request & Code review
Unlike working independently, the whole team is responsible for ensuring that the project is high quality, tested, and bug-free code as part of a technical team.
A good technical team will conduct a code review before the code changes to ensure that the code quality meets the requirements. This review is typically done by people who are not involved in writing code, they need to check the proposed code and make progressive changes, and look for possible problems.
Requesting code review before the new Code enters the main branch is called a "pull request," and a good technical team will not allow code without a pull request to enter the project.
Because of the frequent need for code reviews, GitHub provides advanced features that allow teams to easily perform reviews.
The following is an example of a GitHub pull request from a student in the Firehose project:
(Click the picture to enlarge)
You can see how the instructor uses inline code annotation on specific lines of code to help students better organize their code.
Whether you want to contribute to an open source project or work on a technical team, you should have the following skills:
Create a new pull request and submit code changes to the team
Look at other people's code and write down what you think might be overlooked.
Respond to other people's concerns about their code by GitHub platform or code changes
Responding to the feedback of your code is critical to becoming a productive developer. By responding to feedback on GitHub, you can reap a lot and grow into a more powerful developer.
Skill 2: Learn to split problems
Each team member can multiply the number of code, and in order for all the people involved in the project to be rewarded, the big task can be divided into many small tasks of parallel processing.
For example, if you are doing a blackjack game yourself, your task is to achieve the following:
Create a Blackjack Game
If you have a team to build this blackjack game, the same project can be divided into small chunks that each member can execute synchronously.
Create a login page for your Web application
Store e-mail messages for users who have a MailChimp account
Build a deck of cards in your code
Support User Login and exit
Optimize Mobile End Pages
By splitting the task, the team can achieve the final goal in stages.
Even in the area of specialization, most projects are difficult to complete, as additional functionality is often required for existing applications. The list of features that have not been built is estimated to take a year or more to complete.
Because the technical team often handles these tasks, and this is a long-term process, it needs to be step.
Skill 3: Implementation of test-driven (Test-driven) development
Working on a team, you need to have a strong test suite, not to do all of your coding work on your own. This is because projects can accumulate a lot of code, such as 10000 lines or more, and can be very complex. Faced with this code, it is difficult to understand every detail for someone who has not been directly involved in the application coding process before.
Writing tests while building functionality can prevent other team members (or future self) from destroying the application in unpredictable ways.
The entire test suite takes more than 10-20 minutes to run a complex project is a normal phenomenon. Professional Web developers often use the continuous integration tool to help run test suites that automatically test each pull request.
Skill 4: Active communication Avoid merge conflicts (merge conflicts)
Merge conflicts occur when two team members try to make conflicting or conflicting changes. As a team, good communication can help avoid conflict.
Here is a scenario that might cause a merge conflict:
Marco and you are doing the same project (landing page for the Firehose project), at which point the page title is: "Your software career starts here".
If you change the title to "Your software career starts today" and Marco changes to "Start your software career here," you end up with a merge conflict. In short, one of you will not be able to send code changes to GitHub until you have solved the problem.
In this case, if Marco and you can better communicate the issue of the title change, you can avoid this kind of merge conflict altogether. Conflicts are unavoidable in many cases, especially when dealing with complex projects. Learn how to stay calm and communicate actively with other team members, fully understand their thinking process and resolve conflicts and ultimately achieve their goals and objectives, which can only be exercised through a team coding.
Skill 5: Sharing information with meetings
Because communication between technical team members is very important, most teams often hold meetings, commonly known as "stand-ups", or "standing" meetings.
During the meeting, members of the technical team generally share the following information:
What did you do after the last meeting?
What is to be done before the next meeting?
The meeting time is 10-15 minutes and everyone on the team needs to share information in the meeting. To speed up the progress of the meeting, members will focus on the most important issues. By having each member spend 1-2 minutes talking about what he is doing, other team members can help identify potential problems and make the members less likely to take detours.
Skill 6: Provide constructive feedback through pair programming (Pair programming)
Sometimes when you're working on a project, you find yourself dealing with very complex problems. It is necessary to work with another team member at this time.
Work with another teammate to solve the difficult coding problem, which is called pair programming. During pair programming, a member of the team sits behind the keyboard, writing code and "driving" the interaction. The other person will watch the coding process and provide real-time feedback next to him.
Pair programming helps you to improve your ability. Beginners may be afraid to write code in front of others because they will provide feedback based on the code. A collaborative approach to pointing out potential problems in someone else's code is also a skill to learn.
Skill 7: Learn to work in a changing environment
The biggest challenge of working in a technical team is that you need to jump out of the comfort zone and get into an environment where everyone is desperately writing complex code, and can't get crushed in the process.
It's important to work on a team and have a lot of code lines changing rapidly every day, always focusing on the tasks you assign. Regardless of how the code develops, you have to trust your team. You need to constantly update the code to make sure you're using the latest code.
So how will the skills of these technical teams help you get your offer?
There are often questions about teamwork in the technical interview process. The hiring manager is particularly interested in the challenges you face in your team and how you can overcome these challenges. As a developer and technical team member, your answers and experiences can give them a real, valuable reference.
If you are asked to describe the challenges you have experienced in teamwork, at least prove that the hiring manager is interested in you. But if you say that you have never had any problems with cooperation, the person who evaluates you may feel that you are either inexperienced or not telling the truth.
Instead, you introduce specific collaborative experiences, clearly understand the importance of communicating with other team members and how to overcome difficulties in the case of problems, which is very appealing to hiring managers.
You should keep the goals of your team project in mind and focus on learning as much as possible in your group projects.
Author: Ken Mazaika
Translation: Sugarain
Original link: http://blog.thefirehoseproject.com/posts/7-key-skills-youll-develop-working-in-a-technical-team/