3 ms·
Not true. The amount of information a modern programmer must keep in mind, be expert at, have hands on experience, or at least be aware of, is ridiculous. Platf
by dakimov 14y ago
Not true. The amount of information a modern programmer must keep in mind, be expert at, have hands on experience, or at least be aware of, is ridiculous. Platforms, languages, frameworks, libraries, areas - software architecture, algorithms, data structures, mathematics of any kind, graph theory, programming paradigms, system level programming, hardware level optimizations, OS architecture, networking, web technologies, client, server, Java, C#, JavaScript, HTML, CSS, XML, XSLT, C/C++, Python, Ruby, AI, speech synthesis/recognition, computer vision, computer graphics, sound processing, GPU computations, asynchronous, lock-free programming, dependency injection, databases, ORM, SQL, no-SQL, UI patterns, MVC, MVVP, compiler/interpreter design, text parsing, regular expressions, .Net, WinAPI, Unix, POSIX, mobile, iOS, Android, enormous amount of libraries often with huge APIs for each language and platform, etc., etc. - just a randomly picked fraction.
Of course, for most programmers it is only feasible to specialize, and even then the amount of data is enormous, e.g. you can study all the nuances of C++ or Java for years, and still not be an expert, and Java has plenty of libraries with a huge API overall, but practically you are required to have experience and deep knowledge of each commonly used one if you want to be hired as a Senior Developer, and that is just an example. It is a general rule that you are required to have deep knowledge of the area and technology you future employer is working with, despite it is one of an insane amount, and most of thar knowledge you will never use again.