Skip to content

Instantly share code, notes, and snippets.

@donno2048
Created March 2, 2022 11:49
Show Gist options
  • Save donno2048/37c1af260e6ced1db4fb4ba9baaa3638 to your computer and use it in GitHub Desktop.
Save donno2048/37c1af260e6ced1db4fb4ba9baaa3638 to your computer and use it in GitHub Desktop.
flowchart TD
    A[Why do you want to learn programming?] -- Fun --> B[Simplicity or Efficiency?];
    B -- Simplicity --> C[Is portability important?];
    C -- Yes --> D{JS};
    C -- No --> E[Aesthetics or Clearness?];
    E -- Aesthetics --> F{Ruby};
    E -- Clearness --> G[Ease or Versatility?];
    G -- Ease --> H{Python};
    G -- Versatility --> I{Lua};
    B -- Efficiency --> J[Portability or Speed?];
    J -- Portability --> K{C};
    J -- Speed --> L{Rust};
    A -- School --> M[Functions or Classes?];
    M -- Functions --> N{C#};
    M -- Classes --> O{Java};
    A -- Project --> P[Functional or Array programming?];
    P -- Both --> Q[Willing to pay?];
    Q -- Yes --> R{MATLAB};
    Q -- No --> S{R};
    P -- Array --> T[Simplicity or Efficiency?];
    T -- Simplicity --> U{BQN};
    T -- Efficiency --> V{APL};
    P -- Functional / Don't Know --> W[Platform];
    A -- Work --> X[Want to work with hardware or firmware?];
    X -- No --> W;
    X -- Yes --> Z[Want to code low-level?];
    Z -- No --> AA[Ease or Versatility?];
    AA -- Ease --> O;
    AA -- Versatility --> AB{C++};
    Z -- Yes --> AC[Want to program Arduino-based components?];
    AC -- No --> AD[Ease or speed?];
    AD -- Ease --> AE[Portability or Versatility?];
    AE -- Portability --> K;
    AE -- Versatility --> AF{GO};
    AD -- Speed --> AG[Simplicity or Speed?];
    AG -- Speed --> AH{ASM};
    AG -- Simplicity --> L;
    AC -- Yes --> AI{INO};
    W -- Multiple --> O;
    W -- Mobile --> Y[Android or iPhone?];
    Y -- Both --> AJ{Dart};
    Y -- Android --> AK[Community and libraries or Modernism?];
    AK -- Community and libraries --> O;
    AK -- Modernism --> AL{Kotlin};
    Y -- iPhone --> AM[Simplicity or Versatility?]
    AM -- Simplicity --> AN{Swift};
    AM -- Versatility --> AO{Obj-C};
    W -- Low-level --> AC;
    W -- Computation --> Q;
    W -- Gaming --> AP[Is easy portability important?];
    AP -- Yes --> O;
    AP -- No --> AQ[Functions or Classes?]
    AQ -- Classes --> AB;
    AQ -- Functions --> AR[Static or Dynamic typing?];
    AR -- Static --> N;
    AR -- Dynamic --> AS{Scala};
    W -- Dev tools --> AT[Script or Package?];
    AT -- Script --> AU[OS];
    AT -- Package --> H;
    W -- Files and servers --> AU;
    AU -- Custom --> L;
    AU -- Arduino --> AI;
    AU -- DB --> AV[Text manipulation or Simplicity?];
    AV -- Text manipulation --> AW{Perl};
    AV -- Simplicity --> AX{SQL};
    AU -- Linux/Mac --> AY{Bash};
    AU -- DOS --> AZ{Batch};
    AU -- Multiple --> BA{Docker};
    AU -- Windows --> BB[Simplicity or Versatility?];
    BB -- Simplicity --> AZ;
    BB -- Versatility --> BC{PS};
    W -- Web --> BD[Backend or Frontend?];
    BD -- Wasm --> AG;
    BD -- DB --> AV;
    BD -- Fullstack --> D;
    BD -- Backend --> BE[Maintainability or Simplicity?];
    BE -- Simplicity --> D;
    BE -- Maintainability --> BF[Framework or Embed?];
    BF -- Framework --> F;
    BF -- Embed --> BG{PHP};
    BD -- Frontend --> BH[Styling or Scripting?];
    BH -- Styling --> BI[Readability and simplicity or Versatility?];
    BI -- Readability and simplicity --> BJ{Sass};
    BI -- Versatility --> BK{CSS};
    BH -- Scripting --> BL[Classes and type checking or Functional programming?];
    BL -- Classes and type checking --> BM{TS};
    BL -- Functional programming --> D;
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment