Programmers to advanced programmers, only need 10 steps!

Source: Internet
Author: User
Tags using git version control system

What


A software engineer's career takes the following stages: Beginner, intermediate, and finally advanced. This article is mainly about how to help you become a senior software engineer through 10 steps.



Why


    • Get paid more! By the Way, did your year-end award fall ? Because your salary will increase as your level increases.

    • Improve your career. After becoming a senior software engineer, you can move towards the position of architect, team leader, CTO, etc.

    • Have a greater challenge. As you grow, so does the impact.


How


Software engineering is difficult. The industry is changing, so you have to follow it. You have to constantly devote time and energy, because you need to learn more than you can absorb. Many novice engineers do not even realize that if they want to climb the peak of the industry, they have to learn something and how much effort they have to pay. But don't worry, I'll point out a "Ming road" that will help you become a senior software engineer.



Step 0: Choose your path and keep going!


Do one thing and do it well. --doug McIlroy "Unix philosophy"



On this point, I really stressed that I could not stress anymore. It is important to choose the professional and technical stacks you will be playing alongside. Be persistent, don't be distracted. As to what should be done please see below:


    • Choose a major. That's what you want to do. For example: WEB development, mobile development, DevOps, and more.

    • Choose a practical technique in your profession. For example, if you choose WEB Development, you need to be careful between Ruby on Rails, Python, Django,javascript, and MEAN. If you choose Mobile development, you need to make a choice between IOS and Android.

    • Stick to it until you master the technology.


I don't mean to say that you don't have to be familiar with anything other than your major majors. The leading software engineer is familiar with other programming languages and techniques, but first of all, they are very clear about their major majors. After you have identified the major majors, the next thing to do is to learn, read all the relevant books, and practice all the necessary skills, which may take many years. But do not be discouraged, step by step, a one to overcome difficulties, quantitative changes to achieve qualitative change. On the technology, my recommendation is: Ruby on Rails for web development, IOS for mobile development. This is a valuable experience that I have told you as an experienced. However, I would like to add that maybe everyone's tastes are different, my experience may not be for you, you can choose other technology, but in this case, you have to read the book may not be the same as my recommendation.



Step 1: Lay the groundwork


the The pragmatic Programmer "is a good starting point for us to master software. The book summarizes a high level of practical exploration. This has nothing to do with what language/technology we are using. Regardless of which technology stack you choose, the main principle is the same.



Step 2: Mastering your programming language


What programming language you need to face every day depends on the technology you choose today. But programming languages always have primary and secondary points. For example, Ruby on Rails developers mostly use JavaScript for most of their time with RUBY,ANGULARJS developers. Determining the programming language and mastering the programming language is critical to your career development. Because you will use it every day! It is recommended that you read the books first.


the The Swift programming Language "to the ruby developer, and to the IOS developer for" Programming Ruby ".



Step 3: Learning the Framework


Choose one, then study well:


For rails developers-"rails Tutorial" by Michael Hartl


for IOS developers-the IOS programming:the Big Nerd Ranch Guide "



Step 4: Mastering the text editor/IDE


Pick one, and then persevere in mastering the tool. If you choose VIM, then become its owner and let it go east.



Step 5: Use the version control system


I recommend using Git. Here's my favorite resource: Pro git--'s free online e-book, which explains all aspects of git in detail.



Step 6: Do test-driven development


Add TDD to your technology stack. Develop your daily TDD habits. High-quality code comes from good testing.


For Ruby on Rails developer--"Rails Test prescriptions"


For iOS developers--"Test driven iOS development"



Step 7: Build a habit of refactoring


as you continue to add more features, the codebase becomes more and more complex. To keep the code base manageable, you need to refactor. If you don't refactor, you'll quickly get into a dilemma--even small changes are difficult, bugs can't be avoided, and no one is willing to deal with this messy code base. Refactoring can make your job easier. As for how to refactor the code, one of my previous blogs: 3000 lines of code can be re-composed of 15 lines,http://9534381.blog.51cto.com/9524381/1602363, And here's a good book to teach you what to do: Refactoring:improving the Design of Existing code by Martin Fowler



Step 8: Learn the SOFTWARE architecture


Learn about the architecture based on the stack you chose above. I recommend Martin Fowler's book Patterns of Enterprise application Architecture.



Step 9: Show the power of the command line


The first touch of the command line starts with a sense of awe. However, once you learn how to use it, it will greatly improve your efficiency in performing some basic tasks. And that in itself can make you a better developer because you can achieve your goals in less time. Then you can move on to the next level. Use the shell to automate common tasks and build your own dotfiles. If you're using a Mac or Linux distribution, learn the shell. Here's a good book by Mark Bates: "Conquering the Command line"



Step 10:code Code code!


Only by practicing the knowledge you have learned can you really master it.



Summarize


as we all know, it is very difficult to become a senior software engineer. It takes a lot of time and effort. Coding at the same time also pay attention to the security code, if you can know some effective solutions, you can save a lot of time, recommend more understanding of the source protection . Different people have varying speed of learning, but on average it takes about 10 years to become a reliable senior developer. The various investments you pay will ultimately bring you great rewards. Software engineers have a good money path, the job market demand has been high, salary levels are based on experience. This is a fast-growing and relatively new area. Every day a software engineer is challenged to change people's lives. Come on, you software engineer, first challenge to become a senior software engineer!


Programmers to advanced programmers, only need 10 steps!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.