├── .github └── ISSUE_TEMPLATE │ └── custom.md ├── LICENSE └── README.md /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Vahid Næini 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # How to Start Conversation With A Developer 2 | 3 | _A List of Popular/Controversial Topics_ 4 | 5 | ## Contents 6 | 7 | * [On Coding Styles](#on-coding-styles) 8 | * [On Editor Wars](#on-editor-wars) 9 | * [On Programming Languages](#on-programming-languages) 10 | * [On Their Prefrences](#on-their-prefrences) 11 | * [On Advanced Concepts of Programming Languages](#on-advanced-concepts-of-programming-languages) 12 | 13 | ### On Coding Styles 14 | tab or space 15 | 16 | [image source](https://pics.me.me/tabs-not-spaces-how-to-get-attention-29408384.png) 17 | 18 | * the classic debate on `tab` or `space` 19 | * usage 20 | 21 | ``` 22 | ice-breaker : can you believe there's a bunch of people out there telling "tab" 23 | is better than "space"? that's insane! 24 | victim (developer): yeah, that's unbeliveable! Even if ... (the conversation continues...) 25 | ``` 26 | 27 | 28 | 29 | * arguing about naming conventions 30 | 31 | * usage 32 | 33 | ``` 34 | ice-breaker : camel case is awesome but have you ever tried fUckIng cAsE? it looks intresting. 35 | victim (developer): yes, good idea, it prettify the code and... (the conversation continues...) 36 | ``` 37 | 38 | 39 | 40 | ------------------------------------------ 41 | 42 | 43 | 44 | ### On Editor Wars 45 | 46 | xkcd comic 47 | 48 | [image source](https://imgs.xkcd.com/comics/real_programmers.png) 49 | 50 | * real programmers use `(emacs | vim | vscode | atom | nano )` 51 | * usage 1 52 | ``` 53 | ice-breaker : You are using emacs dude! Amazing 54 | victim (developer): yeah, , you know what, emacs is the god of editors. 55 | not compareable to anything else, .... 56 | ``` 57 | * usage 2 58 | ``` 59 | A: {vscode, atom, vim} is not even an editor, you know? 60 | ``` 61 | 62 | 63 | 64 | -------------------------------------------------------------- 65 | 66 | 67 | 68 | ### On Programming Languages 69 | 70 | * ask if they love or hate `javascript` 71 | * usage 72 | ``` 73 | ice-breaker : javascript is a good thing, but it would be great if there was <...> 74 | victim (developer): < Guaranteed to initiate a conversation, 75 | the type response, well, depends on victim's attitude toward js > 76 | ``` 77 | 78 | * usage 2 79 | 80 | ``` 81 | A: C-sharp is nothing but a microsoft-ish implementation of java 82 | ``` 83 | 84 | * usage 3 85 | 86 | ``` 87 | A: python is so much convenient and easy to read&write but it is all based on C 88 | ``` 89 | 90 | 91 | 92 | 93 | ------------------------------------------------- 94 | 95 | 96 | 97 | ### On Their Prefrences 98 | 99 | * favorite desktop enviorment (linux users) 100 | * usage 101 | ``` 102 | A: canonical's unity desktop was a good thing, but it's all X's 103 | fault that they had to use gnome destop 104 | B: ... 105 | ``` 106 | * usage 2 107 | ``` 108 | A: xfce is the best, why you even need a fancy desktop enviornment? 109 | ``` 110 | 111 | * linux distro prefrences 112 | * usage 113 | ``` 114 | A: arch is better than debian 115 | ``` 116 | 117 | * type of language prefrences 118 | 119 | * usage 120 | ``` 121 | A: OOP sucks, functional programming is the right way of writing codes 122 | ``` 123 | 124 | 125 | 126 | ----------------------------------------------- 127 | 128 | 129 | 130 | ### On Advanced Concepts of Programming Languages 131 | 132 | * Object Oriented Programming 133 | 134 | * multiple inheritance 135 | ``` 136 | A: multiple inheritence is awful. I don't recommand it! 137 | ``` 138 | 139 | * Design Patterns 140 | * usage 1: 141 | ``` 142 | A: design patterns are real pain dude! it slaughters the creativity. 143 | ``` 144 | 145 | * Architectural Concepts and Project Structure 146 | * usage 1: 147 | ``` 148 | A: I'd rather prefer to define two separate type of classes in my project 149 | one of them is just a data-model and the other one will be responsible 150 | for operational things, say, load(), get() , ... 151 | ``` 152 | --------------------------------------------------------------------------------