This article contains a summary of what an IT professional should know: programming paradigms, design patterns, testing, development technologies, and much more.
Essentials for an IT specialist
- Computer systems architecture
- Algorithmization and data structures
- Mathematics (algebra / geometry): mathematical analysis, probability theory and mathematical statistics, discrete mathematics, number theory, linear algebra, numerical methods, etc.
- Software development technologies
- Methodologies: Waterfall, Scrum, MSF, RUP, Agile, Kanban, XP, TDD, BDD
- Programming paradigms
- Design patterns (patterns)
- Information systems security
- Software Testing Techniques
- Basics of ergonomics (usability)
- Used programming language
- Possibilities of the used development tools
- Knowledge of the subject area
Programming languages
- Object oriented: C #, C ++, Java
- Markup languages: HTML, CSS
- Web programming: JavaScript, PHP, Python
- Query language: SQL
Frontend development
- Methodologies (SuitCSS, BEM, OOCSS, SMACSS, Sestematic CSS)
- Html
- CSS (Responsive, SVG)
- Dive Deep CSS3 (Flexbox, Rotate, Scale, Grids, Skew, Gradients, Transform, Transitions)
- JavaScript (ES6, TypeScript, Flow)
- Understanding client technologies
- HTML frameworks (Bootstrap, Foundation, Semantic UI, Uikit, Materialize CSS)
- CSS preprocessors (LESS, SASS, Styles, PostCSS)
- Frameworks (Angular.js, Backbone.js etc)
- Libraries (React, Vue, jQuery etc)
- Understanding UX and UI
- Responsive / responsive layout from graphic layouts
- Cross-browser and cross-platform layout and testing
- IDE or editor (Atom, NotePad ++, NetBeans etc)
- Package management (nmp, yorn)
- Version control (Git, GitHub, CVS etc)
- DOM, Ajax, SVG objects
- HTML5 API (canvas, geolocation, video etc)
- Knowledge of WebGL
- Working with web fonts
- Ability to use graphic editors (Photoshop etc)
- Experience with builders (Gulp, Webpack, Grunt, Bower etc)
- Experience with web formats (JSON, JSONP, XML)
- Testing tools (Jest, Mocha, Jasmine, Enzyme)
Backend development
- Understanding Internet, Ethernet, DNS, OSI, TCP, IP, Socket
- PHP (OOP, MVC / HMVC)
- DataBase (MySQL, Postgresql, MongoDB, NoSQL etc)
- Understanding server technology
- PHP frameworks (Codeigniter, Yii, Laravel, Symphony etc)
- CMS (WordPress, Drupal, PrestaShop, Magento, InstantCMS etc)
- Unix / Linux, Windows
- Nginx and Apache
- CGI / FastCGI
- ORM (Object Relational Mapping): Doctrine / Propel
- WebSockets
- IDE or editors (Atom, NotePad ++, NetBeans, Eclipse, PhpDesigner etc)
- Version control (Git, GitHub, CVS etc)
- Knowledge of Composer – package manager
- Testing the program code
- Knowledge of security issues (XSS, CSRF, SQL, Injection)