If I want to find a place that best shows the difference between software development and software development 10 years ago, I think it should be the explosion of knowledge in quantity.
In the software industry, manufacturing knowledge is much faster than learning.
To put it bluntly, we should have no talent in the software world today. If you do not believe it, you can check the list copied from the Wiki and tietong below.
At the moment, it is difficult for you to develop kernel drivers and CSS, that is, be proficient in backend and frontend, that is, develop databases and develop database applications.
Of course, there are some things that are common to various technologies, such as design principles and patterns. But don't forget that only different parts determine the existence value of the technology.
There is a paradox behind this phenomenon: the more you learn, the more you may lose.
This is contrary to the fact that most people think that the more they learn, the more they may get.
The principle behind it is simple, time is limited, and knowledge is unlimited. The wider the area is, the less time it takes to spread a single knowledge, and the higher it reaches, the more limited it is.
Most of the time it is used, it is usually a specific point.
The extreme value means that nothing is learned and there is no value.
This should not be hard to understand. People who have understood all the following paradigms may be less valuable than those who are proficient in some of them.
Programming paradigms |
§ Agent-Oriented § Automata-based Component-based § Flow-based § Pipelined § Concatenative Concurrent computing § Relativistic Programming § Data-driven § Declarative (contrast: imperative) § Constraint Dataflow § Cell-oriented (spreadsheets) § Reactive § Inten.pdf § Functional Logic § Abductive Logic § Answer set § Constraint logic § Functional logic § Inductive Logic § End-User Programming Event-driven § Service-oriented § Time-driven § Expression-oriented § Feature-oriented § Function-level (contrast: value-level) § Generic § Imperative (contrast: declarative) § Procedural Language-oriented § Discipline-specific § Domain-specific Grammar-oriented § Dialecting § Intentional Metaprogramming § Automatic Reflective § Attribute-oriented Template § Policy-based § Non-structured (contrast: Structured) § Array § Nondeterministic Parallel Computing § Process-oriented § Programming in the large and small § Semantic § Structured (contrast: non-structured) § Modular (contrast: monolithic) Object-oriented § By separation of concerns: § Aspect-Oriented § Role-oriented § Subject-oriented § Class-based § Prototype-based § Recursive |
Most people who have learned the following languages are not as valuable as those who are proficient in the following languages:
C |
Java |
C ++ |
Objective-C |
C # |
PHP |
(Visual) Basic |
Python |
Perl |
Javascript |
Ruby |
Visual Basic. net |
PL/SQL |
Delphi/Object Pascal |
LISP |
Logo |
Pascal |
Transact-SQL |
ADA |
Lua |
The general understanding is always rewarding, but it is not accurate. Blind hard work may have disastrous consequences. A general direction is also needed before hard work.
Certificate ------------------------------------------------------------------------------------------------------------------------------------
Ideal stream + software = perfect software development: Methods and logic
Ideal stream + life = ??
Ideal stream + Management = ??
Ideal stream = the essence of deduction by concept and logic, and the pursuit of truth.