Software Developer

Get Started. It's Free
or sign up with your email address
Software Developer by Mind Map: Software Developer

1. Linux

1.1. Basic Commands

1.1.1. ls

1.1.2. ln

1.1.3. chown

1.1.4. chmod

1.1.5. tail

1.1.6. head

1.1.7. vim

1.1.8. less

1.1.9. grep

1.1.10. top

1.1.11. ps

1.1.12. sudo

1.1.13. nano

1.1.14. locate

1.1.15. find

1.1.16. du

1.1.17. df

1.2. nginx

1.2.1. restart/reload

1.2.2. configuration

1.3. Linux Distributions

1.3.1. Ubuntu

1.3.1.1. Filesystem Structure

1.3.1.2. Package Manager

1.4. Bash

1.4.1. Basic Statements

1.5. Mail Agent (SMTP)

1.6. Run Levels Configuration

1.7. Users & Groups Management

2. Back-end

2.1. PHP

2.1.1. SPL

2.1.2. Exception & Error Handling

2.1.3. I/O

2.1.4. cURL

2.1.5. PDO

2.1.6. Tools & Libraries

2.1.6.1. Composer

2.1.6.2. Symfony

2.1.6.3. Silex

2.1.6.4. Doctrine

2.1.6.5. xDebug

2.1.7. PHP internals

2.1.7.1. Interpreter structure

2.1.7.2. Common types internal structure

2.1.7.3. GC mechanism

2.1.7.4. Request processing process

2.1.8. Reflection

2.2. Databases

2.2.1. Relational Databases

2.2.1.1. SQL

2.2.1.1.1. SELECT

2.2.1.1.2. INSERT

2.2.1.1.3. UPDATE

2.2.1.1.4. DELETE

2.2.1.2. MySQL

2.2.1.3. Database normalization

2.2.1.4. PostgreSQL

2.2.1.5. Transaction Isolation

2.2.1.6. Indices

2.2.2. "noSQL" Databases

2.2.2.1. Document Oriented

2.2.2.1.1. MongoDB

2.2.2.2. Key Value Stores

2.2.2.2.1. Redis

2.2.2.3. Wide Column

2.3. Java

2.3.1. Core

2.3.1.1. Collections

2.3.1.2. Concurrency

2.3.1.3. I/O (with NIO)

2.3.1.4. Reflection

2.3.1.5. Parallelism

2.3.1.6. JDBC

2.3.2. Tools & Frameworks

2.3.2.1. Java EE

2.3.2.1.1. JAX RS

2.3.2.1.2. JPA

2.3.2.1.3. JAX WS

2.3.2.1.4. Enterprise Beans

2.3.2.1.5. Distributed Transations

2.3.2.1.6. JMS

2.3.2.1.7. JMX

2.3.2.1.8. Java Servlets

2.3.2.2. Spring Components

2.3.2.2.1. MVC

2.3.2.2.2. IOC

2.3.2.2.3. AOP

2.3.2.3. Profiling & Debugging Tools

2.3.3. JVM internals

2.3.3.1. GC algorithms

2.3.3.2. Memory model

2.3.3.3. Memory structure

2.3.3.4. JIT process

3. Software Theory & Principles

3.1. Software Architecture

3.1.1. What is software architecture?

3.1.2. Distributed Architectures

3.1.2.1. REST

3.1.2.2. RPC

3.1.2.3. Actor Based System

3.1.2.4. CAP Theorem

3.2. Computer science

3.2.1. Algorithms

3.2.1.1. Complexity analysis and big-O notation

3.2.1.2. Sorting

3.2.1.3. Search

3.2.2. Data Structures

3.2.2.1. Queue

3.2.2.2. Stack

3.2.2.3. Tree

3.2.2.4. Map

3.2.2.5. List

3.2.2.6. Array

3.2.2.7. Graph

3.2.3. Formal Languages

3.2.3.1. Regular Languages

3.2.3.1.1. RegExp

3.2.3.2. Context Free Languages

3.2.3.2.1. XML

3.2.3.2.2. JSON

3.2.3.2.3. JAVA

3.2.3.2.4. Parser Generators

3.3. Programming Paradigms

3.3.1. OOP

3.3.1.1. SOLID

3.3.1.2. GOF

3.3.1.3. Fowler Patterns

3.3.1.4. Antipatterns

3.3.2. Functional Programming

3.3.3. Aspect Programming

3.3.4. Reactive Programming

4. Software Development Process & Practices

4.1. Continuous Integration

4.1.1. Jenkins

4.2. Major Project Phases & Process Groups

4.2.1. Initiating Process Group

4.2.2. Planning Process Group

4.2.3. Executing Process Group

4.2.4. Monitoring & Controlling Process Group.

4.2.5. Closing Process Group

4.3. Major Project Roles

4.3.1. Project Manager

4.3.2. Development Team Leader

4.3.3. QA Team Leader

4.3.4. Architect

4.3.5. Business Analyst

4.4. Software Development Methodologies

4.4.1. Agile

4.4.1.1. Scrum

4.4.1.2. Kanban

4.4.2. Waterfall

5. VCS

5.1. Distributed VCS

5.1.1. Git

5.1.1.1. Git Flow

5.1.1.2. Basic Commands

5.1.1.2.1. commit/fetch

5.1.1.2.2. push/pull

5.1.1.2.3. log

5.1.1.2.4. clone

5.1.1.2.5. checkout

6. Project Managment Tools

6.1. JIRA

6.1.1. Agile Plugin

6.1.2. Understanding of classic JIRA workflow

7. Front-end

7.1. HTML

7.1.1. HTML5 APIs

7.1.1.1. WebWorkers

7.1.1.2. WebSockets

7.1.1.3. Drag & Drop

7.1.1.4. Storages

7.1.1.5. GeoLocation

7.1.1.6. File API

7.1.1.7. WebComponents

7.1.2. Audio/Video

7.1.3. SVG

7.1.4. Tools & Libraries

7.1.4.1. Modernizr

7.1.4.2. Bootstrap

7.1.5. Semantic Mark-up

7.2. CSS

7.2.1. Animation & Transformation

7.2.2. Tools & Libraries

7.2.2.1. SASS

7.2.2.2. Compass

7.2.2.3. LESS

7.2.3. Selectors

7.2.4. Media Query

7.3. JavaScript

7.3.1. Scoping

7.3.2. Hoisting

7.3.3. Tools & Libraries

7.3.3.1. Grunt

7.3.3.2. Bower

7.3.3.3. Node.js & npm

7.3.3.4. Angular.js

7.3.3.5. React.js

7.3.3.6. Underscore Or Lodash

7.3.3.7. jQuery

7.3.3.7.1. Traversing

7.3.3.7.2. Events

7.3.3.7.3. Effects

7.3.3.8. Jasmine

7.3.3.9. jsHint

7.3.3.10. d3.js

7.3.4. Inheritance

7.3.5. Anonymous Functions & Closure

7.3.6. Promises

7.4. Web Browsers

7.4.1. Tools & Libraries

7.4.1.1. Development Toolbars

7.4.1.1.1. How to profile Memory, CPU, FPS

7.4.1.1.2. How to profile DOM structure

7.4.1.1.3. How to profile applied styles

7.4.1.1.4. How to profile javascript, network etc. errors

7.4.2. High Resolution Displays

7.4.2.1. device-pixel-ratio

7.4.2.2. Graphics Optimization

7.4.3. What is the difference between browsers

7.4.3.1. JavaScript Engines

7.4.3.2. Web Standards Support

7.4.3.3. How browser render a page

7.5. Analytics

7.5.1. Google Analytics

7.5.1.1. Statistics

7.5.1.1.1. Realtime

7.5.1.1.2. Audience

7.5.1.1.3. Events & Goals

7.5.1.2. JavaScript API