Welcome to Software

    Preview Post

    Just a preview of some things that are in progress:

    Comparison of “Learn to Code” Platforms

    Covering:

    • Coursera
    • LinkedInLearning
    • Udemy
    • Udacity
    • CodeCademy
    • freeCodecamp
    • Team Treehouse

    Self-Learning

    Dunning Kruger Effect:

    U of Waterloo

    Motivation

    American Psychological Association
    Forbes
    The Guardian
    Positive Psychology

    Discovering Goals

    My shifting roles while at a small company in Phoenix, AZ:
    UXFront-EndBack-End (PHP/JS)Back-End (Java/Py)Sys-AdminCloudDev-OpsJan2016JulJan2017JulJan2018JulJan2019

    Intro to Web Programming

    Science Direct

    IBM
    Wikipedia
    Wikipedia
    StackOverflow
    Unix StackExchange
    W3Techs
    W3Techs

    What is an API? (up)

    Self-Made Curriculums

    My self-made curriculum used for roles requiring some knowledge of computer science:

    Data StructuresAlgorithmsConceptsCareerCupArrayListsMerge SortBig O TimeHash Tables (+ HashSets / Hash maps)Quick SortBig O SpaceTrees (+ Tries) &Graphs, Binary vsDynamic TreesBreadth-First SearchRecursionLinked ListsDepth-First SearchMomoization / Dynamic ProgrammingStacks / QueuesBinary SearchHeapsGoogle CareersYouTube VideoDijkstraSystem Design (knowledge, theory, judgement).Example topics: feature sets, interfaces, classhierarchies, distributed systemsA*OOP / SOLID / Design PatternsRESTful APIs (+ OAuth2)Heap SortTesting (unit testing, end to end, integration, load& performance, security …(interesting test cases,interesting inputs, edge cases)) for real worldsystems like GmailTim SortFamous questions asked in a slightly differentway. Example: Traveling Salesman, knapsackSelection SortNP-CompletenessInsertion SortTraversal & Manipulation of data structuresBubble SortBasic Discrete Math (counting problems,probability theory, combinatorics [nqk problems])Processes, threads, concurrency issues(semaphores, mutexes, locks)Resource allocation (for processes and threads)Context switching (how it relates to the OS andhardware)SchedulingHow the internet actually works, OSI model &various pieces such as routers, DNS, loadbalancers, firewallsJava ConceptsRandomBinary Search TreeGenetic AlgorithmPythonGoogle Core Librariesfor Java (include newcollection types andmuch more!)Bubble SortNumber theorytortoise & hare algorithm (cycledetection)Machine learning Python frameworksmaze solving algorithmsLearn each cloud provider’s platform and how itdiffers from AWS (eg: AWS vs GCP vs Azure)machine/deep learning/neuralnetwork algorithmsFunctional programming (vs OOP)write algorithms to try to solveunsolved number problemsDeclarative vs imperative programmingBogo sort (slow sort lol)visibility vs scopeLinear Searchequals() vs == in JavaAlgorithm that takes any number ofdata points and creates the bestequation that plots the smoothestand best curve to describe the desireof the user (like when a user selectsdifferent lighting levels at differentenvironment lighting situations, andyou wanna auto adjust to the rightbrightness level vs ambient lighting)Mutability in ScalaSome greedy algorithms (such asKruskal’s or Prim’s for minimumspanning trees) are however provento lead to the optimal solution. This isin contrast to dynamic programming& memoization.Just-in-time compilationBasic algos like: nSum, factorial,fibonacci (Udemy JavaMasterclass\PackageChallenge &SeriesTest)Serialization/deserialization in Spark. It’s whendata is moved to/from JVM? What does theseralized data look like? Is it just data or behavioris serialized too?MongoDB vs MySQL performance.b-tree lookup vs binary page readHow different layers of computer/OS/applicationinteract with memoryEdit distance. Dynamicprogramming.Schema on read vs schema on write (rdbms vsmapreduce)Rdbms indexinginterpreter vs compilerImplicits in Scala?Duck typing / reflection / runtime class invocationElastic searchWhen a class is instantiated inside another class,a pointer is stored in the memory block for thatobject, pointing to another memory blockcontaining another object.How the JVM worksStack vs Heap in JVMOperations that are atomic by default in JavaCreate a growing/shrinking thread pool in Java.getClass vs .class in JavaCallables in Java (asynchronicity)Abstract data typeFor JavaTM objects, the serialized form must beable to identify and verify the JavaTM class fromwhich the contents of the object were saved andto restore the contents to a new instance.Spark miscScala lazy valCORS, CSRF, JWTCharacter encoding (ASCII, UTF-8 - UTF-32, etc)Interpreted languagesRegexStream vs ExecutorService for multithreading inJavaFluent Interface. Yo this is so fucking cool (Designpattern tho)

    Time Management

    Diagrams in progress

    Toggl

    Medium.com Tutorial: GraphQL with Graphene

    Diagrams in progress

    Last updated 2020-02-10: Added link to completed post.


    Authors

    Twitter

    Sam Malayek works in London for Thought Machine, and uses this space to fill in a few gaps.