├── .gitignore ├── backend.md ├── devops.md ├── frontend.md ├── images ├── backend.png ├── disclaimer.png ├── frontend-v2.png └── split.png ├── project ├── backend-map.json ├── devops-map.json ├── disclaimer.json ├── frontend-map.json └── intro-map.json └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | ._* 3 | Thumbs.db 4 | *.sublime-project 5 | *.sublime-workspace 6 | .idea -------------------------------------------------------------------------------- /backend.md: -------------------------------------------------------------------------------- 1 | // TODO -------------------------------------------------------------------------------- /devops.md: -------------------------------------------------------------------------------- 1 | // TODO -------------------------------------------------------------------------------- /frontend.md: -------------------------------------------------------------------------------- 1 | > Textual form of the roadmap, feel free to fork and track as you learn 2 | 3 | ## Frontend Developer Roadmap – 2018 4 | 5 | This file contains the frontend roadmap translated in the checklist form to make it easier for others to contribute and to fork and keep a check on their progress. You can read the commentary on the frontend roadmap [in this medium article](https://medium.com/@kamranahmedse/modern-frontend-developer-in-2018-4c2072fa2b9c) 6 | 7 | ## Step 1 – Learn the Basics 8 | 9 | First thing that you would want to do is learn the basics which includes learning the basics of HTML, CSS and some familiarization with JavaScript syntax. 10 | 11 | - [ ] Learn the basics of HTML 12 | - [ ] Learn the basics and how to write semantic HTML 13 | - [ ] Understand how to divide page into sections and to structure the DOM properly 14 | - [ ] **Task** Make at least 5 HTML pages – focus on structure, don't worry about the *beauty* yet 15 | - [ ] Learn the basics of CSS 16 | - [ ] Learn the basics of CSS 17 | - [ ] Learn how to use Grid and Flexbox 18 | - [ ] Media queries and how to make responsive websites 19 | - [ ] Understand CSS Specificity, Box-Model etc 20 | - [ ] **Task** Style the HTML pages that you made in last step 21 | - [ ] Basics of JavaScript 22 | - [ ] Learn the syntax and the basic constructs 23 | - [ ] Learn how to manipulate DOM 24 | - [ ] Understand the concepts such as hoisting, event bubbling, prototypes etc 25 | - [ ] Learn Ajax (XHR) 26 | - [ ] Learn new features in ES6+ and how to write modular JavaScript 27 | - [ ] Learn jQuery – **Optional (you can leave it for now and revisit later)** 28 | 29 | ## Step 2 – Practice what you have learnt! 30 | 31 | I say this a lot and I will say it here again, you don’t learn anything without practice. You might have a momentary feeling that you understand something but it would soon go away if you don’t practice. Make sure that you practice as much as you can, while you are following this roadmap. 32 | 33 | Go ahead and make some responsive website and add interactivity with JavaScript. You can copy any existing webpage that you might find interesting but **remember to use everything that you have learnt till this point**. 34 | 35 | ## Step 3 – Optional but Highly Recommended 36 | 37 | Before you go any further, I would recommend you to go and learn some [git](https://git-scm.com/) if you haven't learnt already. it is really going to help you as you go further. You don't have to learn everything about it, just learn the below listed and keep learning as you continue and face any issues. 38 | 39 | Its time to get into the real business now. Open [Github](https://github.com) and search for some projects and try to open some pull requests in some open-source projects. Some of the ideas for pull requested are listed below: 40 | - Enhance the UI, make any demo pages responsive or improve the design 41 | - Look at any of the open issues that you can solve 42 | - Refactor any of the code that you think can be improved 43 | 44 | Link this repo and tell them you are learning and ask for feedback on your PR and how you can improve. 45 | 46 | ## Step 4 – Learn about Package Managers 47 | 48 | NPM and Yarn both are almost same in usage; you can learn one of them and you automatically learn the other. 49 | 50 | - [ ] Learn how to use NPM 51 | - [ ] Learn how to use Yarn 52 | - [ ] Understand Semantic Versioning 53 | - [ ] **Task** Install some external library using yarn or npm into the webpages that you made previously 54 | 55 | ## Step 5 – Learn CSS Preprocessors 56 | 57 | Preprocessors enrich CSS with the functionality that it isn’t capable of by default. There are different many options Sass, Less, Stylus etc. If I were to pick one, I would go for Sass. However, PostCSS has been gaining a lot of traction lately, it is a nice-to-have and is sort of “Babel” for CSS. You can use it stand-alone or on top of Sass also. I would recommend you to learn Sass for now and revisit PostCSS later when you have time. 58 | 59 | - [ ] Pick one of these 60 | - [ ] **Sass (Recommended)** 61 | - [ ] Less 62 | - [ ] **PostCSS (do this later)** 63 | - [ ] Stylus 64 | 65 | ## Step 6 – Learn any CSS Framework 66 | 67 | This used to be way up in the chart, but I moved it down below as they aren't really needed any more and can be mastered without much effort. If you would want to pick any, there is one under every rock. The ones that I liked the most among the ones that I tried are Bootstrap, Materialize and Bulma. But if you look at their demand in market I would pick Bootstrap if I was starting today. 68 | 69 | - [ ] **Bootstrap (Recommended)** 70 | - [ ] Materialize CSS 71 | - [ ] Bulma 72 | 73 | ## Step 7 – Learn how to organize CSS 74 | 75 | As your applications grow, CSS start to become messy and unmaintainable. There are multiple ways to structure your CSS better for scalability 76 | 77 | - [ ] **BEM – Recommended** 78 | - [ ] OOCSS 79 | - [ ] SMACSS 80 | - [ ] SUITCSS 81 | - [ ] Atomic 82 | 83 | ## Step 8 – Learn the Build tools 84 | 85 | These are the tools that help you in bundling, building and development of your frontend applications 86 | 87 | There used to be alot of stuff in the task runners but today I would just pick NPM scripts, however if you want to pick something else, have a look at gulp 88 | 89 | - [ ] **NPM Scripts (Recommended)** 90 | - [ ] Gulp 91 | 92 | There are several linters, but I would go for ESLint. Feel free to have a look at others and see why one over the other 93 | 94 | - [ ] **ESLint (Recommended)** 95 | - [ ] JSLint 96 | - [ ] JSHint 97 | - [ ] JSCS 98 | 99 | **Use Webpack for apps and Rollup for libraries**. However, you don't need rollup for now; everything that it does, you can do it with Webpack also, so go for Webpack and look into Rollup later 100 | 101 | - [ ] **Webpack (Recommended)** 102 | - [ ] Rollup 103 | - [ ] Parcel 104 | 105 | ## Step 9 – Create something – Maybe a library 106 | 107 | Go to Github and Have a look at the source code of libraries that people have made, pick an idea and make some library with the below listed requirements 108 | 109 | - [ ] It should use Sass for styling 110 | - [ ] It should be written in ES6 111 | - [ ] It should be a UMD library 112 | - [ ] It should be using Babel to allow usage in older browsers 113 | 114 | ## Step 10 – Learn any Framework 115 | 116 | There are several options, when it comes to frameworks. However, below listed frameworks are the ones that I would recommend. You can pick any of them, however if you ask me for the personal picks I would choose React or Angular. However, have a look at any of them and see what you like 117 | 118 | - [ ] **React** 119 | - [ ] Redux - For large scale apps and can be used outside react also 120 | - [ ] Mobx - For smaller apps and can be used outside react also 121 | - [ ] **Angular (Important – Learn Angular 2+)** 122 | - [ ] Rx.js – Is really powerful can be used out of angular also 123 | - [ ] Ngrx 124 | - [ ] Vue.js 125 | - [ ] Vuex - Similar to redux but for Vue 126 | 127 | ## Step 11 – Practical Time 128 | 129 | Now you know *everything* that one might need to build a modern JavaScript application. Go ahead and make some application with whatever framework you picked. You can find some of the ideas in the `ideas` directory in the repository; pick anything and start! 130 | 131 | ## Step 12 – Learn about Performance 132 | 133 | Once you are done making the application from Step 9, read about how to **measure and improve performance**. For example look at **Interactivity Time**, **Page Speed Index**, and **Lighthouse Score** etc. 134 | 135 | ## Step 13 – Testing your Apps 136 | 137 | There are lots and lots of different tools for different purposes. I mostly find myself using a combination of Jest, Mocha, Karma and Enzyme. However, before you jump and pick any, it would be better if you **first understand the different testing types**, look at all the options available and use the ones most suitable for your needs. 138 | 139 | Here is a really nice summary to get you started – [An Overview of JavaScript Testing in 2018](https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2018-f68950900bc3) 140 | 141 | - [ ] **Jest** 142 | - [ ] **Mocha** 143 | - [ ] **Protractor** 144 | - [ ] **Karma** 145 | - [ ] **Enzyme** 146 | 147 | ## Step 14 – Progressive Webapps 148 | 149 | Learn about Service Workers and how to make Progressive Webapps 150 | 151 | ## Step 15 – Static Type Checkers 152 | 153 | Static type checkers help you to add type checking to JavaScript. You don’t need to learn these but they really give you superpowers and can be learnt in a few hours and then you can keep . There is mainly TypeScript and Flow. I love TypeScript and would pick it but feel free to check both and pick one of your liking. 154 | 155 | - [ ] **TypeScript (Recommended)** 156 | - [ ] Flow 157 | 158 | ## Step 16 – Learn about Server Side Rendering 159 | 160 | There are different options, depending on what framework you are using 161 | 162 | - [ ] React 163 | - [ ] Next.js 164 | - [ ] After.js 165 | - [ ] Angular 166 | - [ ] Universal 167 | - [ ] Vue.js 168 | - [ ] Nuxt.js 169 | 170 | ## Step 17 – All the things not mentioned 171 | 172 | Canvas, HTML-5 APIs, SVG, sourcemaps, functional programming, TC39, Progressive enhancement, graceful degradation etc. Go Figure! 173 | 174 | ## Journey Never Ends 175 | 176 | And the journey doesn't end here. There is still a lot of stuff you can learn about, you just have to keep a healthy appetite for learning and not settling. 177 | 178 | Good luck 👏 179 | 180 | 181 | 182 | -------------------------------------------------------------------------------- /images/backend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CC-MNNIT/developer-roadmap/f415779d558d9e2fe1b7e69bfab9880dc9d334c1/images/backend.png -------------------------------------------------------------------------------- /images/disclaimer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CC-MNNIT/developer-roadmap/f415779d558d9e2fe1b7e69bfab9880dc9d334c1/images/disclaimer.png -------------------------------------------------------------------------------- /images/frontend-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CC-MNNIT/developer-roadmap/f415779d558d9e2fe1b7e69bfab9880dc9d334c1/images/frontend-v2.png -------------------------------------------------------------------------------- /images/split.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CC-MNNIT/developer-roadmap/f415779d558d9e2fe1b7e69bfab9880dc9d334c1/images/split.png -------------------------------------------------------------------------------- /project/backend-map.json: -------------------------------------------------------------------------------- 1 | {"mockup":{"controls":{"control":[{"ID":"0","measuredH":"40","measuredW":"146","properties":{"bold":"true","size":"32","text":"Back-end"},"typeID":"Label","x":"598","y":"127","zOrder":"53"},{"ID":"1","h":"71","measuredH":"70","measuredW":"12","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":6,"y":0,"length":6},"p1":{"x":0.5214417744916817,"y":-0.11497227356746767,"length":0.533966429538699},"p2":{"x":12,"y":70,"length":71.02112361825881},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"13","x":"663","y":"40","zOrder":"54"},{"ID":"2","measuredH":"32","measuredW":"32","properties":{"color":"10027263","icon":{"ID":"github","size":"medium"}},"typeID":"Icon","x":"955","y":"59","zOrder":"55"},{"ID":"3","measuredH":"25","measuredW":"295","properties":{"bold":"true","color":"10027263","size":"17","text":"kamranahmedse/developer-roadmap"},"typeID":"Label","x":"994","y":"63","zOrder":"56"},{"ID":"4","measuredH":"32","measuredW":"32","properties":{"color":"10027263","icon":{"ID":"twitter","size":"medium"}},"typeID":"Icon","x":"955","y":"105","zOrder":"57"},{"ID":"5","measuredH":"25","measuredW":"133","properties":{"bold":"true","color":"10027263","size":"17","text":"kamranahmedse"},"typeID":"Label","x":"995","y":"110","zOrder":"58"},{"ID":"6","h":"79","measuredH":"78","measuredW":"13","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.4416543574593796,"y":0.14967996061053668},"p2":{"x":3,"y":78},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"14","x":"702","y":"177","zOrder":"59"},{"ID":"7","h":"71","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"400","x":"528","y":"237","zOrder":"60"},{"ID":"8","measuredH":"25","measuredW":"132","properties":{"bold":"true","size":"17","text":"Pick a Language"},"typeID":"Label","x":"576","y":"249","zOrder":"61"},{"ID":"9","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"542","y":"249","zOrder":"62"},{"ID":"10","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"1"},"typeID":"Label","x":"550","y":"251","zOrder":"63"},{"ID":"24","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"400","x":"528","y":"314","zOrder":"64"},{"ID":"27","measuredH":"25","measuredW":"166","properties":{"bold":"true","size":"17","text":"Scripting Languages"},"typeID":"Label","w":"371","x":"547","y":"322","zOrder":"65"},{"ID":"29","h":"8","measuredH":"7","measuredW":"73","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":73,"y":1,"length":73.00684899377592},"p1":{"x":0.3537744641192917,"y":-0.02907735321528425,"length":0.35496741249429986},"p2":{"x":0,"y":7,"length":7},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"74","x":"916","y":"335","zOrder":"52"},{"ID":"30","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"989","y":"316","zOrder":"66"},{"ID":"31","measuredH":"25","measuredW":"34","properties":{"bold":"true","size":"17","text":"PHP"},"typeID":"Label","w":"45","x":"1029","y":"325","zOrder":"67"},{"ID":"32","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"989","y":"361","zOrder":"68"},{"ID":"33","measuredH":"25","measuredW":"61","properties":{"bold":"true","size":"17","text":"Node.js"},"typeID":"Label","w":"68","x":"1029","y":"370","zOrder":"69"},{"ID":"34","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"141","x":"989","y":"271","zOrder":"70"},{"ID":"35","measuredH":"25","measuredW":"40","properties":{"bold":"true","size":"17","text":"Ruby"},"typeID":"Label","w":"45","x":"1029","y":"280","zOrder":"71"},{"ID":"36","h":"36","measuredH":"35","measuredW":"76","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":76,"y":35,"length":83.6719785830358},"p1":{"x":0.4949292958148836,"y":-0.07470361376946151,"length":0.5005353511651633},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"77","x":"924","y":"348","zOrder":"49"},{"ID":"37","h":"53","measuredH":"52","measuredW":"92","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":92,"y":2,"length":92.02173656261873},"p1":{"x":0.321780372126961,"y":-0.08792411528639182,"length":0.33357646489981907},"p2":{"x":0,"y":52,"length":52},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"93","x":"915","y":"290","zOrder":"51"},{"ID":"39","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"141","x":"989","y":"226","zOrder":"72"},{"ID":"40","measuredH":"25","measuredW":"56","properties":{"bold":"true","size":"17","text":"Python"},"typeID":"Label","w":"68","x":"1028","y":"235","zOrder":"73"},{"ID":"41","h":"101","measuredH":"100","measuredW":"81","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":81,"y":1,"length":81.00617260431454},"p1":{"x":0.266776677667767,"y":-0.05445544554455441,"length":0.2722777833333223},"p2":{"x":0,"y":100,"length":100},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"82","x":"914","y":"243","zOrder":"50"},{"ID":"42","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"400","x":"528","y":"361","zOrder":"74"},{"ID":"43","measuredH":"25","measuredW":"177","properties":{"bold":"true","size":"17","text":"Functional Languages"},"typeID":"Label","w":"191","x":"550","y":"369","zOrder":"75"},{"ID":"46","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"272","y":"367","zOrder":"76"},{"ID":"47","measuredH":"25","measuredW":"59","properties":{"bold":"true","size":"17","text":"Clojure"},"typeID":"Label","w":"61","x":"312","y":"376","zOrder":"77"},{"ID":"48","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"272","y":"412","zOrder":"78"},{"ID":"49","measuredH":"25","measuredW":"58","properties":{"bold":"true","size":"17","text":"Haskell"},"typeID":"Label","w":"68","x":"312","y":"421","zOrder":"79"},{"ID":"50","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"141","x":"272","y":"322","zOrder":"80"},{"ID":"51","measuredH":"25","measuredW":"52","properties":{"bold":"true","size":"17","text":"Erlang"},"typeID":"Label","w":"61","x":"312","y":"331","zOrder":"81"},{"ID":"52","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"141","x":"272","y":"277","zOrder":"82"},{"ID":"53","measuredH":"25","measuredW":"46","properties":{"bold":"true","size":"17","text":"Scala"},"typeID":"Label","w":"68","x":"311","y":"286","zOrder":"83"},{"ID":"54","h":"86","measuredH":"85","measuredW":"140","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":0,"y":3},"p1":{"x":0.26833582265545164,"y":0.06426381573775647},"p2":{"x":140,"y":85},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"141","x":"402","y":"299","zOrder":"48"},{"ID":"55","h":"46","measuredH":"45","measuredW":"151","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":0,"y":5},"p1":{"x":0.26833582265545164,"y":0.06426381573775647},"p2":{"x":151,"y":45},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"152","x":"398","y":"341","zOrder":"47"},{"ID":"56","h":"16","measuredH":"15","measuredW":"152","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":15},"p1":{"x":0.26833582265545164,"y":0.06426381573775647},"p2":{"x":152,"y":2},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"153","x":"392","y":"380","zOrder":"45"},{"ID":"57","h":"60","measuredH":"59","measuredW":"151","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":1,"y":59,"length":59.00847396772772},"p1":{"x":0.2683358226554517,"y":0.06426381573775639,"length":0.27592381508915526},"p2":{"x":151,"y":0,"length":151},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"152","x":"396","y":"382","zOrder":"46"},{"ID":"58","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"400","x":"528","y":"407","zOrder":"84"},{"ID":"59","measuredH":"25","measuredW":"206","properties":{"bold":"true","size":"17","text":"Multiparadigm Languages"},"typeID":"Label","w":"213","x":"550","y":"415","zOrder":"85"},{"ID":"64","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","text":""},"typeID":"TextArea","w":"141","x":"272","y":"232","zOrder":"86"},{"ID":"65","measuredH":"25","measuredW":"40","properties":{"bold":"true","size":"17","text":"Elixir"},"typeID":"Label","w":"61","x":"312","y":"241","zOrder":"87"},{"ID":"66","h":"138","measuredH":"137","measuredW":"140","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":0,"y":2},"p1":{"x":0.26833582265545164,"y":0.06426381573775647},"p2":{"x":140,"y":137},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"141","x":"403","y":"250","zOrder":"44"},{"ID":"67","h":"20","measuredH":"19","measuredW":"84","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":84,"y":19},"p1":{"x":0.4935957934474855,"y":0.02831333423216934},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"85","x":"919","y":"421","zOrder":"43"},{"ID":"68","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"993","y":"422","zOrder":"88"},{"ID":"69","measuredH":"25","measuredW":"57","properties":{"bold":"true","size":"17","text":"Golang"},"typeID":"Label","w":"68","x":"1033","y":"431","zOrder":"89"},{"ID":"72","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"994","y":"468","zOrder":"90"},{"ID":"73","measuredH":"25","measuredW":"38","properties":{"bold":"true","size":"17","text":"Rust"},"typeID":"Label","w":"68","x":"1034","y":"477","zOrder":"91"},{"ID":"74","h":"61","measuredH":"60","measuredW":"88","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":88,"y":60},"p1":{"x":0.6410437235543018,"y":-0.04019746121297602},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"89","x":"917","y":"431","zOrder":"42"},{"ID":"76","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"400","x":"528","y":"453","zOrder":"92"},{"ID":"77","measuredH":"25","measuredW":"162","properties":{"bold":"true","size":"17","text":"Enterprisey Options"},"typeID":"Label","w":"213","x":"550","y":"461","zOrder":"93"},{"ID":"78","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"272","y":"477","zOrder":"94"},{"ID":"79","measuredH":"25","measuredW":"37","properties":{"bold":"true","size":"17","text":"Java"},"typeID":"Label","w":"68","x":"312","y":"486","zOrder":"95"},{"ID":"80","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"141","x":"273","y":"523","zOrder":"96"},{"ID":"81","measuredH":"25","measuredW":"39","properties":{"bold":"true","size":"17","text":".NET"},"typeID":"Label","w":"47","x":"313","y":"532","zOrder":"97"},{"ID":"83","h":"34","measuredH":"33","measuredW":"150","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":33},"p1":{"x":0.3477275391769901,"y":-0.04236195240142249},"p2":{"x":150,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"151","x":"393","y":"466","zOrder":"41"},{"ID":"84","h":"215","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"465","x":"838","y":"546","zOrder":"98"},{"ID":"92","measuredH":"25","measuredW":"413","properties":{"size":"17","text":"For the beginners, if you are just getting into backend"},"typeID":"Label","x":"852","y":"557","zOrder":"99"},{"ID":"93","measuredH":"25","measuredW":"429","properties":{"size":"17","text":"development, I would recommend you to pick one of the"},"typeID":"Label","x":"852","y":"583","zOrder":"100"},{"ID":"94","measuredH":"25","measuredW":"403","properties":{"size":"17","text":"scripting languages. For the quick-and-easy, go with"},"typeID":"Label","x":"852","y":"610","zOrder":"101"},{"ID":"95","measuredH":"25","measuredW":"441","properties":{"size":"17","text":"*Node.js* or *PHP*. If you have already been doing backend,"},"typeID":"Label","x":"852","y":"637","zOrder":"102"},{"ID":"96","measuredH":"25","measuredW":"410","properties":{"size":"17","text":"with some scripting language then don't pick another"},"typeID":"Label","x":"852","y":"665","zOrder":"103"},{"ID":"97","measuredH":"25","measuredW":"416","properties":{"size":"17","text":"scripting language and have a look at Golang, Rust or"},"typeID":"Label","x":"852","y":"691","zOrder":"104"},{"ID":"98","measuredH":"25","measuredW":"393","properties":{"size":"17","text":"Clojure, it will definitely give you a new perspective."},"typeID":"Label","x":"852","y":"720","zOrder":"105"},{"ID":"99","h":"255","measuredH":"254","measuredW":"78","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":4,"y":0},"p1":{"x":0.46391752577319545,"y":-0.10309278350515459},"p2":{"x":78,"y":254},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"79","x":"819","y":"292","zOrder":"40"},{"ID":"100","h":"127","measuredH":"126","measuredW":"33","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":33,"y":126},"p1":{"x":0.4701515620167028,"y":0.1905351067120322},"p2":{"x":16,"y":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"34","x":"669","y":"479","zOrder":"39"},{"ID":"101","h":"96","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"405","x":"366","y":"583","zOrder":"106"},{"ID":"102","measuredH":"25","measuredW":"198","properties":{"bold":"true","size":"17","text":"Practice what you learnt"},"typeID":"Label","x":"412","y":"595","zOrder":"107"},{"ID":"103","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"378","y":"595","zOrder":"108"},{"ID":"104","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"2"},"typeID":"Label","x":"386","y":"597","zOrder":"109"},{"ID":"106","measuredH":"25","measuredW":"315","properties":{"size":"17","text":"Excercise and make some command line"},"typeID":"Label","x":"412","y":"619","zOrder":"110"},{"ID":"107","measuredH":"25","measuredW":"297","properties":{"size":"17","text":"applications with your picked language"},"typeID":"Label","x":"412","y":"641","zOrder":"111"},{"ID":"109","h":"83","measuredH":"82","measuredW":"47","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":1,"y":82,"length":82.00609733428362},"p1":{"x":0.4278136688201293,"y":0.1396123767426046,"length":0.4500179451633659},"p2":{"x":47,"y":0,"length":47},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"48","x":"407","y":"657","zOrder":"38"},{"ID":"110","measuredH":"25","measuredW":"292","properties":{"size":"17","text":"There are myriads of different options"},"typeID":"Label","x":"575","y":"273","zOrder":"112"},{"ID":"112","h":"187","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"575","x":"152","y":"700","zOrder":"113"},{"ID":"113","measuredH":"25","measuredW":"111","properties":{"bold":"true","size":"17","text":"Sample Ideas"},"typeID":"Label","w":"131","x":"168","y":"714","zOrder":"114"},{"ID":"114","measuredH":"25","measuredW":"366","properties":{"size":"17","text":"Implement some command that you use e.g. `ls`"},"typeID":"Label","x":"168","y":"742","zOrder":"115"},{"ID":"118","measuredH":"25","measuredW":"507","properties":{"size":"17","text":"Command that fetches and saves reddit posts on /r/programming"},"typeID":"Label","x":"168","y":"768","zOrder":"116"},{"ID":"120","measuredH":"25","measuredW":"464","properties":{"size":"17","text":"Command that gives you directory structure in JSON format"},"typeID":"Label","x":"168","y":"794","zOrder":"117"},{"ID":"121","measuredH":"25","measuredW":"543","properties":{"size":"17","text":"Command that reads JSON from above and creates director structure"},"typeID":"Label","x":"168","y":"820","zOrder":"118"},{"ID":"124","measuredH":"25","measuredW":"511","properties":{"size":"17","text":"Think of some task that you do every day and try to automate that"},"typeID":"Label","x":"168","y":"846","zOrder":"119"},{"ID":"125","h":"187","measuredH":"268","measuredW":"35","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":91,"y":186},"p1":{"x":0.4750027536746258,"y":-0.12018259922407568},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"92","x":"720","y":"651","zOrder":"37"},{"ID":"126","h":"133","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"523","x":"766","y":"788","zOrder":"120"},{"ID":"127","measuredH":"25","measuredW":"195","properties":{"bold":"true","size":"17","text":"Learn Package Manager"},"typeID":"Label","x":"813","y":"803","zOrder":"121"},{"ID":"128","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"779","y":"803","zOrder":"122"},{"ID":"129","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"3"},"typeID":"Label","x":"787","y":"805","zOrder":"123"},{"ID":"132","h":"72","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"485","x":"241","y":"902","zOrder":"124"},{"ID":"133","h":"53","measuredH":"110","measuredW":"99","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":87,"y":0},"p1":{"x":0.44426229508196724,"y":-0.013114754098360656},"p2":{"x":0,"y":52},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"88","x":"692","y":"883","zOrder":"36"},{"ID":"134","measuredH":"25","measuredW":"442","properties":{"size":"17","text":"Package managers help you bring external dependencies"},"typeID":"Label","x":"254","y":"914","zOrder":"125"},{"ID":"135","measuredH":"25","measuredW":"432","properties":{"size":"17","text":"in your application and to distribute your own packages. "},"typeID":"Label","x":"254","y":"936","zOrder":"126"},{"ID":"136","measuredH":"25","measuredW":"445","properties":{"size":"17","text":"Learn how to use package manager for the language that"},"typeID":"Label","x":"813","y":"827","zOrder":"127"},{"ID":"137","measuredH":"25","measuredW":"451","properties":{"size":"17","text":"you picked, e.g. *PHP has composer, Node.js has NPM and*"},"typeID":"Label","x":"813","y":"852","zOrder":"128"},{"ID":"139","h":"153","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"575","x":"158","y":"985","zOrder":"129"},{"ID":"140","measuredH":"25","measuredW":"245","properties":{"bold":"true","size":"17","text":"Standards and Best Practices"},"typeID":"Label","x":"204","y":"1001","zOrder":"130"},{"ID":"141","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"170","y":"1001","zOrder":"131"},{"ID":"142","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"4"},"typeID":"Label","x":"178","y":"1003","zOrder":"132"},{"ID":"143","measuredH":"25","measuredW":"490","properties":{"size":"17","text":"Each of the language has its own standards and best practices"},"typeID":"Label","x":"204","y":"1028","zOrder":"133"},{"ID":"144","measuredH":"25","measuredW":"511","properties":{"size":"17","text":"of doing things. Study them for your picked language. For example"},"typeID":"Label","x":"204","y":"1050","zOrder":"134"},{"ID":"145","h":"123","measuredH":"14","measuredW":"121","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":118,"y":0},"p1":{"x":0.5006130932798996,"y":0.15479857642731107},"p2":{"x":0,"y":122},"rightArrow":"false","shape":"bezier","stroke":"solid"},"typeID":"Arrow","w":"119","x":"686","y":"902","zOrder":"35"},{"ID":"146","measuredH":"25","measuredW":"519","properties":{"size":"17","text":"*PHP has PHP-FIG and PSRs*, with Node.js there are many different"},"typeID":"Label","x":"204","y":"1075","zOrder":"135"},{"ID":"151","h":"23","measuredH":"60","measuredW":"112","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":22},"p1":{"x":0.5177460050462573,"y":-0.033389402859545836},"p2":{"x":145,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"146","x":"708","y":"1009","zOrder":"34"},{"ID":"152","h":"110","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"570","x":"806","y":"947","zOrder":"136"},{"ID":"156","measuredH":"25","measuredW":"504","properties":{"size":"17","text":"Make sure to read about the best practices for security. Read the"},"typeID":"Label","x":"820","y":"962","zOrder":"137"},{"ID":"157","measuredH":"25","measuredW":"531","properties":{"size":"17","text":"OWASP guidelines and understand different security issues and how"},"typeID":"Label","x":"820","y":"988","zOrder":"138"},{"ID":"162","measuredH":"25","measuredW":"311","properties":{"size":"17","text":"to avoid them in language of your choice"},"typeID":"Label","x":"823","y":"1015","zOrder":"139"},{"ID":"164","h":"323","measuredH":"140","measuredW":"200","properties":{"color":"16776960","textColor":"0"},"typeID":"TextArea","w":"576","x":"158","y":"1156","zOrder":"140"},{"ID":"165","measuredH":"25","measuredW":"350","properties":{"bold":"true","size":"17","text":"Make and Distribute Some Package/Library"},"typeID":"Label","x":"207","y":"1177","zOrder":"141"},{"ID":"166","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"173","y":"1177","zOrder":"142"},{"ID":"167","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"5"},"typeID":"Label","x":"181","y":"1179","zOrder":"143"},{"ID":"168","measuredH":"25","measuredW":"490","properties":{"size":"17","text":"Now go ahead and create a package and distribute it for others"},"typeID":"Label","x":"207","y":"1204","zOrder":"144"},{"ID":"172","h":"93","measuredH":"2","measuredW":"138","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":3,"y":92,"length":92.04890004774636},"p1":{"x":0.3850318471337579,"y":0.18089171974522292,"length":0.42540726084496694},"p2":{"x":67,"y":0,"length":67},"rightArrow":"false","shape":"bezier","stroke":"solid"},"typeID":"Arrow","w":"68","x":"512","y":"1129","zOrder":"33"},{"ID":"173","measuredH":"25","measuredW":"502","properties":{"size":"17","text":"to use, and make sure to follow the standards and best practices"},"typeID":"Label","x":"207","y":"1230","zOrder":"145"},{"ID":"174","measuredH":"25","measuredW":"211","properties":{"size":"17","text":"that you have learnt this far."},"typeID":"Label","x":"207","y":"1254","zOrder":"146"},{"ID":"175","h":"71","measuredH":"74","measuredW":"138","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":70},"p1":{"x":0.29983449443824334,"y":-0.05126823447904237},"p2":{"x":146,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"147","x":"395","y":"474","zOrder":"32"},{"ID":"184","measuredH":"25","measuredW":"322","properties":{"size":"17","text":"*yarn, Python has pip, Ruby has gems* etc"},"typeID":"Label","x":"813","y":"880","zOrder":"147"},{"ID":"185","measuredH":"25","measuredW":"329","properties":{"bold":"true","size":"17","text":"Contribute to Some Opensource Project"},"typeID":"Label","x":"207","y":"1292","zOrder":"148"},{"ID":"186","measuredH":"25","measuredW":"499","properties":{"size":"17","text":"Search for some projects on github and open some pull requests"},"typeID":"Label","x":"207","y":"1320","zOrder":"149"},{"ID":"187","measuredH":"25","measuredW":"344","properties":{"size":"17","text":"in opensource projects. Some ideas for that :"},"typeID":"Label","x":"207","y":"1345","zOrder":"150"},{"ID":"188","measuredH":"25","measuredW":"448","properties":{"size":"17","text":"Refactor and implement the best practices that you learnt"},"typeID":"Label","x":"209","y":"1385","zOrder":"151"},{"ID":"189","measuredH":"25","measuredW":"339","properties":{"size":"17","text":"Look into the open issues and try to resolve"},"typeID":"Label","x":"209","y":"1410","zOrder":"152"},{"ID":"190","measuredH":"25","measuredW":"240","properties":{"size":"17","text":"Add any additional functionality"},"typeID":"Label","x":"209","y":"1435","zOrder":"153"},{"ID":"191","h":"15","measuredH":"15","measuredW":"309","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":9},"p1":{"x":0.45184009522864793,"y":-0.09066560857057832},"p2":{"x":100,"y":0},"rightArrow":"false","shape":"bezier","stroke":"solid"},"typeID":"Arrow","w":"101","x":"713","y":"1429","zOrder":"31"},{"ID":"192","h":"138","measuredH":"140","measuredW":"200","properties":{"color":"16776960","text":""},"typeID":"TextArea","w":"595","x":"782","y":"1359","zOrder":"154"},{"ID":"193","measuredH":"25","measuredW":"163","properties":{"bold":"true","size":"17","text":"Learn about Testing"},"typeID":"Label","x":"830","y":"1375","zOrder":"155"},{"ID":"194","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"796","y":"1375","zOrder":"156"},{"ID":"195","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"6"},"typeID":"Label","x":"804","y":"1377","zOrder":"157"},{"ID":"196","measuredH":"25","measuredW":"535","properties":{"size":"17","text":"There are several different testing types, but for now learn about how"},"typeID":"Label","x":"830","y":"1402","zOrder":"158"},{"ID":"200","measuredH":"25","measuredW":"486","properties":{"size":"17","text":"to write *Unit and Integration tests* in the language you picked."},"typeID":"Label","x":"829","y":"1428","zOrder":"159"},{"ID":"201","measuredH":"25","measuredW":"529","properties":{"size":"17","text":"Understand different testing terminologies such as mocks, stubs etc"},"typeID":"Label","x":"829","y":"1454","zOrder":"160"},{"ID":"205","h":"84","measuredH":"136","measuredW":"232","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":8,"y":0,"length":8},"p1":{"x":0.5140765687406935,"y":0.038590533977204765,"length":0.5155229847842391},"p2":{"x":0,"y":83,"length":83},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"9","x":"978","y":"1310","zOrder":"30"},{"ID":"206","h":"252","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"603","x":"774","y":"1084","zOrder":"161"},{"ID":"207","measuredH":"25","measuredW":"573","properties":{"size":"17","text":"There are several different options, each having different uses, depending "},"typeID":"Label","x":"788","y":"1099","zOrder":"162"},{"ID":"208","measuredH":"25","measuredW":"553","properties":{"size":"17","text":"upon the language of your choice. *Google* around, see different options "},"typeID":"Label","x":"791","y":"1125","zOrder":"163"},{"ID":"209","measuredH":"25","measuredW":"312","properties":{"size":"17","text":"and pick the one suitable for your needs."},"typeID":"Label","x":"791","y":"1152","zOrder":"164"},{"ID":"210","measuredH":"25","measuredW":"342","properties":{"size":"17","text":"*For PHP* – &*{color:blue}PHPUnit{color}*&, PHPSpec, Codeception"},"typeID":"Label","x":"792","y":"1193","zOrder":"165"},{"ID":"214","measuredH":"25","measuredW":"454","properties":{"size":"17","text":"*For Node.js* – &*{color:blue}Mocha{color}*&, &*{color:blue}Chai{color}*&, &*{color:blue}Sinon{color}*&, &*{color:blue}Mockery{color}*&, Ava, Jasmine"},"typeID":"Label","x":"792","y":"1221","zOrder":"166"},{"ID":"218","measuredH":"25","measuredW":"562","properties":{"size":"17","text":"For others, I don't want to start any flamewars so I am not going to make"},"typeID":"Label","x":"791","y":"1264","zOrder":"167"},{"ID":"219","measuredH":"25","measuredW":"531","properties":{"size":"17","text":"any recommendations here, so look around and find the ones suitable"},"typeID":"Label","x":"791","y":"1290","zOrder":"168"},{"ID":"221","h":"75","measuredH":"6","measuredW":"91","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":74,"length":74},"p1":{"x":0.41040312093628173,"y":-0.05500650195058517,"length":0.4140729850293062},"p2":{"x":8,"y":0,"length":8},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"9","x":"975","y":"1482","zOrder":"29"},{"ID":"222","h":"117","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"594","x":"783","y":"1524","zOrder":"169"},{"ID":"223","measuredH":"25","measuredW":"336","properties":{"bold":"true","size":"17","text":"Write Tests for the practical steps above"},"typeID":"Label","x":"832","y":"1545","zOrder":"170"},{"ID":"224","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"798","y":"1545","zOrder":"171"},{"ID":"225","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"7"},"typeID":"Label","x":"806","y":"1547","zOrder":"172"},{"ID":"226","measuredH":"25","measuredW":"501","properties":{"size":"17","text":"Go ahead and write the unit tests for the practical tasks that you"},"typeID":"Label","x":"832","y":"1572","zOrder":"173"},{"ID":"227","measuredH":"25","measuredW":"252","properties":{"size":"17","text":"implemented in the steps before."},"typeID":"Label","x":"832","y":"1598","zOrder":"174"},{"ID":"239","measuredH":"25","measuredW":"191","properties":{"size":"17","text":"driven by community etc."},"typeID":"Label","x":"203","y":"1099","zOrder":"175"},{"ID":"240","h":"50","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"575","x":"158","y":"1498","zOrder":"176"},{"ID":"241","measuredH":"25","measuredW":"286","properties":{"size":"17","text":"Learn how to calculate test coverage"},"typeID":"Label","x":"208","y":"1511","zOrder":"177"},{"ID":"242","measuredH":"24","measuredW":"24","properties":{"icon":{"ID":"lightbulb-o","size":"small"}},"typeID":"Icon","x":"173","y":"1511","zOrder":"178"},{"ID":"243","h":"49","measuredH":"83","measuredW":"8","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":98,"y":48},"p1":{"x":0.5140765687406935,"y":0.038590533977204765},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"99","x":"698","y":"1529","zOrder":"28"},{"ID":"244","h":"2","measuredH":"74","measuredW":"8","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":1},"p1":{"x":0.5210234034113447,"y":-0.007338357794525982},"p2":{"x":71,"y":0},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"72","x":"727","y":"1610","zOrder":"27"},{"ID":"245","h":"159","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"371","x":"366","y":"1570","zOrder":"179"},{"ID":"246","measuredH":"25","measuredW":"224","properties":{"bold":"true","size":"17","text":"Learn Relational Databases"},"typeID":"Label","w":"226","x":"411","y":"1584","zOrder":"180"},{"ID":"247","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"378","y":"1582","zOrder":"181"},{"ID":"248","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"8"},"typeID":"Label","w":"11","x":"386","y":"1584","zOrder":"182"},{"ID":"251","measuredH":"32","measuredW":"76","properties":{"align":"center","color":"16776960","size":"18","text":"MySQL"},"typeID":"TextInput","w":"121","x":"110","y":"1612","zOrder":"183"},{"ID":"252","measuredH":"32","measuredW":"83","properties":{"align":"center","color":"16776960","size":"18","text":"MariaDB"},"typeID":"TextInput","w":"119","x":"237","y":"1612","zOrder":"184"},{"ID":"253","measuredH":"32","measuredW":"114","properties":{"align":"center","color":"16776960","size":"18","text":"PostgreSQL"},"typeID":"TextInput","w":"246","x":"108","y":"1652","zOrder":"185"},{"ID":"254","measuredH":"32","measuredW":"67","properties":{"align":"center","color":"16770457","size":"18","text":"Oracle"},"typeID":"TextInput","w":"246","x":"109","y":"1570","zOrder":"186"},{"ID":"255","measuredH":"32","measuredW":"78","properties":{"align":"center","color":"16770457","size":"18","text":"MSSQL"},"typeID":"TextInput","w":"246","x":"108","y":"1695","zOrder":"187"},{"ID":"256","measuredH":"25","measuredW":"324","properties":{"size":"17","text":"There are several options here. However if"},"typeID":"Label","x":"382","y":"1613","zOrder":"188"},{"ID":"257","measuredH":"25","measuredW":"339","properties":{"size":"17","text":"if you learn one, others should be fairly easy."},"typeID":"Label","x":"382","y":"1637","zOrder":"189"},{"ID":"258","measuredH":"25","measuredW":"334","properties":{"size":"17","text":"Pick *MySQL* for now but learn how they are"},"typeID":"Label","x":"382","y":"1662","zOrder":"190"},{"ID":"259","measuredH":"25","measuredW":"209","properties":{"size":"17","text":"different and the usecases"},"typeID":"Label","x":"382","y":"1686","zOrder":"191"},{"ID":"260","h":"59","measuredH":"7","measuredW":"71","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":0,"y":0,"length":0},"p1":{"x":0.4275092936802974,"y":-0.19861922464152953,"length":0.47139557972071516},"p2":{"x":86,"y":58,"length":103.73041983911952},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"87","x":"716","y":"1682","zOrder":"26"},{"ID":"261","h":"190","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"603","x":"782","y":"1664","zOrder":"192"},{"ID":"262","measuredH":"25","measuredW":"118","properties":{"bold":"true","size":"17","text":"Practical Time"},"typeID":"Label","x":"829","y":"1681","zOrder":"193"},{"ID":"263","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"795","y":"1681","zOrder":"194"},{"ID":"264","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"9"},"typeID":"Label","x":"803","y":"1683","zOrder":"195"},{"ID":"265","measuredH":"25","measuredW":"533","properties":{"size":"17","text":"Create a simple application using everything that you have learnt this"},"typeID":"Label","x":"829","y":"1708","zOrder":"196"},{"ID":"266","measuredH":"25","measuredW":"495","properties":{"size":"17","text":"far. It should have registration, login and CRUD. Create a blog, for"},"typeID":"Label","x":"829","y":"1734","zOrder":"197"},{"ID":"267","measuredH":"25","measuredW":"506","properties":{"size":"17","text":"example. Where anyone can register and get a public profile page"},"typeID":"Label","x":"829","y":"1760","zOrder":"198"},{"ID":"268","measuredH":"25","measuredW":"524","properties":{"size":"17","text":"create, update and delete posts and public page will show the posts"},"typeID":"Label","x":"829","y":"1788","zOrder":"199"},{"ID":"269","measuredH":"25","measuredW":"129","properties":{"size":"17","text":"created by them."},"typeID":"Label","x":"829","y":"1813","zOrder":"200"},{"ID":"270","h":"108","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"585","x":"142","y":"1754","zOrder":"201"},{"ID":"271","measuredH":"25","measuredW":"505","properties":{"size":"17","text":"Make sure to write tests, follow the standards and best practices."},"typeID":"Label","x":"155","y":"1767","zOrder":"202"},{"ID":"273","h":"10","measuredH":"48","measuredW":"98","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":85,"y":9},"p1":{"x":0.5140765687406935,"y":0.03859053397720475},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"86","x":"715","y":"1801","zOrder":"25"},{"ID":"274","measuredH":"25","measuredW":"551","properties":{"size":"17","text":"Also for the database, add the indexes, use proper storage engines and"},"typeID":"Label","x":"155","y":"1793","zOrder":"203"},{"ID":"275","measuredH":"25","measuredW":"540","properties":{"size":"17","text":"make sure to analyze the queries before using them in the application."},"typeID":"Label","x":"155","y":"1820","zOrder":"204"},{"ID":"277","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16770457","textColor":"16776960"},"typeID":"TextArea","w":"205","x":"1135","y":"361","zOrder":"205"},{"ID":"278","measuredH":"25","measuredW":"174","properties":{"bold":"true","size":"17","text":"TypeScript (Optional)"},"typeID":"Label","w":"175","x":"1151","y":"370","zOrder":"206"},{"ID":"281","h":"56","measuredH":"58","measuredW":"86","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":68,"y":0},"p1":{"x":0.45855018587360596,"y":0.14888475836431225},"p2":{"x":0,"y":55},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"69","x":"721","y":"1842","zOrder":"24"},{"ID":"282","h":"66","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"116","y":"1878","zOrder":"207"},{"ID":"283","measuredH":"25","measuredW":"154","properties":{"bold":"true","size":"17","text":"Learn a Framework"},"typeID":"Label","x":"165","y":"1899","zOrder":"208"},{"ID":"284","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"131","y":"1899","zOrder":"209"},{"ID":"285","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"10"},"typeID":"Label","x":"136","y":"1901","zOrder":"210"},{"ID":"288","h":"6","measuredH":"9","measuredW":"85","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":86,"y":0},"p1":{"x":0.5140765687406935,"y":0.03859053397720476},"p2":{"x":0,"y":4},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"87","x":"717","y":"1922","zOrder":"23"},{"ID":"289","h":"220","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"594","x":"791","y":"1871","zOrder":"211"},{"ID":"290","measuredH":"25","measuredW":"547","properties":{"size":"17","text":"Depending upon the project and the language you picked, you might or"},"typeID":"Label","x":"804","y":"1884","zOrder":"212"},{"ID":"293","measuredH":"25","measuredW":"491","properties":{"size":"17","text":"might not need a framework. There are several different options"},"typeID":"Label","x":"804","y":"1912","zOrder":"213"},{"ID":"294","measuredH":"25","measuredW":"558","properties":{"size":"17","text":"*For PHP* – &*{color:blue}Laravel{color}*& or &*{color:blue}Symfony{color}*& and Slim or Lumen for micro-frameworks"},"typeID":"Label","x":"804","y":"1952","zOrder":"214"},{"ID":"295","measuredH":"25","measuredW":"258","properties":{"size":"17","text":"*For Node.js* – &*{color:blue}Express.js{color}*&, Hapi.js"},"typeID":"Label","x":"804","y":"1980","zOrder":"215"},{"ID":"296","measuredH":"25","measuredW":"377","properties":{"size":"17","text":"*For Golang* – I prefer to code without framework"},"typeID":"Label","x":"804","y":"2009","zOrder":"216"},{"ID":"297","measuredH":"25","measuredW":"560","properties":{"size":"17","text":"For others, search and find the suitable ones for the language you picked"},"typeID":"Label","x":"804","y":"2048","zOrder":"217"},{"ID":"298","h":"80","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"637","x":"116","y":"1953","zOrder":"218"},{"ID":"299","measuredH":"25","measuredW":"114","properties":{"bold":"true","size":"17","text":"Practical time"},"typeID":"Label","x":"162","y":"1966","zOrder":"219"},{"ID":"300","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"129","y":"1965","zOrder":"220"},{"ID":"301","measuredH":"21","measuredW":"11","properties":{"bold":"true","color":"16777215","text":"11"},"typeID":"Label","x":"135","y":"1967","zOrder":"221"},{"ID":"302","measuredH":"25","measuredW":"576","properties":{"size":"17","text":"Make the same application you made in to the framework of your choice"},"typeID":"Label","x":"161","y":"1994","zOrder":"222"},{"ID":"303","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"467","y":"1994","zOrder":"223"},{"ID":"304","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"9"},"typeID":"Label","x":"475","y":"1996","zOrder":"224"},{"ID":"308","h":"179","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"116","y":"2040","zOrder":"225"},{"ID":"309","measuredH":"25","measuredW":"207","properties":{"bold":"true","size":"17","text":"Learn a NoSQL Database"},"typeID":"Label","x":"165","y":"2058","zOrder":"226"},{"ID":"310","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"131","y":"2058","zOrder":"227"},{"ID":"311","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"12"},"typeID":"Label","x":"136","y":"2060","zOrder":"228"},{"ID":"312","measuredH":"25","measuredW":"573","properties":{"size":"17","text":"Have a look at different options and see how they differ. If you have to pick"},"typeID":"Label","w":"574","x":"166","y":"2144","zOrder":"229"},{"ID":"313","measuredH":"25","measuredW":"149","properties":{"size":"17","text":"one, pick *MongoDB*"},"typeID":"Label","w":"574","x":"166","y":"2170","zOrder":"230"},{"ID":"314","measuredH":"25","measuredW":"527","properties":{"size":"17","text":"First understand what they are, how they are different from relational"},"typeID":"Label","w":"574","x":"166","y":"2091","zOrder":"231"},{"ID":"315","measuredH":"25","measuredW":"555","properties":{"size":"17","text":"databases and why they are needed. There are several different options"},"typeID":"Label","w":"574","x":"165","y":"2117","zOrder":"232"},{"ID":"316","h":"13","measuredH":"29","measuredW":"127","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":214,"y":8},"p1":{"x":0.5140765687406936,"y":0.03859053397720475},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"215","x":"683","y":"2151","zOrder":"21"},{"ID":"317","measuredH":"32","measuredW":"104","properties":{"align":"center","color":"16777215","size":"18","text":"Cassandra"},"typeID":"TextInput","w":"185","x":"1023","y":"2164","zOrder":"233"},{"ID":"318","measuredH":"32","measuredW":"92","properties":{"align":"center","color":"16776960","size":"18","text":"MongoDB"},"typeID":"TextInput","w":"185","x":"1023","y":"2123","zOrder":"234"},{"ID":"319","measuredH":"32","measuredW":"99","properties":{"align":"center","color":"16777215","size":"18","text":"RethinkDB"},"typeID":"TextInput","w":"157","x":"1215","y":"2123","zOrder":"235"},{"ID":"320","measuredH":"32","measuredW":"106","properties":{"align":"center","color":"16777215","size":"18","text":"Couchbase"},"typeID":"TextInput","w":"157","x":"1215","y":"2163","zOrder":"236"},{"ID":"322","h":"101","measuredH":"70","measuredW":"100","properties":{"color":"16777215"},"typeID":"Canvas","w":"591","x":"793","y":"2109","zOrder":"22"},{"ID":"323","h":"86","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"750","y":"2246","zOrder":"237"},{"ID":"324","measuredH":"25","measuredW":"65","properties":{"bold":"true","size":"17","text":"Caching"},"typeID":"Label","w":"101","x":"799","y":"2263","zOrder":"238"},{"ID":"325","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"765","y":"2263","zOrder":"239"},{"ID":"326","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"13"},"typeID":"Label","x":"770","y":"2265","zOrder":"240"},{"ID":"329","measuredH":"25","measuredW":"539","properties":{"size":"17","text":"Learn how to implement app level caching using Redis or Memcached"},"typeID":"Label","w":"574","x":"800","y":"2290","zOrder":"241"},{"ID":"331","measuredH":"32","measuredW":"113","properties":{"align":"center","color":"16776960","size":"18","text":"Memcached"},"typeID":"TextInput","w":"183","x":"472","y":"2255","zOrder":"242"},{"ID":"332","measuredH":"32","measuredW":"61","properties":{"align":"center","color":"16776960","size":"18","text":"Redis"},"typeID":"TextInput","w":"183","x":"472","y":"2291","zOrder":"243"},{"ID":"334","h":"103","measuredH":"55","measuredW":"68","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":106,"y":102},"p1":{"x":0.38414149443561213,"y":-0.11426868044515104},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"107","x":"692","y":"2155","zOrder":"20"},{"ID":"335","measuredH":"25","measuredW":"185","properties":{"size":"17","text":"Learn MongoDB for now"},"typeID":"Label","w":"193","x":"809","y":"2120","zOrder":"244"},{"ID":"336","measuredH":"25","measuredW":"201","properties":{"size":"17","text":"but make sure to look how"},"typeID":"Label","w":"200","x":"809","y":"2144","zOrder":"245"},{"ID":"337","measuredH":"25","measuredW":"181","properties":{"size":"17","text":"it compares with others"},"typeID":"Label","w":"190","x":"812","y":"2169","zOrder":"246"},{"ID":"338","h":"14","measuredH":"6","measuredW":"143","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":142,"y":13},"p1":{"x":0.535877637338317,"y":-0.007278807849309005},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"143","x":"622","y":"2273","zOrder":"17"},{"ID":"339","measuredH":"25","measuredW":"254","properties":{"size":"17","text":"Once you have learnt, implement"},"typeID":"Label","w":"258","x":"148","y":"2253","zOrder":"253"},{"ID":"340","measuredH":"25","measuredW":"234","properties":{"size":"17","text":"caching strategy in application"},"typeID":"Label","w":"258","x":"148","y":"2277","zOrder":"254"},{"ID":"341","measuredH":"25","measuredW":"140","properties":{"size":"17","text":"you built in step 11"},"typeID":"Label","w":"258","x":"147","y":"2303","zOrder":"255"},{"ID":"342","h":"142","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"116","y":"2605","zOrder":"247"},{"ID":"343","measuredH":"25","measuredW":"139","properties":{"bold":"true","size":"17","text":"Message Brokers"},"typeID":"Label","w":"155","x":"165","y":"2622","zOrder":"248"},{"ID":"344","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"131","y":"2622","zOrder":"249"},{"ID":"345","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"16"},"typeID":"Label","w":"14","x":"136","y":"2624","zOrder":"250"},{"ID":"346","measuredH":"25","measuredW":"542","properties":{"size":"17","text":"Learn about the message brokers, understand the \"Why\" and pick one."},"typeID":"Label","w":"574","x":"166","y":"2651","zOrder":"251"},{"ID":"347","h":"95","measuredH":"94","measuredW":"73","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":94},"p1":{"x":0.4552770914225203,"y":-0.18898693963995766},"p2":{"x":73,"y":0},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"74","x":"739","y":"2544","zOrder":"19"},{"ID":"348","h":"12","measuredH":"23","measuredW":"192","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":162,"y":0},"p1":{"x":0.4910385289593246,"y":0.0004292920259006189},"p2":{"x":0,"y":11},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"163","x":"613","y":"2295","zOrder":"18"},{"ID":"349","h":"109","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"299","x":"131","y":"2237","zOrder":"252"},{"ID":"350","h":"45","measuredH":"11","measuredW":"162","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":373,"y":10},"p1":{"x":0.5494401310071896,"y":0.10588311343182814},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"374","x":"387","y":"2302","zOrder":"16"},{"ID":"351","measuredH":"25","measuredW":"554","properties":{"size":"17","text":"There are multiple options but I would go for *RabbitMQ* or *Kafka*. Learn"},"typeID":"Label","w":"574","x":"165","y":"2679","zOrder":"256"},{"ID":"353","measuredH":"32","measuredW":"95","properties":{"align":"center","color":"16776960","size":"18","text":"RabbitMQ"},"typeID":"TextInput","w":"183","x":"886","y":"2646","zOrder":"257"},{"ID":"354","measuredH":"32","measuredW":"63","properties":{"align":"center","color":"16770457","size":"18","text":"Kafka"},"typeID":"TextInput","w":"183","x":"886","y":"2682","zOrder":"258"},{"ID":"355","h":"19","measuredH":"14","measuredW":"178","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":168,"y":0,"length":168},"p1":{"x":0.4228667507356032,"y":0.0023118957545187053,"length":0.42287307048293643},"p2":{"x":0,"y":18,"length":18},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"169","x":"728","y":"2665","zOrder":"15"},{"ID":"356","measuredH":"25","measuredW":"409","properties":{"size":"17","text":"how to use RabbitMQ for now, if you want to pick one."},"typeID":"Label","w":"574","x":"166","y":"2707","zOrder":"259"},{"ID":"357","h":"5","measuredH":"12","measuredW":"173","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":157,"y":4,"length":157.05094714773293},"p1":{"x":0.47363590855998666,"y":-0.003754380110128481,"length":0.4736507882897012},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"158","x":"748","y":"2694","zOrder":"14"},{"ID":"358","h":"143","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"116","y":"2755","zOrder":"260"},{"ID":"359","measuredH":"25","measuredW":"183","properties":{"bold":"true","size":"17","text":"Learn a Search Engine"},"typeID":"Label","w":"280","x":"164","y":"2772","zOrder":"261"},{"ID":"360","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"131","y":"2772","zOrder":"262"},{"ID":"361","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"17"},"typeID":"Label","x":"136","y":"2774","zOrder":"263"},{"ID":"363","measuredH":"32","measuredW":"127","properties":{"align":"center","color":"16776960","size":"18","text":"ElasticSearch"},"typeID":"TextInput","w":"183","x":"886","y":"2771","zOrder":"264"},{"ID":"364","measuredH":"32","measuredW":"47","properties":{"align":"center","color":"16776960","size":"18","text":"Solr"},"typeID":"TextInput","w":"183","x":"886","y":"2807","zOrder":"265"},{"ID":"365","measuredH":"32","measuredW":"69","properties":{"align":"center","color":"16770457","size":"18","text":"Sphinx"},"typeID":"TextInput","w":"183","x":"888","y":"2843","zOrder":"266"},{"ID":"370","h":"29","measuredH":"19","measuredW":"154","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":148,"y":0,"length":148},"p1":{"x":0.4575163398692811,"y":-0.003267973856209201,"length":0.4575280110556166},"p2":{"x":0,"y":28,"length":28},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"149","x":"744","y":"2789","zOrder":"13"},{"ID":"371","h":"10","measuredH":"36","measuredW":"144","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":161,"y":0,"length":161},"p1":{"x":0.4575163398692811,"y":-0.003267973856209141,"length":0.4575280110556166},"p2":{"x":0,"y":9,"length":9},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"162","x":"747","y":"2823","zOrder":"12"},{"ID":"372","h":"16","measuredH":"16","measuredW":"160","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":161,"y":15,"length":161.69724796668618},"p1":{"x":0.457516339869281,"y":-0.0032679738562091465,"length":0.45752801105561647},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"162","x":"747","y":"2844","zOrder":"11"},{"ID":"373","measuredH":"25","measuredW":"564","properties":{"size":"17","text":"As the application grows, simple queries on your database aren't going to"},"typeID":"Label","w":"574","x":"165","y":"2802","zOrder":"267"},{"ID":"374","measuredH":"25","measuredW":"570","properties":{"size":"17","text":"cut it out and you will have to resort to a search engine. There are multiple"},"typeID":"Label","w":"574","x":"165","y":"2827","zOrder":"268"},{"ID":"375","measuredH":"25","measuredW":"313","properties":{"size":"17","text":"options, each having it's own differences."},"typeID":"Label","w":"574","x":"165","y":"2854","zOrder":"269"},{"ID":"376","h":"113","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"753","y":"2340","zOrder":"270"},{"ID":"377","measuredH":"25","measuredW":"184","properties":{"bold":"true","size":"17","text":"Creating RESTful APIs"},"typeID":"Label","w":"203","x":"802","y":"2357","zOrder":"271"},{"ID":"378","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"768","y":"2357","zOrder":"272"},{"ID":"379","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"14"},"typeID":"Label","x":"773","y":"2359","zOrder":"273"},{"ID":"380","measuredH":"25","measuredW":"571","properties":{"size":"17","text":"Understand REST and learn how to make RESTful APIs and make sure to"},"typeID":"Label","w":"574","x":"803","y":"2386","zOrder":"274"},{"ID":"381","measuredH":"25","measuredW":"503","properties":{"size":"17","text":"read the part about REST from the original paper of *Roy Fielding*"},"typeID":"Label","w":"574","x":"803","y":"2410","zOrder":"275"},{"ID":"382","h":"87","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"754","y":"2460","zOrder":"276"},{"ID":"383","measuredH":"25","measuredW":"354","properties":{"bold":"true","size":"17","text":"Authentication/Authorization Methodologies"},"typeID":"Label","w":"377","x":"805","y":"2477","zOrder":"277"},{"ID":"384","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"771","y":"2477","zOrder":"278"},{"ID":"385","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"15"},"typeID":"Label","x":"776","y":"2479","zOrder":"279"},{"ID":"386","measuredH":"25","measuredW":"431","properties":{"size":"17","text":"Learn about the differences and how to implement them"},"typeID":"Label","w":"495","x":"804","y":"2508","zOrder":"280"},{"ID":"389","measuredH":"32","measuredW":"63","properties":{"align":"center","color":"16776960","size":"18","text":"OAuth"},"typeID":"TextInput","w":"210","x":"386","y":"2400","zOrder":"281"},{"ID":"390","measuredH":"32","measuredW":"180","properties":{"align":"center","color":"16776960","size":"18","text":"Basic Authentication"},"typeID":"TextInput","w":"210","x":"386","y":"2436","zOrder":"282"},{"ID":"391","measuredH":"32","measuredW":"183","properties":{"align":"center","color":"16776960","size":"18","text":"Token Authentication"},"typeID":"TextInput","w":"210","x":"386","y":"2472","zOrder":"283"},{"ID":"392","measuredH":"32","measuredW":"55","properties":{"align":"center","color":"16776960","size":"18","text":"JWT"},"typeID":"TextInput","w":"210","x":"386","y":"2508","zOrder":"284"},{"ID":"393","measuredH":"32","measuredW":"77","properties":{"align":"center","color":"16776960","size":"18","text":"OpenID"},"typeID":"TextInput","w":"210","x":"387","y":"2545","zOrder":"285"},{"ID":"394","h":"72","measuredH":"18","measuredW":"168","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":183,"y":71,"length":196.29060089571277},"p1":{"x":0.42286675073560326,"y":0.002311895754518694,"length":0.4228730704829365},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"184","x":"591","y":"2417","zOrder":"10"},{"ID":"395","h":"46","measuredH":"45","measuredW":"199","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":199,"y":45,"length":204.0245083317198},"p1":{"x":0.42286675073560326,"y":0.0023118957545186824,"length":0.4228730704829365},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"200","x":"585","y":"2453","zOrder":"9"},{"ID":"396","h":"13","measuredH":"45","measuredW":"199","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":208,"y":12,"length":208.34586628968668},"p1":{"x":0.4228667507356033,"y":0.002311895754518708,"length":0.42287307048293654},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"209","x":"565","y":"2491","zOrder":"6"},{"ID":"397","h":"13","measuredH":"11","measuredW":"188","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":206,"y":0,"length":206},"p1":{"x":0.4228667507356031,"y":0.002311895754518704,"length":0.4228730704829363},"p2":{"x":0,"y":12,"length":12},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"207","x":"577","y":"2513","zOrder":"7"},{"ID":"398","h":"49","measuredH":"48","measuredW":"207","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":207,"y":0,"length":207},"p1":{"x":0.422866750735603,"y":0.0023118957545186923,"length":0.4228730704829362},"p2":{"x":0,"y":48,"length":48},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"208","x":"581","y":"2515","zOrder":"8"},{"ID":"400","h":"60","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"738","y":"2914","zOrder":"286"},{"ID":"401","measuredH":"25","measuredW":"207","properties":{"bold":"true","size":"17","text":"Learn How to Use Docker"},"typeID":"Label","w":"280","x":"788","y":"2930","zOrder":"287"},{"ID":"402","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"755","y":"2929","zOrder":"288"},{"ID":"403","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"18"},"typeID":"Label","w":"14","x":"760","y":"2931","zOrder":"289"},{"ID":"408","h":"112","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"738","y":"3170","zOrder":"290"},{"ID":"409","measuredH":"25","measuredW":"124","properties":{"bold":"true","size":"17","text":"Learn GraphQL"},"typeID":"Label","w":"153","x":"788","y":"3185","zOrder":"291"},{"ID":"410","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"755","y":"3184","zOrder":"292"},{"ID":"411","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"21"},"typeID":"Label","w":"14","x":"760","y":"3186","zOrder":"293"},{"ID":"412","measuredH":"25","measuredW":"556","properties":{"size":"17","text":"While it is not required, feel free to have a look at it and see what it is all"},"typeID":"Label","w":"574","x":"789","y":"3213","zOrder":"294"},{"ID":"413","measuredH":"25","measuredW":"367","properties":{"size":"17","text":"about and why they are calling it the new REST"},"typeID":"Label","w":"574","x":"789","y":"3240","zOrder":"295"},{"ID":"414","h":"114","measuredH":"140","measuredW":"200","properties":{"color":"16776960","text":""},"typeID":"TextArea","w":"638","x":"738","y":"2981","zOrder":"296"},{"ID":"415","measuredH":"25","measuredW":"219","properties":{"bold":"true","size":"17","text":"Knowledge of Web Servers"},"typeID":"Label","w":"280","x":"789","y":"2998","zOrder":"297"},{"ID":"416","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"755","y":"2996","zOrder":"298"},{"ID":"417","measuredH":"21","measuredW":"13","properties":{"bold":"true","color":"16777215","text":"19"},"typeID":"Label","w":"14","x":"760","y":"2998","zOrder":"299"},{"ID":"418","measuredH":"25","measuredW":"526","properties":{"size":"17","text":"There are several different options here, look at the different options,"},"typeID":"Label","w":"566","x":"789","y":"3026","zOrder":"300"},{"ID":"419","measuredH":"25","measuredW":"336","properties":{"size":"17","text":"understand their differences and limitations"},"typeID":"Label","w":"566","x":"790","y":"3053","zOrder":"301"},{"ID":"420","h":"91","measuredH":"94","measuredW":"73","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":1,"y":0,"length":1},"p1":{"x":0.47054747054747054,"y":-0.24636174636174635,"length":0.5311393716427282},"p2":{"x":97,"y":90,"length":132.32157798333574},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"98","x":"659","y":"2855","zOrder":"5"},{"ID":"421","measuredH":"32","measuredW":"76","properties":{"align":"center","color":"16776960","size":"18","text":"Apache"},"typeID":"TextInput","w":"183","x":"403","y":"2971","zOrder":"302"},{"ID":"422","measuredH":"32","measuredW":"60","properties":{"align":"center","color":"16776960","size":"18","text":"Nginx"},"typeID":"TextInput","w":"183","x":"403","y":"3007","zOrder":"303"},{"ID":"423","measuredH":"32","measuredW":"67","properties":{"align":"center","color":"16770457","size":"18","text":"Caddy"},"typeID":"TextInput","w":"183","x":"405","y":"3043","zOrder":"304"},{"ID":"424","h":"32","measuredH":"28","measuredW":"148","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":212,"y":31,"length":214.2545215392198},"p1":{"x":0.4575163398692812,"y":-0.003267973856209213,"length":0.4575280110556167},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"213","x":"576","y":"2992","zOrder":"4"},{"ID":"425","h":"8","measuredH":"31","measuredW":"212","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":229,"y":7,"length":229.10696191953662},"p1":{"x":0.4575163398692811,"y":-0.0032679738562092003,"length":0.4575280110556166},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"230","x":"569","y":"3026","zOrder":"3"},{"ID":"426","h":"18","measuredH":"7","measuredW":"229","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":199,"y":0,"length":199},"p1":{"x":0.4575163398692811,"y":-0.003267973856209203,"length":0.4575280110556166},"p2":{"x":0,"y":17,"length":17},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"200","x":"577","y":"3042","zOrder":"2"},{"ID":"427","measuredH":"32","measuredW":"70","properties":{"align":"center","color":"16770457","size":"18","text":"MS IIS"},"typeID":"TextInput","w":"183","x":"405","y":"3080","zOrder":"305"},{"ID":"428","h":"43","measuredH":"17","measuredW":"199","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":187,"y":0},"p1":{"x":0.45751633986928103,"y":-0.003267973856209196},"p2":{"x":0,"y":42},"rightArrow":"false","shape":"bezier","stroke":"dotted","text":""},"typeID":"Arrow","w":"188","x":"577","y":"3054","zOrder":"1"},{"ID":"429","h":"60","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"739","y":"3102","zOrder":"306"},{"ID":"430","measuredH":"25","measuredW":"250","properties":{"bold":"true","size":"17","text":"Learn how to use Web Sockets"},"typeID":"Label","w":"282","x":"787","y":"3119","zOrder":"307"},{"ID":"431","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"754","y":"3118","zOrder":"308"},{"ID":"432","measuredH":"21","measuredW":"17","properties":{"bold":"true","color":"16777215","text":"20"},"typeID":"Label","w":"21","x":"758","y":"3120","zOrder":"309"},{"ID":"436","h":"112","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"638","x":"216","y":"3313","zOrder":"310"},{"ID":"437","measuredH":"25","measuredW":"219","properties":{"bold":"true","size":"17","text":"Look into Graph Databases"},"typeID":"Label","w":"231","x":"266","y":"3328","zOrder":"311"},{"ID":"438","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"233","y":"3327","zOrder":"312"},{"ID":"439","measuredH":"21","measuredW":"17","properties":{"bold":"true","color":"16777215","text":"22"},"typeID":"Label","w":"29","x":"237","y":"3329","zOrder":"313"},{"ID":"440","measuredH":"25","measuredW":"529","properties":{"size":"17","text":"Again not required but you should have a little understanding of what"},"typeID":"Label","w":"574","x":"267","y":"3356","zOrder":"314"},{"ID":"441","measuredH":"25","measuredW":"136","properties":{"size":"17","text":"they have to offer"},"typeID":"Label","w":"574","x":"267","y":"3383","zOrder":"315"},{"ID":"442","h":"109","measuredH":"94","measuredW":"73","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":108},"p1":{"x":0.4770542904147545,"y":0.2455190925621266},"p2":{"x":124,"y":1},"rightArrow":"false","shape":"bezier","stroke":"solid","text":""},"typeID":"Arrow","w":"125","x":"629","y":"3227","zOrder":"0"},{"ID":"443","h":"147","measuredH":"146","measuredW":"14","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":14,"y":0,"length":14},"p1":{"x":0.5864611260053622,"y":0.008042895442359291,"length":0.5865162746954035},"p2":{"x":0,"y":146,"length":146},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"15","x":"537","y":"3448","zOrder":"316"},{"ID":"444","measuredH":"32","measuredW":"170","properties":{"bold":"true","size":"24","text":"Keep Exploring"},"typeID":"Label","x":"449","y":"3618","zOrder":"317"},{"ID":"445","h":"87","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"637","x":"216","y":"3436","zOrder":"318"},{"ID":"446","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"230","y":"3450","zOrder":"319"},{"ID":"447","measuredH":"22","measuredW":"18","properties":{"bold":"true","color":"16777215","size":"14","text":"23"},"typeID":"Label","w":"16","x":"234","y":"3452","zOrder":"320"},{"ID":"448","measuredH":"26","measuredW":"371","properties":{"bold":"true","size":"18","text":"All the things that weren't mentioned above"},"typeID":"Label","w":"391","x":"261","y":"3449","zOrder":"321"},{"ID":"449","measuredH":"25","measuredW":"367","properties":{"size":"17","text":"Profiling, Static Analysis, DDD, SOAP. Go Figure!"},"typeID":"Label","x":"262","y":"3476","zOrder":"322"}]},"measuredH":"3650","measuredW":"1392","mockupH":"3610","mockupW":"1284","version":"1.0"}} -------------------------------------------------------------------------------- /project/devops-map.json: -------------------------------------------------------------------------------- 1 | {"mockup":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","measuredW":"118","measuredH":"40","x":"690","y":"125","properties":{"bold":"true","size":"32","text":"DevOps"}},{"ID":"1","typeID":"Arrow","zOrder":"1","w":"13","h":"105","measuredW":"150","measuredH":"100","x":"750","y":"16","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":2,"y":0},"p1":{"x":0.46601941747572806,"y":0.10679611650485436},"p2":{"x":0,"y":104},"rightArrow":"false","shape":"bezier","stroke":"dotted"}},{"ID":"2","typeID":"Arrow","zOrder":"2","w":"34","h":"150","measuredW":"150","measuredH":"100","x":"716","y":"176","properties":{"color":"2848996","direction":"top","leftArrow":"false","p0":{"x":33,"y":0},"p1":{"x":0.42510672233428715,"y":0.06558146080592951},"p2":{"x":0,"y":150},"rightArrow":"false","shape":"bezier"}},{"ID":"3","typeID":"Arrow","zOrder":"3","w":"58","h":"475","measuredW":"150","measuredH":"100","x":"715","y":"336","properties":{"color":"2848996","direction":"top","leftArrow":"false","p0":{"x":1,"y":0},"p1":{"x":0.5501641704563411,"y":-0.03968184292311207},"p2":{"x":57,"y":474},"rightArrow":"false","shape":"bezier"}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"48","measuredH":"48","x":"691","y":"312","properties":{"color":"2848996","icon":{"ID":"circle","size":"large"}}},{"ID":"5","typeID":"Arrow","zOrder":"5","w":"158","h":"44","measuredW":"150","measuredH":"100","x":"558","y":"299","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.4809722749715154,"y":-0.1100645651348272},"p2":{"x":157,"y":41},"rightArrow":"false","shape":"bezier"}},{"ID":"6","typeID":"TextInput","zOrder":"6","w":"123","measuredW":"51","measuredH":"32","x":"427","y":"163","properties":{"align":"center","color":"16770457","size":"18","text":"Unix"}},{"ID":"7","typeID":"TextInput","zOrder":"7","w":"106","measuredW":"58","measuredH":"32","x":"305","y":"164","properties":{"align":"center","color":"16776960","size":"18","text":"Linux"}},{"ID":"8","typeID":"Arrow","zOrder":"8","w":"33","h":"68","measuredW":"150","measuredH":"100","x":"433","y":"204","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":1.954271377244222,"y":0},"p1":{"x":0.4570883894856473,"y":-0.16801701066832872},"p2":{"x":33.013056298339436,"y":68},"rightArrow":"false","shape":"bezier"}},{"ID":"9","typeID":"TextInput","zOrder":"9","w":"168","measuredW":"162","measuredH":"32","x":"468","y":"264","properties":{"align":"center","color":"16776960","size":"18","text":"Operating System"}},{"ID":"10","typeID":"Arrow","zOrder":"10","w":"85","h":"77","measuredW":"150","measuredH":"100","x":"383","y":"204","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.4570883894856472,"y":-0.16801701066832855},"p2":{"x":85,"y":77},"rightArrow":"false","shape":"bezier"}},{"ID":"11","typeID":"Arrow","zOrder":"11","w":"178","h":"68","measuredW":"150","measuredH":"100","x":"719","y":"269","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":177,"y":36},"p1":{"x":0.4168473211520594,"y":-0.2650975534221121},"p2":{"x":0,"y":67},"rightArrow":"false","shape":"bezier"}},{"ID":"12","typeID":"TextInput","zOrder":"12","w":"168","measuredW":"61","measuredH":"32","x":"862","y":"309","properties":{"align":"center","color":"16776960","size":"18","text":"Cloud"}},{"ID":"13","typeID":"Arrow","zOrder":"13","w":"83","h":"50","measuredW":"150","measuredH":"100","x":"971","y":"340","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":82,"y":44},"p1":{"x":0.5978750804893754,"y":0.32034771410173857},"p2":{"x":1,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"14","typeID":"TextInput","zOrder":"14","w":"182","measuredW":"105","measuredH":"32","x":"1055","y":"368","properties":{"align":"center","color":"15658734","size":"18","text":"Rackspace"}},{"ID":"15","typeID":"Arrow","zOrder":"15","w":"99","h":"88","measuredW":"150","measuredH":"100","x":"954","y":"343","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":98,"y":80},"p1":{"x":0.4653531598513011,"y":0.3410408921933086},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"16","typeID":"TextInput","zOrder":"16","w":"182","measuredW":"52","measuredH":"32","x":"1055","y":"407","properties":{"align":"center","color":"16776960","size":"18","text":"AWS"}},{"ID":"17","typeID":"Arrow","zOrder":"17","w":"124","h":"120","measuredW":"150","measuredH":"100","x":"928","y":"342","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":123,"y":117},"p1":{"x":0.4960627165505897,"y":0.3117978511181885},"p2":{"x":1,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"18","typeID":"TextInput","zOrder":"18","w":"182","measuredW":"72","measuredH":"32","x":"1055","y":"444","properties":{"align":"center","color":"15658734","size":"18","text":"Heroku"}},{"ID":"19","typeID":"TextInput","zOrder":"19","w":"184","measuredW":"62","measuredH":"32","x":"1053","y":"482","properties":{"align":"center","color":"15658734","size":"18","text":"Azure"}},{"ID":"20","typeID":"Arrow","zOrder":"20","w":"147","h":"156","measuredW":"150","measuredH":"100","x":"903","y":"342","locked":"true","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":146,"y":155},"p1":{"x":0.4960627165505897,"y":0.3117978511181885},"p2":{"x":4,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"21","typeID":"TextInput","zOrder":"21","w":"182","measuredW":"167","measuredH":"29","x":"1054","y":"519","properties":{"align":"center","color":"15658734","size":"15","text":"Google Cloud Platform"}},{"ID":"22","typeID":"Arrow","zOrder":"22","w":"166","h":"193","measuredW":"150","measuredH":"100","x":"884","y":"343","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":165,"y":192},"p1":{"x":0.4960627165505896,"y":0.3117978511181884},"p2":{"x":7,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"23","typeID":"TextInput","zOrder":"23","w":"168","measuredW":"105","measuredH":"32","x":"421","y":"423","properties":{"align":"center","color":"16776960","size":"18","text":"Automation"}},{"ID":"24","typeID":"Arrow","zOrder":"24","w":"123","h":"103","measuredW":"150","measuredH":"100","x":"592","y":"336","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":102},"p1":{"x":0.36800437796424645,"y":-0.11087194454578624},"p2":{"x":122,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"25","typeID":"TextInput","zOrder":"25","w":"116","measuredW":"53","measuredH":"32","x":"239","y":"514","properties":{"align":"center","color":"15658734","size":"18","text":"Chef"}},{"ID":"26","typeID":"TextInput","zOrder":"26","w":"116","measuredW":"73","measuredH":"32","x":"361","y":"514","properties":{"align":"center","color":"16770457","size":"18","text":"Ansible"}},{"ID":"27","typeID":"TextInput","zOrder":"27","w":"101","measuredW":"71","measuredH":"32","x":"483","y":"514","properties":{"align":"center","color":"16770457","size":"18","text":"Puppet"}},{"ID":"28","typeID":"Arrow","zOrder":"28","w":"128","h":"66","measuredW":"150","measuredH":"100","x":"292","y":"444","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":65},"p1":{"x":0.4645604016027265,"y":0.1022428959609447},"p2":{"x":127,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"29","typeID":"Arrow","zOrder":"29","w":"14","h":"58","measuredW":"150","measuredH":"100","x":"439","y":"458","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":57},"p1":{"x":0.526916325336454,"y":-0.0026331187829139848},"p2":{"x":13,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"30","typeID":"Arrow","zOrder":"30","w":"2","h":"60","measuredW":"150","measuredH":"100","x":"518","y":"455","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":1,"y":59},"p1":{"x":0.5083285468121769,"y":-0.00861573808156232},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"31","typeID":"TextInput","zOrder":"31","w":"168","measuredW":"76","measuredH":"32","x":"803","y":"586","properties":{"align":"center","color":"16776960","size":"18","text":"CI / CD"}},{"ID":"32","typeID":"Arrow","zOrder":"32","w":"121","h":"237","measuredW":"150","measuredH":"100","x":"724","y":"346","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":120,"y":236},"p1":{"x":0.3964277562200411,"y":-0.0786920794339192},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","text":""}},{"ID":"33","typeID":"Arrow","zOrder":"33","w":"90","h":"20","measuredW":"150","measuredH":"100","x":"939","y":"620","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":89,"y":16},"p1":{"x":0.670906200317965,"y":0.14308426073131955},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"34","typeID":"TextInput","zOrder":"34","w":"182","measuredW":"77","measuredH":"32","x":"1032","y":"618","properties":{"align":"center","color":"16770457","size":"18","text":"Jenkins"}},{"ID":"35","typeID":"TextInput","zOrder":"35","w":"184","measuredW":"63","measuredH":"32","x":"1030","y":"656","properties":{"align":"center","color":"16770457","size":"18","text":"Travis"}},{"ID":"36","typeID":"TextInput","zOrder":"36","w":"182","measuredW":"78","measuredH":"32","x":"1031","y":"693","properties":{"align":"center","color":"16770457","size":"18","text":"CircleCI"}},{"ID":"37","typeID":"Arrow","zOrder":"37","w":"125","h":"54","measuredW":"150","measuredH":"100","x":"903","y":"618","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":124,"y":50},"p1":{"x":0.6424255985679123,"y":0.22678451555157753},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"38","typeID":"Arrow","zOrder":"38","w":"146","h":"92","measuredW":"150","measuredH":"100","x":"884","y":"619","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":145,"y":90},"p1":{"x":0.590366687383468,"y":0.2617775015537601},"p2":{"x":1,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"39","typeID":"TextInput","zOrder":"39","w":"182","measuredW":"62","measuredH":"32","x":"1032","y":"732","properties":{"align":"center","color":"15658734","size":"18","text":"Drone"}},{"ID":"40","typeID":"TextInput","zOrder":"40","w":"182","measuredW":"80","measuredH":"32","x":"1033","y":"769","properties":{"align":"center","color":"15658734","size":"18","text":"Bamboo"}},{"ID":"41","typeID":"Arrow","zOrder":"41","w":"168","h":"129","measuredW":"150","measuredH":"100","x":"861","y":"619","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":167,"y":128},"p1":{"x":0.590366687383468,"y":0.2617775015537601},"p2":{"x":2,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"42","typeID":"Arrow","zOrder":"42","w":"201","h":"165","measuredW":"150","measuredH":"100","x":"831","y":"619","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":200,"y":164},"p1":{"x":0.5903666873834679,"y":0.2617775015537602},"p2":{"x":3,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"43","typeID":"Icon","zOrder":"43","measuredW":"48","measuredH":"48","x":"749","y":"795","properties":{"color":"2848996","icon":{"ID":"circle","size":"large"}}},{"ID":"44","typeID":"Arrow","zOrder":"44","w":"179","h":"29","measuredW":"150","measuredH":"100","x":"590","y":"794","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.3805593199457928,"y":0.009301466058888753},"p2":{"x":178,"y":28},"rightArrow":"false","shape":"bezier"}},{"ID":"45","typeID":"TextInput","zOrder":"45","w":"230","measuredW":"204","measuredH":"32","x":"355","y":"775","properties":{"align":"center","color":"16776960","size":"18","text":"Monitoring and Alerting"}},{"ID":"46","typeID":"TextInput","zOrder":"46","w":"101","measuredW":"69","measuredH":"32","x":"154","y":"709","properties":{"align":"center","color":"16770457","size":"18","text":"Nagios"}},{"ID":"47","typeID":"TextInput","zOrder":"47","w":"101","measuredW":"98","measuredH":"32","x":"231","y":"576","properties":{"align":"center","color":"16770457","size":"18","text":"PagerDuty"}},{"ID":"48","typeID":"TextInput","zOrder":"48","w":"101","measuredW":"80","measuredH":"32","x":"460","y":"576","properties":{"align":"center","color":"15658734","size":"18","text":"Graphite"}},{"ID":"49","typeID":"TextInput","zOrder":"49","w":"115","measuredW":"111","measuredH":"32","x":"531","y":"638","properties":{"align":"center","color":"15658734","size":"18","text":"Prometheus"}},{"ID":"50","typeID":"TextInput","zOrder":"50","w":"141","measuredW":"127","measuredH":"32","x":"114","y":"759","properties":{"align":"center","color":"16770457","size":"18","text":"AppDynamics"}},{"ID":"51","typeID":"Arrow","zOrder":"51","w":"91","h":"22","measuredW":"150","measuredH":"100","x":"262","y":"776","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.47438524590163944,"y":0.03176229508196722},"p2":{"x":90,"y":21},"rightArrow":"false","shape":"bezier"}},{"ID":"52","typeID":"Arrow","zOrder":"52","w":"92","h":"43","measuredW":"150","measuredH":"100","x":"263","y":"740","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.49507591300779646,"y":0.04021337710299548},"p2":{"x":91,"y":42},"rightArrow":"false","shape":"bezier"}},{"ID":"53","typeID":"Arrow","zOrder":"53","w":"39","h":"163","measuredW":"150","measuredH":"100","x":"400","y":"610","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.5482477876106194,"y":-0.06428318584070783},"p2":{"x":38,"y":162},"rightArrow":"false","shape":"bezier"}},{"ID":"54","typeID":"Arrow","zOrder":"54","w":"30","h":"159","measuredW":"150","measuredH":"100","x":"502","y":"615","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":1,"y":0},"p1":{"x":0.5482477876106193,"y":-0.06428318584070793},"p2":{"x":29,"y":158},"rightArrow":"false","shape":"bezier"}},{"ID":"55","typeID":"Arrow","zOrder":"55","w":"8","h":"103","measuredW":"150","measuredH":"100","x":"563","y":"674","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":1,"y":0},"p1":{"x":0.5934629929767694,"y":-0.03484602917341978},"p2":{"x":7,"y":102},"rightArrow":"false","shape":"bezier"}},{"ID":"56","typeID":"Arrow","zOrder":"56","w":"166","h":"79","measuredW":"150","measuredH":"100","x":"778","y":"811","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":165,"y":78},"p1":{"x":0.49148815671119694,"y":-0.22077489422660493},"p2":{"x":0,"y":10},"rightArrow":"false","shape":"bezier"}},{"ID":"57","typeID":"TextInput","zOrder":"57","w":"116","measuredW":"93","measuredH":"32","x":"148","y":"449","properties":{"align":"center","color":"15658734","size":"18","text":"SaltStack"}},{"ID":"58","typeID":"Arrow","zOrder":"58","w":"146","h":"29","measuredW":"150","measuredH":"100","x":"276","y":"433","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":28.51103198528034},"p1":{"x":0.4009012805068381,"y":0.023332046153599177},"p2":{"x":146.33333333333331,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"59","typeID":"TextInput","zOrder":"59","w":"116","measuredW":"68","measuredH":"32","x":"185","y":"368","properties":{"align":"center","color":"15658734","size":"18","text":"Packer"}},{"ID":"60","typeID":"Arrow","zOrder":"60","w":"145","h":"68","measuredW":"150","measuredH":"100","x":"302","y":"346","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0.19283790167659495},"p1":{"x":0.4235225542717401,"y":0.09456679102949923},"p2":{"x":145.33333333333326,"y":68.37803669761603},"rightArrow":"false","shape":"bezier"}},{"ID":"61","typeID":"TextInput","zOrder":"61","w":"168","measuredW":"103","measuredH":"32","x":"919","y":"892","properties":{"align":"center","color":"16776960","size":"18","text":"Containers"}},{"ID":"62","typeID":"TextInput","zOrder":"62","w":"182","measuredW":"71","measuredH":"32","x":"1124","y":"822","properties":{"align":"center","color":"16776960","size":"18","text":"Docker"}},{"ID":"63","typeID":"Arrow","zOrder":"63","w":"104","h":"55","measuredW":"150","measuredH":"100","x":"1014","y":"836","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":103,"y":2},"p1":{"x":0.4799819725080749,"y":-0.16465109291669797},"p2":{"x":0,"y":54},"rightArrow":"false","shape":"bezier"}},{"ID":"64","typeID":"TextInput","zOrder":"64","w":"182","measuredW":"114","measuredH":"32","x":"1054","y":"555","properties":{"align":"center","color":"15658734","size":"18","text":"Digitalocean"}},{"ID":"65","typeID":"Arrow","zOrder":"65","w":"190","h":"229","measuredW":"150","measuredH":"100","x":"865","y":"343","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":189,"y":228},"p1":{"x":0.4815004659832246,"y":0.28685927306616965},"p2":{"x":5,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"66","typeID":"Arrow","zOrder":"66","w":"90","h":"842","measuredW":"150","measuredH":"100","x":"774","y":"821","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":36,"y":841},"p1":{"x":0.3964277562200411,"y":-0.07869207943391922},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier","text":""}},{"ID":"67","typeID":"Icon","zOrder":"67","measuredW":"48","measuredH":"48","x":"782","y":"1683","properties":{"color":"2848996","icon":{"ID":"flag-checkered","size":"large"}}},{"ID":"68","typeID":"TextInput","zOrder":"68","w":"182","measuredW":"36","measuredH":"32","x":"1124","y":"859","properties":{"align":"center","color":"16770457","size":"18","text":"rkt"}},{"ID":"69","typeID":"Arrow","zOrder":"69","w":"82","h":"17","measuredW":"150","measuredH":"100","x":"1041","y":"875","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":81,"y":1},"p1":{"x":0.6511936339522546,"y":-0.08355437665782496},"p2":{"x":0,"y":16},"rightArrow":"false","shape":"bezier"}},{"ID":"70","typeID":"TextInput","zOrder":"70","w":"168","measuredW":"159","measuredH":"32","x":"442","y":"961","properties":{"align":"center","color":"16776960","size":"18","text":"Cluster Managers"}},{"ID":"71","typeID":"Arrow","zOrder":"71","w":"156","h":"153","measuredW":"150","measuredH":"100","x":"613","y":"821","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":152},"p1":{"x":0.34836852207293667,"y":-0.13339731285988485},"p2":{"x":155,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"72","typeID":"Arrow","zOrder":"72","w":"106","h":"12","measuredW":"150","measuredH":"100","x":"338","y":"967","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":11},"p1":{"x":0.5613096317794304,"y":0.0624886631598041},"p2":{"x":105,"y":5},"rightArrow":"false","shape":"bezier"}},{"ID":"73","typeID":"TextInput","zOrder":"73","w":"182","measuredW":"107","measuredH":"32","x":"152","y":"964","properties":{"align":"center","color":"16770457","size":"18","text":"Kubernetes"}},{"ID":"74","typeID":"Arrow","zOrder":"74","w":"105","h":"29","measuredW":"150","measuredH":"100","x":"341","y":"991","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":28},"p1":{"x":0.5482477876106191,"y":-0.0642831858407078},"p2":{"x":104,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"75","typeID":"TextInput","zOrder":"75","w":"182","measuredW":"113","measuredH":"32","x":"152","y":"1004","properties":{"align":"center","color":"16770457","size":"18","text":"Mesosphere"}},{"ID":"76","typeID":"TextInput","zOrder":"76","w":"182","measuredW":"68","measuredH":"32","x":"152","y":"1043","properties":{"align":"center","color":"16770457","size":"18","text":"Mesos"}},{"ID":"77","typeID":"Arrow","zOrder":"77","w":"128","h":"59","measuredW":"150","measuredH":"100","x":"337","y":"994","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":58},"p1":{"x":0.5482477876106192,"y":-0.06428318584070777},"p2":{"x":127,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"78","typeID":"TextInput","zOrder":"78","w":"182","measuredW":"132","measuredH":"32","x":"244","y":"1083","properties":{"align":"center","color":"16770457","size":"18","text":"Docker Swarm"}},{"ID":"79","typeID":"Arrow","zOrder":"79","w":"66","h":"89","measuredW":"150","measuredH":"100","x":"421","y":"996","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":88},"p1":{"x":0.6482871125611747,"y":-0.09004893964110934},"p2":{"x":65,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"80","typeID":"TextInput","zOrder":"80","w":"182","measuredW":"71","measuredH":"32","x":"453","y":"1083","properties":{"align":"center","color":"16770457","size":"18","text":"Nomad"}},{"ID":"81","typeID":"Arrow","zOrder":"81","w":"11","h":"86","measuredW":"150","measuredH":"100","x":"522","y":"996","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":1,"y":85},"p1":{"x":0.6420077749828493,"y":-0.11719643265492792},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"82","typeID":"Arrow","zOrder":"82","w":"166","h":"119","measuredW":"150","measuredH":"100","x":"303","y":"302","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":1},"p1":{"x":0.4837905236907732,"y":0.17581047381546133},"p2":{"x":165,"y":118},"rightArrow":"false","shape":"bezier"}},{"ID":"83","typeID":"TextInput","zOrder":"83","w":"116","measuredW":"92","measuredH":"32","x":"185","y":"287","properties":{"align":"center","color":"16770457","size":"18","text":"Terraform"}},{"ID":"84","typeID":"TextInput","zOrder":"84","w":"163","measuredW":"161","measuredH":"29","x":"475","y":"359","properties":{"align":"center","color":"16770457","size":"15","text":"AWS Cloud Formation"}},{"ID":"85","typeID":"Arrow","zOrder":"85","w":"5","h":"33","measuredW":"150","measuredH":"100","x":"526","y":"390","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":32},"p1":{"x":0.508328546812177,"y":-0.008615738081562331},"p2":{"x":4,"y":0},"rightArrow":"true","shape":"bezier"}},{"ID":"86","typeID":"Arrow","zOrder":"86","w":"74","h":"399","measuredW":"150","measuredH":"100","x":"699","y":"821","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":398},"p1":{"x":0.34351657882039666,"y":-0.009857511924902128},"p2":{"x":73,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"87","typeID":"TextInput","zOrder":"87","w":"159","measuredW":"156","measuredH":"32","x":"567","y":"1223","properties":{"align":"center","color":"16776960","size":"18","text":"Love for Terminal"}},{"ID":"88","typeID":"Arrow","zOrder":"88","w":"91","h":"40","measuredW":"150","measuredH":"100","x":"476","y":"1240","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":39},"p1":{"x":0.5247895229186157,"y":0.005924540068599915},"p2":{"x":90,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"89","typeID":"TextInput","zOrder":"89","w":"136","measuredW":"117","measuredH":"32","x":"338","y":"1261","properties":{"align":"center","color":"16776960","size":"18","text":"Bash Scripts"}},{"ID":"90","typeID":"Arrow","zOrder":"90","w":"106","h":"66","measuredW":"150","measuredH":"100","x":"476","y":"1255","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":65},"p1":{"x":0.5287804878048781,"y":-0.07902439024390241},"p2":{"x":105,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"91","typeID":"TextInput","zOrder":"91","w":"181","measuredW":"178","measuredH":"32","x":"292","y":"1304","properties":{"align":"center","color":"16776960","size":"18","text":"Vim / Nano / Emacs"}},{"ID":"92","typeID":"Arrow","zOrder":"92","w":"132","h":"110","measuredW":"150","measuredH":"100","x":"483","y":"1256","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":109},"p1":{"x":0.5287804878048781,"y":-0.0790243902439025},"p2":{"x":131,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"93","typeID":"TextInput","zOrder":"93","w":"138","measuredW":"118","measuredH":"32","x":"909","y":"961","properties":{"align":"center","color":"16776960","size":"18","text":"Web Servers"}},{"ID":"94","typeID":"Arrow","zOrder":"94","w":"128","h":"138","measuredW":"150","measuredH":"100","x":"787","y":"823","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":127,"y":137},"p1":{"x":0.48035560653857184,"y":-0.1241755090335533},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"95","typeID":"TextInput","zOrder":"95","w":"182","measuredW":"74","measuredH":"32","x":"1105","y":"946","properties":{"align":"center","color":"16776960","size":"18","text":"Apache"}},{"ID":"96","typeID":"Arrow","zOrder":"96","w":"58","h":"11","measuredW":"150","measuredH":"100","x":"1047","y":"962","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":57,"y":2},"p1":{"x":0.4965288258376094,"y":-0.08723211590703289},"p2":{"x":0,"y":10},"rightArrow":"false","shape":"bezier"}},{"ID":"97","typeID":"TextInput","zOrder":"97","w":"182","measuredW":"60","measuredH":"32","x":"1106","y":"982","properties":{"align":"center","color":"16776960","size":"18","text":"Nginx"}},{"ID":"98","typeID":"Arrow","zOrder":"98","w":"59","h":"21","measuredW":"150","measuredH":"100","x":"1047","y":"981","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":58,"y":20},"p1":{"x":0.4070138150903294,"y":0.019659936238044632},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"99","typeID":"VCurly","zOrder":"99","w":"180","h":"185","measuredW":"180","measuredH":"140","x":"1294","y":"940","properties":{"text":"Differences and when to use what"}},{"ID":"100","typeID":"TextInput","zOrder":"100","w":"447","measuredW":"315","measuredH":"32","x":"993","y":"1236","properties":{"align":"center","color":"16776960","size":"18","text":"Setting up a Reverse Proxy (Nginx ..)"}},{"ID":"101","typeID":"TextInput","zOrder":"101","w":"182","measuredW":"74","measuredH":"32","x":"1105","y":"1020","properties":{"align":"center","color":"16770457","size":"18","text":"Tomcat"}},{"ID":"102","typeID":"Arrow","zOrder":"102","w":"62","h":"48","measuredW":"150","measuredH":"100","x":"1045","y":"991","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":61,"y":47},"p1":{"x":0.5247892074198989,"y":0.19123102866779093},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"103","typeID":"TextInput","zOrder":"103","w":"182","measuredW":"38","measuredH":"32","x":"1106","y":"1058","properties":{"align":"center","color":"16770457","size":"18","text":"IIS"}},{"ID":"104","typeID":"Arrow","zOrder":"104","w":"79","h":"79","measuredW":"150","measuredH":"100","x":"1028","y":"995","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":78,"y":78},"p1":{"x":0.44230769230769235,"y":0.1858974358974359},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"105","typeID":"Icon","zOrder":"105","measuredW":"48","measuredH":"48","x":"831","y":"1220","properties":{"color":"2848996","icon":{"ID":"circle","size":"large"}}},{"ID":"106","typeID":"Arrow","zOrder":"106","w":"140","h":"10","measuredW":"150","measuredH":"100","x":"857","y":"1244","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":138,"y":8},"p1":{"x":0.5,"y":0},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"107","typeID":"TextInput","zOrder":"107","w":"446","measuredW":"362","measuredH":"32","x":"993","y":"1272","properties":{"align":"center","color":"16776960","size":"18","text":"Setting up caching Server (Squid, Nginx ..)"}},{"ID":"108","typeID":"Arrow","zOrder":"108","w":"128","h":"36","measuredW":"150","measuredH":"100","x":"867","y":"1254","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":127,"y":35},"p1":{"x":0.5710499020398756,"y":0.07076178402673736},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"109","typeID":"TextInput","zOrder":"109","w":"444","measuredW":"383","measuredH":"32","x":"994","y":"1310","properties":{"align":"center","color":"16776960","size":"18","text":"Setting up a load balancer (HAProxy, Nginx ..)"}},{"ID":"110","typeID":"Arrow","zOrder":"110","w":"127","h":"72","measuredW":"150","measuredH":"100","x":"866","y":"1255","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":126,"y":71},"p1":{"x":0.5375099057849784,"y":0.14083824953773005},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"111","typeID":"TextInput","zOrder":"111","w":"550","measuredW":"531","measuredH":"32","x":"140","y":"1145","properties":{"align":"center","color":"16776960","size":"18","text":"Compiling apps from source (gcc, make and other related stuff)"}},{"ID":"112","typeID":"Arrow","zOrder":"112","w":"136","h":"112","measuredW":"150","measuredH":"100","x":"859","y":"1256","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":135,"y":111},"p1":{"x":0.5375099057849785,"y":0.14083824953773005},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"113","typeID":"TextInput","zOrder":"113","w":"447","measuredW":"332","measuredH":"32","x":"993","y":"1199","properties":{"align":"center","color":"16776960","size":"18","text":"Knowledge about different file systems"}},{"ID":"114","typeID":"TextInput","zOrder":"114","w":"447","measuredW":"338","measuredH":"32","x":"993","y":"1164","properties":{"align":"center","color":"16776960","size":"18","text":"OSI Model. TCP/IP/UDP Common ports"}},{"ID":"115","typeID":"Arrow","zOrder":"115","w":"130","h":"27","measuredW":"150","measuredH":"100","x":"864","y":"1214","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":129,"y":1},"p1":{"x":0.5491329479768786,"y":-0.06936416184971098},"p2":{"x":0,"y":26},"rightArrow":"false","shape":"bezier"}},{"ID":"116","typeID":"Arrow","zOrder":"116","w":"130","h":"57","measuredW":"150","measuredH":"100","x":"860","y":"1178","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":129,"y":0},"p1":{"x":0.5491329479768786,"y":-0.06936416184971089},"p2":{"x":0,"y":56},"rightArrow":"false","shape":"bezier"}},{"ID":"117","typeID":"Arrow","zOrder":"117","w":"158","h":"56","measuredW":"150","measuredH":"100","x":"407","y":"1176","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.3992980660256645,"y":-0.16711146857748693},"p2":{"x":157,"y":52},"rightArrow":"false","shape":"bezier"}},{"ID":"118","typeID":"TextInput","zOrder":"118","w":"439","measuredW":"175","measuredH":"32","x":"999","y":"1345","properties":{"align":"center","color":"16776960","size":"18","text":"Setting up a firewall"}},{"ID":"119","typeID":"TextInput","zOrder":"119","w":"166","measuredW":"159","measuredH":"32","x":"315","y":"1348","properties":{"align":"center","color":"16776960","size":"18","text":"Commands/Tools"}},{"ID":"120","typeID":"Arrow","zOrder":"120","w":"93","h":"87","measuredW":"150","measuredH":"100","x":"222","y":"1365","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":1,"y":86},"p1":{"x":0.4916028285209192,"y":0.27357100766057746},"p2":{"x":92,"y":1},"rightArrow":"false","shape":"bezier"}},{"ID":"121","typeID":"TextArea","zOrder":"121","w":"185","h":"132","measuredW":"200","measuredH":"140","x":"143","y":"1482","properties":{"size":"17","text":"awk, sed, grep, sort, uniq, cat, cut, echo, fmt, tr, nl, egrep, fgrep, wc ..etc"}},{"ID":"122","typeID":"TextInput","zOrder":"122","w":"184","measuredW":"156","measuredH":"32","x":"144","y":"1455","properties":{"align":"center","color":"16776960","size":"18","text":"Text Manipulation"}},{"ID":"123","typeID":"TextArea","zOrder":"123","w":"194","h":"47","measuredW":"200","measuredH":"140","x":"337","y":"1479","properties":{"size":"17","text":"ps, top, htop, atop ..etc"}},{"ID":"124","typeID":"TextInput","zOrder":"124","w":"194","measuredW":"172","measuredH":"32","x":"338","y":"1452","properties":{"align":"center","color":"16776960","size":"18","text":"Process Monitoring"}},{"ID":"125","typeID":"TextArea","zOrder":"125","w":"196","h":"55","measuredW":"200","measuredH":"140","x":"337","y":"1559","properties":{"size":"17","text":"nmon, iostat, sar, vmstat ..etc"}},{"ID":"126","typeID":"TextInput","zOrder":"126","w":"194","measuredW":"186","measuredH":"32","x":"338","y":"1532","properties":{"align":"center","color":"16776960","size":"18","text":"System Performance"}},{"ID":"127","typeID":"TextArea","zOrder":"127","w":"194","h":"135","measuredW":"200","measuredH":"140","x":"540","y":"1479","properties":{"size":"17","text":"nmap, tcpdump, ping, mtr, traceroute, airmon, airodump ..etc"}},{"ID":"128","typeID":"TextInput","zOrder":"128","w":"194","measuredW":"81","measuredH":"32","x":"541","y":"1452","properties":{"align":"center","color":"16776960","size":"18","text":"Network"}},{"ID":"129","typeID":"Arrow","zOrder":"129","w":"12","h":"72","measuredW":"150","measuredH":"100","x":"384","y":"1380","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":8,"y":71},"p1":{"x":0.5098922624877571,"y":-0.09970617042115572},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"130","typeID":"Arrow","zOrder":"130","w":"98","h":"72","measuredW":"150","measuredH":"100","x":"444","y":"1382","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":97,"y":71},"p1":{"x":0.43017301038062294,"y":-0.0665743944636678},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"131","typeID":"TextInput","zOrder":"131","w":"438","measuredW":"468","measuredH":"32","x":"1002","y":"1380","properties":{"align":"center","color":"16776960","size":"18","text":"TLS, STARTTLS, SSL, HTTPS, SCP, SSH, SFTP, FTPS .."}},{"ID":"132","typeID":"TextInput","zOrder":"132","w":"439","measuredW":"430","measuredH":"32","x":"1002","y":"1415","properties":{"align":"center","color":"16776960","size":"18","text":"Postmortem analysis when something bad happens"}},{"ID":"133","typeID":"Arrow","zOrder":"133","w":"147","h":"141","measuredW":"150","measuredH":"100","x":"857","y":"1255","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":146,"y":140},"p1":{"x":0.4908858561990645,"y":0.18756329266528424},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"134","typeID":"Arrow","zOrder":"134","w":"149","h":"179","measuredW":"150","measuredH":"100","x":"855","y":"1255","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":148,"y":178},"p1":{"x":0.4908858561990649,"y":0.18756329266528457},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"135","typeID":"TextInput","zOrder":"135","w":"182","measuredW":"65","measuredH":"32","x":"1106","y":"1093","properties":{"align":"center","color":"16770457","size":"18","text":"Caddy"}},{"ID":"136","typeID":"Arrow","zOrder":"136","w":"95","h":"115","measuredW":"150","measuredH":"100","x":"1010","y":"995","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":94,"y":114},"p1":{"x":0.44230769230769235,"y":0.1858974358974359},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"137","typeID":"TextInput","zOrder":"137","w":"182","measuredW":"50","measuredH":"32","x":"1124","y":"894","properties":{"align":"center","color":"15658734","size":"18","text":"LXC"}},{"ID":"138","typeID":"Arrow","zOrder":"138","w":"38","h":"2","measuredW":"150","measuredH":"100","x":"1087","y":"909","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":37,"y":1},"p1":{"x":0.578546712802768,"y":0.015224913494809686},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"139","typeID":"TextInput","zOrder":"139","w":"182","measuredW":"132","measuredH":"32","x":"1055","y":"331","properties":{"align":"center","color":"15658734","size":"18","text":"Cloud Foundry"}},{"ID":"140","typeID":"Arrow","zOrder":"140","w":"62","h":"18","measuredW":"150","measuredH":"100","x":"995","y":"339","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":61,"y":4},"p1":{"x":0.59004549103559,"y":0.2518062617072518},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"141","typeID":"TextInput","zOrder":"141","w":"103","measuredW":"69","measuredH":"32","x":"606","y":"683","properties":{"align":"center","color":"15658734","size":"18","text":"Zabbix"}},{"ID":"142","typeID":"Arrow","zOrder":"142","w":"46","h":"61","measuredW":"150","measuredH":"100","x":"582","y":"718","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":45,"y":0},"p1":{"x":0.5573333333333333,"y":0.034666666666666665},"p2":{"x":0,"y":60},"rightArrow":"false","shape":"bezier"}},{"ID":"143","typeID":"TextInput","zOrder":"143","w":"101","measuredW":"62","measuredH":"32","x":"348","y":"576","properties":{"align":"center","color":"16770457","size":"18","text":"Munin"}},{"ID":"144","typeID":"Arrow","zOrder":"144","w":"115","h":"163","measuredW":"150","measuredH":"100","x":"280","y":"613","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.5402140672782875,"y":0.039602446483180426},"p2":{"x":114,"y":162},"rightArrow":"false","shape":"bezier"}},{"ID":"145","typeID":"TextInput","zOrder":"145","w":"101","measuredW":"94","measuredH":"32","x":"154","y":"650","properties":{"align":"center","color":"16770457","size":"18","text":"New Relic"}},{"ID":"146","typeID":"Arrow","zOrder":"146","w":"106","h":"87","measuredW":"150","measuredH":"100","x":"262","y":"687","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.4950759130077962,"y":0.040213377102995426},"p2":{"x":105,"y":86},"rightArrow":"false","shape":"bezier"}},{"ID":"147","typeID":"TextInput","zOrder":"147","w":"255","measuredW":"247","measuredH":"32","x":"355","y":"847","properties":{"align":"center","color":"16776960","size":"18","text":"Log Management & Analysis"}},{"ID":"148","typeID":"Arrow","zOrder":"148","w":"157","h":"41","measuredW":"150","measuredH":"100","x":"615","y":"824","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":40},"p1":{"x":0.3805593199457928,"y":0.009301466058888753},"p2":{"x":156,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"149","typeID":"TextInput","zOrder":"149","w":"115","measuredW":"87","measuredH":"32","x":"147","y":"809","properties":{"align":"center","color":"15658734","size":"18","text":"Papertrail"}},{"ID":"150","typeID":"TextInput","zOrder":"150","w":"115","measuredW":"48","measuredH":"32","x":"147","y":"846","properties":{"align":"center","color":"16776960","size":"18","text":"ELK"}},{"ID":"151","typeID":"TextInput","zOrder":"151","w":"115","measuredW":"76","measuredH":"32","x":"148","y":"883","properties":{"align":"center","color":"15658734","size":"18","text":"Graylog"}},{"ID":"152","typeID":"TextInput","zOrder":"152","w":"115","measuredW":"70","measuredH":"32","x":"148","y":"919","properties":{"align":"center","color":"15658734","size":"18","text":"Splunk"}},{"ID":"153","typeID":"Arrow","zOrder":"153","w":"91","h":"22","measuredW":"150","measuredH":"100","x":"269","y":"827","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.47438524590163944,"y":0.031762295081967214},"p2":{"x":90,"y":21},"rightArrow":"false","shape":"bezier"}},{"ID":"154","typeID":"Arrow","zOrder":"154","w":"87","h":"9","measuredW":"150","measuredH":"100","x":"267","y":"857","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":8},"p1":{"x":0.47438524590163944,"y":0.031762295081967214},"p2":{"x":86,"y":1},"rightArrow":"false","shape":"bezier"}},{"ID":"155","typeID":"Arrow","zOrder":"155","w":"85","h":"24","measuredW":"150","measuredH":"100","x":"266","y":"875","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":23},"p1":{"x":0.47438524590163944,"y":0.03176229508196722},"p2":{"x":84,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"156","typeID":"Arrow","zOrder":"156","w":"97","h":"54","measuredW":"150","measuredH":"100","x":"267","y":"884","properties":{"color":"2848996","direction":"bottom","leftArrow":"true","p0":{"x":0,"y":53},"p1":{"x":0.5139593094153135,"y":-0.07566908414094088},"p2":{"x":96,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"157","typeID":"TextInput","zOrder":"157","w":"116","measuredW":"97","measuredH":"32","x":"185","y":"327","properties":{"align":"center","color":"15658734","size":"18","text":"CF Engine"}},{"ID":"158","typeID":"Arrow","zOrder":"158","w":"120","h":"39","measuredW":"150","measuredH":"100","x":"303","y":"385","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.4316714619247889,"y":0.05426183807392579},"p2":{"x":119.99999999999984,"y":39.18789348884052},"rightArrow":"false","shape":"bezier"}},{"ID":"159","typeID":"TextInput","zOrder":"159","w":"101","measuredW":"99","measuredH":"32","x":"582","y":"471","properties":{"align":"center","color":"16770457","size":"18","text":"Powershell"}},{"ID":"160","typeID":"Arrow","zOrder":"160","w":"44","h":"30","measuredW":"150","measuredH":"100","x":"540","y":"457","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":43,"y":29},"p1":{"x":0.5977695167286246,"y":0.2171003717472119},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"161","typeID":"Arrow","zOrder":"161","w":"166","h":"139","measuredW":"150","measuredH":"100","x":"251","y":"25","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":7.140589153878835},"p1":{"x":0.5845917147772806,"y":0.4133737486491535},"p2":{"x":153,"y":138.50040635956142},"rightArrow":"false","shape":"bezier"}},{"ID":"162","typeID":"TextInput","zOrder":"162","w":"182","measuredW":"70","measuredH":"32","x":"60","y":"53","properties":{"align":"center","color":"15658734","size":"18","text":"Debian"}},{"ID":"163","typeID":"TextInput","zOrder":"163","w":"182","measuredW":"60","measuredH":"32","x":"60","y":"92","properties":{"align":"center","color":"16776960","size":"18","text":"RHEL"}},{"ID":"164","typeID":"TextInput","zOrder":"164","w":"182","measuredW":"72","measuredH":"32","x":"60","y":"16","properties":{"align":"center","color":"16770457","size":"18","text":"Ubuntu"}},{"ID":"165","typeID":"TextInput","zOrder":"165","w":"182","measuredW":"69","measuredH":"32","x":"60","y":"169","properties":{"align":"center","color":"16770457","size":"18","text":"Fedora"}},{"ID":"166","typeID":"TextInput","zOrder":"166","w":"182","measuredW":"259","measuredH":"32","x":"60","y":"208","properties":{"align":"center","color":"14540253","size":"18","text":"SUSE Linux Enterprise Server"}},{"ID":"167","typeID":"TextInput","zOrder":"167","w":"182","measuredW":"79","measuredH":"32","x":"60","y":"132","properties":{"align":"center","color":"16776960","size":"18","text":"CentOS"}},{"ID":"168","typeID":"Arrow","zOrder":"168","w":"151","h":"108","measuredW":"150","measuredH":"100","x":"251","y":"54","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":14.762582569985781},"p1":{"x":0.635755435994368,"y":0.45608857150906057},"p2":{"x":139,"y":108.1745642656242},"rightArrow":"false","shape":"bezier"}},{"ID":"169","typeID":"Arrow","zOrder":"169","w":"138","h":"88","measuredW":"150","measuredH":"100","x":"251","y":"75","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":31.612226884082187},"p1":{"x":0.7123075700107392,"y":0.5362161786561891},"p2":{"x":127,"y":87.76006636460237},"rightArrow":"false","shape":"bezier"}},{"ID":"170","typeID":"Arrow","zOrder":"170","w":"114","h":"66","measuredW":"150","measuredH":"100","x":"253","y":"95","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":49.99582031084772},"p1":{"x":0.8782528511140242,"y":0.6218440844053368},"p2":{"x":103,"y":66.32610600074665},"rightArrow":"false","shape":"bezier"}},{"ID":"171","typeID":"Arrow","zOrder":"171","w":"83","h":"34","measuredW":"150","measuredH":"100","x":"253","y":"201","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":20},"p1":{"x":0.5893764434180139,"y":-0.3016166281755197},"p2":{"x":83,"y":0},"rightArrow":"false","shape":"bezier"}},{"ID":"172","typeID":"Arrow","zOrder":"172","w":"66","h":"32","measuredW":"150","measuredH":"100","x":"252","y":"184","properties":{"color":"2848996","direction":"top","leftArrow":"true","p0":{"x":0,"y":0},"p1":{"x":0.6738818395820177,"y":-0.3299075615777688},"p2":{"x":66,"y":15},"rightArrow":"false","shape":"bezier"}},{"ID":"173","typeID":"TextInput","zOrder":"173","w":"182","measuredW":"93","measuredH":"32","x":"480","y":"59","properties":{"align":"center","color":"15658734","size":"18","text":"OpenBSD"}},{"ID":"174","typeID":"TextInput","zOrder":"174","w":"182","measuredW":"85","measuredH":"32","x":"480","y":"95","properties":{"align":"center","color":"16776960","size":"18","text":"FreeBSD"}},{"ID":"175","typeID":"Arrow","zOrder":"175","w":"42","h":"120","measuredW":"150","measuredH":"100","x":"434","y":"39","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":0.37194445306094703,"y":120.28509834259818},"p1":{"x":0.7330307211818293,"y":0.1875526107851028},"p2":{"x":42.22027510351579,"y":0.9511701806596434},"rightArrow":"true","shape":"bezier"}},{"ID":"176","typeID":"Arrow","zOrder":"176","w":"35","h":"85","measuredW":"150","measuredH":"100","x":"442","y":"75","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":0.5209063513739427,"y":84.97654962079596},"p1":{"x":0.7501173426178009,"y":0.23643607644290787},"p2":{"x":34.831999470910155,"y":2.2910846285039526},"rightArrow":"true","shape":"bezier"}},{"ID":"177","typeID":"TextInput","zOrder":"177","w":"182","measuredW":"77","measuredH":"32","x":"480","y":"23","properties":{"align":"center","color":"15658734","size":"18","text":"NetBSD"}},{"ID":"178","typeID":"Arrow","zOrder":"178","w":"27","h":"49","measuredW":"150","measuredH":"100","x":"449","y":"112","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":5.674355817502274,"y":49.03588599132546},"p1":{"x":0.6662958840913948,"y":0.3728774203178329},"p2":{"x":27.03314058509121,"y":0.9734365918457344},"rightArrow":"true","shape":"bezier"}}]},"mockupH":"1715","mockupW":"1414","measuredW":"1474","measuredH":"1731","version":"1.0"}} 2 | -------------------------------------------------------------------------------- /project/disclaimer.json: -------------------------------------------------------------------------------- 1 | {"mockup":{"controls":{"control":[{"ID":"119","h":"274","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"911","x":"223","y":"170","zOrder":"0"},{"ID":"120","measuredH":"40","measuredW":"170","properties":{"bold":"true","size":"32","text":"Disclaimer!"},"typeID":"Label","x":"245","y":"190","zOrder":"1"},{"ID":"121","measuredH":"32","measuredW":"856","properties":{"size":"24","text":"The purpose of this roadmap is to give you an idea about the landscape and to"},"typeID":"Label","x":"245","y":"246","zOrder":"2"},{"ID":"123","measuredH":"32","measuredW":"833","properties":{"size":"24","text":"guide you if you are confused about what to learn next and not to encourage"},"typeID":"Label","x":"245","y":"282","zOrder":"3"},{"ID":"124","measuredH":"32","measuredW":"825","properties":{"size":"24","text":"you to learn what is hip and trendy. You should *grow some understanding* of"},"typeID":"Label","x":"245","y":"317","zOrder":"4"},{"ID":"125","measuredH":"32","measuredW":"816","properties":{"size":"24","text":"*why one tool would be better suited for some cases than the other and*"},"typeID":"Label","x":"245","y":"353","zOrder":"5"},{"ID":"126","measuredH":"32","measuredW":"710","properties":{"size":"24","text":"*remember hip and trendy never means best suited for the job*"},"typeID":"Label","x":"245","y":"389","zOrder":"6"}]},"measuredH":"444","measuredW":"1134","mockupH":"274","mockupW":"911","version":"1.0"}} -------------------------------------------------------------------------------- /project/frontend-map.json: -------------------------------------------------------------------------------- 1 | {"mockup":{"controls":{"control":[{"ID":"0","measuredH":"40","measuredW":"149","properties":{"bold":"true","size":"32","text":"Front-end"},"typeID":"Label","x":"563","y":"121","zOrder":"54"},{"ID":"1","h":"74","measuredH":"73","measuredW":"18","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"length":8,"x":8,"y":0},"p1":{"length":0.4979530082684307,"x":0.45894941634241254,"y":0.19319066147859923},"p2":{"length":73,"x":0,"y":73},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"19","x":"637","y":"47","zOrder":"55"},{"ID":"2","h":"61","measuredH":"60","measuredW":"15","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"length":2,"x":2,"y":0},"p1":{"length":0.4752342503759216,"x":0.46391752577319545,"y":-0.1030927835051546},"p2":{"length":61.84658438426491,"x":15,"y":60},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"16","x":"626","y":"177","zOrder":"56"},{"ID":"3","measuredH":"26","measuredW":"147","properties":{"bold":"true","size":"18","text":"Learn the Basics"},"typeID":"Label","x":"589","y":"244","zOrder":"57"},{"ID":"21","measuredH":"25","measuredW":"168","properties":{"bold":"true","size":"17","text":"Basics of JavaScript"},"typeID":"Label","x":"589","y":"424","zOrder":"66"},{"ID":"24","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"556","y":"424","zOrder":"67"},{"ID":"25","measuredH":"25","measuredW":"118","properties":{"bold":"true","size":"17","text":"Basics of CSS"},"typeID":"Label","x":"589","y":"378","zOrder":"62"},{"ID":"26","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"555","y":"378","zOrder":"63"},{"ID":"27","measuredH":"25","measuredW":"100","properties":{"bold":"true","size":"17","text":"Learn HTML"},"typeID":"Label","x":"589","y":"330","zOrder":"58"},{"ID":"28","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"555","y":"330","zOrder":"59"},{"ID":"29","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"1"},"typeID":"Label","x":"563","y":"332","zOrder":"60"},{"ID":"30","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"2"},"typeID":"Label","w":"10","x":"563","y":"380","zOrder":"64"},{"ID":"31","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"3"},"typeID":"Label","w":"10","x":"564","y":"426","zOrder":"68"},{"ID":"33","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"250","x":"543","y":"322","zOrder":"53"},{"ID":"34","h":"55","measuredH":"54","measuredW":"9","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"length":3,"x":3,"y":0},"p1":{"length":0.529252928988914,"x":0.510715363718684,"y":0.13884696649562314},"p2":{"length":54,"x":0,"y":54},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"10","x":"655","y":"277","zOrder":"38"},{"ID":"36","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"250","x":"543","y":"370","zOrder":"61"},{"ID":"40","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"250","x":"544","y":"417","zOrder":"65"},{"ID":"44","h":"23","measuredH":"22","measuredW":"48","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"length":48,"x":48,"y":0},"p1":{"length":0.4652808414804901,"x":0.4652789342214823,"y":-0.001332223147377283},"p2":{"length":22,"x":0,"y":22},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"49","x":"792","y":"320","zOrder":"52"},{"ID":"45","measuredH":"25","measuredW":"322","properties":{"size":"17","text":"Don't worry about making them pretty yet"},"typeID":"Label","x":"859","y":"363","zOrder":"109"},{"ID":"46","h":"4","measuredH":"3","measuredW":"59","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"length":59,"x":59,"y":0},"p1":{"length":0.4929592777882592,"x":0.4929203539823009,"y":-0.006194690265486749},"p2":{"length":3,"x":0,"y":3},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"60","x":"794","y":"347","zOrder":"51"},{"ID":"47","measuredH":"25","measuredW":"514","properties":{"size":"17","text":"Dividing page into sections and how to structure the DOM properly"},"typeID":"Label","x":"854","y":"302","zOrder":"110"},{"ID":"48","h":"49","measuredH":"48","measuredW":"61","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"length":61,"x":61,"y":0},"p1":{"length":0.4585249091872984,"x":0.45522128005575574,"y":-0.054942502032756454},"p2":{"length":48,"x":0,"y":48},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"62","x":"787","y":"285","zOrder":"49"},{"ID":"49","measuredH":"25","measuredW":"390","properties":{"size":"17","text":"Learn the basics and how to write semantic HTML"},"typeID":"Label","x":"858","y":"268","zOrder":"111"},{"ID":"56","h":"19","measuredH":"18","measuredW":"68","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":70.3420215802759,"x":68,"y":18},"p1":{"length":0.4579653787384571,"x":0.45747670462949247,"y":0.021150717349504505},"p2":{"length":0,"x":0,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"69","x":"787","y":"356","zOrder":"50"},{"ID":"57","measuredH":"25","measuredW":"386","properties":{"size":"17","text":"Make at least 5 HTML pages – focus on structure"},"typeID":"Label","x":"859","y":"335","zOrder":"112"},{"ID":"59","h":"66","measuredH":"65","measuredW":"112","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.47314423386375903,"x":0.47200190828314154,"y":0.03285825034289463},"p2":{"length":129.49517365523704,"x":112,"y":65},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"113","x":"438","y":"320","zOrder":"48"},{"ID":"60","measuredH":"25","measuredW":"191","properties":{"size":"17","text":"Learn the basics of CSS"},"typeID":"Label","x":"238","y":"303","zOrder":"69"},{"ID":"63","h":"43","measuredH":"42","measuredW":"124","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.4354479714301555,"x":0.4346557759626609,"y":0.026254375729288137},"p2":{"length":130.91982279242512,"x":124,"y":42},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"125","x":"436","y":"352","zOrder":"47"},{"ID":"67","h":"13","measuredH":"12","measuredW":"119","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":1,"x":0,"y":1},"p1":{"length":0.42921590082087,"x":0.42861896838602337,"y":0.022628951747088195},"p2":{"length":119.60351165413162,"x":119,"y":12},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"120","x":"440","y":"385","zOrder":"46"},{"ID":"68","measuredH":"25","measuredW":"268","properties":{"size":"17","text":"Learn how to use Grid and Flexbox"},"typeID":"Label","x":"162","y":"338","zOrder":"70"},{"ID":"70","measuredH":"25","measuredW":"318","properties":{"size":"17","text":"Media Queries and Responsive Websites"},"typeID":"Label","x":"113","y":"371","zOrder":"71"},{"ID":"83","h":"20","measuredH":"19","measuredW":"71","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"length":19,"x":0,"y":19},"p1":{"length":0.4406669241308615,"x":0.43817104776008886,"y":-0.04683450573861533},"p2":{"length":71,"x":71,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"72","x":"478","y":"397","zOrder":"45"},{"ID":"85","measuredH":"25","measuredW":"378","properties":{"size":"17","text":"Style the HTML Pages that you made in last step"},"typeID":"Label","x":"93","y":"404","zOrder":"72"},{"ID":"86","h":"4","measuredH":"3","measuredW":"53","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":3,"x":0,"y":3},"p1":{"length":0.4600856791042167,"x":0.4583941605839416,"y":0.03941605839416058},"p2":{"length":53.08483775994799,"x":53,"y":3},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"54","x":"797","y":"422","zOrder":"43"},{"ID":"88","measuredH":"25","measuredW":"301","properties":{"size":"17","text":"Learn the syntax and basic constructs"},"typeID":"Label","x":"855","y":"414","zOrder":"113"},{"ID":"89","measuredH":"25","measuredW":"233","properties":{"size":"17","text":"Learn how to manipulate DOM"},"typeID":"Label","x":"855","y":"442","zOrder":"114"},{"ID":"90","h":"16","measuredH":"15","measuredW":"55","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.45653907041455166,"x":0.45488081725312146,"y":0.03887627695800227},"p2":{"length":57.0087712549569,"x":55,"y":15},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"56","x":"794","y":"437","zOrder":"44"},{"ID":"91","h":"62","measuredH":"61","measuredW":"67","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.5281388123911577,"x":0.5199305086381621,"y":-0.09275166489721068},"p2":{"length":90.60905032059436,"x":67,"y":61},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"68","x":"786","y":"449","zOrder":"41"},{"ID":"92","measuredH":"25","measuredW":"558","properties":{"size":"17","text":"Understand the concepts such as hoisting, event bubbling, prototype etc"},"typeID":"Label","x":"850","y":"471","zOrder":"115"},{"ID":"93","h":"38","measuredH":"37","measuredW":"56","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.5310495030226782,"x":0.5300904977375566,"y":-0.03190045248868781},"p2":{"length":67.11929677819934,"x":56,"y":37},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"57","x":"789","y":"441","zOrder":"42"},{"ID":"94","measuredH":"25","measuredW":"445","properties":{"size":"17","text":"Learn ES6+ new features and writing modular JavaScript"},"typeID":"Label","x":"858","y":"535","zOrder":"116"},{"ID":"95","h":"94","measuredH":"93","measuredW":"74","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.5490011385437095,"x":0.5330996249796185,"y":-0.13117560736996578},"p2":{"length":118.84864324004712,"x":74,"y":93},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"75","x":"778","y":"448","zOrder":"40"},{"ID":"96","measuredH":"25","measuredW":"137","properties":{"size":"17","text":"Learn Ajax (XHR)"},"typeID":"Label","x":"858","y":"504","zOrder":"117"},{"ID":"98","h":"41","measuredH":"140","measuredW":"200","properties":{"borderColor":"13576743","color":"16777215"},"typeID":"TextArea","w":"325","x":"153","y":"512","zOrder":"73"},{"ID":"102","measuredH":"25","measuredW":"146","properties":{"bold":"true","color":"0","size":"17","text":"jQuery – Optional"},"typeID":"Label","x":"167","y":"520","zOrder":"74"},{"ID":"108","h":"202","measuredH":"200","measuredW":"48","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"length":15,"x":15,"y":0},"p1":{"length":0.4723872861411133,"x":0.452773248314634,"y":-0.13470758597191462},"p2":{"length":205.67936211491903,"x":48,"y":200},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"50","x":"622","y":"454","zOrder":"39"},{"ID":"109","h":"2","measuredH":"1","measuredW":"136","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.5074062205613563,"x":0.5073529411764706,"y":-0.007352941176470588},"p2":{"length":136,"x":136,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"137","x":"489","y":"531","zOrder":"75"},{"ID":"111","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"613","y":"519","zOrder":"76"},{"ID":"112","h":"41","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"767","x":"314","y":"593","zOrder":"77"},{"ID":"114","measuredH":"25","measuredW":"574","properties":{"size":"17","text":"Make some responsive website and add some interactivity with JavaScript"},"typeID":"Label","x":"356","y":"601","zOrder":"78"},{"ID":"115","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"324","y":"601","zOrder":"79"},{"ID":"116","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"4"},"typeID":"Label","w":"10","x":"332","y":"603","zOrder":"80"},{"ID":"117","h":"36","measuredH":"107","measuredW":"205","properties":{"color":"13576743"},"typeID":"ScratchOut","w":"66","x":"409","y":"514","zOrder":"81"},{"ID":"118","h":"178","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"767","x":"314","y":"641","zOrder":"82"},{"ID":"119","measuredH":"25","measuredW":"678","properties":{"bold":"true","size":"17","text":"Search projects on Github and open a few PRs. Some of the ideas are listed below :"},"typeID":"Label","x":"356","y":"655","zOrder":"83"},{"ID":"120","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"325","y":"656","zOrder":"84"},{"ID":"121","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"5"},"typeID":"Label","w":"10","x":"333","y":"658","zOrder":"85"},{"ID":"125","measuredH":"25","measuredW":"564","properties":{"size":"17","text":"Enhance the UI, make any demo pages responsive or improve the design"},"typeID":"Label","x":"356","y":"684","zOrder":"86"},{"ID":"126","measuredH":"25","measuredW":"339","properties":{"size":"17","text":"Look for any open issues that you can solve"},"typeID":"Label","x":"356","y":"711","zOrder":"87"},{"ID":"127","measuredH":"25","measuredW":"672","properties":{"size":"17","text":"Refactor any of the code or implement the best practices that you learnt along the way"},"typeID":"Label","x":"356","y":"738","zOrder":"88"},{"ID":"129","measuredH":"23","measuredW":"703","properties":{"bold":"true","color":"10027263","size":"15","text":"Link this repo, tell them you are learning and ask for feedback on your PR and how you can improve"},"typeID":"Label","x":"356","y":"777","zOrder":"89"},{"ID":"130","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"lightbulb-o","size":"small"}},"typeID":"Icon","x":"325","y":"776","zOrder":"90"},{"ID":"131","measuredH":"32","measuredW":"32","properties":{"color":"10027263","icon":{"ID":"github","size":"medium"}},"typeID":"Icon","x":"920","y":"81","zOrder":"91"},{"ID":"132","measuredH":"25","measuredW":"295","properties":{"bold":"true","color":"10027263","size":"17","text":"kamranahmedse/developer-roadmap"},"typeID":"Label","x":"959","y":"85","zOrder":"92"},{"ID":"140","h":"135","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"767","x":"314","y":"827","zOrder":"93"},{"ID":"141","measuredH":"25","measuredW":"443","properties":{"bold":"true","size":"17","text":"Give yourself a pat on the back. You are getting there :"},"typeID":"Label","x":"355","y":"842","zOrder":"94"},{"ID":"142","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"325","y":"842","zOrder":"95"},{"ID":"143","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"6"},"typeID":"Label","w":"10","x":"333","y":"844","zOrder":"96"},{"ID":"149","measuredH":"25","measuredW":"629","properties":{"size":"17","text":"There are many jobs out there requiring the skillset that you have got till this point"},"typeID":"Label","x":"356","y":"868","zOrder":"97"},{"ID":"150","measuredH":"25","measuredW":"629","properties":{"size":"17","text":"You can easily start getting some freelance work or find yourself a job if you may."},"typeID":"Label","x":"356","y":"893","zOrder":"98"},{"ID":"153","measuredH":"25","measuredW":"690","properties":{"size":"17","text":"However, don't stop here, there is still a long way to go if you want to have a better career"},"typeID":"Label","x":"357","y":"919","zOrder":"99"},{"ID":"155","h":"265","measuredH":"264","measuredW":"76","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"length":76,"x":76,"y":0},"p1":{"length":0.5074530613720352,"x":0.4565573307740078,"y":-0.2215039801275899},"p2":{"length":267.3200329193456,"x":42,"y":264},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"77","x":"237","y":"743","zOrder":"36"},{"ID":"156","measuredH":"25","measuredW":"339","properties":{"bold":"true","size":"17","text":"Optional – Needs some knowledge of `git`"},"typeID":"Label","x":"294","y":"1015","zOrder":"100"},{"ID":"157","measuredH":"25","measuredW":"346","properties":{"size":"17","text":"This part is optional, I added it here because"},"typeID":"Label","x":"295","y":"1043","zOrder":"101"},{"ID":"158","measuredH":"25","measuredW":"384","properties":{"size":"17","text":"it is a great way to learn and find out if you are on"},"typeID":"Label","x":"295","y":"1067","zOrder":"102"},{"ID":"159","measuredH":"25","measuredW":"399","properties":{"size":"17","text":"the right track or not. You will be amazed to find out"},"typeID":"Label","x":"294","y":"1092","zOrder":"103"},{"ID":"160","measuredH":"25","measuredW":"335","properties":{"size":"17","text":"how much people are willing to help you out."},"typeID":"Label","x":"295","y":"1117","zOrder":"104"},{"ID":"161","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"lightbulb-o","size":"small"}},"typeID":"Icon","x":"290","y":"1156","zOrder":"105"},{"ID":"162","measuredH":"23","measuredW":"366","properties":{"bold":"true","color":"10027263","size":"15","text":"Don't be scared of git, it is easiest of all the things"},"typeID":"Label","x":"322","y":"1153","zOrder":"106"},{"ID":"164","measuredH":"23","measuredW":"359","properties":{"bold":"true","color":"10027263","size":"15","text":"that you have learnt above. You can get the basics"},"typeID":"Label","x":"322","y":"1174","zOrder":"107"},{"ID":"165","h":"245","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"427","x":"278","y":"1001","zOrder":"37"},{"ID":"167","measuredH":"23","measuredW":"292","properties":{"bold":"true","color":"10027263","size":"15","text":"in the few hours and do the rest later on"},"typeID":"Label","x":"322","y":"1195","zOrder":"108"},{"ID":"169","h":"381","measuredH":"380","measuredW":"68","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":5,"y":0},"p1":{"x":0.51012414933679,"y":0.17392640436254733},"p2":{"x":0,"y":380},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"69","x":"727","y":"917","zOrder":"35"},{"ID":"170","h":"136","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"543","x":"310","y":"1594","zOrder":"118"},{"ID":"172","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"323","y":"1610","zOrder":"119"},{"ID":"173","measuredH":"22","measuredW":"10","properties":{"bold":"true","color":"16777215","size":"14","text":"9"},"typeID":"Label","w":"19","x":"330","y":"1612","zOrder":"120"},{"ID":"174","measuredH":"26","measuredW":"167","properties":{"bold":"true","size":"18","text":"CSS Preprocessors"},"typeID":"Label","w":"199","x":"356","y":"1610","zOrder":"121"},{"ID":"175","measuredH":"32","measuredW":"56","properties":{"align":"center","color":"16776960","size":"18","text":"Sass"},"typeID":"TextInput","w":"136","x":"284","y":"1369","zOrder":"122"},{"ID":"176","measuredH":"32","measuredW":"55","properties":{"align":"center","color":"16777215","size":"18","text":"Less"},"typeID":"TextInput","w":"136","x":"284","y":"1445","zOrder":"123"},{"ID":"177","measuredH":"32","measuredW":"66","properties":{"align":"center","color":"16777215","size":"18","text":"Stylus"},"typeID":"TextInput","w":"136","x":"284","y":"1483","zOrder":"124"},{"ID":"178","measuredH":"32","measuredW":"88","properties":{"align":"center","color":"16776960","size":"18","text":"PostCSS"},"typeID":"TextInput","w":"136","x":"284","y":"1406","zOrder":"125"},{"ID":"180","measuredH":"25","measuredW":"450","properties":{"size":"17","text":"Preprocessors let you add functionality on top of CSS and"},"typeID":"Label","x":"356","y":"1638","zOrder":"126"},{"ID":"181","measuredH":"25","measuredW":"459","properties":{"size":"17","text":"let you do things that CSS can't. Have a look at any of them"},"typeID":"Label","x":"356","y":"1663","zOrder":"127"},{"ID":"182","measuredH":"25","measuredW":"441","properties":{"size":"17","text":"and see what they have to offer and pick the suitable one"},"typeID":"Label","x":"356","y":"1689","zOrder":"128"},{"ID":"184","h":"8","measuredH":"7","measuredW":"204","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"length":204.00980368599937,"x":204,"y":2},"p1":{"length":0.4189940316033579,"x":0.4186861064441723,"y":-0.01606059743144346},"p2":{"length":7,"x":0,"y":7},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"205","x":"815","y":"1655","zOrder":"34"},{"ID":"185","h":"187","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"408","x":"915","y":"1564","zOrder":"129"},{"ID":"196","measuredH":"25","measuredW":"157","properties":{"bold":"true","size":"17","text":"Learn Sass for now"},"typeID":"Label","x":"928","y":"1576","zOrder":"130"},{"ID":"197","measuredH":"25","measuredW":"411","properties":{"size":"17","text":"You do not need rollup for now and can do everything"},"typeID":"Label","x":"919","y":"2200","zOrder":"181"},{"ID":"198","measuredH":"25","measuredW":"370","properties":{"size":"17","text":"PostCSS is a nice-to-have and is sort of \"Babel\""},"typeID":"Label","x":"930","y":"1633","zOrder":"131"},{"ID":"199","measuredH":"25","measuredW":"335","properties":{"size":"17","text":"for CSS. You can use it on top of Sass also."},"typeID":"Label","x":"930","y":"1658","zOrder":"132"},{"ID":"200","measuredH":"25","measuredW":"240","properties":{"size":"17","text":"Sass and revisit PostCSS later"},"typeID":"Label","x":"930","y":"1712","zOrder":"133"},{"ID":"202","measuredH":"25","measuredW":"323","properties":{"size":"17","text":"However, I would recommend you to learn "},"typeID":"Label","x":"930","y":"1684","zOrder":"134"},{"ID":"204","h":"97","measuredH":"96","measuredW":"21","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"length":11,"x":11,"y":0},"p1":{"length":0.5588009305954578,"x":0.5354229282954058,"y":-0.15993988836410478},"p2":{"length":98.2700361249552,"x":21,"y":96},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"22","x":"559","y":"1515","zOrder":"33"},{"ID":"210","h":"52","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"344","x":"527","y":"1273","zOrder":"135"},{"ID":"211","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"538","y":"1285","zOrder":"136"},{"ID":"212","measuredH":"22","measuredW":"10","properties":{"bold":"true","color":"16777215","size":"14","text":"7"},"typeID":"Label","w":"12","x":"546","y":"1286","zOrder":"137"},{"ID":"213","measuredH":"26","measuredW":"39","properties":{"bold":"true","size":"18","text":"NPM"},"typeID":"Label","w":"47","x":"901","y":"1286","zOrder":"140"},{"ID":"215","h":"52","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"89","x":"876","y":"1273","zOrder":"138"},{"ID":"216","measuredH":"26","measuredW":"159","properties":{"bold":"true","size":"18","text":"Package Managers"},"typeID":"Label","w":"199","x":"572","y":"1285","zOrder":"139"},{"ID":"217","h":"52","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"89","x":"969","y":"1273","zOrder":"141"},{"ID":"218","measuredH":"26","measuredW":"38","properties":{"bold":"true","size":"18","text":"Yarn"},"typeID":"Label","w":"47","x":"991","y":"1286","zOrder":"142"},{"ID":"219","h":"80","measuredH":"79","measuredW":"67","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"length":67,"x":67,"y":0},"p1":{"length":0.5230534443633628,"x":0.5075471698113209,"y":-0.1264150943396224},"p2":{"length":79,"x":0,"y":79},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"68","x":"805","y":"1202","zOrder":"32"},{"ID":"220","h":"225","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"417","x":"845","y":"1001","zOrder":"143"},{"ID":"222","measuredH":"25","measuredW":"334","properties":{"size":"17","text":"Package managers help you bring external "},"typeID":"Label","x":"861","y":"1051","zOrder":"144"},{"ID":"223","measuredH":"25","measuredW":"354","properties":{"size":"17","text":"libraries and plugins into your projects, so that"},"typeID":"Label","x":"861","y":"1077","zOrder":"145"},{"ID":"224","measuredH":"25","measuredW":"386","properties":{"size":"17","text":"you don't have to worry about copying the libraries"},"typeID":"Label","x":"861","y":"1103","zOrder":"146"},{"ID":"226","measuredH":"25","measuredW":"384","properties":{"size":"17","text":"manually or go through the hassle of updating etc"},"typeID":"Label","x":"861","y":"1129","zOrder":"147"},{"ID":"227","measuredH":"25","measuredW":"286","properties":{"size":"17","text":"Both are almost same, there are just "},"typeID":"Label","x":"861","y":"1156","zOrder":"148"},{"ID":"229","measuredH":"25","measuredW":"316","properties":{"size":"17","text":"implementation differences; just pick any."},"typeID":"Label","x":"861","y":"1181","zOrder":"149"},{"ID":"230","h":"202","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"759","x":"527","y":"1331","zOrder":"150"},{"ID":"231","measuredH":"25","measuredW":"425","properties":{"bold":"true","size":"17","text":"Install some external dependency in your application"},"typeID":"Label","x":"572","y":"1349","zOrder":"151"},{"ID":"232","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"541","y":"1350","zOrder":"152"},{"ID":"233","measuredH":"21","measuredW":"10","properties":{"bold":"true","color":"16777215","text":"8"},"typeID":"Label","w":"10","x":"549","y":"1352","zOrder":"153"},{"ID":"234","measuredH":"25","measuredW":"622","properties":{"size":"17","text":"Go ahead and install some external library in the webpages that you made above"},"typeID":"Label","x":"572","y":"1376","zOrder":"154"},{"ID":"237","measuredH":"25","measuredW":"683","properties":{"size":"17","text":"e.g. install some toast plugin and when user clicks a button, show him the toast message"},"typeID":"Label","x":"572","y":"1402","zOrder":"155"},{"ID":"238","measuredH":"25","measuredW":"665","properties":{"size":"17","text":"or create a login form and do the form validation using some form validation library and"},"typeID":"Label","x":"572","y":"1429","zOrder":"156"},{"ID":"239","measuredH":"25","measuredW":"510","properties":{"size":"17","text":"play with different options and see how to install different versions"},"typeID":"Label","x":"573","y":"1454","zOrder":"157"},{"ID":"242","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"lightbulb-o","size":"small"}},"typeID":"Icon","x":"545","y":"1489","zOrder":"158"},{"ID":"243","measuredH":"23","measuredW":"230","properties":{"bold":"true","color":"10027263","size":"15","text":"Read about semantic versioning"},"typeID":"Label","x":"573","y":"1490","zOrder":"159"},{"ID":"244","h":"116","measuredH":"115","measuredW":"22","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":117.08543888972702,"x":22,"y":115},"p1":{"length":0.5349115625926845,"x":0.5263097382439734,"y":0.09554286590273256},"p2":{"length":5,"x":5,"y":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"23","x":"332","y":"1499","zOrder":"31"},{"ID":"260","measuredH":"25","measuredW":"357","properties":{"bold":"true","size":"17","text":"Learn one, you automatically learn the other"},"typeID":"Label","x":"861","y":"1018","zOrder":"160"},{"ID":"267","h":"84","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"543","x":"696","y":"2036","zOrder":"161"},{"ID":"268","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"709","y":"2052","zOrder":"162"},{"ID":"269","measuredH":"22","measuredW":"15","properties":{"bold":"true","color":"16777215","size":"14","text":"12"},"typeID":"Label","w":"19","x":"713","y":"2054","zOrder":"163"},{"ID":"270","measuredH":"26","measuredW":"90","properties":{"bold":"true","size":"18","text":"Build tools"},"typeID":"Label","w":"101","x":"742","y":"2051","zOrder":"164"},{"ID":"271","measuredH":"25","measuredW":"450","properties":{"size":"17","text":"Tools to help you in the building/bundling and development"},"typeID":"Label","x":"742","y":"2077","zOrder":"165"},{"ID":"274","h":"140","measuredH":"139","measuredW":"111","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.5522448742292186,"x":0.5380822956829531,"y":0.12426521711649068},"p2":{"length":177.88198334851114,"x":111,"y":139},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"112","x":"607","y":"1670","zOrder":"30"},{"ID":"275","h":"12","measuredH":"11","measuredW":"112","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":112,"y":11,"length":112.53888216967503},"p1":{"x":0.6096633663366336,"y":-0.031366336633663366,"length":0.6104697104089052},"p2":{"x":0,"y":2,"length":2},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"113","x":"603","y":"2058","zOrder":"29"},{"ID":"276","measuredH":"32","measuredW":"116","properties":{"align":"center","color":"16776960","size":"18","text":"NPM Scripts"},"typeID":"TextInput","w":"147","x":"471","y":"2045","zOrder":"166"},{"ID":"278","measuredH":"32","measuredW":"52","properties":{"align":"center","color":"16770457","size":"18","text":"Gulp"},"typeID":"TextInput","w":"147","x":"471","y":"2082","zOrder":"167"},{"ID":"280","h":"188","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"261","x":"153","y":"2036","zOrder":"168"},{"ID":"281","measuredH":"25","measuredW":"109","properties":{"bold":"true","size":"17","text":"Task Runners"},"typeID":"Label","x":"167","y":"2051","zOrder":"169"},{"ID":"282","measuredH":"25","measuredW":"352","properties":{"size":"17","text":"I would recommend you to learn Sass for now"},"typeID":"Label","x":"930","y":"1608","zOrder":"170"},{"ID":"283","measuredH":"25","measuredW":"178","properties":{"size":"17","text":"in 2018. However, if you"},"typeID":"Label","x":"167","y":"2105","zOrder":"171"},{"ID":"284","measuredH":"25","measuredW":"216","properties":{"size":"17","text":"want to pick something else"},"typeID":"Label","x":"167","y":"2130","zOrder":"172"},{"ID":"285","measuredH":"25","measuredW":"225","properties":{"size":"17","text":"look at Gulp and see how you"},"typeID":"Label","x":"167","y":"2158","zOrder":"173"},{"ID":"286","measuredH":"25","measuredW":"143","properties":{"size":"17","text":"can benefit from it"},"typeID":"Label","x":"167","y":"2185","zOrder":"174"},{"ID":"287","h":"12","measuredH":"11","measuredW":"142","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":142,"y":10,"length":142.35167719419397},"p1":{"x":0.5196039603960396,"y":0.03603960396039605,"length":0.5208523098853179},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"143","x":"340","y":"2051","zOrder":"28"},{"ID":"289","h":"68","measuredH":"67","measuredW":"2","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":1,"y":0,"length":1},"p1":{"x":0.517950123321458,"y":0.023842148533844896,"length":0.5184985808036734},"p2":{"x":0,"y":67,"length":67},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"3","x":"781","y":"2095","zOrder":"27"},{"ID":"290","measuredH":"32","measuredW":"90","properties":{"align":"center","color":"16776960","size":"18","text":"Webpack"},"typeID":"TextInput","w":"147","x":"726","y":"2158","zOrder":"175"},{"ID":"291","measuredH":"32","measuredW":"64","properties":{"align":"center","color":"16770457","size":"18","text":"Rollup"},"typeID":"TextInput","w":"147","x":"726","y":"2195","zOrder":"176"},{"ID":"292","measuredH":"32","measuredW":"64","properties":{"align":"center","color":"16777215","size":"18","text":"Parcel"},"typeID":"TextInput","w":"147","x":"726","y":"2233","zOrder":"177"},{"ID":"293","h":"113","measuredH":"140","measuredW":"200","properties":{"color":"16770457","text":""},"typeID":"TextArea","w":"453","x":"905","y":"2155","zOrder":"178"},{"ID":"295","measuredH":"25","measuredW":"343","properties":{"bold":"true","size":"17","text":"Use Webpack for apps, Rollup for libraries!"},"typeID":"Label","x":"919","y":"2169","zOrder":"179"},{"ID":"296","measuredH":"25","measuredW":"227","properties":{"size":"17","text":"I would just pick NPM Scripts"},"typeID":"Label","x":"167","y":"2079","zOrder":"180"},{"ID":"297","measuredH":"25","measuredW":"369","properties":{"size":"17","text":"with webpack but feel free to revisit Rollup later"},"typeID":"Label","x":"920","y":"2227","zOrder":"182"},{"ID":"298","h":"23","measuredH":"22","measuredW":"146","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":146,"y":22,"length":147.648230602334},"p1":{"x":0.4467326732673264,"y":-0.07267326732673271,"length":0.45260521997488556},"p2":{"x":0,"y":3,"length":3},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"147","x":"800","y":"2172","zOrder":"26"},{"ID":"299","h":"244","measuredH":"243","measuredW":"52","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":52,"y":0,"length":52},"p1":{"x":0.471276613180796,"y":-0.2026617278284945,"length":0.5130043099795483},"p2":{"x":47,"y":243,"length":247.50353532828578},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"53","x":"657","y":"2103","zOrder":"25"},{"ID":"305","h":"176","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"775","x":"484","y":"2340","zOrder":"183"},{"ID":"306","measuredH":"25","measuredW":"291","properties":{"bold":"true","size":"17","text":"Create something – Maybe a library"},"typeID":"Label","x":"530","y":"2359","zOrder":"184"},{"ID":"307","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"499","y":"2360","zOrder":"185"},{"ID":"308","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"13"},"typeID":"Label","w":"20","x":"504","y":"2363","zOrder":"186"},{"ID":"309","measuredH":"25","measuredW":"660","properties":{"size":"17","text":"Congrats! You can call yourself 75% modern JavaScript developer now. Now go ahead"},"typeID":"Label","x":"530","y":"2388","zOrder":"187"},{"ID":"310","measuredH":"25","measuredW":"653","properties":{"size":"17","text":"and create something with all that you have learnt. Maybe create some sort of library"},"typeID":"Label","x":"530","y":"2416","zOrder":"188"},{"ID":"315","measuredH":"25","measuredW":"692","properties":{"size":"17","text":"in which you have to use Sass and JavaScript. Then use webpack to convert Sass to CSS"},"typeID":"Label","x":"530","y":"2445","zOrder":"189"},{"ID":"316","measuredH":"25","measuredW":"703","properties":{"size":"17","text":"and use babel to transpile ES6 code. Once you are done with, release it on Github and npm"},"typeID":"Label","x":"530","y":"2472","zOrder":"190"},{"ID":"317","measuredH":"32","measuredW":"32","properties":{"color":"10027263","icon":{"ID":"twitter","size":"medium"}},"typeID":"Icon","x":"920","y":"127","zOrder":"191"},{"ID":"318","measuredH":"25","measuredW":"133","properties":{"bold":"true","color":"10027263","size":"17","text":"kamranahmedse"},"typeID":"Label","x":"960","y":"132","zOrder":"192"},{"ID":"319","h":"82","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"319","x":"534","y":"2554","zOrder":"193"},{"ID":"320","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"547","y":"2570","zOrder":"194"},{"ID":"321","measuredH":"22","measuredW":"15","properties":{"bold":"true","color":"16777215","size":"14","text":"14"},"typeID":"Label","w":"19","x":"552","y":"2572","zOrder":"195"},{"ID":"322","measuredH":"26","measuredW":"149","properties":{"bold":"true","size":"18","text":"Pick a Framework"},"typeID":"Label","w":"175","x":"580","y":"2569","zOrder":"196"},{"ID":"323","measuredH":"25","measuredW":"174","properties":{"size":"17","text":"React, Angular or Vue"},"typeID":"Label","w":"184","x":"580","y":"2595","zOrder":"197"},{"ID":"324","h":"116","measuredH":"115","measuredW":"15","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":1,"y":0,"length":1},"p1":{"x":0.5380311507636474,"y":0.12641766218055345,"length":0.5526834034990115},"p2":{"x":0,"y":115,"length":115},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"16","x":"763","y":"2448","zOrder":"24"},{"ID":"325","h":"11","measuredH":"10","measuredW":"114","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":114,"y":0,"length":114},"p1":{"x":0.47388515577275503,"y":0.002290775809407418,"length":0.47389069258171473},"p2":{"x":0,"y":10,"length":10},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"115","x":"460","y":"2568","zOrder":"23"},{"ID":"326","measuredH":"32","measuredW":"82","properties":{"align":"center","color":"16776960","size":"18","text":"React.js"},"typeID":"TextInput","w":"147","x":"324","y":"2562","zOrder":"198"},{"ID":"327","measuredH":"32","measuredW":"67","properties":{"align":"center","color":"16776960","size":"18","text":"Redux"},"typeID":"TextInput","w":"176","x":"167","y":"2304","zOrder":"199"},{"ID":"328","measuredH":"32","measuredW":"58","properties":{"align":"center","color":"16776960","size":"18","text":"Mobx"},"typeID":"TextInput","w":"176","x":"167","y":"2343","zOrder":"200"},{"ID":"329","h":"208","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"205","x":"153","y":"2287","zOrder":"22"},{"ID":"330","measuredH":"25","measuredW":"173","properties":{"size":"17","text":"These are not specific"},"typeID":"Label","x":"167","y":"2385","zOrder":"201"},{"ID":"331","measuredH":"25","measuredW":"166","properties":{"size":"17","text":"to React though, you "},"typeID":"Label","x":"167","y":"2408","zOrder":"202"},{"ID":"332","measuredH":"25","measuredW":"161","properties":{"size":"17","text":"can use them in any "},"typeID":"Label","x":"167","y":"2432","zOrder":"203"},{"ID":"333","measuredH":"25","measuredW":"136","properties":{"size":"17","text":"framework or app"},"typeID":"Label","x":"167","y":"2456","zOrder":"204"},{"ID":"334","h":"96","measuredH":"95","measuredW":"88","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":88,"y":95,"length":129.49517365523704},"p1":{"x":0.45524634313777257,"y":0.2454982309763954,"length":0.5172220165005103},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"89","x":"238","y":"2482","zOrder":"21"},{"ID":"335","measuredH":"32","measuredW":"63","properties":{"align":"center","color":"16776960","size":"18","text":"Vue.js"},"typeID":"TextInput","w":"147","x":"324","y":"2601","zOrder":"205"},{"ID":"336","measuredH":"32","measuredW":"80","properties":{"align":"center","color":"16776960","size":"18","text":"Angular"},"typeID":"TextInput","w":"147","x":"324","y":"2640","zOrder":"206"},{"ID":"337","h":"41","measuredH":"40","measuredW":"125","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":125,"y":0,"length":125},"p1":{"x":0.4738851557727551,"y":0.0022907758094072093,"length":0.4738906925817148},"p2":{"x":0,"y":40,"length":40},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"126","x":"459","y":"2578","zOrder":"20"},{"ID":"338","h":"50","measuredH":"49","measuredW":"110","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":110,"y":0,"length":110},"p1":{"x":0.4738851557727549,"y":0.002290775809407395,"length":0.4738906925817146},"p2":{"x":0,"y":49,"length":49},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"111","x":"466","y":"2607","zOrder":"19"},{"ID":"340","h":"123","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"276","x":"443","y":"2710","zOrder":"207"},{"ID":"341","measuredH":"32","measuredW":"54","properties":{"align":"center","color":"16776960","size":"18","text":"Rx.js"},"typeID":"TextInput","w":"176","x":"220","y":"2750","zOrder":"208"},{"ID":"342","measuredH":"32","measuredW":"52","properties":{"align":"center","color":"16776960","size":"18","text":"ngrx"},"typeID":"TextInput","w":"176","x":"220","y":"2786","zOrder":"209"},{"ID":"343","measuredH":"25","measuredW":"229","properties":{"size":"17","text":"Even if you don't pick angular"},"typeID":"Label","x":"459","y":"2723","zOrder":"210"},{"ID":"344","measuredH":"25","measuredW":"205","properties":{"size":"17","text":"Rx.js is an amazing library"},"typeID":"Label","x":"459","y":"2746","zOrder":"211"},{"ID":"345","measuredH":"25","measuredW":"245","properties":{"size":"17","text":"and can be used out of angular."},"typeID":"Label","x":"459","y":"2770","zOrder":"212"},{"ID":"346","measuredH":"25","measuredW":"184","properties":{"size":"17","text":"Give it a try afterwards!"},"typeID":"Label","x":"459","y":"2795","zOrder":"213"},{"ID":"347","h":"92","measuredH":"91","measuredW":"8","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":8,"y":0,"length":8},"p1":{"x":0.4461538461538461,"y":-0.03076923076923077,"length":0.4472135954999579},"p2":{"x":1,"y":91,"length":91.00549433962765},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"9","x":"377","y":"2679","zOrder":"18"},{"ID":"349","measuredH":"32","measuredW":"95","properties":{"align":"center","borderColor":"13576743","color":"16777215","size":"18","text":"Angular.js"},"typeID":"TextInput","w":"205","x":"81","y":"2686","zOrder":"214"},{"ID":"350","h":"27","measuredH":"107","measuredW":"205","properties":{"color":"13576743"},"typeID":"ScratchOut","w":"44","x":"238","y":"2688","zOrder":"215"},{"ID":"352","h":"158","measuredH":"157","measuredW":"1","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":0,"y":0,"length":0},"p1":{"x":0.46125955702687793,"y":0.009064396626468038,"length":0.4613486124774123},"p2":{"x":0,"y":157,"length":157},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"2","x":"166","y":"2703","zOrder":"17"},{"ID":"353","h":"123","measuredH":"140","measuredW":"200","properties":{"color":"16770457"},"typeID":"TextArea","w":"354","x":"97","y":"2854","zOrder":"216"},{"ID":"354","measuredH":"25","measuredW":"147","properties":{"bold":"true","size":"17","text":"Honorary Mention!"},"typeID":"Label","x":"111","y":"2866","zOrder":"217"},{"ID":"355","measuredH":"25","measuredW":"281","properties":{"size":"17","text":"It isn't used any more except for the"},"typeID":"Label","x":"111","y":"2892","zOrder":"218"},{"ID":"356","measuredH":"25","measuredW":"265","properties":{"size":"17","text":"the old apps. Make sure if you pick"},"typeID":"Label","x":"111","y":"2917","zOrder":"219"},{"ID":"358","measuredH":"25","measuredW":"326","properties":{"size":"17","text":"Angular it is Angular2+ and not angular.js"},"typeID":"Label","x":"111","y":"2940","zOrder":"220"},{"ID":"364","h":"145","measuredH":"140","measuredW":"200","properties":{"color":"16770457","text":""},"typeID":"TextArea","w":"540","x":"871","y":"2529","zOrder":"221"},{"ID":"366","measuredH":"25","measuredW":"436","properties":{"size":"17","text":"There is more and more demand for React.js these days"},"typeID":"Label","x":"885","y":"2547","zOrder":"222"},{"ID":"367","measuredH":"25","measuredW":"421","properties":{"size":"17","text":"You can pick any of the listed ones and you will be fine"},"typeID":"Label","x":"885","y":"2574","zOrder":"223"},{"ID":"368","measuredH":"25","measuredW":"365","properties":{"size":"17","text":"Have a look at all of them and see what you like"},"typeID":"Label","w":"381","x":"885","y":"2600","zOrder":"224"},{"ID":"378","h":"3","measuredH":"2","measuredW":"216","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":2,"length":2},"p1":{"x":0.47388515577275514,"y":0.00229077580940742,"length":0.47389069258171485},"p2":{"x":216,"y":1,"length":216.00231480241132},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"217","x":"846","y":"2591","zOrder":"16"},{"ID":"379","h":"315","measuredH":"314","measuredW":"76","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":7,"y":0,"length":7},"p1":{"x":0.5032750563580599,"y":-0.10103814932708959,"length":0.5133171436564842},"p2":{"x":76,"y":314,"length":323.066556610244},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"77","x":"750","y":"2613","zOrder":"15"},{"ID":"380","h":"193","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"740","x":"541","y":"2870","zOrder":"225"},{"ID":"381","measuredH":"25","measuredW":"114","properties":{"bold":"true","size":"17","text":"Practical time"},"typeID":"Label","x":"588","y":"2883","zOrder":"226"},{"ID":"382","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"557","y":"2884","zOrder":"227"},{"ID":"383","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"15"},"typeID":"Label","w":"17","x":"562","y":"2886","zOrder":"228"},{"ID":"384","measuredH":"25","measuredW":"670","properties":{"size":"17","text":"Now you know _everything_ that one might need to build a modern JavaScript application."},"typeID":"Label","x":"588","y":"2912","zOrder":"229"},{"ID":"388","measuredH":"25","measuredW":"674","properties":{"size":"17","text":"Go ahead and make some application with whatever framework you picked. You can find"},"typeID":"Label","x":"588","y":"2942","zOrder":"230"},{"ID":"389","measuredH":"25","measuredW":"506","properties":{"size":"17","text":"some of the ideas in the `ideas` directory. Pick anything and start!"},"typeID":"Label","x":"588","y":"2969","zOrder":"231"},{"ID":"391","h":"213","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"740","x":"543","y":"3070","zOrder":"232"},{"ID":"392","measuredH":"32","measuredW":"54","properties":{"align":"center","color":"16776960","size":"18","text":"vuex"},"typeID":"TextInput","w":"176","x":"79","y":"2611","zOrder":"233"},{"ID":"393","h":"11","measuredH":"10","measuredW":"93","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":93,"y":2,"length":93.02150289046077},"p1":{"x":0.40573434757167937,"y":-0.03639555295494441,"length":0.4073634704711659},"p2":{"x":0,"y":10,"length":10},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"94","x":"235","y":"2617","zOrder":"14"},{"ID":"394","measuredH":"25","measuredW":"146","properties":{"bold":"true","size":"17","text":"Testing your Apps"},"typeID":"Label","x":"592","y":"3089","zOrder":"234"},{"ID":"395","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"561","y":"3089","zOrder":"235"},{"ID":"396","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"16"},"typeID":"Label","w":"17","x":"566","y":"3091","zOrder":"236"},{"ID":"397","h":"3","measuredH":"2","measuredW":"131","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":131,"y":0,"length":131},"p1":{"x":0.46052631578947356,"y":-1.821373747360583e-17,"length":0.46052631578947356},"p2":{"x":0,"y":2,"length":2},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"132","x":"374","y":"2763","zOrder":"13"},{"ID":"398","h":"1","measuredH":"0","measuredW":"175","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":175,"y":0,"length":175},"p1":{"x":0.5395167379813742,"y":0.0033979360684621178,"length":0.5395274381637954},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"176","x":"384","y":"3101","zOrder":"12"},{"ID":"399","measuredH":"32","measuredW":"50","properties":{"align":"center","color":"16770457","size":"18","text":"Jest"},"typeID":"TextInput","w":"162","x":"220","y":"3051","zOrder":"237"},{"ID":"400","measuredH":"32","measuredW":"67","properties":{"align":"center","color":"16770457","size":"18","text":"Mocha"},"typeID":"TextInput","w":"162","x":"220","y":"3086","zOrder":"238"},{"ID":"401","measuredH":"32","measuredW":"69","properties":{"align":"center","color":"16770457","size":"18","text":"Karma"},"typeID":"TextInput","w":"162","x":"220","y":"3161","zOrder":"239"},{"ID":"402","measuredH":"32","measuredW":"81","properties":{"align":"center","color":"16770457","size":"18","text":"Enzyme"},"typeID":"TextInput","w":"162","x":"220","y":"3197","zOrder":"240"},{"ID":"403","measuredH":"25","measuredW":"647","properties":{"size":"17","text":"There are lots and lots of different tools for *different purposes*. I mostly find myself"},"typeID":"Label","x":"594","y":"3120","zOrder":"241"},{"ID":"404","measuredH":"25","measuredW":"652","properties":{"size":"17","text":"using the ones listed on the left. However, before you learn them, I would recommend"},"typeID":"Label","x":"594","y":"3143","zOrder":"242"},{"ID":"405","measuredH":"25","measuredW":"667","properties":{"size":"17","text":"you to first understand the different test types, look at all the options available and use"},"typeID":"Label","x":"594","y":"3167","zOrder":"243"},{"ID":"406","measuredH":"32","measuredW":"97","properties":{"align":"center","color":"16770457","size":"18","text":"Protractor"},"typeID":"TextInput","w":"162","x":"220","y":"3123","zOrder":"244"},{"ID":"407","measuredH":"25","measuredW":"294","properties":{"size":"17","text":"the ones most suitable for your needs."},"typeID":"Label","x":"594","y":"3191","zOrder":"245"},{"ID":"409","measuredH":"25","measuredW":"520","properties":{"color":"13576743","size":"17","text":"Here is a good summary to get you started : https://goo.gl/D77a4K"},"typeID":"Label","x":"594","y":"3233","zOrder":"246"},{"ID":"410","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"lightbulb-o","size":"small"}},"typeID":"Icon","x":"562","y":"3234","zOrder":"247"},{"ID":"411","h":"122","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"740","x":"543","y":"3376","zOrder":"248"},{"ID":"412","measuredH":"25","measuredW":"174","properties":{"bold":"true","size":"17","text":"Static Type Checkers"},"typeID":"Label","x":"587","y":"3395","zOrder":"249"},{"ID":"413","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"557","y":"3395","zOrder":"250"},{"ID":"414","measuredH":"21","measuredW":"14","properties":{"bold":"true","color":"16777215","text":"18"},"typeID":"Label","w":"17","x":"562","y":"3397","zOrder":"251"},{"ID":"415","measuredH":"25","measuredW":"682","properties":{"size":"17","text":"You don't need to learn these but they really give you superpowers and can be mastered"},"typeID":"Label","x":"589","y":"3425","zOrder":"252"},{"ID":"423","measuredH":"32","measuredW":"104","properties":{"align":"center","color":"16776960","size":"18","text":"TypeScript"},"typeID":"TextInput","w":"162","x":"221","y":"3382","zOrder":"253"},{"ID":"424","measuredH":"32","measuredW":"50","properties":{"align":"center","color":"16770457","size":"18","text":"Flow"},"typeID":"TextInput","w":"162","x":"221","y":"3418","zOrder":"254"},{"ID":"425","h":"15","measuredH":"14","measuredW":"191","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":191,"y":14,"length":191.51240168720145},"p1":{"x":0.5395167379813742,"y":0.0033979360684618654,"length":0.5395274381637954},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"192","x":"376","y":"3397","zOrder":"11"},{"ID":"426","h":"15","measuredH":"14","measuredW":"207","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":207,"y":0,"length":207},"p1":{"x":0.5395167379813742,"y":0.0033979360684621147,"length":0.5395274381637954},"p2":{"x":0,"y":14,"length":14},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"208","x":"370","y":"3421","zOrder":"10"},{"ID":"427","measuredH":"25","measuredW":"576","properties":{"size":"17","text":"in a few hours. I would pick TypeScript but feel free to check both and pick."},"typeID":"Label","x":"589","y":"3450","zOrder":"255"},{"ID":"455","h":"81","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"739","x":"544","y":"3535","zOrder":"256"},{"ID":"456","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"558","y":"3549","zOrder":"257"},{"ID":"457","measuredH":"22","measuredW":"15","properties":{"bold":"true","color":"16777215","size":"14","text":"17"},"typeID":"Label","w":"16","x":"563","y":"3551","zOrder":"258"},{"ID":"458","measuredH":"26","measuredW":"195","properties":{"bold":"true","size":"18","text":"Server Side Rendering"},"typeID":"Label","w":"293","x":"589","y":"3548","zOrder":"259"},{"ID":"459","measuredH":"25","measuredW":"531","properties":{"size":"17","text":"Learn about server side rendering in whatever framework you picked"},"typeID":"Label","x":"590","y":"3575","zOrder":"260"},{"ID":"461","measuredH":"32","measuredW":"64","properties":{"align":"center","color":"16770457","size":"18","text":"React"},"typeID":"TextInput","w":"135","x":"258","y":"3532","zOrder":"261"},{"ID":"462","h":"30","measuredH":"29","measuredW":"176","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":176,"y":29,"length":178.3732042656632},"p1":{"x":0.5395167379813742,"y":0.0033979360684620896,"length":0.5395274381637954},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"177","x":"383","y":"3547","zOrder":"9"},{"ID":"463","measuredH":"32","measuredW":"80","properties":{"align":"center","color":"16770457","size":"18","text":"Angular"},"typeID":"TextInput","w":"135","x":"258","y":"3570","zOrder":"262"},{"ID":"464","h":"2","measuredH":"1","measuredW":"190","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":190,"y":0,"length":190},"p1":{"x":0.5395167379813743,"y":0.003397936068462092,"length":0.5395274381637957},"p2":{"x":0,"y":1,"length":1},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"191","x":"379","y":"3586","zOrder":"8"},{"ID":"465","measuredH":"32","measuredW":"71","properties":{"align":"center","color":"16776960","size":"18","text":"Next.js"},"typeID":"TextInput","w":"135","x":"91","y":"3487","zOrder":"263"},{"ID":"466","h":"36","measuredH":"35","measuredW":"89","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":89,"y":35,"length":95.63472172804185},"p1":{"x":0.3787677176742842,"y":-0.1675441133931154,"length":0.41416906437452733},"p2":{"x":0,"y":1,"length":1},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"90","x":"182","y":"3502","zOrder":"7"},{"ID":"467","measuredH":"32","measuredW":"72","properties":{"align":"center","color":"16770457","size":"18","text":"After.js"},"typeID":"TextInput","w":"135","x":"91","y":"3524","zOrder":"264"},{"ID":"468","h":"7","measuredH":"6","measuredW":"81","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":81,"y":6,"length":81.2219182240853},"p1":{"x":0.3956343792633015,"y":-0.007730786721236948,"length":0.39570990272974865},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"82","x":"193","y":"3544","zOrder":"6"},{"ID":"469","measuredH":"32","measuredW":"90","properties":{"align":"center","color":"16770457","size":"18","text":"Universal"},"typeID":"TextInput","w":"135","x":"93","y":"3570","zOrder":"265"},{"ID":"470","h":"5","measuredH":"4","measuredW":"75","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":75,"y":4,"length":75.1065909225016},"p1":{"x":0.36110618684630386,"y":-0.020741003368197126,"length":0.3617013511163557},"p2":{"x":0,"y":0,"length":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"76","x":"199","y":"3585","zOrder":"5"},{"ID":"471","measuredH":"32","measuredW":"63","properties":{"align":"center","color":"16770457","size":"18","text":"Vue.js"},"typeID":"TextInput","w":"135","x":"259","y":"3608","zOrder":"266"},{"ID":"472","h":"29","measuredH":"28","measuredW":"204","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":204,"y":0,"length":204},"p1":{"x":0.539516737981374,"y":0.0033979360684621034,"length":0.5395274381637952},"p2":{"x":0,"y":28,"length":28},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"205","x":"375","y":"3596","zOrder":"4"},{"ID":"473","measuredH":"32","measuredW":"71","properties":{"align":"center","color":"16770457","size":"18","text":"Nuxt.js"},"typeID":"TextInput","w":"135","x":"93","y":"3608","zOrder":"267"},{"ID":"474","h":"4","measuredH":"3","measuredW":"75","properties":{"color":"2848996","curvature":"-1","direction":"top","leftArrow":"false","p0":{"x":75,"y":3,"length":75.05997601918082},"p1":{"x":0.36110618684630386,"y":-0.02074100336819713,"length":0.3617013511163557},"p2":{"x":0,"y":1,"length":1},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"76","x":"210","y":"3624","zOrder":"3"},{"ID":"475","h":"96","measuredH":"95","measuredW":"138","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":138,"y":0,"length":138},"p1":{"x":0.49968892955169264,"y":-0.07513266239707227,"length":0.5053057918482519},"p2":{"x":0,"y":95,"length":95},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"139","x":"569","y":"2088","zOrder":"268"},{"ID":"476","measuredH":"32","measuredW":"69","properties":{"align":"center","color":"16776960","size":"18","text":"ESLint"},"typeID":"TextInput","w":"147","x":"449","y":"2163","zOrder":"269"},{"ID":"477","measuredH":"32","measuredW":"68","properties":{"align":"center","color":"16770457","size":"18","text":"JSLint"},"typeID":"TextInput","w":"147","x":"449","y":"2200","zOrder":"270"},{"ID":"478","measuredH":"32","measuredW":"70","properties":{"align":"center","color":"16770457","size":"18","text":"JSHint"},"typeID":"TextInput","w":"147","x":"449","y":"2238","zOrder":"271"},{"ID":"479","measuredH":"32","measuredW":"63","properties":{"align":"center","color":"16770457","size":"18","text":"JSCS"},"typeID":"TextInput","w":"147","x":"449","y":"2276","zOrder":"272"},{"ID":"480","h":"81","measuredH":"140","measuredW":"200","properties":{"color":"16777215"},"typeID":"TextArea","w":"739","x":"544","y":"3289","zOrder":"273"},{"ID":"481","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"558","y":"3303","zOrder":"274"},{"ID":"482","measuredH":"22","measuredW":"15","properties":{"bold":"true","color":"16777215","size":"14","text":"17"},"typeID":"Label","w":"16","x":"563","y":"3305","zOrder":"275"},{"ID":"483","measuredH":"26","measuredW":"185","properties":{"bold":"true","size":"18","text":"Progressive WebApps"},"typeID":"Label","w":"293","x":"589","y":"3302","zOrder":"276"},{"ID":"484","measuredH":"25","measuredW":"509","properties":{"size":"17","text":"Learn about service workers and how to make progress web apps"},"typeID":"Label","x":"590","y":"3329","zOrder":"277"},{"ID":"491","measuredH":"25","measuredW":"551","properties":{"color":"13576743","size":"17","text":"Learn how to measure and improve the performance of your application"},"typeID":"Label","x":"588","y":"3002","zOrder":"278"},{"ID":"492","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"lightbulb-o","size":"small"}},"typeID":"Icon","x":"556","y":"3006","zOrder":"279"},{"ID":"493","measuredH":"25","measuredW":"491","properties":{"color":"13576743","size":"17","text":"e.g. Interactivity Time, Page Speed Index, Lighthouse Score etc"},"typeID":"Label","x":"587","y":"3027","zOrder":"280"},{"ID":"494","h":"147","measuredH":"146","measuredW":"14","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":14,"y":0,"length":14},"p1":{"x":0.5864611260053622,"y":0.008042895442359291,"length":0.5865162746954035},"p2":{"x":0,"y":146,"length":146},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"15","x":"865","y":"3635","zOrder":"2"},{"ID":"498","measuredH":"32","measuredW":"170","properties":{"bold":"true","size":"24","text":"Keep Exploring"},"typeID":"Label","x":"777","y":"3805","zOrder":"281"},{"ID":"499","h":"7","measuredH":"6","measuredW":"199","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":199,"y":0},"p1":{"x":0.5395167379813743,"y":0.003397936068462093},"p2":{"x":0,"y":6},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"200","x":"309","y":"1945","zOrder":"282"},{"ID":"500","h":"23","measuredH":"22","measuredW":"195","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":195,"y":22},"p1":{"x":0.5395167379813742,"y":0.0033979360684621165},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"196","x":"308","y":"1915","zOrder":"283"},{"ID":"501","h":"52","measuredH":"51","measuredW":"181","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":181,"y":51},"p1":{"x":0.5395167379813742,"y":0.0033979360684621134},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"182","x":"308","y":"1876","zOrder":"284"},{"ID":"502","h":"89","measuredH":"88","measuredW":"200","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":200,"y":88},"p1":{"x":0.5395167379813742,"y":0.0033979360684621043},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"201","x":"313","y":"1840","zOrder":"285"},{"ID":"503","h":"111","measuredH":"109","measuredW":"182","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"x":182,"y":109},"p1":{"x":0.5479508196721311,"y":0.0024590163934426227},"p2":{"x":0,"y":0},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"184","x":"320","y":"1808","zOrder":"286"},{"ID":"504","measuredH":"32","measuredW":"51","properties":{"align":"center","color":"16776960","size":"18","text":"BEM"},"typeID":"TextInput","w":"162","x":"158","y":"1790","zOrder":"287"},{"ID":"505","measuredH":"32","measuredW":"80","properties":{"align":"center","color":"16770457","size":"18","text":"OOCSS"},"typeID":"TextInput","w":"162","x":"158","y":"1827","zOrder":"288"},{"ID":"506","h":"105","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"584","x":"480","y":"1775","zOrder":"289"},{"ID":"507","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"494","y":"1801","zOrder":"290"},{"ID":"508","measuredH":"22","measuredW":"15","properties":{"bold":"true","color":"16777215","size":"14","text":"10"},"typeID":"Label","w":"16","x":"499","y":"1803","zOrder":"291"},{"ID":"509","measuredH":"26","measuredW":"134","properties":{"bold":"true","size":"18","text":"CSS Framework"},"typeID":"Label","w":"293","x":"525","y":"1800","zOrder":"292"},{"ID":"510","measuredH":"25","measuredW":"489","properties":{"size":"17","text":"You really don't need to learn any but still they are good to have"},"typeID":"Label","x":"526","y":"1828","zOrder":"293"},{"ID":"511","measuredH":"32","measuredW":"92","properties":{"align":"center","color":"16776960","size":"18","text":"Bootstrap"},"typeID":"TextInput","w":"149","x":"1071","y":"1775","zOrder":"294"},{"ID":"512","measuredH":"32","measuredW":"146","properties":{"align":"center","color":"16770457","size":"18","text":"Materialize CSS"},"typeID":"TextInput","w":"149","x":"1071","y":"1812","zOrder":"295"},{"ID":"513","measuredH":"32","measuredW":"64","properties":{"align":"center","color":"16770457","size":"18","text":"Bulma"},"typeID":"TextInput","w":"150","x":"1070","y":"1848","zOrder":"296"},{"ID":"514","h":"105","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"739","x":"480","y":"1885","zOrder":"297"},{"ID":"515","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"494","y":"1900","zOrder":"298"},{"ID":"516","measuredH":"22","measuredW":"12","properties":{"bold":"true","color":"16777215","size":"14","text":"11"},"typeID":"Label","w":"16","x":"499","y":"1902","zOrder":"299"},{"ID":"517","measuredH":"26","measuredW":"150","properties":{"bold":"true","size":"18","text":"CSS Architecture"},"typeID":"Label","w":"293","x":"525","y":"1899","zOrder":"300"},{"ID":"518","measuredH":"25","measuredW":"671","properties":{"size":"17","text":"There are multiple ways to structure your CSS better and to make it more maintainable"},"typeID":"Label","x":"526","y":"1927","zOrder":"301"},{"ID":"519","measuredH":"25","measuredW":"626","properties":{"size":"17","text":"You should know about the differences – personally I find myself using BEM more"},"typeID":"Label","x":"527","y":"1952","zOrder":"302"},{"ID":"520","measuredH":"32","measuredW":"89","properties":{"align":"center","color":"16770457","size":"18","text":"SMACSS"},"typeID":"TextInput","w":"162","x":"158","y":"1864","zOrder":"303"},{"ID":"521","measuredH":"32","measuredW":"95","properties":{"align":"center","color":"16770457","size":"18","text":"SUITCSS"},"typeID":"TextInput","w":"162","x":"158","y":"1901","zOrder":"304"},{"ID":"522","measuredH":"32","measuredW":"69","properties":{"align":"center","color":"16770457","size":"18","text":"Atomic"},"typeID":"TextInput","w":"162","x":"159","y":"1937","zOrder":"305"},{"ID":"523","h":"105","measuredH":"104","measuredW":"33","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":2,"y":0},"p1":{"x":0.6327349725048985,"y":0.3148663169205486},"p2":{"x":0,"y":104},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"34","x":"783","y":"1949","zOrder":"1"},{"ID":"524","h":"87","measuredH":"140","measuredW":"200","properties":{"color":"16776960"},"typeID":"TextArea","w":"739","x":"544","y":"3623","zOrder":"306"},{"ID":"525","measuredH":"24","measuredW":"24","properties":{"color":"10027263","icon":{"ID":"circle","size":"small"}},"typeID":"Icon","x":"558","y":"3637","zOrder":"307"},{"ID":"526","measuredH":"22","measuredW":"15","properties":{"bold":"true","color":"16777215","size":"14","text":"18"},"typeID":"Label","w":"16","x":"563","y":"3639","zOrder":"308"},{"ID":"527","measuredH":"26","measuredW":"371","properties":{"bold":"true","size":"18","text":"All the things that weren't mentioned above"},"typeID":"Label","w":"391","x":"589","y":"3636","zOrder":"309"},{"ID":"528","measuredH":"25","measuredW":"669","properties":{"size":"17","text":"Canvas, HTML-5 APIs, SVG, sourcemaps, functional programming, TC39 etc. Go Figure!"},"typeID":"Label","x":"590","y":"3663","zOrder":"310"},{"ID":"530","measuredH":"25","measuredW":"502","properties":{"bold":"true","size":"17","text":"Important – Don't buy into the hype, compare and understand!"},"typeID":"Label","w":"512","x":"885","y":"2632","zOrder":"311"},{"ID":"531","h":"147","measuredH":"146","measuredW":"14","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":14,"y":0,"length":14},"p1":{"x":0.5864611260053622,"y":0.008042895442359291,"length":0.5865162746954035},"p2":{"x":0,"y":146,"length":146},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"15","x":"871","y":"3443","zOrder":"0"}]},"measuredH":"3837","measuredW":"1411","mockupH":"3790","mockupW":"1332","version":"1.0"}} -------------------------------------------------------------------------------- /project/intro-map.json: -------------------------------------------------------------------------------- 1 | {"mockup":{"controls":{"control":[{"ID":"6","measuredH":"40","measuredW":"347","properties":{"bold":"true","size":"32","text":"Web Developer in 2018"},"typeID":"Label","x":"441","y":"74","zOrder":"0"},{"ID":"7","h":"129","measuredH":"127","measuredW":"54","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.4809160305343512,"y":0.198473282442748},"p2":{"x":49,"y":127},"shape":"bezier"},"typeID":"Arrow","w":"56","x":"633","y":"230","zOrder":"1"},{"ID":"8","h":"131","measuredH":"129","measuredW":"131","properties":{"color":"2848996","curvature":"1","direction":"bottom","leftArrow":"false","p0":{"x":131,"y":0},"p1":{"x":0.5684088130944218,"y":-0.21788259145523384},"p2":{"x":1,"y":129},"shape":"bezier"},"typeID":"Arrow","w":"133","x":"468","y":"229","zOrder":"2"},{"ID":"9","measuredH":"32","measuredW":"93","properties":{"align":"center","color":"16767334","size":"18","text":"Front-end"},"typeID":"TextInput","w":"132","x":"391","y":"367","zOrder":"3"},{"ID":"10","measuredH":"28","measuredW":"167","properties":{"bold":"true","size":"20","text":"Choose your path"},"typeID":"Label","x":"539","y":"189","zOrder":"4"},{"ID":"11","measuredH":"32","measuredW":"179","properties":{"align":"center","color":"16776960","size":"18","text":"Git - Version Control"},"typeID":"TextInput","w":"258","x":"68","y":"81","zOrder":"5"},{"ID":"12","measuredH":"32","measuredW":"50","properties":{"align":"center","color":"16776960","size":"18","text":"SSH"},"typeID":"TextInput","w":"259","x":"67","y":"116","zOrder":"6"},{"ID":"13","measuredH":"32","measuredW":"209","properties":{"align":"center","color":"16776960","size":"18","text":"HTTP/HTTPS and APIs"},"typeID":"TextInput","w":"259","x":"67","y":"153","zOrder":"7"},{"ID":"14","measuredH":"25","measuredW":"175","properties":{"bold":"true","size":"17","text":"Required for any path"},"typeID":"Label","x":"67","y":"45","zOrder":"8"},{"ID":"15","measuredH":"32","measuredW":"192","properties":{"align":"center","color":"16776960","size":"18","text":"Basic Terminal Usage"},"typeID":"TextInput","w":"259","x":"67","y":"191","zOrder":"9"},{"ID":"16","measuredH":"25","measuredW":"69","properties":{"bold":"true","size":"17","text":"Legends"},"typeID":"Label","x":"926","y":"41","zOrder":"10"},{"ID":"17","measuredH":"32","measuredW":"234","properties":{"align":"center","color":"16776960","size":"18","text":"Personal Recommendation!"},"typeID":"TextInput","w":"240","x":"926","y":"84","zOrder":"11"},{"ID":"18","measuredH":"32","measuredW":"109","properties":{"align":"center","color":"15658734","size":"18","text":"Possibilities"},"typeID":"TextInput","w":"240","x":"926","y":"120","zOrder":"12"},{"ID":"19","measuredH":"32","measuredW":"87","properties":{"align":"center","color":"16770457","size":"18","text":"Pick any!"},"typeID":"TextInput","w":"240","x":"926","y":"156","zOrder":"13"},{"ID":"20","h":"47","measuredH":"46","measuredW":"0","properties":{"color":"6710886","curvature":"0","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.5,"x":0.5,"y":0},"p2":{"length":46,"x":0,"y":46},"rightArrow":"false","shape":"bezier"},"typeID":"Arrow","w":"1","x":"614","y":"135","zOrder":"14"},{"ID":"21","measuredH":"32","measuredW":"92","properties":{"align":"center","color":"16767334","size":"18","text":"Back-end"},"typeID":"TextInput","w":"121","x":"599","y":"368","zOrder":"15"},{"ID":"22","h":"70","measuredH":"69","measuredW":"0","properties":{"color":"2848996","curvature":"0","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.5621697290198284,"x":0.5621504039776257,"y":0.004661280298321849},"p2":{"length":69,"x":0,"y":69},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"1","x":"459","y":"407","zOrder":"16"},{"ID":"23","h":"12","measuredH":"11","measuredW":"122","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"length":11,"x":0,"y":11},"p1":{"length":0.4574898035968877,"x":0.45357350377687367,"y":0.059732713538640264},"p2":{"length":122.06555615733704,"x":122,"y":4},"shape":"bezier","stroke":"solid"},"typeID":"Arrow","w":"123","x":"731","y":"373","zOrder":"17"},{"ID":"24","measuredH":"32","measuredW":"81","properties":{"align":"center","color":"16767334","size":"18","text":"DevOps"},"typeID":"TextInput","w":"112","x":"866","y":"361","zOrder":"18"},{"ID":"25","h":"70","measuredH":"69","measuredW":"0","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.46105410579324535,"x":0.4608695652173913,"y":0.01304347826086956},"p2":{"length":69,"x":0,"y":69},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"1","x":"649","y":"410","zOrder":"19"},{"ID":"26","h":"77","measuredH":"76","measuredW":"0","properties":{"color":"2848996","curvature":"1","direction":"top","leftArrow":"false","p0":{"length":0,"x":0,"y":0},"p1":{"length":0.4539180376844135,"x":0.4537465672812867,"y":0.01247548058061985},"p2":{"length":76,"x":0,"y":76},"rightArrow":"false","shape":"bezier","stroke":"dotted"},"typeID":"Arrow","w":"1","x":"917","y":"403","zOrder":"20"},{"ID":"27","measuredH":"32","measuredW":"166","properties":{"align":"center","color":"16776960","size":"18","text":"Learn to Research"},"typeID":"TextInput","w":"258","x":"68","y":"228","zOrder":"21"},{"ID":"28","h":"121","measuredH":"140","measuredW":"200","properties":{"color":"15658734","text":" \nCreate a profile. Explore relevant open source projects. Make a habit of looking under the hood of projects you like. Create and contribute to open source projects."},"typeID":"TextArea","w":"258","x":"68","y":"398","zOrder":"22"},{"ID":"29","measuredH":"32","measuredW":"70","properties":{"align":"center","borderStyle":"rectangle","color":"16776960","size":"18","text":"GitHub"},"typeID":"TextInput","w":"258","x":"68","y":"373","zOrder":"23"},{"ID":"30","measuredH":"32","measuredW":"255","properties":{"align":"center","color":"16776960","size":"18","text":"Data Structures & Algorithms"},"typeID":"TextInput","w":"258","x":"68","y":"265","zOrder":"24"},{"ID":"31","measuredH":"32","measuredW":"188","properties":{"align":"center","color":"16776960","size":"18","text":"Character Encodings"},"typeID":"TextInput","w":"258","x":"68","y":"301","zOrder":"25"},{"ID":"32","measuredH":"32","measuredW":"32","properties":{"color":"2848996","icon":{"ID":"circle","size":"medium"}},"typeID":"Icon","x":"926","y":"200","zOrder":"26"},{"ID":"33","measuredH":"28","measuredW":"187","properties":{"size":"20","text":"Now build something"},"typeID":"Label","x":"964","y":"203","zOrder":"27"},{"ID":"36","measuredH":"32","measuredW":"146","properties":{"align":"center","color":"15658734","size":"18","text":"Design Patterns"},"typeID":"TextInput","w":"258","x":"68","y":"337","zOrder":"28"}]},"measuredH":"519","measuredW":"1166","mockupH":"478","mockupW":"1099","version":"1.0"}} 2 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ![Web Developer Roadmap](https://i.imgur.com/oxsayps.png) 2 | 3 | > Roadmap to becoming a web developer in 2018 4 | 5 | Below you find a set of charts demonstrating the paths that you can take and the technologies that you would want to adopt in order to become a frontend, backend or a devops. I made these charts for an old professor of mine who wanted something to share with his college students to give them a perspective. 6 | 7 | *** 8 | 9 |

👋 You might be interested in ES Guy – Weekly booklet on Full-Stack Development
Read the details and Subscribe here

10 | 11 | *** 12 | Check out my [blog](http://kamranahmed.info) and say "hi" on [Twitter](https://twitter.com/kamranahmedse). 13 | 14 | ## Disclaimer 15 | > The purpose of this roadmap is to give you an idea about the landscape and to guide you if you are confused about what to learn next and not to encourage you to pick what is hip and trendy. You should grow some understanding of why one tool would better suited for some cases than the other and remember hip and trendy never means best suited for the job 16 | 17 | ## 🚀 Introduction 18 | 19 | ![](https://i.imgur.com/OZUOUtI.png) 20 | 21 | ## 🎨 Frontend Roadmap 22 | 23 | ![](./images/frontend-v2.png) 24 | 25 | ## 👽 Back-end Roadmap 26 | 27 | ![](./images/backend.png) 28 | 29 | ## 👷 DevOps Roadmap 30 | 31 | ![](https://i.imgur.com/pyg9mH1.png) 32 | 33 | 34 | 35 | ## A nice video explanation 36 | 37 | [Web Development in 2018 - A Practical Guide](https://www.youtube.com/embed/Zftx68K-1D4) 38 | 39 | ## 🚦 Wrap Up 40 | 41 | If you think any of the roadmaps can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to watch/star this repository to revisit. 42 | 43 | ## ☑ TODO 44 | 45 | - [X] Add Frontend Roadmap 46 | - [X] Add Backend Roadmap 47 | - [X] Add DevOps Roadmap 48 | - [ ] Add relevant resources for each 49 | 50 | ## 👬 Contribution 51 | 52 | The roadmaps are built using [Balsamiq](https://balsamiq.com/products/mockups/). Project file can be found at `/project` directory. To modify any of the roadmaps, open Balsamiq, click **Project > Import > Mockup JSON**, it will open the roadmap for you, update it, upload and update the images in readme and create a PR. 53 | 54 | - Open pull request with improvements 55 | - Discuss ideas in issues 56 | - Spread the word 57 | - Reach out with any feedback [![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/kamranahmedse.svg?style=social&label=Follow%20%40kamranahmedse)](https://twitter.com/kamranahmedse) 58 | 59 | ## Sponsored By 60 | 61 | - [Hackr.io - Find & Share the Best Online Programming Courses & Tutorials](https://hackr.io) 62 | - [Highig - Think and its done](http://highig.com/) 63 | 64 | ## License 65 | 66 | 67 | [![License: CC BY 4.0](https://img.shields.io/badge/License-CC0%201.0-brightgreen.svg?style=flat-square)](https://creativecommons.org/licenses/by/4.0/) 68 | --------------------------------------------------------------------------------