├── .gitignore ├── Makefile ├── README.md ├── logo.png ├── stacks ├── go │ ├── data │ │ ├── roadmap.dot │ │ ├── roadmap.md │ │ ├── roadmap.png │ │ └── roadmap.svg │ ├── materials.xml │ └── roadmap.xml ├── java │ ├── data │ │ ├── roadmap.dot │ │ ├── roadmap.md │ │ ├── roadmap.png │ │ └── roadmap.svg │ ├── materials.xml │ └── roadmap.xml ├── php │ ├── data │ │ ├── roadmap.dot │ │ ├── roadmap.md │ │ ├── roadmap.png │ │ └── roadmap.svg │ ├── materials.xml │ └── roadmap.xml ├── python │ ├── data │ │ ├── roadmap.dot │ │ ├── roadmap.md │ │ ├── roadmap.png │ │ └── roadmap.svg │ ├── materials.xml │ └── roadmap.xml └── ruby │ ├── data │ ├── roadmap.dot │ ├── roadmap.md │ ├── roadmap.png │ └── roadmap.svg │ ├── materials.xml │ └── roadmap.xml ├── subjects ├── cs │ ├── materials.xml │ └── roadmap.xml ├── db │ ├── materials.xml │ └── roadmap.xml ├── dev │ ├── materials.xml │ └── roadmap.xml ├── go │ ├── materials.xml │ └── roadmap.xml ├── java │ ├── materials.xml │ └── roadmap.xml ├── net │ ├── materials.xml │ └── roadmap.xml ├── os │ ├── materials.xml │ └── roadmap.xml ├── php │ ├── materials.xml │ └── roadmap.xml ├── python │ ├── materials.xml │ └── roadmap.xml └── ruby │ ├── materials.xml │ └── roadmap.xml └── tools ├── build.sh ├── materials.py ├── materials.xsd ├── xmlg2dot.py ├── xmlg2md.py ├── xmlgraph.py └── xmlgraph.xsd /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | tools/__pycache__ 3 | venv 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all 2 | all: golang java ruby php python 3 | 4 | @echo "Done" 5 | 6 | .PHONY: golang 7 | golang: 8 | @echo "start golang" 9 | sh tools/build.sh go 10 | @echo "finish golang" 11 | 12 | .PHONY: java 13 | java: 14 | @echo "start java" 15 | sh tools/build.sh java 16 | @echo "finish java" 17 | 18 | .PHONY: ruby 19 | ruby: 20 | @echo "start ruby" 21 | sh tools/build.sh ruby 22 | @echo "finish ruby" 23 | 24 | .PHONY: php 25 | php: 26 | @echo "start php" 27 | sh tools/build.sh php 28 | @echo "finish php" 29 | 30 | 31 | .PHONY: python 32 | python: 33 | @echo "start python" 34 | sh tools/build.sh python 35 | @echo "finish python" -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Roadmap Core 2 | 3 | This project was created by engineers which were motivated by the idea to describe the graphs of the main knowledge/skills 4 | of different types of engineers which in turn provides a way to develop these graphs 5 | by the community and by the approach which engineers prefer. 6 | 7 | ## Need 8 | 9 | In development teams with official mentoring and level assessments it's important to have a shared understanding of the process. To handle it, teams usually create knowledge roadmaps if form of spreadsheet with subjects and skills for a particular stack, and store it in a cloud. 10 | The issue here is that every developer, regardless of the programming language he uses, has to cover common subject areas, such as computer science, databases, etc. For 10+ stacks changing one skill in a common subject area means you have to manually edit 10+ spreadsheets. That prompts loss of uniformity of content and structure. For developers, who are used to a well-established change process, it discourages further collaboration and improvement of the roadmaps. 11 | 12 | ## Vision 13 | 14 | For developers, Skill Matrix is a module that allows to create and collaborate on knowledge roadmaps. A roadmap is compiled from several subject areas, which are described in separate XML files. This allows to reuse components and to populate a change made in one subject into all roadmaps using it. 15 | Skill Matrix allows to compile a roadmap in a XML syntax, visualize it in form of graph, and convert it to Markdown file and spreadsheet, thus covering all desirable representation formats. As a git project, it establishes an adaptable process for change and collaboration. 16 | 17 | ## Scope of Initial Release 18 | 19 | ### Skill Matrix includes 20 | 21 | - A collection of Subject Roadmaps, described in custom XMLgraph notation. 22 | - A collection of learning Materials for subjects, described in XMLgraph notation. 23 | - A collection of Stack Roadmaps, which specify relevant subjects for the stacks: 24 | - [Go](#golang) 25 | - [Java](#java) 26 | - [Ruby](#ruby) 27 | - [PHP](#php) 28 | - [Python](#python) 29 | 30 | ### A collection of Tools 31 | 32 | - [xmlg2dot](tools/xmlg2dot.py) is a tool for converting Roadmap.xml files to DOT syntax. Uses xmlgraph.py 33 | - [xmlg2md](tools/xmlg2md.py) is a tool for converting Materials.xml files to DOT syntax. Uses xmlgraph.py and materials.py 34 | - [Makefile](Makefile) is a major tool that generates Stack Roadmaps and saves them as PNG, SVG, DOT and generated Materials maps and saves them as MD. Uses all tools above. 35 | - [xmlgraph.py](tools/xmlgraph.py) is a library for parsing Roadmap files 36 | - [materials.py](tools/materials.py) is a library for parsing Materials files 37 | 38 | ## Scope of Future Releases 39 | 40 | For future development of the project the following options are considered: 41 | Elaboration on roadmaps structure, adding learning materials. 42 | Creating a tool to check errors in files, such as invalid links in materials files. 43 | Creating roadmaps for other stacks: Python, Ruby, Java Script, .NET C#, Scala, etc. 44 | Adding sets of interview questions for subjects and skills (similar to materials). 45 | 46 | ## Roadmaps 47 | 48 | ### Golang 49 | 50 | - [SVG](stacks/go/data/roadmap.svg) and [PNG](stacks/go/data/roadmap.png) maps 51 | - [Materials](stacks/go/data/roadmap.md) 52 | - [DOT](stacks/go/data/roadmap.dot) version 53 | - [XML](stacks/go/roadmap.xml) 54 | 55 | ### Java 56 | 57 | - [SVG](stacks/java/data/roadmap.svg) and [PNG](stacks/java/data/roadmap.png) maps 58 | - [Materials](stacks/java/data/roadmap.md) 59 | - [DOT](stacks/java/data/roadmap.dot) version 60 | - [XML](stacks/java/roadmap.xml) 61 | 62 | ### Ruby 63 | 64 | - [SVG](stacks/ruby/data/roadmap.svg) and [PNG](stacks/ruby/data/roadmap.png) maps 65 | - [Materials](stacks/ruby/data/roadmap.md) 66 | - [DOT](stacks/ruby/data/roadmap.dot) version 67 | - [XML](stacks/ruby/roadmap.xml) 68 | 69 | ### PHP 70 | 71 | - [SVG](stacks/php/data/roadmap.svg) and [PNG](stacks/php/data/roadmap.png) maps 72 | - [Materials](stacks/php/data/roadmap.md) 73 | - [DOT](stacks/php/data/roadmap.dot) version 74 | - [XML](stacks/php/roadmap.xml) 75 | 76 | ### Python 77 | 78 | - [SVG](stacks/python/data/roadmap.svg) and [PNG](stacks/python/data/roadmap.png) maps 79 | - [Materials](stacks/python/data/roadmap.md) 80 | - [DOT](stacks/php/python/roadmap.dot) version 81 | - [XML](stacks/python/roadmap.xml) 82 | 83 | ## For developers 84 | 85 | ### Prerequisites 86 | 87 | Before you continue, ensure you meet the following requirements: 88 | 89 | - You have installed the latest version of [Python 3](https://www.python.org/downloads/) 90 | - You also have installed [Graphviz](https://www.graphviz.org/download/) 91 | - And you have a basic understanding of graph theory 92 | 93 | ### Work 94 | 95 | All changes should be developed in your own feature branch and merge throw the merge request. 96 | Also, you should update the project each time you change any XML file by: 97 | 98 | ```bash 99 | make all 100 | ``` 101 | 102 | ## Links 103 | 104 | - [Programmer Competency Matrix](http://sijinjoseph.com/programmer-competency-matrix/) 105 | - [Roadmaps for Developers: Backend Developer](https://roadmap.sh/backend) 106 | - [Roadmap to becoming a Software Engineer 2018 Edition with Industry Insights: Back-end Roadmap](https://github.com/fauzanbaig/software-engineer-roadmap#-back-end-roadmap) 107 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srce/roadmap/80796d6c5cdb08c6fb94958f9ae1577d91189012/logo.png -------------------------------------------------------------------------------- /stacks/go/data/roadmap.md: -------------------------------------------------------------------------------- 1 | # Golang Software Engineer 2 | 3 | ## Computer Science 4 | 5 | ### Architecture knowledge 6 | 7 | - book: [Designing Data-Intensive Applications](http://shop.oreilly.com/product/0636920032175.do) 8 | - article: [Создание архитектуры программы или как проектировать табуретку](https://habr.com/ru/post/276593/) 9 | - book: [Clean Architecture](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) 10 | - book: [Patterns of Enterprise Application Architecture](https://www.martinfowler.com/books/eaa.html) 11 | 12 | 13 | #### Microservices 14 | 15 | #### Domain-Driven Design 16 | 17 | #### SOLID 18 | 19 | #### Design Patterns 20 | 21 | - book: [Design patterns : elements of reusable object-oriented software](https://www.worldcat.org/title/design-patterns-elements-of-reusable-object-oriented-software/oclc/31171684) 22 | - book: [Design Patterns: Elements of Reusable Object-Oriented Software]( 23 | https://www.oreilly.com/library/view/design-patterns-elements/0201633612/ 24 | ) 25 | - book: [Head First Design Patterns](http://shop.oreilly.com/product/9780596007126.do) 26 | - book: [Реактивные шаблоны проектирования](https://www.piter.com/product/reaktivnye-shablony-proektirovaniya) 27 | 28 | 29 | #### Event Sourcing 30 | 31 | #### Object-Oriented Programming 32 | 33 | ##### Encapsulation 34 | 35 | ##### Inheritance 36 | 37 | ##### Polymorphism 38 | 39 | #### Functional Programming 40 | 41 | #### Distributed Systems 42 | 43 | - book: [Designing Distributed Systems](https://www.amazon.com/gp/product/1491983647) 44 | 45 | 46 | ### Code Standards and Code Review Process 47 | 48 | ### Algorithms and data structures 49 | 50 | - book: [Algorithms, 4th Edition](https://algs4.cs.princeton.edu/home/) 51 | - course: [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) 52 | - course: [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) 53 | - book: [Introduction to Algorithms, Third Edition](https://mitpress.mit.edu/books/introduction-algorithms-third-edition) 54 | 55 | 56 | #### Analysis 57 | 58 | #### Data Structures 59 | 60 | ##### Lists 61 | 62 | ##### Stacks 63 | 64 | ##### Queues 65 | 66 | ##### Trees 67 | 68 | ##### Heaps 69 | 70 | ##### Graphs 71 | 72 | #### Algorithms 73 | 74 | ##### Sorting algoritms 75 | 76 | ##### Reasearch algoritms 77 | 78 | ### Systems Programming 79 | 80 | ### Artificial Intelligence and Machine Learning 81 | 82 | ### Hardware 83 | 84 | ### Security and Encryption 85 | 86 | ### Blockchain and Cryptocurrency 87 | 88 | ## Databases 89 | 90 | ### SQL 91 | 92 | - book: [SQL Bible](https://www.amazon.com/SQL-Bible-Alex-Kriegel/dp/0470229063) 93 | 94 | 95 | ### Indexes 96 | 97 | ### Transactions 98 | 99 | ### Principles 100 | 101 | ### Relational 102 | 103 | #### Multiversion Concurrency Control 104 | 105 | ##### Firebird 106 | 107 | ##### PostgreSQL 108 | 109 | ##### Oracle 110 | 111 | - book: [Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c](https://www.amazon.com/Oracle-PL-SQL-Programming-Versions/dp/1449324452) 112 | 113 | 114 | ##### MySQL 115 | 116 | #### Blocking 117 | 118 | ##### MySQL 119 | 120 | #### ACID 121 | 122 | #### Object-oriented 123 | 124 | ### NOSQL 125 | 126 | - article: [NOSQL](https://martinfowler.com/nosql.html) 127 | - book: [NoSQL Distilled](https://martinfowler.com/books/nosql.html) 128 | 129 | 130 | #### CAP Theorem 131 | 132 | #### BASE 133 | 134 | #### Graph database 135 | 136 | ##### OrientDB 137 | 138 | ##### Neo4j 139 | 140 | #### Document base 141 | 142 | ##### MongoDB 143 | 144 | #### Column base 145 | 146 | ##### Redis 147 | 148 | ##### ClickHouse 149 | 150 | #### Wide column base 151 | 152 | #### Time series 153 | 154 | ### Search Engines 155 | 156 | #### Elasticseaerch 157 | 158 | #### Sphinx 159 | 160 | ### Message Broker 161 | 162 | #### Kafka 163 | 164 | #### RabbitMQ 165 | 166 | #### Amazon Simple Queue Service 167 | 168 | ## Computer Network 169 | 170 | - book: [Computer Networks](https://www.amazon.com/Computer-Networks-Tanenbaum-International-Economy/dp/9332518742) 171 | 172 | 173 | ### Open Systems Interconnection model 174 | 175 | ### gRPC 176 | 177 | ### REST API 178 | 179 | ### GraphQL 180 | 181 | ### SOAP 182 | 183 | ### DNS 184 | 185 | ### Protocols 186 | 187 | #### IP 188 | 189 | #### TCP 190 | 191 | #### UDP 192 | 193 | #### HTTP 194 | 195 | #### TLS 196 | 197 | #### SSL 198 | 199 | ### Websocket 200 | 201 | ### Authorization and Authentication 202 | 203 | #### Authorization 204 | 205 | #### Authentication 206 | 207 | #### OAuth 208 | 209 | #### JWT 210 | 211 | #### Cookie 212 | 213 | ## Operating System 214 | 215 | ### Types 216 | 217 | #### Batch 218 | 219 | #### Time-Sharing 220 | 221 | #### Distributed 222 | 223 | #### Network 224 | 225 | #### Real-Time 226 | 227 | ### Processes and Threads 228 | 229 | #### Threads 230 | 231 | #### Scheduling 232 | 233 | #### Multi-Threading 234 | 235 | ### Memory Management 236 | 237 | #### Virtual Memory 238 | 239 | #### Virtual Memory 240 | 241 | ### File system 242 | 243 | ### I/O 244 | 245 | ### Virtualization 246 | 247 | #### OS-level Virtualisation 248 | 249 | ##### Docker 250 | 251 | #### x86 Virtualization 252 | 253 | ##### VirtualBox 254 | 255 | ##### VMware 256 | 257 | ### Command Language 258 | 259 | #### Bash 260 | 261 | #### Zsh 262 | 263 | ## Software Development Processes 264 | 265 | - book: [Working Effectively with Legacy Code](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) 266 | - book: [Refactoring: Improving the Design of Existing Code](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672) 267 | - book: [The Pragmatic Programmer: From Journeyman to Master](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) 268 | - book: [Code Complete: A Practical Handbook of Software Construction](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) 269 | - book: [Clean Code: A Handbook of Agile Software Craftsmanship](https://www.amazon.com/gp/product/0132350882) 270 | 271 | 272 | ### Testing 273 | 274 | - book: [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530) 275 | - article: [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) 276 | - article: [How deep are your unit tests?]( 277 | https://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests 278 | ) 279 | 280 | 281 | #### Test-driven development 282 | 283 | #### Behavior-driven development 284 | 285 | ### Build Systems 286 | 287 | #### Make 288 | 289 | #### Maven 290 | 291 | - article: [Системы сборки проектов Maven](http://www.apache-maven.ru/) 292 | - article: [Идеальный мавен. Часть 2: структура проекта](https://habr.com/ru/post/344480/) 293 | 294 | 295 | #### Ant 296 | 297 | #### Gradle 298 | 299 | - book: [Gradle in Action](http://barbra-coco.dyndns.org/student/Gradle%20in%20Action.pdf) 300 | 301 | 302 | ### Bug tracking systems 303 | 304 | #### Jira 305 | 306 | #### Redmine 307 | 308 | #### TFS 309 | 310 | ### Version Control 311 | 312 | - article: [4 книги о системах контроля версий, которые дадут о них полное представление](https://tproger.ru/books/4-books-about-vcs/) 313 | 314 | 315 | #### Git 316 | 317 | - book: [Pro Git](https://git-scm.com/book/en) 318 | 319 | 320 | ### Deployment 321 | 322 | #### Continuous Integration 323 | 324 | #### Continuous Delivery 325 | 326 | - book: [Continuous delivery. Практика непрерывных апдейтов](https://www.piter.com/product_by_id/87629352) 327 | 328 | 329 | ### Estimations 330 | 331 | #### Planning Poker 332 | 333 | ### Debugging 334 | 335 | #### Troubleshooting 336 | 337 | #### Logging 338 | 339 | - article: [Введение в ELK: собираем, фильтруем и анализируем большие данные](https://mkdev.me/posts/vvedenie-v-elk-sobiraem-filtruem-i-analiziruem-bolshie-dannye) 340 | 341 | 342 | #### Monitoring 343 | 344 | ### Orchestration 345 | 346 | #### Ansible 347 | 348 | #### Puppet 349 | 350 | #### Kubernetes 351 | 352 | - book: [Kubernetes in Action](https://www.manning.com/books/kubernetes-in-action) 353 | 354 | 355 | ### Management 356 | 357 | - book: [Goal: A Process of Ongoing Improvement](https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951) 358 | 359 | 360 | #### Methodologies and Frameworks 361 | 362 | - article: [Ещё раз про семь основных методологий разработки](https://habr.com/ru/company/edison/blog/269789/) 363 | 364 | 365 | ##### SCRUM 366 | 367 | ##### Kanban 368 | 369 | ##### Extreme Programming 370 | 371 | ##### The Twelve-Factor App 372 | 373 | - article: [The Twelve-Factor App](https://12factor.net) 374 | 375 | 376 | #### Paradigms and Models 377 | 378 | ##### Agile 379 | 380 | - article: [Manifesto for Agile Software Development](https://agilemanifesto.org) 381 | 382 | 383 | ##### Waterfall 384 | 385 | #### Time Management 386 | 387 | - book: [Джедайские техники](https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/) 388 | 389 | 390 | ##### Pareto analysis 391 | 392 | ##### Getting Things Done 393 | 394 | ##### Pomodoro 395 | 396 | ## Golang 397 | 398 | - course: [Разработка веб-сервисов на Go - основы языка](https://www.coursera.org/learn/golang-webservices-1) 399 | - course: [Разработка веб-сервисов на Golang, часть 2](https://www.coursera.org/learn/golang-webservices-2) 400 | - article: [Effective Go](https://golang.org/doc/effective_go.html) 401 | - article: [Go best practices, six years in](https://peter.bourgon.org/go-best-practices-2016/)[[ru](https://habr.com/ru/company/mailru/blog/301036/)] 402 | - video: [GopherCon 2016: Rob Pike - The Design of the Go Assembler](https://www.youtube.com/watch?v=KINIAgRpkDA)[[ru](https://habr.com/ru/company/badoo/blog/317864/)] 403 | - book: [An Introduction to Programming in Go](https://www.golang-book.com/books/intro) 404 | 405 | 406 | ### Types 407 | 408 | #### Strings/Runes/Bytes 409 | 410 | - article: [The Go Blog - Strings, bytes, runes and characters in Go](https://blog.golang.org/strings) 411 | 412 | 413 | #### Integers/Unsigned/Floating-point 414 | 415 | #### Pointer 416 | 417 | #### Array/Slice 418 | 419 | #### Maps 420 | 421 | #### Interface 422 | 423 | #### Constants 424 | 425 | - article: [The Go Blog - Constants](https://blog.golang.org/constants) 426 | - article: [What is an idiomatic way of representing enums in Go?](https://stackoverflow.com/questions/14426366/what-is-an-idiomatic-way-of-representing-enums-in-go) 427 | 428 | 429 | #### Object-Oriented Programming 430 | 431 | ##### struct 432 | 433 | ##### Encapsulation 434 | 435 | ##### Inheritance/Composition/Embedding 436 | 437 | ##### Polymorphism 438 | 439 | #### Conversion/Checking 440 | 441 | ### Functions 442 | 443 | #### Lambda/Variadic 444 | 445 | #### init/main 446 | 447 | #### Closure/Recursion 448 | 449 | #### Panic 450 | 451 | - article: [The Go Blog - Defer, Panic, and Recover](https://blog.golang.org/defer-panic-and-recover) 452 | 453 | 454 | #### Recover 455 | 456 | - article: [The Go Blog - Defer, Panic, and Recover](https://blog.golang.org/defer-panic-and-recover) 457 | 458 | 459 | #### Panic/Recover/Defer 460 | 461 | #### First-class function 462 | 463 | - video: [Do not fear first class functions](https://www.youtube.com/watch?v=5buaPyJ0XeQ) 464 | 465 | 466 | ### Concurrency 467 | 468 | - book: [Concurrency in Go](https://www.oreilly.com/library/view/concurrency-in-go/9781491941294) 469 | - book: [Visualizing Concurrency in Go](https://divan.dev/posts/go_concurrency_visualize/) 470 | - article: [The Go Blog - Concurrency is not parallelism](https://blog.golang.org/concurrency-is-not-parallelism) 471 | 472 | 473 | #### Goroutines 474 | 475 | #### Channels 476 | 477 | #### Select 478 | 479 | #### Race Condition 480 | 481 | - article: [The Go Blog - Introducing the Go Race Detector](https://blog.golang.org/race-detector) 482 | 483 | 484 | #### Package sync 485 | 486 | ##### Mutex 487 | 488 | ##### atomic 489 | 490 | ##### WaitGroup 491 | 492 | ##### Once 493 | 494 | ##### Pool 495 | 496 | ##### Map 497 | 498 | #### Patterns 499 | 500 | - article: [The Go Blog - Go Concurrency Patterns: Timing out, moving on](https://blog.golang.org/go-concurrency-patterns-timing-out-and) 501 | - article: [The Go Blog - Go Concurrency Patterns: Context](https://blog.golang.org/context) 502 | - article: [The Go Blog - Advanced Go Concurrency Patterns](https://blog.golang.org/advanced-go-concurrency-patterns) 503 | 504 | 505 | ##### Worker Pool (Thread pool) 506 | 507 | ##### Pipeline 508 | 509 | ##### Barrier 510 | 511 | ##### Future 512 | 513 | ### Tools 514 | 515 | - article: [Commands](https://golang.org/cmd/) 516 | 517 | 518 | #### gofmt 519 | 520 | - article: [gofmt](https://golang.org/cmd/gofmt/) 521 | - article: [The Go Blog - go fmt your code](https://blog.golang.org/go-fmt-your-code) 522 | 523 | 524 | #### vet 525 | 526 | - article: [vet](https://golang.org/cmd/vet/) 527 | 528 | 529 | #### godoc 530 | 531 | #### pprof 532 | 533 | - article: [The Go Blog - Profiling Go Programs](https://blog.golang.org/profiling-go-programs) 534 | - article: [The Go Blog - Profiling Go Programs](https://blog.golang.org/profiling-go-programs) 535 | - article: [Go code refactoring : the 23x performance hunt](https://medium.com/@val_deleplace/go-code-refactoring-the-23x-performance-hunt-156746b522f7)[[ru](https://habr.com/ru/company/badoo/blog/415919/)] 536 | 537 | 538 | #### Dependencies Management 539 | 540 | ##### mod 541 | 542 | ##### dep 543 | 544 | #### Linters (GolangCI, golint and etc) 545 | 546 | ### Testing 547 | 548 | #### go test/benchmark 549 | 550 | #### Mocking 551 | 552 | #### Libraries and Frameworks 553 | 554 | ##### testify 555 | 556 | ##### ginkgo 557 | 558 | ##### goconvey 559 | 560 | ### Runtime 561 | 562 | #### Garbage Collector 563 | 564 | #### Scheduler 565 | 566 | #### Package unsafe 567 | 568 | #### Package reflect 569 | 570 | ### Application 571 | 572 | #### Errors handling 573 | 574 | #### Templates 575 | 576 | #### Context 577 | 578 | #### WebSocket 579 | 580 | #### protobuf/gRPC 581 | 582 | #### Encoding 583 | 584 | ##### JSON 585 | 586 | ##### XML 587 | 588 | #### Frameworks 589 | 590 | ##### Gin 591 | 592 | ##### Beego 593 | 594 | ##### Echo 595 | 596 | ##### Go-Kit 597 | 598 | -------------------------------------------------------------------------------- /stacks/go/data/roadmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srce/roadmap/80796d6c5cdb08c6fb94958f9ae1577d91189012/stacks/go/data/roadmap.png -------------------------------------------------------------------------------- /stacks/go/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /stacks/go/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /stacks/java/data/roadmap.dot: -------------------------------------------------------------------------------- 1 | digraph roadmap { 2 | rankdir=LR; 3 | cs->cs_architecture; 4 | cs->code; 5 | cs->cs_algorithms; 6 | cs->cs_systems; 7 | cs->cs_ai; 8 | cs->cs_hardware; 9 | cs->cs_security; 10 | cs->cs_blockchain; 11 | cs_algorithms->cs_algorithms_analysis; 12 | cs_algorithms->cs_algorithms_structures; 13 | cs_algorithms->cs_algorithms_algorithms; 14 | cs_algorithms_structures->cs_algorithms_structures_lists; 15 | cs_algorithms_structures->cs_algorithms_structures_stacks; 16 | cs_algorithms_structures->cs_algorithms_structures_queues; 17 | cs_algorithms_structures->cs_algorithms_structures_trees; 18 | cs_algorithms_structures->cs_algorithms_structures_heaps; 19 | cs_algorithms_structures->cs_algorithms_structures_graphs; 20 | cs_algorithms_algorithms->cs_algorithms_structures_sorting; 21 | cs_algorithms_algorithms->cs_algorithms_structures_research; 22 | cs_architecture->cs_architecture_microservices; 23 | cs_architecture->cs_architecture_ddd; 24 | cs_architecture->cs_architecture_solid; 25 | cs_architecture->cs_architecture_patterns; 26 | cs_architecture->cs_architecture_event; 27 | cs_architecture->cs_architecture_oop; 28 | cs_architecture->cs_architecture_func; 29 | cs_architecture->cs_architecture_distributed; 30 | cs_architecture_oop->cs_architecture_oop_encapsulation; 31 | cs_architecture_oop->cs_architecture_oop_inheritance; 32 | cs_architecture_oop->cs_architecture_oop_polymorphism; 33 | db->db_sql; 34 | db->db_indexes; 35 | db->db_transactions; 36 | db->db_principles; 37 | db->db_relational; 38 | db->db_nosql; 39 | db->db_search; 40 | db->db_message_broker; 41 | db_message_broker->db_message_broker_kafka; 42 | db_message_broker->db_message_broker_rabbit; 43 | db_message_broker->db_message_broker_awssqs; 44 | db_relational->db_relational_mvcc; 45 | db_relational->db_relational_blocking; 46 | db_relational->db_relational_acid; 47 | db_relational->db_relational_oo; 48 | db_relational_mvcc->db_relational_firebird; 49 | db_relational_mvcc->db_relational_postgres; 50 | db_relational_mvcc->db_relational_oracle; 51 | db_relational_mvcc->db_mysql; 52 | db_relational_blocking->db_mysql; 53 | db_nosql->db_nosql_cap; 54 | db_nosql->db_nosql_base; 55 | db_nosql->db_nosql_graph; 56 | db_nosql->db_nosql_doc; 57 | db_nosql->db_nosql_colbase; 58 | db_nosql->db_nosql_colwidebase; 59 | db_nosql->db_nosql_time; 60 | db_nosql_graph->db_nosql_orient; 61 | db_nosql_graph->db_nosql_neo4j; 62 | db_nosql_doc->db_nosql_mongo; 63 | db_nosql_colbase->db_nosql_redis; 64 | db_nosql_colbase->db_nosql_clickhouse; 65 | db_search->db_search_elasticseaerch; 66 | db_search->db_search_sphinx; 67 | net->net_osi; 68 | net->net_grpc; 69 | net->net_restapi; 70 | net->net_graphql; 71 | net->net_soap; 72 | net->net_dns; 73 | net->net_protocols; 74 | net->net_websocket; 75 | net->net_auth; 76 | net_protocols->net_protocols_ip; 77 | net_protocols->net_protocols_tcp; 78 | net_protocols->net_protocols_udp; 79 | net_protocols->net_protocols_http; 80 | net_protocols->net_protocols_tls; 81 | net_protocols->net_protocols_ssl; 82 | net_auth->net_auth_authorization; 83 | net_auth->net_auth_authentication; 84 | net_auth->net_auth_oauth; 85 | net_auth->net_auth_jwt; 86 | net_auth->net_auth_cookie; 87 | os->os_types; 88 | os->os_processes; 89 | os->os_memory; 90 | os->os_filesystem; 91 | os->os_io; 92 | os->os_virtualization; 93 | os->os_shell; 94 | os_memory->os_memory_virtual; 95 | os_types->os_types_batch; 96 | os_types->os_types_time_sharing; 97 | os_types->os_types_distributed; 98 | os_types->os_types_network; 99 | os_types->os_types_realtime; 100 | os_processes->os_processes_threads; 101 | os_processes->os_processes_scheduling; 102 | os_processes->os_processes_multithreading; 103 | os_virtualization->os_virtualization_level; 104 | os_virtualization->os_virtualization_x86; 105 | os_virtualization_level->os_virtualization_level_docker; 106 | os_virtualization_x86->os_virtualization_x86_virtualbox; 107 | os_virtualization_x86->os_virtualization_x86_vmware; 108 | os_shell->os_shell_bash; 109 | os_shell->os_shell_zsh; 110 | dev->dev_testing; 111 | dev->dev_build; 112 | dev->dev_trackers; 113 | dev->dev_version; 114 | dev->dev_deployment; 115 | dev->dev_estimation; 116 | dev->dev_debugging; 117 | dev->dev_orchestration; 118 | dev->dev_management; 119 | dev_orchestration->dev_orchestration_ansible; 120 | dev_orchestration->dev_orchestration_puppet; 121 | dev_orchestration->dev_orchestration_k8s; 122 | dev_debugging->dev_debugging_troubleshooting; 123 | dev_debugging->dev_debugging_logging; 124 | dev_debugging->dev_debugging_monitoring; 125 | dev_testing->dev_testing_tdd; 126 | dev_testing->dev_testing_bdd; 127 | dev_trackers->dev_trackers_jira; 128 | dev_trackers->dev_trackers_redmine; 129 | dev_trackers->dev_trackers_tfs; 130 | dev_version->dev_version_git; 131 | dev_deployment->dev_deployment_ci; 132 | dev_deployment->dev_deployment_cd; 133 | dev_management->dev_methodologies; 134 | dev_management->dev_paradigms; 135 | dev_management->management_time; 136 | dev_paradigms->management_paradigms_agile; 137 | dev_paradigms->management_paradigms_waterfall; 138 | management_time->management_time_pareto; 139 | management_time->management_time_gtd; 140 | management_time->management_time_pomodoro; 141 | dev_methodologies->dev_methodologies_scrum; 142 | dev_methodologies->dev_methodologies_kanban; 143 | dev_methodologies->dev_methodologies_xp; 144 | dev_methodologies->dev_methodologies_12factors; 145 | dev_estimation->management_estimation_poker; 146 | dev_build->dev_build_make; 147 | dev_build->dev_build_maven; 148 | dev_build->dev_build_ant; 149 | dev_build->dev_build_gradle; 150 | java->java_core; 151 | java->java_jdk; 152 | java->java_ee; 153 | java->java_spring; 154 | java->java_3d_part; 155 | java->java_persistence; 156 | java->java_testing; 157 | java_core->java_core_multithreading; 158 | java_core->java_core_io; 159 | java_core->java_core_collections; 160 | java_core->java_core_stream_api; 161 | java_core->java_core_reflection_api; 162 | java_jdk->java_jdk_jvm; 163 | java_jdk->java_jdk_tools; 164 | java_ee->java_ee_ejb; 165 | java_ee->java_ee_components; 166 | java_ee->java_ee_services; 167 | java_spring->java_spring_core; 168 | java_spring->java_spring_mvc; 169 | java_spring->java_spring_data; 170 | java_spring->java_spring_security; 171 | java_spring->java_spring_boot; 172 | java_spring->java_spring_cloud; 173 | java_3d_part->java_3d_part_apache; 174 | java_3d_part->java_3d_part_logging; 175 | java_3d_part->java_3d_part_json; 176 | java_persistence->java_persistence_jdbc; 177 | java_persistence->java_persistence_jpa; 178 | java_persistence_jpa->java_persistence_jpa_hibernate; 179 | java_persistence_jpa->java_persistence_jpa_eclipselink; 180 | java_persistence_jpa->java_persistence_jpa_batis; 181 | java_testing->java_testing_testng; 182 | java_testing->java_testing_junit; 183 | java_testing->java_testing_mokito; 184 | backend->cs; 185 | backend->db; 186 | backend->net; 187 | backend->os; 188 | backend->dev; 189 | backend->java; 190 | cs [ label="Computer Science" ]; 191 | cs_architecture [ label="Architecture knowledge" ]; 192 | code [ label="Code Standards and Code Review Process" ]; 193 | cs_algorithms [ label="Algorithms and data structures" ]; 194 | cs_systems [ label="Systems Programming" ]; 195 | cs_ai [ label="Artificial Intelligence and Machine Learning" ]; 196 | cs_hardware [ label="Hardware" ]; 197 | cs_security [ label="Security and Encryption" ]; 198 | cs_blockchain [ label="Blockchain and Cryptocurrency" ]; 199 | cs_algorithms_analysis [ label="Analysis" ]; 200 | cs_algorithms_structures [ label="Data Structures" ]; 201 | cs_algorithms_algorithms [ label="Algorithms" ]; 202 | cs_algorithms_structures_lists [ label="Lists" ]; 203 | cs_algorithms_structures_stacks [ label="Stacks" ]; 204 | cs_algorithms_structures_queues [ label="Queues" ]; 205 | cs_algorithms_structures_trees [ label="Trees" ]; 206 | cs_algorithms_structures_heaps [ label="Heaps" ]; 207 | cs_algorithms_structures_graphs [ label="Graphs" ]; 208 | cs_algorithms_structures_sorting [ label="Sorting algoritms" ]; 209 | cs_algorithms_structures_research [ label="Reasearch algoritms" ]; 210 | cs_architecture_microservices [ label="Microservices" ]; 211 | cs_architecture_ddd [ label="Domain-Driven Design" ]; 212 | cs_architecture_solid [ label="SOLID" ]; 213 | cs_architecture_patterns [ label="Design Patterns" ]; 214 | cs_architecture_event [ label="Event Sourcing" ]; 215 | cs_architecture_oop [ label="Object-Oriented Programming" ]; 216 | cs_architecture_func [ label="Functional Programming" ]; 217 | cs_architecture_distributed [ label="Distributed Systems" ]; 218 | cs_architecture_oop_encapsulation [ label="Encapsulation" ]; 219 | cs_architecture_oop_inheritance [ label="Inheritance" ]; 220 | cs_architecture_oop_polymorphism [ label="Polymorphism" ]; 221 | db [ label="Databases" ]; 222 | db_sql [ label="SQL" ]; 223 | db_indexes [ label="Indexes" ]; 224 | db_transactions [ label="Transactions" ]; 225 | db_principles [ label="Principles" ]; 226 | db_relational [ label="Relational" ]; 227 | db_nosql [ label="NOSQL" ]; 228 | db_search [ label="Search Engines" ]; 229 | db_message_broker [ label="Message Broker" ]; 230 | db_message_broker_kafka [ label="Kafka" ]; 231 | db_message_broker_rabbit [ label="RabbitMQ" ]; 232 | db_message_broker_awssqs [ label="Amazon Simple Queue Service" ]; 233 | db_relational_mvcc [ label="Multiversion Concurrency Control" ]; 234 | db_relational_blocking [ label="Blocking" ]; 235 | db_relational_acid [ label="ACID" ]; 236 | db_relational_oo [ label="Object-oriented" ]; 237 | db_relational_firebird [ label="Firebird" ]; 238 | db_relational_postgres [ label="PostgreSQL" ]; 239 | db_relational_oracle [ label="Oracle" ]; 240 | db_mysql [ label="MySQL" ]; 241 | db_nosql_cap [ label="CAP Theorem" ]; 242 | db_nosql_base [ label="BASE" ]; 243 | db_nosql_graph [ label="Graph database" ]; 244 | db_nosql_doc [ label="Document base" ]; 245 | db_nosql_colbase [ label="Column base" ]; 246 | db_nosql_colwidebase [ label="Wide column base" ]; 247 | db_nosql_time [ label="Time series" ]; 248 | db_nosql_orient [ label="OrientDB" ]; 249 | db_nosql_neo4j [ label="Neo4j" ]; 250 | db_nosql_mongo [ label="MongoDB" ]; 251 | db_nosql_redis [ label="Redis" ]; 252 | db_nosql_clickhouse [ label="ClickHouse" ]; 253 | db_search_elasticseaerch [ label="Elasticseaerch" ]; 254 | db_search_sphinx [ label="Sphinx" ]; 255 | net [ label="Computer Network" ]; 256 | net_osi [ label="Open Systems Interconnection model" ]; 257 | net_grpc [ label="gRPC" ]; 258 | net_restapi [ label="REST API" ]; 259 | net_graphql [ label="GraphQL" ]; 260 | net_soap [ label="SOAP" ]; 261 | net_dns [ label="DNS" ]; 262 | net_protocols [ label="Protocols" ]; 263 | net_websocket [ label="Websocket" ]; 264 | net_auth [ label="Authorization and Authentication" ]; 265 | net_protocols_ip [ label="IP" ]; 266 | net_protocols_tcp [ label="TCP" ]; 267 | net_protocols_udp [ label="UDP" ]; 268 | net_protocols_http [ label="HTTP" ]; 269 | net_protocols_tls [ label="TLS" ]; 270 | net_protocols_ssl [ label="SSL" ]; 271 | net_auth_authorization [ label="Authorization" ]; 272 | net_auth_authentication [ label="Authentication" ]; 273 | net_auth_oauth [ label="OAuth" ]; 274 | net_auth_jwt [ label="JWT" ]; 275 | net_auth_cookie [ label="Cookie" ]; 276 | os [ label="Operating System" ]; 277 | os_types [ label="Types" ]; 278 | os_processes [ label="Processes and Threads" ]; 279 | os_memory [ label="Memory Management" ]; 280 | os_filesystem [ label="File system" ]; 281 | os_io [ label="I/O" ]; 282 | os_virtualization [ label="Virtualization" ]; 283 | os_shell [ label="Command Language" ]; 284 | os_memory_virtual [ label="Virtual Memory" ]; 285 | os_types_batch [ label="Batch" ]; 286 | os_types_time_sharing [ label="Time-Sharing" ]; 287 | os_types_distributed [ label="Distributed" ]; 288 | os_types_network [ label="Network" ]; 289 | os_types_realtime [ label="Real-Time" ]; 290 | os_processes_threads [ label="Threads" ]; 291 | os_processes_scheduling [ label="Scheduling" ]; 292 | os_processes_multithreading [ label="Multi-Threading" ]; 293 | os_virtualization_level [ label="OS-level Virtualisation" ]; 294 | os_virtualization_x86 [ label="x86 Virtualization" ]; 295 | os_virtualization_level_docker [ label="Docker" ]; 296 | os_virtualization_x86_virtualbox [ label="VirtualBox" ]; 297 | os_virtualization_x86_vmware [ label="VMware" ]; 298 | os_shell_bash [ label="Bash" ]; 299 | os_shell_zsh [ label="Zsh" ]; 300 | dev [ label="Software Development Processes" ]; 301 | dev_testing [ label="Testing" ]; 302 | dev_build [ label="Build Systems" ]; 303 | dev_trackers [ label="Bug tracking systems" ]; 304 | dev_version [ label="Version Control" ]; 305 | dev_deployment [ label="Deployment" ]; 306 | dev_estimation [ label="Estimations" ]; 307 | dev_debugging [ label="Debugging" ]; 308 | dev_orchestration [ label="Orchestration" ]; 309 | dev_management [ label="Management" ]; 310 | dev_orchestration_ansible [ label="Ansible" ]; 311 | dev_orchestration_puppet [ label="Puppet" ]; 312 | dev_orchestration_k8s [ label="Kubernetes" ]; 313 | dev_debugging_troubleshooting [ label="Troubleshooting" ]; 314 | dev_debugging_logging [ label="Logging" ]; 315 | dev_debugging_monitoring [ label="Monitoring" ]; 316 | dev_testing_tdd [ label="Test-driven development" ]; 317 | dev_testing_bdd [ label="Behavior-driven development" ]; 318 | dev_trackers_jira [ label="Jira" ]; 319 | dev_trackers_redmine [ label="Redmine" ]; 320 | dev_trackers_tfs [ label="TFS" ]; 321 | dev_version_git [ label="Git" ]; 322 | dev_deployment_ci [ label="Continuous Integration" ]; 323 | dev_deployment_cd [ label="Continuous Delivery" ]; 324 | dev_methodologies [ label="Methodologies and Frameworks" ]; 325 | dev_paradigms [ label="Paradigms and Models" ]; 326 | management_time [ label="Time Management" ]; 327 | management_paradigms_agile [ label="Agile" ]; 328 | management_paradigms_waterfall [ label="Waterfall" ]; 329 | management_time_pareto [ label="Pareto analysis" ]; 330 | management_time_gtd [ label="Getting Things Done" ]; 331 | management_time_pomodoro [ label="Pomodoro" ]; 332 | dev_methodologies_scrum [ label="SCRUM" ]; 333 | dev_methodologies_kanban [ label="Kanban" ]; 334 | dev_methodologies_xp [ label="Extreme Programming" ]; 335 | dev_methodologies_12factors [ label="The Twelve-Factor App" ]; 336 | management_estimation_poker [ label="Planning Poker" ]; 337 | dev_build_make [ label="Make" ]; 338 | dev_build_maven [ label="Maven" ]; 339 | dev_build_ant [ label="Ant" ]; 340 | dev_build_gradle [ label="Gradle" ]; 341 | java [ label="Java" ]; 342 | java_core [ label="Core" ]; 343 | java_jdk [ label="JDK" ]; 344 | java_ee [ label="Enterprise Edition" ]; 345 | java_spring [ label="Spring Framework" ]; 346 | java_3d_part [ label="Third Party Libraries" ]; 347 | java_persistence [ label="Data Persistence" ]; 348 | java_testing [ label="Testing Frameworks" ]; 349 | java_core_multithreading [ label="Multithreading" ]; 350 | java_core_io [ label="I/O" ]; 351 | java_core_collections [ label="Collections" ]; 352 | java_core_stream_api [ label="Stream API" ]; 353 | java_core_reflection_api [ label="Reflection API" ]; 354 | java_jdk_jvm [ label="JVM" ]; 355 | java_jdk_tools [ label="Tools" ]; 356 | java_ee_ejb [ label="EJB" ]; 357 | java_ee_components [ label="Web Components" ]; 358 | java_ee_services [ label="Web Services" ]; 359 | java_spring_core [ label="Core" ]; 360 | java_spring_mvc [ label="MVC" ]; 361 | java_spring_data [ label="Data" ]; 362 | java_spring_security [ label="Security" ]; 363 | java_spring_boot [ label="Boot" ]; 364 | java_spring_cloud [ label="Cloud" ]; 365 | java_3d_part_apache [ label="Apache Commons" ]; 366 | java_3d_part_logging [ label="Logging Libraries" ]; 367 | java_3d_part_json [ label="Json Libraries" ]; 368 | java_persistence_jdbc [ label="JDBC" ]; 369 | java_persistence_jpa [ label="JPA" ]; 370 | java_persistence_jpa_hibernate [ label="Hibernate" ]; 371 | java_persistence_jpa_eclipselink [ label="EclipseLink" ]; 372 | java_persistence_jpa_batis [ label="iBATIS/MyBatis" ]; 373 | java_testing_testng [ label="TestNG" ]; 374 | java_testing_junit [ label="JUnit" ]; 375 | java_testing_mokito [ label="Mokito" ]; 376 | backend [ label="Java Software Engineer" ]; 377 | } 378 | -------------------------------------------------------------------------------- /stacks/java/data/roadmap.md: -------------------------------------------------------------------------------- 1 | # Java Software Engineer 2 | 3 | ## Computer Science 4 | 5 | ### Architecture knowledge 6 | 7 | - book: [Designing Data-Intensive Applications](http://shop.oreilly.com/product/0636920032175.do) 8 | - article: [Создание архитектуры программы или как проектировать табуретку](https://habr.com/ru/post/276593/) 9 | - book: [Clean Architecture](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) 10 | - book: [Patterns of Enterprise Application Architecture](https://www.martinfowler.com/books/eaa.html) 11 | 12 | 13 | #### Microservices 14 | 15 | #### Domain-Driven Design 16 | 17 | #### SOLID 18 | 19 | #### Design Patterns 20 | 21 | - book: [Design patterns : elements of reusable object-oriented software](https://www.worldcat.org/title/design-patterns-elements-of-reusable-object-oriented-software/oclc/31171684) 22 | - book: [Design Patterns: Elements of Reusable Object-Oriented Software]( 23 | https://www.oreilly.com/library/view/design-patterns-elements/0201633612/ 24 | ) 25 | - book: [Head First Design Patterns](http://shop.oreilly.com/product/9780596007126.do) 26 | - book: [Реактивные шаблоны проектирования](https://www.piter.com/product/reaktivnye-shablony-proektirovaniya) 27 | - book: [Professional Java EE Design Patterns](https://www.amazon.com/Professional-Java-EE-Design-Patterns/dp/111884341X) 28 | 29 | 30 | #### Event Sourcing 31 | 32 | #### Object-Oriented Programming 33 | 34 | ##### Encapsulation 35 | 36 | ##### Inheritance 37 | 38 | ##### Polymorphism 39 | 40 | #### Functional Programming 41 | 42 | #### Distributed Systems 43 | 44 | - book: [Designing Distributed Systems](https://www.amazon.com/gp/product/1491983647) 45 | 46 | 47 | ### Code Standards and Code Review Process 48 | 49 | ### Algorithms and data structures 50 | 51 | - book: [Algorithms, 4th Edition](https://algs4.cs.princeton.edu/home/) 52 | - course: [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) 53 | - course: [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) 54 | - book: [Introduction to Algorithms, Third Edition](https://mitpress.mit.edu/books/introduction-algorithms-third-edition) 55 | - book: [Data Structures and Algorithms in Java, 2nd Edition](https://www.amazon.com/Data-Structures-Algorithms-Java-2nd/dp/0672324539) 56 | - book: [Grokking Algorithms: An illustrated guide for programmers and other curious people](https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230) 57 | 58 | 59 | #### Analysis 60 | 61 | #### Data Structures 62 | 63 | ##### Lists 64 | 65 | ##### Stacks 66 | 67 | ##### Queues 68 | 69 | ##### Trees 70 | 71 | ##### Heaps 72 | 73 | ##### Graphs 74 | 75 | #### Algorithms 76 | 77 | ##### Sorting algoritms 78 | 79 | ##### Reasearch algoritms 80 | 81 | ### Systems Programming 82 | 83 | ### Artificial Intelligence and Machine Learning 84 | 85 | ### Hardware 86 | 87 | ### Security and Encryption 88 | 89 | ### Blockchain and Cryptocurrency 90 | 91 | ## Databases 92 | 93 | ### SQL 94 | 95 | - book: [SQL Bible](https://www.amazon.com/SQL-Bible-Alex-Kriegel/dp/0470229063) 96 | 97 | 98 | ### Indexes 99 | 100 | ### Transactions 101 | 102 | ### Principles 103 | 104 | ### Relational 105 | 106 | #### Multiversion Concurrency Control 107 | 108 | ##### Firebird 109 | 110 | ##### PostgreSQL 111 | 112 | ##### Oracle 113 | 114 | - book: [Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c](https://www.amazon.com/Oracle-PL-SQL-Programming-Versions/dp/1449324452) 115 | 116 | 117 | ##### MySQL 118 | 119 | #### Blocking 120 | 121 | ##### MySQL 122 | 123 | #### ACID 124 | 125 | #### Object-oriented 126 | 127 | ### NOSQL 128 | 129 | - article: [NOSQL](https://martinfowler.com/nosql.html) 130 | - book: [NoSQL Distilled](https://martinfowler.com/books/nosql.html) 131 | 132 | 133 | #### CAP Theorem 134 | 135 | #### BASE 136 | 137 | #### Graph database 138 | 139 | ##### OrientDB 140 | 141 | ##### Neo4j 142 | 143 | #### Document base 144 | 145 | ##### MongoDB 146 | 147 | #### Column base 148 | 149 | ##### Redis 150 | 151 | ##### ClickHouse 152 | 153 | #### Wide column base 154 | 155 | #### Time series 156 | 157 | ### Search Engines 158 | 159 | #### Elasticseaerch 160 | 161 | #### Sphinx 162 | 163 | ### Message Broker 164 | 165 | #### Kafka 166 | 167 | #### RabbitMQ 168 | 169 | #### Amazon Simple Queue Service 170 | 171 | ## Computer Network 172 | 173 | - book: [Computer Networks](https://www.amazon.com/Computer-Networks-Tanenbaum-International-Economy/dp/9332518742) 174 | 175 | 176 | ### Open Systems Interconnection model 177 | 178 | ### gRPC 179 | 180 | ### REST API 181 | 182 | ### GraphQL 183 | 184 | ### SOAP 185 | 186 | ### DNS 187 | 188 | ### Protocols 189 | 190 | #### IP 191 | 192 | #### TCP 193 | 194 | #### UDP 195 | 196 | #### HTTP 197 | 198 | #### TLS 199 | 200 | #### SSL 201 | 202 | ### Websocket 203 | 204 | ### Authorization and Authentication 205 | 206 | #### Authorization 207 | 208 | #### Authentication 209 | 210 | #### OAuth 211 | 212 | #### JWT 213 | 214 | #### Cookie 215 | 216 | ## Operating System 217 | 218 | ### Types 219 | 220 | #### Batch 221 | 222 | #### Time-Sharing 223 | 224 | #### Distributed 225 | 226 | #### Network 227 | 228 | #### Real-Time 229 | 230 | ### Processes and Threads 231 | 232 | #### Threads 233 | 234 | #### Scheduling 235 | 236 | #### Multi-Threading 237 | 238 | ### Memory Management 239 | 240 | #### Virtual Memory 241 | 242 | #### Virtual Memory 243 | 244 | ### File system 245 | 246 | ### I/O 247 | 248 | ### Virtualization 249 | 250 | #### OS-level Virtualisation 251 | 252 | ##### Docker 253 | 254 | #### x86 Virtualization 255 | 256 | ##### VirtualBox 257 | 258 | ##### VMware 259 | 260 | ### Command Language 261 | 262 | #### Bash 263 | 264 | #### Zsh 265 | 266 | ## Software Development Processes 267 | 268 | - book: [Working Effectively with Legacy Code](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) 269 | - book: [Refactoring: Improving the Design of Existing Code](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672) 270 | - book: [The Pragmatic Programmer: From Journeyman to Master](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) 271 | - book: [Code Complete: A Practical Handbook of Software Construction](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) 272 | - book: [Clean Code: A Handbook of Agile Software Craftsmanship](https://www.amazon.com/gp/product/0132350882) 273 | 274 | 275 | ### Testing 276 | 277 | - book: [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530) 278 | - article: [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) 279 | - article: [How deep are your unit tests?]( 280 | https://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests 281 | ) 282 | - book: [Practical Unit Testing with JUnit and Mockito](https://www.amazon.com/Practical-Unit-Testing-JUnit-Mockito/dp/8393489393) 283 | 284 | 285 | #### Test-driven development 286 | 287 | #### Behavior-driven development 288 | 289 | ### Build Systems 290 | 291 | #### Make 292 | 293 | #### Maven 294 | 295 | - article: [Системы сборки проектов Maven](http://www.apache-maven.ru/) 296 | - article: [Идеальный мавен. Часть 2: структура проекта](https://habr.com/ru/post/344480/) 297 | 298 | 299 | #### Ant 300 | 301 | #### Gradle 302 | 303 | - book: [Gradle in Action](http://barbra-coco.dyndns.org/student/Gradle%20in%20Action.pdf) 304 | 305 | 306 | ### Bug tracking systems 307 | 308 | #### Jira 309 | 310 | #### Redmine 311 | 312 | #### TFS 313 | 314 | ### Version Control 315 | 316 | - article: [4 книги о системах контроля версий, которые дадут о них полное представление](https://tproger.ru/books/4-books-about-vcs/) 317 | 318 | 319 | #### Git 320 | 321 | - book: [Pro Git](https://git-scm.com/book/en) 322 | 323 | 324 | ### Deployment 325 | 326 | #### Continuous Integration 327 | 328 | #### Continuous Delivery 329 | 330 | - book: [Continuous delivery. Практика непрерывных апдейтов](https://www.piter.com/product_by_id/87629352) 331 | 332 | 333 | ### Estimations 334 | 335 | #### Planning Poker 336 | 337 | ### Debugging 338 | 339 | #### Troubleshooting 340 | 341 | #### Logging 342 | 343 | - article: [Введение в ELK: собираем, фильтруем и анализируем большие данные](https://mkdev.me/posts/vvedenie-v-elk-sobiraem-filtruem-i-analiziruem-bolshie-dannye) 344 | - article: [Логирование в Java / quick start](https://habr.com/ru/post/130195/) 345 | - article: [Инструменты логирование в Java](https://habr.com/ru/sandbox/20634/) 346 | 347 | 348 | #### Monitoring 349 | 350 | ### Orchestration 351 | 352 | #### Ansible 353 | 354 | #### Puppet 355 | 356 | #### Kubernetes 357 | 358 | - book: [Kubernetes in Action](https://www.manning.com/books/kubernetes-in-action) 359 | 360 | 361 | ### Management 362 | 363 | - book: [Goal: A Process of Ongoing Improvement](https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951) 364 | 365 | 366 | #### Methodologies and Frameworks 367 | 368 | - article: [Ещё раз про семь основных методологий разработки](https://habr.com/ru/company/edison/blog/269789/) 369 | 370 | 371 | ##### SCRUM 372 | 373 | ##### Kanban 374 | 375 | ##### Extreme Programming 376 | 377 | ##### The Twelve-Factor App 378 | 379 | - article: [The Twelve-Factor App](https://12factor.net) 380 | 381 | 382 | #### Paradigms and Models 383 | 384 | ##### Agile 385 | 386 | - article: [Manifesto for Agile Software Development](https://agilemanifesto.org) 387 | 388 | 389 | ##### Waterfall 390 | 391 | #### Time Management 392 | 393 | - book: [Джедайские техники](https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/) 394 | 395 | 396 | ##### Pareto analysis 397 | 398 | ##### Getting Things Done 399 | 400 | ##### Pomodoro 401 | 402 | ## Java 403 | 404 | ### Core 405 | 406 | - book: [Oracle Certified Associate Java SE 8 Programmer I Study Guide (2015)](https://www.amazon.com/OCA-Certified-Associate-Programmer-1Z0-808/dp/1118957407) 407 | - book: [OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (2015)](https://www.amazon.com/OCP-Certified-Professional-Programmer-2015-12-21/dp/B01A1MN0ZS) 408 | - book: [Java 8 Lambdas: Functional Programming For The Masses](https://www.amazon.com/Java-Lambdas-Functional-Programming-Masses/dp/1449370772) 409 | - book: [Java: A Beginner's Guide, Eighth Edition](https://www.amazon.com/Java-Beginners-Eighth-Herbert-Schildt/dp/1260440214) 410 | - book: [Java Concurrency in Practice](https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601) 411 | 412 | 413 | #### Multithreading 414 | 415 | #### I/O 416 | 417 | #### Collections 418 | 419 | #### Stream API 420 | 421 | #### Reflection API 422 | 423 | ### JDK 424 | 425 | #### JVM 426 | 427 | #### Tools 428 | 429 | ### Enterprise Edition 430 | 431 | - book: [Beginning Java E.E. 7 (Expert Voice in Java)](https://www.amazon.com/gp/product/143024626X) 432 | - book: [Java EE 7 Essentials: Enterprise Developer Handbook](https://www.amazon.com/Java-EE-Essentials-Enterprise-Developer/dp/1449370179) 433 | 434 | 435 | #### EJB 436 | 437 | #### Web Components 438 | 439 | #### Web Services 440 | 441 | ### Spring Framework 442 | 443 | - video: [JUGLviv meetup: Spring Boot the Ripper](https://www.youtube.com/watch?v=8xa0RWMwAOE) 444 | - video: [Евгений Борисов — Spring-потрошитель, часть 1](https://www.youtube.com/watch?v=BmBr5diz8WA) 445 | - book: [Cloud Native Java: Designing Resilient Systems with Spring Boot, 446 | Spring Cloud, and Cloud Foundry 447 | ]( 448 | https://www.amazon.com/Cloud-Native-Java-Designing-Resilient/dp/1449374646 449 | ) 450 | - book: [Spring 4 для профессионалов | Шефер Крис, Хо Кларенс](https://www.ozon.ru/context/detail/id/33056979/) 451 | - book: [Spring in Action 5th Edition](https://www.amazon.com/Spring-Action-Craig-Walls/dp/1617294942 452 | ) 453 | - book: [Pro Spring](https://www.amazon.com/Pro-Spring-Clarence-Ho-ebook/dp/B014P9HJ0A 454 | ) 455 | 456 | 457 | #### Core 458 | 459 | #### MVC 460 | 461 | #### Data 462 | 463 | #### Security 464 | 465 | #### Boot 466 | 467 | #### Cloud 468 | 469 | ### Third Party Libraries 470 | 471 | #### Apache Commons 472 | 473 | #### Logging Libraries 474 | 475 | #### Json Libraries 476 | 477 | ### Data Persistence 478 | 479 | #### JDBC 480 | 481 | #### JPA 482 | 483 | ##### Hibernate 484 | 485 | ##### EclipseLink 486 | 487 | ##### iBATIS/MyBatis 488 | 489 | ### Testing Frameworks 490 | 491 | #### TestNG 492 | 493 | #### JUnit 494 | 495 | #### Mokito 496 | 497 | -------------------------------------------------------------------------------- /stacks/java/data/roadmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srce/roadmap/80796d6c5cdb08c6fb94958f9ae1577d91189012/stacks/java/data/roadmap.png -------------------------------------------------------------------------------- /stacks/java/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | Логирование в Java / quick start 11 | https://habr.com/ru/post/130195/ 12 | 13 | dev_debugging_logging 14 | 15 |
16 | 17 |
18 | Инструменты логирование в Java 19 | https://habr.com/ru/sandbox/20634/ 20 | 21 | dev_debugging_logging 22 | 23 |
24 | 25 | 26 | Practical Unit Testing with JUnit and Mockito 27 | https://www.amazon.com/Practical-Unit-Testing-JUnit-Mockito/dp/8393489393 28 | 29 | dev_testing 30 | 31 | 32 | 33 | 34 | Data Structures and Algorithms in Java, 2nd Edition 35 | https://www.amazon.com/Data-Structures-Algorithms-Java-2nd/dp/0672324539 36 | 37 | cs_algorithms 38 | 39 | 40 | 41 | 42 | Grokking Algorithms: An illustrated guide for programmers and other curious people 43 | https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230 44 | 45 | cs_algorithms 46 | 47 | 48 | 49 | 50 | Professional Java EE Design Patterns 51 | https://www.amazon.com/Professional-Java-EE-Design-Patterns/dp/111884341X 52 | 53 | cs_architecture_patterns 54 | 55 | 56 |
57 | -------------------------------------------------------------------------------- /stacks/java/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /stacks/php/data/roadmap.dot: -------------------------------------------------------------------------------- 1 | digraph roadmap { 2 | rankdir=LR; 3 | cs->cs_architecture; 4 | cs->code; 5 | cs->cs_algorithms; 6 | cs->cs_systems; 7 | cs->cs_ai; 8 | cs->cs_hardware; 9 | cs->cs_security; 10 | cs->cs_blockchain; 11 | cs_algorithms->cs_algorithms_analysis; 12 | cs_algorithms->cs_algorithms_structures; 13 | cs_algorithms->cs_algorithms_algorithms; 14 | cs_algorithms_structures->cs_algorithms_structures_lists; 15 | cs_algorithms_structures->cs_algorithms_structures_stacks; 16 | cs_algorithms_structures->cs_algorithms_structures_queues; 17 | cs_algorithms_structures->cs_algorithms_structures_trees; 18 | cs_algorithms_structures->cs_algorithms_structures_heaps; 19 | cs_algorithms_structures->cs_algorithms_structures_graphs; 20 | cs_algorithms_algorithms->cs_algorithms_structures_sorting; 21 | cs_algorithms_algorithms->cs_algorithms_structures_research; 22 | cs_architecture->cs_architecture_microservices; 23 | cs_architecture->cs_architecture_ddd; 24 | cs_architecture->cs_architecture_solid; 25 | cs_architecture->cs_architecture_patterns; 26 | cs_architecture->cs_architecture_event; 27 | cs_architecture->cs_architecture_oop; 28 | cs_architecture->cs_architecture_func; 29 | cs_architecture->cs_architecture_distributed; 30 | cs_architecture_oop->cs_architecture_oop_encapsulation; 31 | cs_architecture_oop->cs_architecture_oop_inheritance; 32 | cs_architecture_oop->cs_architecture_oop_polymorphism; 33 | db->db_sql; 34 | db->db_indexes; 35 | db->db_transactions; 36 | db->db_principles; 37 | db->db_relational; 38 | db->db_nosql; 39 | db->db_search; 40 | db->db_message_broker; 41 | db_message_broker->db_message_broker_kafka; 42 | db_message_broker->db_message_broker_rabbit; 43 | db_message_broker->db_message_broker_awssqs; 44 | db_relational->db_relational_mvcc; 45 | db_relational->db_relational_blocking; 46 | db_relational->db_relational_acid; 47 | db_relational->db_relational_oo; 48 | db_relational_mvcc->db_relational_firebird; 49 | db_relational_mvcc->db_relational_postgres; 50 | db_relational_mvcc->db_relational_oracle; 51 | db_relational_mvcc->db_mysql; 52 | db_relational_blocking->db_mysql; 53 | db_nosql->db_nosql_cap; 54 | db_nosql->db_nosql_base; 55 | db_nosql->db_nosql_graph; 56 | db_nosql->db_nosql_doc; 57 | db_nosql->db_nosql_colbase; 58 | db_nosql->db_nosql_colwidebase; 59 | db_nosql->db_nosql_time; 60 | db_nosql_graph->db_nosql_orient; 61 | db_nosql_graph->db_nosql_neo4j; 62 | db_nosql_doc->db_nosql_mongo; 63 | db_nosql_colbase->db_nosql_redis; 64 | db_nosql_colbase->db_nosql_clickhouse; 65 | db_search->db_search_elasticseaerch; 66 | db_search->db_search_sphinx; 67 | net->net_osi; 68 | net->net_grpc; 69 | net->net_restapi; 70 | net->net_graphql; 71 | net->net_soap; 72 | net->net_dns; 73 | net->net_protocols; 74 | net->net_websocket; 75 | net->net_auth; 76 | net_protocols->net_protocols_ip; 77 | net_protocols->net_protocols_tcp; 78 | net_protocols->net_protocols_udp; 79 | net_protocols->net_protocols_http; 80 | net_protocols->net_protocols_tls; 81 | net_protocols->net_protocols_ssl; 82 | net_auth->net_auth_authorization; 83 | net_auth->net_auth_authentication; 84 | net_auth->net_auth_oauth; 85 | net_auth->net_auth_jwt; 86 | net_auth->net_auth_cookie; 87 | os->os_types; 88 | os->os_processes; 89 | os->os_memory; 90 | os->os_filesystem; 91 | os->os_io; 92 | os->os_virtualization; 93 | os->os_shell; 94 | os_memory->os_memory_virtual; 95 | os_types->os_types_batch; 96 | os_types->os_types_time_sharing; 97 | os_types->os_types_distributed; 98 | os_types->os_types_network; 99 | os_types->os_types_realtime; 100 | os_processes->os_processes_threads; 101 | os_processes->os_processes_scheduling; 102 | os_processes->os_processes_multithreading; 103 | os_virtualization->os_virtualization_level; 104 | os_virtualization->os_virtualization_x86; 105 | os_virtualization_level->os_virtualization_level_docker; 106 | os_virtualization_x86->os_virtualization_x86_virtualbox; 107 | os_virtualization_x86->os_virtualization_x86_vmware; 108 | os_shell->os_shell_bash; 109 | os_shell->os_shell_zsh; 110 | dev->dev_testing; 111 | dev->dev_build; 112 | dev->dev_trackers; 113 | dev->dev_version; 114 | dev->dev_deployment; 115 | dev->dev_estimation; 116 | dev->dev_debugging; 117 | dev->dev_orchestration; 118 | dev->dev_management; 119 | dev_orchestration->dev_orchestration_ansible; 120 | dev_orchestration->dev_orchestration_puppet; 121 | dev_orchestration->dev_orchestration_k8s; 122 | dev_debugging->dev_debugging_troubleshooting; 123 | dev_debugging->dev_debugging_logging; 124 | dev_debugging->dev_debugging_monitoring; 125 | dev_testing->dev_testing_tdd; 126 | dev_testing->dev_testing_bdd; 127 | dev_trackers->dev_trackers_jira; 128 | dev_trackers->dev_trackers_redmine; 129 | dev_trackers->dev_trackers_tfs; 130 | dev_version->dev_version_git; 131 | dev_deployment->dev_deployment_ci; 132 | dev_deployment->dev_deployment_cd; 133 | dev_management->dev_methodologies; 134 | dev_management->dev_paradigms; 135 | dev_management->management_time; 136 | dev_paradigms->management_paradigms_agile; 137 | dev_paradigms->management_paradigms_waterfall; 138 | management_time->management_time_pareto; 139 | management_time->management_time_gtd; 140 | management_time->management_time_pomodoro; 141 | dev_methodologies->dev_methodologies_scrum; 142 | dev_methodologies->dev_methodologies_kanban; 143 | dev_methodologies->dev_methodologies_xp; 144 | dev_methodologies->dev_methodologies_12factors; 145 | dev_estimation->management_estimation_poker; 146 | dev_build->dev_build_make; 147 | dev_build->dev_build_maven; 148 | dev_build->dev_build_ant; 149 | dev_build->dev_build_gradle; 150 | php->php_core; 151 | php_core->php_types; 152 | php_core->php_variables; 153 | php_core->php_functions; 154 | php_core->php_oop; 155 | php_core->php_errors; 156 | php_core->php_namespaces; 157 | php->php_spl; 158 | php->php_generators; 159 | php->php_templates; 160 | php->php_frameworks; 161 | php->php_orm; 162 | php->php_testing; 163 | php_types->php_booleans; 164 | php_types->php_integers; 165 | php_types->php_floating; 166 | php_types->php_strings; 167 | php_types->php_arrays; 168 | php_types->php_iterables; 169 | php_types->php_objects; 170 | php_types->php_resources; 171 | php_types->php_null; 172 | php_types->php_callbacks; 173 | php_types->php_juggling; 174 | php_spl->php_spl_datastructures; 175 | php_spl->php_spl_iterators; 176 | php_spl->php_spl_interfaces; 177 | php_spl->php_spl_exceptions; 178 | php_spl->php_spl_functions; 179 | php_spl->php_spl_files; 180 | php_variables->php_variables_predefined; 181 | php_errors->php_errors_predefined; 182 | php_templates->php_templates_smarty; 183 | backend->cs; 184 | backend->db; 185 | backend->net; 186 | backend->os; 187 | backend->dev; 188 | backend->php; 189 | cs [ label="Computer Science" ]; 190 | cs_architecture [ label="Architecture knowledge" ]; 191 | code [ label="Code Standards and Code Review Process" ]; 192 | cs_algorithms [ label="Algorithms and data structures" ]; 193 | cs_systems [ label="Systems Programming" ]; 194 | cs_ai [ label="Artificial Intelligence and Machine Learning" ]; 195 | cs_hardware [ label="Hardware" ]; 196 | cs_security [ label="Security and Encryption" ]; 197 | cs_blockchain [ label="Blockchain and Cryptocurrency" ]; 198 | cs_algorithms_analysis [ label="Analysis" ]; 199 | cs_algorithms_structures [ label="Data Structures" ]; 200 | cs_algorithms_algorithms [ label="Algorithms" ]; 201 | cs_algorithms_structures_lists [ label="Lists" ]; 202 | cs_algorithms_structures_stacks [ label="Stacks" ]; 203 | cs_algorithms_structures_queues [ label="Queues" ]; 204 | cs_algorithms_structures_trees [ label="Trees" ]; 205 | cs_algorithms_structures_heaps [ label="Heaps" ]; 206 | cs_algorithms_structures_graphs [ label="Graphs" ]; 207 | cs_algorithms_structures_sorting [ label="Sorting algoritms" ]; 208 | cs_algorithms_structures_research [ label="Reasearch algoritms" ]; 209 | cs_architecture_microservices [ label="Microservices" ]; 210 | cs_architecture_ddd [ label="Domain-Driven Design" ]; 211 | cs_architecture_solid [ label="SOLID" ]; 212 | cs_architecture_patterns [ label="Design Patterns" ]; 213 | cs_architecture_event [ label="Event Sourcing" ]; 214 | cs_architecture_oop [ label="Object-Oriented Programming" ]; 215 | cs_architecture_func [ label="Functional Programming" ]; 216 | cs_architecture_distributed [ label="Distributed Systems" ]; 217 | cs_architecture_oop_encapsulation [ label="Encapsulation" ]; 218 | cs_architecture_oop_inheritance [ label="Inheritance" ]; 219 | cs_architecture_oop_polymorphism [ label="Polymorphism" ]; 220 | db [ label="Databases" ]; 221 | db_sql [ label="SQL" ]; 222 | db_indexes [ label="Indexes" ]; 223 | db_transactions [ label="Transactions" ]; 224 | db_principles [ label="Principles" ]; 225 | db_relational [ label="Relational" ]; 226 | db_nosql [ label="NOSQL" ]; 227 | db_search [ label="Search Engines" ]; 228 | db_message_broker [ label="Message Broker" ]; 229 | db_message_broker_kafka [ label="Kafka" ]; 230 | db_message_broker_rabbit [ label="RabbitMQ" ]; 231 | db_message_broker_awssqs [ label="Amazon Simple Queue Service" ]; 232 | db_relational_mvcc [ label="Multiversion Concurrency Control" ]; 233 | db_relational_blocking [ label="Blocking" ]; 234 | db_relational_acid [ label="ACID" ]; 235 | db_relational_oo [ label="Object-oriented" ]; 236 | db_relational_firebird [ label="Firebird" ]; 237 | db_relational_postgres [ label="PostgreSQL" ]; 238 | db_relational_oracle [ label="Oracle" ]; 239 | db_mysql [ label="MySQL" ]; 240 | db_nosql_cap [ label="CAP Theorem" ]; 241 | db_nosql_base [ label="BASE" ]; 242 | db_nosql_graph [ label="Graph database" ]; 243 | db_nosql_doc [ label="Document base" ]; 244 | db_nosql_colbase [ label="Column base" ]; 245 | db_nosql_colwidebase [ label="Wide column base" ]; 246 | db_nosql_time [ label="Time series" ]; 247 | db_nosql_orient [ label="OrientDB" ]; 248 | db_nosql_neo4j [ label="Neo4j" ]; 249 | db_nosql_mongo [ label="MongoDB" ]; 250 | db_nosql_redis [ label="Redis" ]; 251 | db_nosql_clickhouse [ label="ClickHouse" ]; 252 | db_search_elasticseaerch [ label="Elasticseaerch" ]; 253 | db_search_sphinx [ label="Sphinx" ]; 254 | net [ label="Computer Network" ]; 255 | net_osi [ label="Open Systems Interconnection model" ]; 256 | net_grpc [ label="gRPC" ]; 257 | net_restapi [ label="REST API" ]; 258 | net_graphql [ label="GraphQL" ]; 259 | net_soap [ label="SOAP" ]; 260 | net_dns [ label="DNS" ]; 261 | net_protocols [ label="Protocols" ]; 262 | net_websocket [ label="Websocket" ]; 263 | net_auth [ label="Authorization and Authentication" ]; 264 | net_protocols_ip [ label="IP" ]; 265 | net_protocols_tcp [ label="TCP" ]; 266 | net_protocols_udp [ label="UDP" ]; 267 | net_protocols_http [ label="HTTP" ]; 268 | net_protocols_tls [ label="TLS" ]; 269 | net_protocols_ssl [ label="SSL" ]; 270 | net_auth_authorization [ label="Authorization" ]; 271 | net_auth_authentication [ label="Authentication" ]; 272 | net_auth_oauth [ label="OAuth" ]; 273 | net_auth_jwt [ label="JWT" ]; 274 | net_auth_cookie [ label="Cookie" ]; 275 | os [ label="Operating System" ]; 276 | os_types [ label="Types" ]; 277 | os_processes [ label="Processes and Threads" ]; 278 | os_memory [ label="Memory Management" ]; 279 | os_filesystem [ label="File system" ]; 280 | os_io [ label="I/O" ]; 281 | os_virtualization [ label="Virtualization" ]; 282 | os_shell [ label="Command Language" ]; 283 | os_memory_virtual [ label="Virtual Memory" ]; 284 | os_types_batch [ label="Batch" ]; 285 | os_types_time_sharing [ label="Time-Sharing" ]; 286 | os_types_distributed [ label="Distributed" ]; 287 | os_types_network [ label="Network" ]; 288 | os_types_realtime [ label="Real-Time" ]; 289 | os_processes_threads [ label="Threads" ]; 290 | os_processes_scheduling [ label="Scheduling" ]; 291 | os_processes_multithreading [ label="Multi-Threading" ]; 292 | os_virtualization_level [ label="OS-level Virtualisation" ]; 293 | os_virtualization_x86 [ label="x86 Virtualization" ]; 294 | os_virtualization_level_docker [ label="Docker" ]; 295 | os_virtualization_x86_virtualbox [ label="VirtualBox" ]; 296 | os_virtualization_x86_vmware [ label="VMware" ]; 297 | os_shell_bash [ label="Bash" ]; 298 | os_shell_zsh [ label="Zsh" ]; 299 | dev [ label="Software Development Processes" ]; 300 | dev_testing [ label="Testing" ]; 301 | dev_build [ label="Build Systems" ]; 302 | dev_trackers [ label="Bug tracking systems" ]; 303 | dev_version [ label="Version Control" ]; 304 | dev_deployment [ label="Deployment" ]; 305 | dev_estimation [ label="Estimations" ]; 306 | dev_debugging [ label="Debugging" ]; 307 | dev_orchestration [ label="Orchestration" ]; 308 | dev_management [ label="Management" ]; 309 | dev_orchestration_ansible [ label="Ansible" ]; 310 | dev_orchestration_puppet [ label="Puppet" ]; 311 | dev_orchestration_k8s [ label="Kubernetes" ]; 312 | dev_debugging_troubleshooting [ label="Troubleshooting" ]; 313 | dev_debugging_logging [ label="Logging" ]; 314 | dev_debugging_monitoring [ label="Monitoring" ]; 315 | dev_testing_tdd [ label="Test-driven development" ]; 316 | dev_testing_bdd [ label="Behavior-driven development" ]; 317 | dev_trackers_jira [ label="Jira" ]; 318 | dev_trackers_redmine [ label="Redmine" ]; 319 | dev_trackers_tfs [ label="TFS" ]; 320 | dev_version_git [ label="Git" ]; 321 | dev_deployment_ci [ label="Continuous Integration" ]; 322 | dev_deployment_cd [ label="Continuous Delivery" ]; 323 | dev_methodologies [ label="Methodologies and Frameworks" ]; 324 | dev_paradigms [ label="Paradigms and Models" ]; 325 | management_time [ label="Time Management" ]; 326 | management_paradigms_agile [ label="Agile" ]; 327 | management_paradigms_waterfall [ label="Waterfall" ]; 328 | management_time_pareto [ label="Pareto analysis" ]; 329 | management_time_gtd [ label="Getting Things Done" ]; 330 | management_time_pomodoro [ label="Pomodoro" ]; 331 | dev_methodologies_scrum [ label="SCRUM" ]; 332 | dev_methodologies_kanban [ label="Kanban" ]; 333 | dev_methodologies_xp [ label="Extreme Programming" ]; 334 | dev_methodologies_12factors [ label="The Twelve-Factor App" ]; 335 | management_estimation_poker [ label="Planning Poker" ]; 336 | dev_build_make [ label="Make" ]; 337 | dev_build_maven [ label="Maven" ]; 338 | dev_build_ant [ label="Ant" ]; 339 | dev_build_gradle [ label="Gradle" ]; 340 | php [ label="PHP" ]; 341 | php_core [ label="Core" ]; 342 | php_types [ label="Types" ]; 343 | php_variables [ label="Variables" ]; 344 | php_functions [ label="Functions" ]; 345 | php_oop [ label="Classes and Objects" ]; 346 | php_errors [ label="Errors and Exceptions" ]; 347 | php_namespaces [ label="Namespaces" ]; 348 | php_spl [ label="Standard PHP Library" ]; 349 | php_generators [ label="Generators" ]; 350 | php_templates [ label="Template engines" ]; 351 | php_frameworks [ label="Frameworks, CMS" ]; 352 | php_orm [ label="ORM" ]; 353 | php_testing [ label="Testing Frameworks" ]; 354 | php_booleans [ label="Booleans" ]; 355 | php_integers [ label="Integers" ]; 356 | php_floating [ label="Floating point numbers" ]; 357 | php_strings [ label="Strings" ]; 358 | php_arrays [ label="Arrays" ]; 359 | php_iterables [ label="Iterables" ]; 360 | php_objects [ label="Objects" ]; 361 | php_resources [ label="Resources" ]; 362 | php_null [ label="NULL" ]; 363 | php_callbacks [ label="Callbacks / Callables" ]; 364 | php_juggling [ label="Type Juggling" ]; 365 | php_spl_datastructures [ label="Datastructures" ]; 366 | php_spl_iterators [ label="Iterators" ]; 367 | php_spl_interfaces [ label="Interfaces" ]; 368 | php_spl_exceptions [ label="Exceptions" ]; 369 | php_spl_functions [ label="Functions" ]; 370 | php_spl_files [ label="File Handling" ]; 371 | php_variables_predefined [ label="Predefined Variables" ]; 372 | php_errors_predefined [ label="Predefined Exceptions" ]; 373 | php_templates_smarty [ label="Smarty" ]; 374 | backend [ label="PHP Software Engineer" ]; 375 | } 376 | -------------------------------------------------------------------------------- /stacks/php/data/roadmap.md: -------------------------------------------------------------------------------- 1 | # PHP Software Engineer 2 | 3 | ## Computer Science 4 | 5 | ### Architecture knowledge 6 | 7 | - book: [Designing Data-Intensive Applications](http://shop.oreilly.com/product/0636920032175.do) 8 | - article: [Создание архитектуры программы или как проектировать табуретку](https://habr.com/ru/post/276593/) 9 | - book: [Clean Architecture](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) 10 | - book: [Patterns of Enterprise Application Architecture](https://www.martinfowler.com/books/eaa.html) 11 | 12 | 13 | #### Microservices 14 | 15 | #### Domain-Driven Design 16 | 17 | #### SOLID 18 | 19 | #### Design Patterns 20 | 21 | - book: [Design patterns : elements of reusable object-oriented software](https://www.worldcat.org/title/design-patterns-elements-of-reusable-object-oriented-software/oclc/31171684) 22 | - book: [Design Patterns: Elements of Reusable Object-Oriented Software]( 23 | https://www.oreilly.com/library/view/design-patterns-elements/0201633612/ 24 | ) 25 | - book: [Head First Design Patterns](http://shop.oreilly.com/product/9780596007126.do) 26 | - book: [Реактивные шаблоны проектирования](https://www.piter.com/product/reaktivnye-shablony-proektirovaniya) 27 | 28 | 29 | #### Event Sourcing 30 | 31 | #### Object-Oriented Programming 32 | 33 | ##### Encapsulation 34 | 35 | ##### Inheritance 36 | 37 | ##### Polymorphism 38 | 39 | #### Functional Programming 40 | 41 | #### Distributed Systems 42 | 43 | - book: [Designing Distributed Systems](https://www.amazon.com/gp/product/1491983647) 44 | 45 | 46 | ### Code Standards and Code Review Process 47 | 48 | ### Algorithms and data structures 49 | 50 | - book: [Algorithms, 4th Edition](https://algs4.cs.princeton.edu/home/) 51 | - course: [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) 52 | - course: [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) 53 | - book: [Introduction to Algorithms, Third Edition](https://mitpress.mit.edu/books/introduction-algorithms-third-edition) 54 | 55 | 56 | #### Analysis 57 | 58 | #### Data Structures 59 | 60 | ##### Lists 61 | 62 | ##### Stacks 63 | 64 | ##### Queues 65 | 66 | ##### Trees 67 | 68 | ##### Heaps 69 | 70 | ##### Graphs 71 | 72 | #### Algorithms 73 | 74 | ##### Sorting algoritms 75 | 76 | ##### Reasearch algoritms 77 | 78 | ### Systems Programming 79 | 80 | ### Artificial Intelligence and Machine Learning 81 | 82 | ### Hardware 83 | 84 | ### Security and Encryption 85 | 86 | ### Blockchain and Cryptocurrency 87 | 88 | ## Databases 89 | 90 | ### SQL 91 | 92 | - book: [SQL Bible](https://www.amazon.com/SQL-Bible-Alex-Kriegel/dp/0470229063) 93 | 94 | 95 | ### Indexes 96 | 97 | ### Transactions 98 | 99 | ### Principles 100 | 101 | ### Relational 102 | 103 | #### Multiversion Concurrency Control 104 | 105 | ##### Firebird 106 | 107 | ##### PostgreSQL 108 | 109 | ##### Oracle 110 | 111 | - book: [Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c](https://www.amazon.com/Oracle-PL-SQL-Programming-Versions/dp/1449324452) 112 | 113 | 114 | ##### MySQL 115 | 116 | #### Blocking 117 | 118 | ##### MySQL 119 | 120 | #### ACID 121 | 122 | #### Object-oriented 123 | 124 | ### NOSQL 125 | 126 | - article: [NOSQL](https://martinfowler.com/nosql.html) 127 | - book: [NoSQL Distilled](https://martinfowler.com/books/nosql.html) 128 | 129 | 130 | #### CAP Theorem 131 | 132 | #### BASE 133 | 134 | #### Graph database 135 | 136 | ##### OrientDB 137 | 138 | ##### Neo4j 139 | 140 | #### Document base 141 | 142 | ##### MongoDB 143 | 144 | #### Column base 145 | 146 | ##### Redis 147 | 148 | ##### ClickHouse 149 | 150 | #### Wide column base 151 | 152 | #### Time series 153 | 154 | ### Search Engines 155 | 156 | #### Elasticseaerch 157 | 158 | #### Sphinx 159 | 160 | ### Message Broker 161 | 162 | #### Kafka 163 | 164 | #### RabbitMQ 165 | 166 | #### Amazon Simple Queue Service 167 | 168 | ## Computer Network 169 | 170 | - book: [Computer Networks](https://www.amazon.com/Computer-Networks-Tanenbaum-International-Economy/dp/9332518742) 171 | 172 | 173 | ### Open Systems Interconnection model 174 | 175 | ### gRPC 176 | 177 | ### REST API 178 | 179 | ### GraphQL 180 | 181 | ### SOAP 182 | 183 | ### DNS 184 | 185 | ### Protocols 186 | 187 | #### IP 188 | 189 | #### TCP 190 | 191 | #### UDP 192 | 193 | #### HTTP 194 | 195 | #### TLS 196 | 197 | #### SSL 198 | 199 | ### Websocket 200 | 201 | ### Authorization and Authentication 202 | 203 | #### Authorization 204 | 205 | #### Authentication 206 | 207 | #### OAuth 208 | 209 | #### JWT 210 | 211 | #### Cookie 212 | 213 | ## Operating System 214 | 215 | ### Types 216 | 217 | #### Batch 218 | 219 | #### Time-Sharing 220 | 221 | #### Distributed 222 | 223 | #### Network 224 | 225 | #### Real-Time 226 | 227 | ### Processes and Threads 228 | 229 | #### Threads 230 | 231 | #### Scheduling 232 | 233 | #### Multi-Threading 234 | 235 | ### Memory Management 236 | 237 | #### Virtual Memory 238 | 239 | #### Virtual Memory 240 | 241 | ### File system 242 | 243 | ### I/O 244 | 245 | ### Virtualization 246 | 247 | #### OS-level Virtualisation 248 | 249 | ##### Docker 250 | 251 | #### x86 Virtualization 252 | 253 | ##### VirtualBox 254 | 255 | ##### VMware 256 | 257 | ### Command Language 258 | 259 | #### Bash 260 | 261 | #### Zsh 262 | 263 | ## Software Development Processes 264 | 265 | - book: [Working Effectively with Legacy Code](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) 266 | - book: [Refactoring: Improving the Design of Existing Code](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672) 267 | - book: [The Pragmatic Programmer: From Journeyman to Master](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) 268 | - book: [Code Complete: A Practical Handbook of Software Construction](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) 269 | - book: [Clean Code: A Handbook of Agile Software Craftsmanship](https://www.amazon.com/gp/product/0132350882) 270 | 271 | 272 | ### Testing 273 | 274 | - book: [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530) 275 | - article: [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) 276 | - article: [How deep are your unit tests?]( 277 | https://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests 278 | ) 279 | 280 | 281 | #### Test-driven development 282 | 283 | #### Behavior-driven development 284 | 285 | ### Build Systems 286 | 287 | #### Make 288 | 289 | #### Maven 290 | 291 | - article: [Системы сборки проектов Maven](http://www.apache-maven.ru/) 292 | - article: [Идеальный мавен. Часть 2: структура проекта](https://habr.com/ru/post/344480/) 293 | 294 | 295 | #### Ant 296 | 297 | #### Gradle 298 | 299 | - book: [Gradle in Action](http://barbra-coco.dyndns.org/student/Gradle%20in%20Action.pdf) 300 | 301 | 302 | ### Bug tracking systems 303 | 304 | #### Jira 305 | 306 | #### Redmine 307 | 308 | #### TFS 309 | 310 | ### Version Control 311 | 312 | - article: [4 книги о системах контроля версий, которые дадут о них полное представление](https://tproger.ru/books/4-books-about-vcs/) 313 | 314 | 315 | #### Git 316 | 317 | - book: [Pro Git](https://git-scm.com/book/en) 318 | 319 | 320 | ### Deployment 321 | 322 | #### Continuous Integration 323 | 324 | #### Continuous Delivery 325 | 326 | - book: [Continuous delivery. Практика непрерывных апдейтов](https://www.piter.com/product_by_id/87629352) 327 | 328 | 329 | ### Estimations 330 | 331 | #### Planning Poker 332 | 333 | ### Debugging 334 | 335 | #### Troubleshooting 336 | 337 | #### Logging 338 | 339 | - article: [Введение в ELK: собираем, фильтруем и анализируем большие данные](https://mkdev.me/posts/vvedenie-v-elk-sobiraem-filtruem-i-analiziruem-bolshie-dannye) 340 | 341 | 342 | #### Monitoring 343 | 344 | ### Orchestration 345 | 346 | #### Ansible 347 | 348 | #### Puppet 349 | 350 | #### Kubernetes 351 | 352 | - book: [Kubernetes in Action](https://www.manning.com/books/kubernetes-in-action) 353 | 354 | 355 | ### Management 356 | 357 | - book: [Goal: A Process of Ongoing Improvement](https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951) 358 | 359 | 360 | #### Methodologies and Frameworks 361 | 362 | - article: [Ещё раз про семь основных методологий разработки](https://habr.com/ru/company/edison/blog/269789/) 363 | 364 | 365 | ##### SCRUM 366 | 367 | ##### Kanban 368 | 369 | ##### Extreme Programming 370 | 371 | ##### The Twelve-Factor App 372 | 373 | - article: [The Twelve-Factor App](https://12factor.net) 374 | 375 | 376 | #### Paradigms and Models 377 | 378 | ##### Agile 379 | 380 | - article: [Manifesto for Agile Software Development](https://agilemanifesto.org) 381 | 382 | 383 | ##### Waterfall 384 | 385 | #### Time Management 386 | 387 | - book: [Джедайские техники](https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/) 388 | 389 | 390 | ##### Pareto analysis 391 | 392 | ##### Getting Things Done 393 | 394 | ##### Pomodoro 395 | 396 | ## PHP 397 | 398 | ### Core 399 | 400 | #### Types 401 | 402 | ##### Booleans 403 | 404 | ##### Integers 405 | 406 | ##### Floating point numbers 407 | 408 | ##### Strings 409 | 410 | ##### Arrays 411 | 412 | ##### Iterables 413 | 414 | ##### Objects 415 | 416 | ##### Resources 417 | 418 | ##### NULL 419 | 420 | ##### Callbacks / Callables 421 | 422 | ##### Type Juggling 423 | 424 | #### Variables 425 | 426 | ##### Predefined Variables 427 | 428 | #### Functions 429 | 430 | #### Classes and Objects 431 | 432 | #### Errors and Exceptions 433 | 434 | ##### Predefined Exceptions 435 | 436 | #### Namespaces 437 | 438 | ### Standard PHP Library 439 | 440 | #### Datastructures 441 | 442 | #### Iterators 443 | 444 | #### Interfaces 445 | 446 | #### Exceptions 447 | 448 | #### Functions 449 | 450 | #### File Handling 451 | 452 | ### Generators 453 | 454 | ### Template engines 455 | 456 | #### Smarty 457 | 458 | ### Frameworks, CMS 459 | 460 | ### ORM 461 | 462 | ### Testing Frameworks 463 | 464 | -------------------------------------------------------------------------------- /stacks/php/data/roadmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srce/roadmap/80796d6c5cdb08c6fb94958f9ae1577d91189012/stacks/php/data/roadmap.png -------------------------------------------------------------------------------- /stacks/php/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /stacks/php/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /stacks/python/data/roadmap.md: -------------------------------------------------------------------------------- 1 | # Python Software Engineer 2 | 3 | ## Computer Science 4 | 5 | ### Architecture knowledge 6 | 7 | - book: [Designing Data-Intensive Applications](http://shop.oreilly.com/product/0636920032175.do) 8 | - article: [Создание архитектуры программы или как проектировать табуретку](https://habr.com/ru/post/276593/) 9 | - book: [Clean Architecture](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) 10 | - book: [Patterns of Enterprise Application Architecture](https://www.martinfowler.com/books/eaa.html) 11 | 12 | 13 | #### Microservices 14 | 15 | #### Domain-Driven Design 16 | 17 | #### SOLID 18 | 19 | #### Design Patterns 20 | 21 | - book: [Design patterns : elements of reusable object-oriented software](https://www.worldcat.org/title/design-patterns-elements-of-reusable-object-oriented-software/oclc/31171684) 22 | - book: [Design Patterns: Elements of Reusable Object-Oriented Software]( 23 | https://www.oreilly.com/library/view/design-patterns-elements/0201633612/ 24 | ) 25 | - book: [Head First Design Patterns](http://shop.oreilly.com/product/9780596007126.do) 26 | - book: [Реактивные шаблоны проектирования](https://www.piter.com/product/reaktivnye-shablony-proektirovaniya) 27 | 28 | 29 | #### Event Sourcing 30 | 31 | #### Object-Oriented Programming 32 | 33 | ##### Encapsulation 34 | 35 | ##### Inheritance 36 | 37 | ##### Polymorphism 38 | 39 | #### Functional Programming 40 | 41 | #### Distributed Systems 42 | 43 | - book: [Designing Distributed Systems](https://www.amazon.com/gp/product/1491983647) 44 | 45 | 46 | ### Code Standards and Code Review Process 47 | 48 | ### Algorithms and data structures 49 | 50 | - book: [Algorithms, 4th Edition](https://algs4.cs.princeton.edu/home/) 51 | - course: [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) 52 | - course: [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) 53 | - book: [Introduction to Algorithms, Third Edition](https://mitpress.mit.edu/books/introduction-algorithms-third-edition) 54 | 55 | 56 | #### Analysis 57 | 58 | #### Data Structures 59 | 60 | ##### Lists 61 | 62 | ##### Stacks 63 | 64 | ##### Queues 65 | 66 | ##### Trees 67 | 68 | ##### Heaps 69 | 70 | ##### Graphs 71 | 72 | #### Algorithms 73 | 74 | ##### Sorting algoritms 75 | 76 | ##### Reasearch algoritms 77 | 78 | ### Systems Programming 79 | 80 | ### Artificial Intelligence and Machine Learning 81 | 82 | ### Hardware 83 | 84 | ### Security and Encryption 85 | 86 | ### Blockchain and Cryptocurrency 87 | 88 | ## Databases 89 | 90 | ### SQL 91 | 92 | - book: [SQL Bible](https://www.amazon.com/SQL-Bible-Alex-Kriegel/dp/0470229063) 93 | 94 | 95 | ### Indexes 96 | 97 | ### Transactions 98 | 99 | ### Principles 100 | 101 | ### Relational 102 | 103 | #### Multiversion Concurrency Control 104 | 105 | ##### Firebird 106 | 107 | ##### PostgreSQL 108 | 109 | ##### Oracle 110 | 111 | - book: [Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c](https://www.amazon.com/Oracle-PL-SQL-Programming-Versions/dp/1449324452) 112 | 113 | 114 | ##### MySQL 115 | 116 | #### Blocking 117 | 118 | ##### MySQL 119 | 120 | #### ACID 121 | 122 | #### Object-oriented 123 | 124 | ### NOSQL 125 | 126 | - article: [NOSQL](https://martinfowler.com/nosql.html) 127 | - book: [NoSQL Distilled](https://martinfowler.com/books/nosql.html) 128 | 129 | 130 | #### CAP Theorem 131 | 132 | #### BASE 133 | 134 | #### Graph database 135 | 136 | ##### OrientDB 137 | 138 | ##### Neo4j 139 | 140 | #### Document base 141 | 142 | ##### MongoDB 143 | 144 | #### Column base 145 | 146 | ##### Redis 147 | 148 | ##### ClickHouse 149 | 150 | #### Wide column base 151 | 152 | #### Time series 153 | 154 | ### Search Engines 155 | 156 | #### Elasticseaerch 157 | 158 | #### Sphinx 159 | 160 | ### Message Broker 161 | 162 | #### Kafka 163 | 164 | #### RabbitMQ 165 | 166 | #### Amazon Simple Queue Service 167 | 168 | ## Computer Network 169 | 170 | - book: [Computer Networks](https://www.amazon.com/Computer-Networks-Tanenbaum-International-Economy/dp/9332518742) 171 | 172 | 173 | ### Open Systems Interconnection model 174 | 175 | ### gRPC 176 | 177 | ### REST API 178 | 179 | ### GraphQL 180 | 181 | ### SOAP 182 | 183 | ### DNS 184 | 185 | ### Protocols 186 | 187 | #### IP 188 | 189 | #### TCP 190 | 191 | #### UDP 192 | 193 | #### HTTP 194 | 195 | #### TLS 196 | 197 | #### SSL 198 | 199 | ### Websocket 200 | 201 | ### Authorization and Authentication 202 | 203 | #### Authorization 204 | 205 | #### Authentication 206 | 207 | #### OAuth 208 | 209 | #### JWT 210 | 211 | #### Cookie 212 | 213 | ## Operating System 214 | 215 | ### Types 216 | 217 | #### Batch 218 | 219 | #### Time-Sharing 220 | 221 | #### Distributed 222 | 223 | #### Network 224 | 225 | #### Real-Time 226 | 227 | ### Processes and Threads 228 | 229 | #### Threads 230 | 231 | #### Scheduling 232 | 233 | #### Multi-Threading 234 | 235 | ### Memory Management 236 | 237 | #### Virtual Memory 238 | 239 | #### Virtual Memory 240 | 241 | ### File system 242 | 243 | ### I/O 244 | 245 | ### Virtualization 246 | 247 | #### OS-level Virtualisation 248 | 249 | ##### Docker 250 | 251 | #### x86 Virtualization 252 | 253 | ##### VirtualBox 254 | 255 | ##### VMware 256 | 257 | ### Command Language 258 | 259 | #### Bash 260 | 261 | #### Zsh 262 | 263 | ## Software Development Processes 264 | 265 | - book: [Working Effectively with Legacy Code](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) 266 | - book: [Refactoring: Improving the Design of Existing Code](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672) 267 | - book: [The Pragmatic Programmer: From Journeyman to Master](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) 268 | - book: [Code Complete: A Practical Handbook of Software Construction](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) 269 | - book: [Clean Code: A Handbook of Agile Software Craftsmanship](https://www.amazon.com/gp/product/0132350882) 270 | 271 | 272 | ### Testing 273 | 274 | - book: [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530) 275 | - article: [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) 276 | - article: [How deep are your unit tests?]( 277 | https://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests 278 | ) 279 | 280 | 281 | #### Test-driven development 282 | 283 | #### Behavior-driven development 284 | 285 | ### Build Systems 286 | 287 | #### Make 288 | 289 | #### Maven 290 | 291 | - article: [Системы сборки проектов Maven](http://www.apache-maven.ru/) 292 | - article: [Идеальный мавен. Часть 2: структура проекта](https://habr.com/ru/post/344480/) 293 | 294 | 295 | #### Ant 296 | 297 | #### Gradle 298 | 299 | - book: [Gradle in Action](http://barbra-coco.dyndns.org/student/Gradle%20in%20Action.pdf) 300 | 301 | 302 | ### Bug tracking systems 303 | 304 | #### Jira 305 | 306 | #### Redmine 307 | 308 | #### TFS 309 | 310 | ### Version Control 311 | 312 | - article: [4 книги о системах контроля версий, которые дадут о них полное представление](https://tproger.ru/books/4-books-about-vcs/) 313 | 314 | 315 | #### Git 316 | 317 | - book: [Pro Git](https://git-scm.com/book/en) 318 | 319 | 320 | ### Deployment 321 | 322 | #### Continuous Integration 323 | 324 | #### Continuous Delivery 325 | 326 | - book: [Continuous delivery. Практика непрерывных апдейтов](https://www.piter.com/product_by_id/87629352) 327 | 328 | 329 | ### Estimations 330 | 331 | #### Planning Poker 332 | 333 | ### Debugging 334 | 335 | #### Troubleshooting 336 | 337 | #### Logging 338 | 339 | - article: [Введение в ELK: собираем, фильтруем и анализируем большие данные](https://mkdev.me/posts/vvedenie-v-elk-sobiraem-filtruem-i-analiziruem-bolshie-dannye) 340 | 341 | 342 | #### Monitoring 343 | 344 | ### Orchestration 345 | 346 | #### Ansible 347 | 348 | #### Puppet 349 | 350 | #### Kubernetes 351 | 352 | - book: [Kubernetes in Action](https://www.manning.com/books/kubernetes-in-action) 353 | 354 | 355 | ### Management 356 | 357 | - book: [Goal: A Process of Ongoing Improvement](https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951) 358 | 359 | 360 | #### Methodologies and Frameworks 361 | 362 | - article: [Ещё раз про семь основных методологий разработки](https://habr.com/ru/company/edison/blog/269789/) 363 | 364 | 365 | ##### SCRUM 366 | 367 | ##### Kanban 368 | 369 | ##### Extreme Programming 370 | 371 | ##### The Twelve-Factor App 372 | 373 | - article: [The Twelve-Factor App](https://12factor.net) 374 | 375 | 376 | #### Paradigms and Models 377 | 378 | ##### Agile 379 | 380 | - article: [Manifesto for Agile Software Development](https://agilemanifesto.org) 381 | 382 | 383 | ##### Waterfall 384 | 385 | #### Time Management 386 | 387 | - book: [Джедайские техники](https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/) 388 | 389 | 390 | ##### Pareto analysis 391 | 392 | ##### Getting Things Done 393 | 394 | ##### Pomodoro 395 | 396 | ## Python 397 | 398 | ### Built-in Types 399 | 400 | #### Text 401 | 402 | #### Boolean 403 | 404 | #### Numeric 405 | 406 | #### Sequence 407 | 408 | #### Binary Sequence 409 | 410 | #### Set 411 | 412 | #### Dictionary 413 | 414 | #### Iterator 415 | 416 | #### Context Manager 417 | 418 | ### Functions 419 | 420 | #### Lambdas 421 | 422 | #### Functions creating iterators 423 | 424 | #### Higher-order functions 425 | 426 | #### Standard operators as functions 427 | 428 | ### Concurrent Execution 429 | 430 | #### Coroutines 431 | 432 | #### Thread-based 433 | 434 | #### multiprocessing 435 | 436 | ### The Import System 437 | 438 | ### Testing 439 | 440 | #### Regression tests 441 | 442 | #### Unit testing framework 443 | 444 | ### Debugging and Profiling 445 | 446 | #### Debugger Framework 447 | 448 | #### Dump the Python traceback 449 | 450 | #### The Python Debugger 451 | 452 | #### The Python Profilers 453 | 454 | #### Measure execution time 455 | 456 | #### Trace statement execution 457 | 458 | #### Trace memory allocations 459 | 460 | ### Standard Library 461 | 462 | #### File and Directory Access 463 | 464 | #### Binary Data Services 465 | 466 | #### Text Processing Services 467 | 468 | #### Numeric and Mathematical Modules 469 | 470 | #### Cryptographic Services 471 | 472 | #### Structured Markup Processing Tools 473 | 474 | #### Internationalization 475 | 476 | -------------------------------------------------------------------------------- /stacks/python/data/roadmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srce/roadmap/80796d6c5cdb08c6fb94958f9ae1577d91189012/stacks/python/data/roadmap.png -------------------------------------------------------------------------------- /stacks/python/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /stacks/python/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /stacks/ruby/data/roadmap.md: -------------------------------------------------------------------------------- 1 | # Ruby Software Engineer 2 | 3 | ## Computer Science 4 | 5 | ### Architecture knowledge 6 | 7 | - book: [Designing Data-Intensive Applications](http://shop.oreilly.com/product/0636920032175.do) 8 | - article: [Создание архитектуры программы или как проектировать табуретку](https://habr.com/ru/post/276593/) 9 | - book: [Clean Architecture](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) 10 | - book: [Patterns of Enterprise Application Architecture](https://www.martinfowler.com/books/eaa.html) 11 | 12 | 13 | #### Microservices 14 | 15 | #### Domain-Driven Design 16 | 17 | #### SOLID 18 | 19 | #### Design Patterns 20 | 21 | - book: [Design patterns : elements of reusable object-oriented software](https://www.worldcat.org/title/design-patterns-elements-of-reusable-object-oriented-software/oclc/31171684) 22 | - book: [Design Patterns: Elements of Reusable Object-Oriented Software]( 23 | https://www.oreilly.com/library/view/design-patterns-elements/0201633612/ 24 | ) 25 | - book: [Head First Design Patterns](http://shop.oreilly.com/product/9780596007126.do) 26 | - book: [Реактивные шаблоны проектирования](https://www.piter.com/product/reaktivnye-shablony-proektirovaniya) 27 | 28 | 29 | #### Event Sourcing 30 | 31 | #### Object-Oriented Programming 32 | 33 | ##### Encapsulation 34 | 35 | ##### Inheritance 36 | 37 | ##### Polymorphism 38 | 39 | #### Functional Programming 40 | 41 | #### Distributed Systems 42 | 43 | - book: [Designing Distributed Systems](https://www.amazon.com/gp/product/1491983647) 44 | 45 | 46 | ### Code Standards and Code Review Process 47 | 48 | ### Algorithms and data structures 49 | 50 | - book: [Algorithms, 4th Edition](https://algs4.cs.princeton.edu/home/) 51 | - course: [Algorithms, Part I](https://www.coursera.org/learn/algorithms-part1) 52 | - course: [Algorithms, Part II](https://www.coursera.org/learn/algorithms-part2) 53 | - book: [Introduction to Algorithms, Third Edition](https://mitpress.mit.edu/books/introduction-algorithms-third-edition) 54 | 55 | 56 | #### Analysis 57 | 58 | #### Data Structures 59 | 60 | ##### Lists 61 | 62 | ##### Stacks 63 | 64 | ##### Queues 65 | 66 | ##### Trees 67 | 68 | ##### Heaps 69 | 70 | ##### Graphs 71 | 72 | #### Algorithms 73 | 74 | ##### Sorting algoritms 75 | 76 | ##### Reasearch algoritms 77 | 78 | ### Systems Programming 79 | 80 | ### Artificial Intelligence and Machine Learning 81 | 82 | ### Hardware 83 | 84 | ### Security and Encryption 85 | 86 | ### Blockchain and Cryptocurrency 87 | 88 | ## Databases 89 | 90 | ### SQL 91 | 92 | - book: [SQL Bible](https://www.amazon.com/SQL-Bible-Alex-Kriegel/dp/0470229063) 93 | 94 | 95 | ### Indexes 96 | 97 | ### Transactions 98 | 99 | ### Principles 100 | 101 | ### Relational 102 | 103 | #### Multiversion Concurrency Control 104 | 105 | ##### Firebird 106 | 107 | ##### PostgreSQL 108 | 109 | ##### Oracle 110 | 111 | - book: [Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c](https://www.amazon.com/Oracle-PL-SQL-Programming-Versions/dp/1449324452) 112 | 113 | 114 | ##### MySQL 115 | 116 | #### Blocking 117 | 118 | ##### MySQL 119 | 120 | #### ACID 121 | 122 | #### Object-oriented 123 | 124 | ### NOSQL 125 | 126 | - article: [NOSQL](https://martinfowler.com/nosql.html) 127 | - book: [NoSQL Distilled](https://martinfowler.com/books/nosql.html) 128 | 129 | 130 | #### CAP Theorem 131 | 132 | #### BASE 133 | 134 | #### Graph database 135 | 136 | ##### OrientDB 137 | 138 | ##### Neo4j 139 | 140 | #### Document base 141 | 142 | ##### MongoDB 143 | 144 | #### Column base 145 | 146 | ##### Redis 147 | 148 | ##### ClickHouse 149 | 150 | #### Wide column base 151 | 152 | #### Time series 153 | 154 | ### Search Engines 155 | 156 | #### Elasticseaerch 157 | 158 | #### Sphinx 159 | 160 | ### Message Broker 161 | 162 | #### Kafka 163 | 164 | #### RabbitMQ 165 | 166 | #### Amazon Simple Queue Service 167 | 168 | ## Computer Network 169 | 170 | - book: [Computer Networks](https://www.amazon.com/Computer-Networks-Tanenbaum-International-Economy/dp/9332518742) 171 | 172 | 173 | ### Open Systems Interconnection model 174 | 175 | ### gRPC 176 | 177 | ### REST API 178 | 179 | ### GraphQL 180 | 181 | ### SOAP 182 | 183 | ### DNS 184 | 185 | ### Protocols 186 | 187 | #### IP 188 | 189 | #### TCP 190 | 191 | #### UDP 192 | 193 | #### HTTP 194 | 195 | #### TLS 196 | 197 | #### SSL 198 | 199 | ### Websocket 200 | 201 | ### Authorization and Authentication 202 | 203 | #### Authorization 204 | 205 | #### Authentication 206 | 207 | #### OAuth 208 | 209 | #### JWT 210 | 211 | #### Cookie 212 | 213 | ## Operating System 214 | 215 | ### Types 216 | 217 | #### Batch 218 | 219 | #### Time-Sharing 220 | 221 | #### Distributed 222 | 223 | #### Network 224 | 225 | #### Real-Time 226 | 227 | ### Processes and Threads 228 | 229 | #### Threads 230 | 231 | #### Scheduling 232 | 233 | #### Multi-Threading 234 | 235 | ### Memory Management 236 | 237 | #### Virtual Memory 238 | 239 | #### Virtual Memory 240 | 241 | ### File system 242 | 243 | ### I/O 244 | 245 | ### Virtualization 246 | 247 | #### OS-level Virtualisation 248 | 249 | ##### Docker 250 | 251 | #### x86 Virtualization 252 | 253 | ##### VirtualBox 254 | 255 | ##### VMware 256 | 257 | ### Command Language 258 | 259 | #### Bash 260 | 261 | #### Zsh 262 | 263 | ## Software Development Processes 264 | 265 | - book: [Working Effectively with Legacy Code](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) 266 | - book: [Refactoring: Improving the Design of Existing Code](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672) 267 | - book: [The Pragmatic Programmer: From Journeyman to Master](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) 268 | - book: [Code Complete: A Practical Handbook of Software Construction](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) 269 | - book: [Clean Code: A Handbook of Agile Software Craftsmanship](https://www.amazon.com/gp/product/0132350882) 270 | 271 | 272 | ### Testing 273 | 274 | - book: [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530) 275 | - article: [The Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) 276 | - article: [How deep are your unit tests?]( 277 | https://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests 278 | ) 279 | 280 | 281 | #### Test-driven development 282 | 283 | #### Behavior-driven development 284 | 285 | ### Build Systems 286 | 287 | #### Make 288 | 289 | #### Maven 290 | 291 | - article: [Системы сборки проектов Maven](http://www.apache-maven.ru/) 292 | - article: [Идеальный мавен. Часть 2: структура проекта](https://habr.com/ru/post/344480/) 293 | 294 | 295 | #### Ant 296 | 297 | #### Gradle 298 | 299 | - book: [Gradle in Action](http://barbra-coco.dyndns.org/student/Gradle%20in%20Action.pdf) 300 | 301 | 302 | ### Bug tracking systems 303 | 304 | #### Jira 305 | 306 | #### Redmine 307 | 308 | #### TFS 309 | 310 | ### Version Control 311 | 312 | - article: [4 книги о системах контроля версий, которые дадут о них полное представление](https://tproger.ru/books/4-books-about-vcs/) 313 | 314 | 315 | #### Git 316 | 317 | - book: [Pro Git](https://git-scm.com/book/en) 318 | 319 | 320 | ### Deployment 321 | 322 | #### Continuous Integration 323 | 324 | #### Continuous Delivery 325 | 326 | - book: [Continuous delivery. Практика непрерывных апдейтов](https://www.piter.com/product_by_id/87629352) 327 | 328 | 329 | ### Estimations 330 | 331 | #### Planning Poker 332 | 333 | ### Debugging 334 | 335 | #### Troubleshooting 336 | 337 | #### Logging 338 | 339 | - article: [Введение в ELK: собираем, фильтруем и анализируем большие данные](https://mkdev.me/posts/vvedenie-v-elk-sobiraem-filtruem-i-analiziruem-bolshie-dannye) 340 | 341 | 342 | #### Monitoring 343 | 344 | ### Orchestration 345 | 346 | #### Ansible 347 | 348 | #### Puppet 349 | 350 | #### Kubernetes 351 | 352 | - book: [Kubernetes in Action](https://www.manning.com/books/kubernetes-in-action) 353 | 354 | 355 | ### Management 356 | 357 | - book: [Goal: A Process of Ongoing Improvement](https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951) 358 | 359 | 360 | #### Methodologies and Frameworks 361 | 362 | - article: [Ещё раз про семь основных методологий разработки](https://habr.com/ru/company/edison/blog/269789/) 363 | 364 | 365 | ##### SCRUM 366 | 367 | ##### Kanban 368 | 369 | ##### Extreme Programming 370 | 371 | ##### The Twelve-Factor App 372 | 373 | - article: [The Twelve-Factor App](https://12factor.net) 374 | 375 | 376 | #### Paradigms and Models 377 | 378 | ##### Agile 379 | 380 | - article: [Manifesto for Agile Software Development](https://agilemanifesto.org) 381 | 382 | 383 | ##### Waterfall 384 | 385 | #### Time Management 386 | 387 | - book: [Джедайские техники](https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/) 388 | 389 | 390 | ##### Pareto analysis 391 | 392 | ##### Getting Things Done 393 | 394 | ##### Pomodoro 395 | 396 | ## Ruby 397 | 398 | ### Datatypes and Objects 399 | 400 | #### Numbers 401 | 402 | #### Text 403 | 404 | #### Arrays 405 | 406 | #### Hashes 407 | 408 | #### Ranges 409 | 410 | #### Symbols 411 | 412 | #### Boolean and Nil 413 | 414 | #### Objects 415 | 416 | ### Expressions and Operators 417 | 418 | #### Literals and Keyword Literals 419 | 420 | #### Variable References 421 | 422 | #### Constant References 423 | 424 | #### Method Invocations 425 | 426 | #### Assigments 427 | 428 | #### Operators 429 | 430 | ### Statements and Control Structures 431 | 432 | #### Conditionals 433 | 434 | #### Loops 435 | 436 | #### Iterators and Enumerable Objects 437 | 438 | #### Blocks 439 | 440 | #### Altering Control Flow 441 | 442 | #### Exceptions and Exception Handling 443 | 444 | #### BEGIN and END 445 | 446 | #### Threads, Fibers, and Continuations 447 | 448 | ### Metods, Procs, Lambdas, and Closures 449 | 450 | #### Defining Simple Methods 451 | 452 | #### Methods 453 | 454 | #### Procs and Lambdas 455 | 456 | #### Closures 457 | 458 | #### Method Objects 459 | 460 | #### Functional Programming 461 | 462 | ### Classes and Modules 463 | 464 | #### Method Visibility 465 | 466 | #### Subclassing and Inheritance 467 | 468 | #### Object Creation and Initialization 469 | 470 | #### Modules 471 | 472 | #### Loading and Requiring Modules 473 | 474 | #### Singleton Methods and the Eigenclass 475 | 476 | #### Method Lookup 477 | 478 | #### Constant Lookup 479 | 480 | ### Reflection and Metaprogramming 481 | 482 | #### Types, Classes and Modules 483 | 484 | #### Evaluating Strings and Blocks 485 | 486 | #### Variables and Constants 487 | 488 | #### Methods and Parentheses 489 | 490 | #### Hooks 491 | 492 | #### Tracing 493 | 494 | #### ObjectSpace and GC 495 | 496 | #### Custom Control Structures 497 | 498 | #### Missing Methods and Missing Constants 499 | 500 | #### Dynamically Creating Methods 501 | 502 | #### Alias Chaining 503 | 504 | #### Domain-Specific Languages 505 | 506 | ### The Ruby Platform 507 | 508 | #### Strings 509 | 510 | #### Regular Expressions 511 | 512 | #### Numbers and Math 513 | 514 | #### Dates and Times 515 | 516 | #### Colleactions 517 | 518 | #### Files and Directories 519 | 520 | #### Inpit/Output 521 | 522 | #### Networking 523 | 524 | #### Threads and Concurrency / Parralellism in Ruby 525 | 526 | ### Rails 527 | 528 | #### Models 529 | 530 | #### Views 531 | 532 | #### Controllers 533 | 534 | #### Components 535 | 536 | -------------------------------------------------------------------------------- /stacks/ruby/data/roadmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srce/roadmap/80796d6c5cdb08c6fb94958f9ae1577d91189012/stacks/ruby/data/roadmap.png -------------------------------------------------------------------------------- /stacks/ruby/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /stacks/ruby/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /subjects/cs/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Design patterns : elements of reusable object-oriented software 5 | https://www.worldcat.org/title/design-patterns-elements-of-reusable-object-oriented-software/oclc/31171684 6 | 7 | cs_architecture_patterns 8 | 9 | 10 | 11 | 12 | Algorithms, 4th Edition 13 | https://algs4.cs.princeton.edu/home/ 14 | 15 | cs_algorithms 16 | 17 | 18 | 19 | 20 | Algorithms, Part I 21 | https://www.coursera.org/learn/algorithms-part1 22 | 23 | cs_algorithms 24 | 25 | 26 | 27 | 28 | Algorithms, Part II 29 | https://www.coursera.org/learn/algorithms-part2 30 | 31 | cs_algorithms 32 | 33 | 34 | 35 | 36 | Introduction to Algorithms, Third Edition 37 | https://mitpress.mit.edu/books/introduction-algorithms-third-edition 38 | 39 | cs_algorithms 40 | 41 | 42 | 43 | 44 | Design Patterns: Elements of Reusable Object-Oriented Software 45 | 46 | https://www.oreilly.com/library/view/design-patterns-elements/0201633612/ 47 | 48 | 49 | cs_architecture_patterns 50 | 51 | 52 | 53 | 54 | Head First Design Patterns 55 | http://shop.oreilly.com/product/9780596007126.do 56 | 57 | cs_architecture_patterns 58 | 59 | 60 | 61 | 62 | Designing Data-Intensive Applications 63 | http://shop.oreilly.com/product/0636920032175.do 64 | 65 | cs_architecture 66 | 67 | 68 | 69 | 70 | Реактивные шаблоны проектирования 71 | https://www.piter.com/product/reaktivnye-shablony-proektirovaniya 72 | 73 | cs_architecture_patterns 74 | 75 | 76 | 77 |
78 | Создание архитектуры программы или как проектировать табуретку 79 | https://habr.com/ru/post/276593/ 80 | 81 | cs_architecture 82 | 83 |
84 | 85 | 86 | Clean Architecture 87 | https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164 88 | 89 | cs_architecture 90 | 91 | 92 | 93 | 94 | Patterns of Enterprise Application Architecture 95 | https://www.martinfowler.com/books/eaa.html 96 | 97 | cs_architecture 98 | 99 | 100 | 101 | 102 | Designing Distributed Systems 103 | https://www.amazon.com/gp/product/1491983647 104 | 105 | cs_architecture_distributed 106 | 107 | 108 |
109 | -------------------------------------------------------------------------------- /subjects/cs/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /subjects/db/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | NOSQL 5 | https://martinfowler.com/nosql.html 6 | 7 | db_nosql 8 | 9 |
10 | 11 | 12 | NoSQL Distilled 13 | https://martinfowler.com/books/nosql.html 14 | 15 | db_nosql 16 | 17 | 18 | 19 | 20 | SQL Bible 21 | https://www.amazon.com/SQL-Bible-Alex-Kriegel/dp/0470229063 22 | 23 | db_sql 24 | 25 | 26 | 27 | 28 | Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c 29 | https://www.amazon.com/Oracle-PL-SQL-Programming-Versions/dp/1449324452 30 | 31 | db_relational_oracle 32 | 33 | 34 | 35 | 36 | Kubernetes in Action 37 | https://www.manning.com/books/kubernetes-in-action 38 | 39 | dev_orchestration_k8s 40 | 41 | 42 |
43 | -------------------------------------------------------------------------------- /subjects/db/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /subjects/dev/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | Manifesto for Agile Software Development 5 | https://agilemanifesto.org 6 | 7 | management_paradigms_agile 8 | 9 |
10 | 11 |
12 | The Twelve-Factor App 13 | https://12factor.net 14 | 15 | dev_methodologies_12factors 16 | 17 |
18 | 19 | 20 | Test Driven Development: By Example 21 | https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530 22 | 23 | dev_testing 24 | 25 | 26 | 27 | 28 | Working Effectively with Legacy Code 29 | https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052 30 | 31 | dev 32 | 33 | 34 | 35 | 36 | Refactoring: Improving the Design of Existing Code 37 | https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672 38 | 39 | dev 40 | 41 | 42 | 43 | 44 | The Pragmatic Programmer: From Journeyman to Master 45 | https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X 46 | 47 | dev 48 | 49 | 50 | 51 | 52 | Code Complete: A Practical Handbook of Software Construction 53 | https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670 54 | 55 | dev 56 | 57 | 58 | 59 | 60 | Clean Code: A Handbook of Agile Software Craftsmanship 61 | https://www.amazon.com/gp/product/0132350882 62 | 63 | dev 64 | 65 | 66 | 67 | 68 | Goal: A Process of Ongoing Improvement 69 | https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951 70 | 71 | dev_management 72 | 73 | 74 | 75 | 76 | Pro Git 77 | https://git-scm.com/book/en 78 | 79 | dev_version_git 80 | 81 | 82 | 83 |
84 | Системы сборки проектов Maven 85 | http://www.apache-maven.ru/ 86 | 87 | dev_build_maven 88 | 89 |
90 | 91 |
92 | Идеальный мавен. Часть 2: структура проекта 93 | https://habr.com/ru/post/344480/ 94 | 95 | dev_build_maven 96 | 97 |
98 | 99 | 100 | Gradle in Action 101 | http://barbra-coco.dyndns.org/student/Gradle%20in%20Action.pdf 102 | 103 | dev_build_gradle 104 | 105 | 106 | 107 |
108 | Ещё раз про семь основных методологий разработки 109 | https://habr.com/ru/company/edison/blog/269789/ 110 | 111 | dev_methodologies 112 | 113 |
114 | 115 |
116 | 4 книги о системах контроля версий, которые дадут о них полное представление 117 | https://tproger.ru/books/4-books-about-vcs/ 118 | 119 | dev_version 120 | 121 |
122 | 123 |
124 | Введение в ELK: собираем, фильтруем и анализируем большие данные 125 | https://mkdev.me/posts/vvedenie-v-elk-sobiraem-filtruem-i-analiziruem-bolshie-dannye 126 | 127 | dev_debugging_logging 128 | 129 |
130 | 131 |
132 | The Practical Test Pyramid 133 | https://martinfowler.com/articles/practical-test-pyramid.html 134 | 135 | dev_testing 136 | 137 |
138 | 139 |
140 | How deep are your unit tests? 141 | 142 | https://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests 143 | 144 | 145 | dev_testing 146 | 147 |
148 | 149 | 150 | Джедайские техники 151 | https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/ 152 | 153 | management_time 154 | 155 | 156 | 157 | 158 | Continuous delivery. Практика непрерывных апдейтов 159 | https://www.piter.com/product_by_id/87629352 160 | 161 | dev_deployment_cd 162 | 163 | 164 |
-------------------------------------------------------------------------------- /subjects/dev/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | -------------------------------------------------------------------------------- /subjects/go/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Разработка веб-сервисов на Go - основы языка 5 | https://www.coursera.org/learn/golang-webservices-1 6 | 7 | go 8 | 9 | 10 | 11 | 12 | Разработка веб-сервисов на Golang, часть 2 13 | https://www.coursera.org/learn/golang-webservices-2 14 | 15 | go 16 | 17 | 18 | 19 |
20 | Effective Go 21 | https://golang.org/doc/effective_go.html 22 | 23 | go 24 | 25 |
26 | 27 |
28 | The Go Blog - Go Slices: usage and internals 29 | https://blog.golang.org/go-slices-usage-and-internals 30 | 31 | go_types_slice 32 | 33 |
34 | 35 |
36 | Delete element in a slice 37 | https://stackoverflow.com/questions/25025409/delete-element-in-a-slice 38 | 39 | go_types_slice 40 | 41 |
42 | 43 | 44 |
45 | Commands 46 | https://golang.org/cmd/ 47 | 48 | go_tools 49 | 50 |
51 | 52 |
53 | The Go Blog - Go maps in action 54 | https://blog.golang.org/go-maps-in-action 55 | 56 | go_types_collections_map 57 | 58 |
59 | 60 |
61 | gofmt 62 | https://golang.org/cmd/gofmt/ 63 | 64 | go_tool_fmt 65 | 66 |
67 | 68 |
69 | vet 70 | https://golang.org/cmd/vet/ 71 | 72 | go_tool_vet 73 | 74 |
75 | 76 |
77 | Modules 78 | https://github.com/golang/go/wiki/Modules 79 | 80 | go_tool_modules 81 | 82 |
83 | 84 |
85 | The Go Blog - Using Go Modules 86 | https://blog.golang.org/using-go-modules 87 | 88 | go_tool_modules 89 | 90 |
91 | 92 | 93 | 94 | Concurrency in Go 95 | https://www.oreilly.com/library/view/concurrency-in-go/9781491941294 96 | 97 | go_concurrency 98 | 99 | 100 | 101 | 102 | Visualizing Concurrency in Go 103 | https://divan.dev/posts/go_concurrency_visualize/ 104 | 105 | go_concurrency 106 | 107 | 108 | 109 |
110 | The Go Blog - Share Memory By Communicating 111 | https://blog.golang.org/share-memory-by-communicating 112 | 113 | go_types_slice 114 | 115 |
116 | 117 |
118 | The Go Blog - Arrays, slices (and strings): The mechanics of 'append' 119 | https://blog.golang.org/slices 120 | 121 | go_types_slice 122 | 123 |
124 | 125 |
126 | The Go Blog - Defer, Panic, and Recover 127 | https://blog.golang.org/defer-panic-and-recover 128 | 129 | go_function_recover 130 | go_function_defer 131 | go_function_panic 132 | 133 |
134 | 135 |
136 | The Go Blog - Go Concurrency Patterns: Timing out, moving on 137 | https://blog.golang.org/go-concurrency-patterns-timing-out-and 138 | 139 | go_concurrency_patterns 140 | 141 |
142 | 143 |
144 | The Go Blog - Go Concurrency Patterns: Context 145 | https://blog.golang.org/context 146 | 147 | go_concurrency_patterns 148 | 149 |
150 | 151 |
152 | The Go Blog - Advanced Go Concurrency Patterns 153 | https://blog.golang.org/advanced-go-concurrency-patterns 154 | 155 | go_concurrency_patterns 156 | 157 |
158 | 159 |
160 | The Go Blog - Introducing the Go Race Detector 161 | https://blog.golang.org/race-detector 162 | 163 | go_concurrency_race 164 | 165 |
166 | 167 |
168 | The Go Blog - Profiling Go Programs 169 | https://blog.golang.org/profiling-go-programs 170 | 171 | go_tool_pprof 172 | 173 |
174 | 175 |
176 | The Go Blog - Profiling Go Programs 177 | https://blog.golang.org/profiling-go-programs 178 | 179 | go_tool_pprof 180 | 181 |
182 | 183 |
184 | Go code refactoring : the 23x performance hunt 185 | https://medium.com/@val_deleplace/go-code-refactoring-the-23x-performance-hunt-156746b522f7 186 | 187 | 188 | go_tool_pprof 189 | 190 |
191 | 192 |
193 | Go best practices, six years in 194 | https://peter.bourgon.org/go-best-practices-2016/ 195 | 196 | 197 | go 198 | 199 |
200 | 201 |
202 | Modern garbage collection 203 | https://blog.plan99.net/modern-garbage-collection-911ef4f8bd8e 204 | 205 | 206 | go_realtime_gc 207 | 208 |
209 | 210 | 218 | 219 | 226 | 227 |
228 | The Go Blog - Error handling and Go 229 | https://blog.golang.org/error-handling-and-go 230 | 231 | go_types_error 232 | 233 |
234 | 235 |
236 | The Go Blog - Concurrency is not parallelism 237 | https://blog.golang.org/concurrency-is-not-parallelism 238 | 239 | go_concurrency 240 | 241 |
242 | 243 |
244 | The Go Blog - Errors are values 245 | https://blog.golang.org/errors-are-values 246 | 247 | go_types_error 248 | 249 |
250 | 251 |
252 | The Go Blog - Go GC: Prioritizing low latency and simplicity 253 | https://blog.golang.org/go15gc 254 | 255 | go_realtime_gc 256 | 257 |
258 | 259 |
260 | Go scheduler: Ms, Ps & Gs 261 | https://povilasv.me/go-scheduler/ 262 | 263 | go_realtime_scheduler 264 | 265 |
266 | 267 |
268 | The Go Blog - go fmt your code 269 | https://blog.golang.org/go-fmt-your-code 270 | 271 | go_tool_fmt 272 | 273 |
274 | 275 |
276 | The Go Blog - Constants 277 | https://blog.golang.org/constants 278 | 279 | go_types_constants 280 | 281 |
282 | 283 |
284 | The Go Blog - Getting to Go: The Journey of Go's Garbage Collector 285 | https://blog.golang.org/ismmkeynote 286 | 287 | go_realtime_gc 288 | 289 |
290 | 291 |
292 | The Go Blog - Strings, bytes, runes and characters in Go 293 | https://blog.golang.org/strings 294 | 295 | go_types_text 296 | 297 |
298 | 299 |
300 | How to efficiently concatenate strings in Go? 301 | https://stackoverflow.com/questions/1760757/how-to-efficiently-concatenate-strings-in-go 302 | 303 | go_types_text_strings 304 | 305 |
306 | 307 |
308 | How to check if a map contains a key in Go? 309 | https://stackoverflow.com/questions/2050391/how-to-check-if-a-map-contains-a-key-in-go 310 | 311 | go_types_collections_map 312 | 313 |
314 | 315 |
316 | How do you write multiline strings in Go? 317 | https://stackoverflow.com/questions/7933460/how-do-you-write-multiline-strings-in-go 318 | 319 | go_types_text_strings 320 | 321 |
322 | 323 |
324 | What is an idiomatic way of representing enums in Go? 325 | https://stackoverflow.com/questions/14426366/what-is-an-idiomatic-way-of-representing-enums-in-go 326 | 327 | go_types_constants 328 | 329 |
330 | 331 |
332 | Concatenate two slices in Go 333 | https://stackoverflow.com/questions/16248241/concatenate-two-slices-in-go 334 | 335 | go_types_slice 336 | 337 |
338 | 339 |
340 | When is the init() function run? 341 | https://stackoverflow.com/questions/24790175/when-is-the-init-function-run 342 | 343 | go_function_init 344 | 345 |
346 | 347 |
348 | Format a Go string without printing? 349 | https://stackoverflow.com/questions/11123865/format-a-go-string-without-printing 350 | 351 | go_types_text_strings 352 | 353 |
354 | 355 | 356 | An Introduction to Programming in Go 357 | https://www.golang-book.com/books/intro 358 | 359 | go 360 | 361 | 362 |
363 | -------------------------------------------------------------------------------- /subjects/go/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | -------------------------------------------------------------------------------- /subjects/java/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Oracle Certified Associate Java SE 8 Programmer I Study Guide (2015) 5 | https://www.amazon.com/OCA-Certified-Associate-Programmer-1Z0-808/dp/1118957407 6 | 7 | java_core 8 | 9 | 10 | 11 | 12 | OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (2015) 13 | https://www.amazon.com/OCP-Certified-Professional-Programmer-2015-12-21/dp/B01A1MN0ZS 14 | 15 | java_core 16 | 17 | 18 | 19 | 20 | Java 8 Lambdas: Functional Programming For The Masses 21 | https://www.amazon.com/Java-Lambdas-Functional-Programming-Masses/dp/1449370772 22 | 23 | java_core 24 | 25 | 26 | 27 | 28 | Java: A Beginner's Guide, Eighth Edition 29 | https://www.amazon.com/Java-Beginners-Eighth-Herbert-Schildt/dp/1260440214 30 | 31 | java_core 32 | 33 | 34 | 35 | 36 | Java Concurrency in Practice 37 | https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601 38 | 39 | java_core 40 | 41 | 42 | 43 | 44 | Beginning Java E.E. 7 (Expert Voice in Java) 45 | https://www.amazon.com/gp/product/143024626X 46 | 47 | java_ee 48 | 49 | 50 | 51 | 52 | Java EE 7 Essentials: Enterprise Developer Handbook 53 | https://www.amazon.com/Java-EE-Essentials-Enterprise-Developer/dp/1449370179 54 | 55 | java_ee 56 | 57 | 58 | 59 | 66 | 67 | 74 | 75 | 76 | Cloud Native Java: Designing Resilient Systems with Spring Boot, 77 | Spring Cloud, and Cloud Foundry 78 | 79 | 80 | https://www.amazon.com/Cloud-Native-Java-Designing-Resilient/dp/1449374646 81 | 82 | 83 | java_spring 84 | 85 | 86 | 87 | 88 | Spring 4 для профессионалов | Шефер Крис, Хо Кларенс 89 | https://www.ozon.ru/context/detail/id/33056979/ 90 | 91 | java_spring 92 | 93 | 94 | 95 | 96 | Spring in Action 5th Edition 97 | https://www.amazon.com/Spring-Action-Craig-Walls/dp/1617294942 98 | 99 | 100 | java_spring 101 | 102 | 103 | 104 | 105 | Pro Spring 106 | https://www.amazon.com/Pro-Spring-Clarence-Ho-ebook/dp/B014P9HJ0A 107 | 108 | 109 | java_spring 110 | 111 | 112 | 113 | 114 | Java Persistence API i Hibernate 115 | https://www.amazon.com/Java-Persistence-API-i-Hibernate/dp/597060674X 116 | 117 | edge_java_persistence_jpa_hibernate 118 | 119 | 120 | 121 |
122 | Hibernate Getting Started Guide 123 | https://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html_single/#d5e58 124 | 125 | edge_java_persistence_jpa_hibernate 126 | 127 |
128 | 129 | 130 | Hibernate in Action 131 | 132 | https://www.amazon.com/Hibernate-Action-Christian-Bauer/dp/193239415X 133 | 134 | 135 | edge_java_persistence_jpa_hibernate 136 | 137 | 138 |
139 | -------------------------------------------------------------------------------- /subjects/java/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | -------------------------------------------------------------------------------- /subjects/net/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Computer Networks 5 | https://www.amazon.com/Computer-Networks-Tanenbaum-International-Economy/dp/9332518742 6 | 7 | net 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /subjects/net/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /subjects/os/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Docker in Action 5 | https://pepa.holla.cz/wp-content/uploads/2016/10/Docker-in-Action.pdf 6 | 7 | os_virtualization_level_docker 8 | 9 | 10 | 11 | 12 | Modern Operating Systems (4th Edition) 13 | https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X 14 | 15 | os 16 | 17 | 18 | 19 | 20 | Operating System Concepts, Tenth Edition 21 | http://os-book.com/OS10/index.html 22 | 23 | os 24 | 25 | 26 | 27 | 28 | Operating Systems, 3rd Edition 29 | https://www.amazon.com/Operating-Systems-3rd-Harvey-Deitel/dp/0131828274 30 | 31 | os 32 | 33 | 34 | 35 | 36 | Operating Systems, 3rd Edition 37 | https://www.amazon.com/Operating-Systems-3rd-Harvey-Deitel/dp/0131828274 38 | 39 | os 40 | 41 | 42 | 43 | 50 | 51 | -------------------------------------------------------------------------------- /subjects/os/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /subjects/php/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /subjects/php/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /subjects/python/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /subjects/python/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /subjects/ruby/materials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /subjects/ruby/roadmap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | -------------------------------------------------------------------------------- /tools/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | STACK=$1 6 | ROADMAPFILE="stacks/${STACK}/roadmap.xml" 7 | MATERIALS="stacks/${STACK}/materials.xml" 8 | DOTFILE="stacks/${STACK}/data/roadmap.dot" 9 | SVGFILE="stacks/${STACK}/data/roadmap.svg" 10 | PNGFILE="stacks/${STACK}/data/roadmap.png" 11 | MDFILE="stacks/${STACK}/data/roadmap.md" 12 | 13 | ./tools/xmlg2dot.py --xmlg=${ROADMAPFILE} --dot=${DOTFILE} && \ 14 | echo "Check ${DOTFILE}" && \ 15 | dot -Tsvg ${DOTFILE} -o ${SVGFILE} && \ 16 | echo "Check ${SVGFILE}" && \ 17 | dot -Tpng ${DOTFILE} -o ${PNGFILE} && \ 18 | echo "Check ${PNGFILE}" 19 | 20 | ./tools/xmlg2md.py --xmlg=${ROADMAPFILE} --materials=${MATERIALS} --root="backend" > ${MDFILE} && \ 21 | echo "Check ${MDFILE}" 22 | -------------------------------------------------------------------------------- /tools/materials.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from collections import defaultdict 3 | import xml.etree.ElementTree as Et 4 | 5 | 6 | class Material: 7 | def __init__(self): 8 | self.type = '' 9 | self.title = '' 10 | self.url = '' 11 | self.translate_lang = '' 12 | self.translate_url = '' 13 | 14 | 15 | def parsexml(filepath): 16 | tree = Et.parse(filepath) 17 | root = tree.getroot() 18 | materials = defaultdict(lambda: []) 19 | for mat_desc in root: 20 | if mat_desc.tag == 'include': 21 | materials.update(parsexml(mat_desc.attrib['filepath'])) 22 | continue 23 | material = Material() 24 | material.type = mat_desc.tag 25 | for item in mat_desc: 26 | if item.tag == 'title': 27 | material.title = item.text 28 | if item.tag == 'url': 29 | material.url = item.text 30 | if item.tag == 'translate': 31 | material.translate_lang = item.attrib['lang'] 32 | material.translate_url = item.attrib['url'] 33 | if item.tag == 'tags': 34 | for tag in item: 35 | materials[tag.text].append(material) 36 | return materials 37 | -------------------------------------------------------------------------------- /tools/materials.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /tools/xmlg2dot.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import argparse 4 | from xmlgraph import Roadmap 5 | 6 | 7 | def convert_dot(graphml, dot): 8 | roadmap = Roadmap(graphml) 9 | 10 | file = open(dot, "w") 11 | file.write('digraph roadmap {\n\trankdir=LR;\n') 12 | for _, edge in roadmap.edges.items(): 13 | file.write('\t' + edge.source + '->' + edge.target + ';\t\n') 14 | for _, node in roadmap.nodes.items(): 15 | file.write('\t' + node.id + ' [ label="' + node.label + '" ];\n') 16 | file.write('}\n') 17 | file.close() 18 | 19 | 20 | if __name__ == '__main__': 21 | parser = argparse.ArgumentParser(description='Converting GraphML to DOT') 22 | parser.add_argument('--xmlg', help='XML Graph filename') 23 | parser.add_argument('--dot', help='DOT filename') 24 | args = parser.parse_args() 25 | 26 | convert_dot(args.xmlg, args.dot) 27 | -------------------------------------------------------------------------------- /tools/xmlg2md.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import argparse 4 | import materials as mt 5 | from xmlgraph import Roadmap 6 | 7 | 8 | def walk(roadmap, nodeid, level, materials): 9 | node = roadmap.nodes[nodeid] 10 | 11 | if level > 6: 12 | level = 6 13 | print('#'*level + ' ' + node.label + '\n') 14 | 15 | node_mat = materials[nodeid] 16 | for m in node_mat: 17 | print("- {}: [{}]({})".format(m.type, m.title, m.url) + 18 | ('' if m.translate_url == '' else 19 | "[[{}]({})]".format(m.translate_lang, m.translate_url))) 20 | 21 | if len(node_mat) > 0: 22 | print('\n') 23 | 24 | for childid in node.childrenids: 25 | walk(roadmap, childid, level+1, materials) 26 | 27 | 28 | def convert_md(graphml, xmlmaterials, rootid): 29 | roadmap = Roadmap(graphml) 30 | materials = mt.parsexml(xmlmaterials) 31 | walk(roadmap, rootid, 1, materials) 32 | 33 | 34 | if __name__ == '__main__': 35 | parser = argparse.ArgumentParser(description='Combining GraphML and materials into markdown') 36 | parser.add_argument('--xmlg', default='roadmap.xml', help='XML Graph filename') 37 | parser.add_argument('--materials', default='materials.xml', help='Materials XML filename') 38 | parser.add_argument('--root', default='backend', help='Root element id') 39 | args = parser.parse_args() 40 | 41 | convert_md(args.xmlg, args.materials, args.root) 42 | -------------------------------------------------------------------------------- /tools/xmlgraph.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import xml.etree.ElementTree as Et 4 | 5 | 6 | class Edge: 7 | def __init__(self, edge_id, source, target): 8 | self.id = edge_id 9 | self.source = source 10 | self.target = target 11 | 12 | 13 | class Node: 14 | def __init__(self, node_id, label): 15 | self.id = node_id 16 | self.label = label 17 | self.childrenids = [] 18 | 19 | 20 | class Roadmap: 21 | def __init__(self, filepath): 22 | self.edges = {} 23 | self.nodes = {} 24 | self.add_from_file(filepath) 25 | 26 | def add_from_file(self, filepath): 27 | tree = Et.parse(filepath) 28 | root = tree.getroot() 29 | for child in root: 30 | if child.tag == 'include': 31 | self.add_from_file(child.get('filepath')) 32 | for dotElem in child: 33 | if dotElem.tag == 'edge': 34 | edge_id = dotElem.get('id') 35 | source = dotElem.get('source') 36 | target = dotElem.get('target') 37 | self.edges[edge_id] = (Edge(edge_id, source, target)) 38 | self.nodes[source].childrenids.append(target) 39 | elif dotElem.tag == 'node': 40 | node_id = dotElem.get('id') 41 | label = dotElem.get('label') 42 | self.nodes[node_id] = (Node(node_id, label)) 43 | -------------------------------------------------------------------------------- /tools/xmlgraph.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | This document defines the XMLGraph language including 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | --------------------------------------------------------------------------------