How to become a good software engineer?

Everyone starts out as an entry-level engineer. If you want to advance, you need to have the required abilities in the following core areas.

● Technical knowledge: You know the basics of computer science. You know how to use an integrated development environment (IDE), build systems, debug code, and test frameworks.

You are familiar with continuous integration, system metrics and monitoring, configuring and packaging systems. You proactively create and improve test code. When making architectural decisions, you take long-term operations into account.

● Execution: You create value by solving problems with code, and you understand the connection between your work and the business. You can already build and deploy small to medium features. You will write, test and review code. You share On-Call responsibilities and debug operational issues. You are proactive and dependable. You attend technical talks, reading groups, interviews and roadshows.

● Communication Skills: You can communicate clearly both in written and oral form. You are able to give and receive feedback effectively. In ambiguous situations, you reach out for help and get clear results. You can ask questions and define topics in a constructive manner. You can help where possible and start to influence colleagues. You will document your work. You write clear design documents and solicit feedback. You are patient and empathetic in your dealings with others.

●Leadership: You can complete the work independently within the specified scope of work. You learn from your mistakes quickly. You handle change and ambiguity well. You are actively involved in the planning of projects and quarters. You can help new members integrate into the team. You can provide meaningful feedback to your managers.

your journey map

To get to your destination, you'll need a map.

1 Beginner Camp

You started your journey as a novice. You need to familiarize yourself with the company, the team, and how your job is done; attend onboarding meetings; set up your development environment and system permissions, and figure out the team's general processes and meetings; read documentation and discuss with teammates. If you find gaps in the onboarding process, you can make some additions in the documentation.

To help you get on with your job, your company may have a new employee orientation. These training sessions will give you an understanding of how the company works, take you on a tour of the entire organization, and introduce some of the company leaders. Orientation also introduces you to employees from other departments, who are your future colleagues. If your company does not arrange induction training for new employees, you need to ask your managers for an "organizational chart" of the company to understand who is responsible for what, who reports to whom, what are the different departments, and what are they? The relationship between. Remember to take good notes.

2 River of Trials

Once you've completed the rookie quests, you'll start sharing the real work for the team. You may be working on an existing codebase. What you discover may confuse or scare you. Ask lots of questions, and have the team review your work frequently.

3 Contributor's Corner

Once you start working on larger tasks and features it means you enter the "contributor's corner". The team will trust you to work more independently. Learn how to write production-grade code that is operator-friendly. Dependencies between components are properly managed and thoroughly tested.

4 Ocean of operation and maintenance

As you get involved in larger tasks, you'll learn how to deliver code to customers. A lot happens during delivery: testing, building, publishing, deploying, and deploying. Perfecting this process takes some finesse.

5 Bay of Competence

Your team will now rely on you to take charge of a small project. You will write a technical design document and help the team with project planning. Designing software forces you to face a whole new level of complexity. Don't settle for your first version of the design. Think twice and be prepared as your system changes over time.

You now have a map and destination for your beginner's journey. After landing in the Bay of Competence, you'll be a full-fledged software engineer, able to collaborate with your team and contribute value.

You'll have many sites—students, engineers, tech leads, maybe even managers. Most new engineers start out with a technical base but little real experience. The previous chapters of "Programmer's README" will guide you to the first milestone in your career. You reach this milestone when you are able to deliver code safely and seamlessly with your team.

Reaching the first milestone is difficult. Because the information you need will be scattered around the Internet, or worse, hidden in someone's head. "A Programmer's README" consolidates the key information needed for success.

For the novice software engineer, knowing how to code is only half the battle. You may quickly discover that schools are not teaching skills that are vital in the real world and processes that are necessary on the job. This book just fills this link. It is a tutorial that the author has taught junior engineers in large companies for more than ten years, covering the basic knowledge and best practices of software engineering.

Chapters 1–2 of this book explain what to expect when you start your career at a company; Chapters 3–11 expand your skills on the job, teaching you how to work with existing Production-level software, managing dependencies, testing effectively, reviewing code, delivering software, handling incidents during On-Call, building evolvable architectures, etc.; remaining chapters cover management capabilities and career ladder advancement, such as agile planning , Cooperate with managers and the only way to grow into a senior engineer. A very important part of this book is teaching you how to deal with poor management and how to pace yourself.

Not only is it easy to understand, but it also covers the entire software development cycle, making it the book a tech executive wishes every new engineer would read before starting the job.

book recommendation

1. Refactoring: Improving the Design of Existing Code 2nd Edition Paperback Edition

Elegantly turning code into art, translated into 11 languages, an immortal classic of software development masters, vividly explaining the principles and specific practices of refactoring, the secrets that ordinary programmers must practice to advance to programming masters.

2. The way to clean code

Uncle Bob's work, Programmer, brings together decades of experience in programming and explains how to solve the difficult problems faced by software developers, project managers and software project leaders.

"There are two reasons to read this book: one, you are a programmer; two, you want to become a better programmer. Well, the IT industry needs better programmers!" -Robert C. Martin (Robert C. Martin)

3. Knowing and Doing: The Management Road of Technical Personnel (Second Edition)

Unlock management wisdom and master the successful password of technical people! Liu Jianguo's new work, the operation guide for the whole process of technical management, reveals the confusion and challenges of technical managers, and takes you on the road to success!

4. Soft Skills: A Survival Guide Beyond Code (2nd Edition)

A career guide for programmers and software developers, highlighting the "human" factor in technology, listening to the experience of John Z. Sonmez, the life mentor of software developers, and explaining the "soft skills" that practitioners in the IT industry need to know.

Guess you like

Origin blog.csdn.net/epubit17/article/details/131908678