At present, software development teams usually have multiple roles. Take a mobile Internet development team as an example. It is usually composed of product managers, planners, interaction designers, visual designers, architects, project managers, front-end programmers (Web front-end, Android development, iOS development) and back-end programmers (Java, PHP, Python, C#, etc.). ) and test engineers. Therefore, learning software development must first choose a learning direction (post), and then learn the corresponding knowledge structure.
There are usually two situations in software development, one is application-level development, and the other is R&D-level development. Application-level development is usually aimed at specific business logic. Usually you need to learn a programming language, and then learn the database, development framework (library) and other content. This part of the development is generally not difficult (the basic requirements are not high), but it usually requires a lot of experiments.
But for R&D level development, the difficulty will increase a lot. R&D level development is often based on the development platform, which requires developers to have solid basic knowledge, such as mathematics, algorithms, data structures, operating system architecture and so on. Taking the field of big data development as an example, big data application development and big data analysis often belong to application-level development, while big data platform development belongs to R&D-level development, and different tasks determine different difficulties.