Friday, January 2, 2015

[coding] The Path

there is a difference between knowing the path, and walking the path
--Morpheus



The Path of Java Enlightenment:

  • variables / assignment
  • all primitive variable types
  • operators
  • ---
  • IF
  • WHILE
  • functions
  • recursion
    • stack vs heap
  • all loops and recursive functions are interchangeable but some are just more fun
  • ---
  • basic classes / objects
  • pointers / references / why java cant have std::swap
  • primitive vs objects, auto boxing
  • garbage collection

  • ---
  • exceptions
  • ---
  • arrays
  • linked lists
  • trees
  • hash tables
  • and the data structures no one cares about
  • ---
  • object oriented programming
    • polymorphism
    • inheritance
    • encapsulation
    • and the one I always forget:  abstraction
  • single vs multiple inheritance, java interfaces

  • ---
  • templates / generics
  • ---
  • leaks:
    • java "memory leaks"
    • closing IO resources
    • Weak References
  • ---
  • advanced java bullshit:
  • inner classes
  • child classes
  • anonymous classes, java's crappy alternative to:
    • closures
    • function pointers / delegates
  • random stuff
    • final, finalize, finally
    • enums
    • regex !!
    • IO, STDIN, STDOUT, Streams
    • Java EE bullshit like Servlets
  • algorithms and runtime
    • big o
    • constant, logarithmic, linear, nlogn, polynomial, exponential
    • bubble sort, quicksort, merge sort, and the one with the integers
      • quicksort vs merge sort: difference between pure math and physical computers?
    • fancy shit like djisktras stuff?
    • comp sci graph theory?
    • A.I.
      • DFS
      • BFS
    • state machines
  • design patterns
    • design patterns are not a fucking fast food menu
    • REST and the HTTP protocol
    • good:  event shit, observer
    • ok:  factory, builder
    • immutability and concurrency
    • mutability to avoid allocations
    • antipattern:  god class, copy & paste
    • popular:  MVC
    • people who define new "antipatterns" on blogs are actually just assholes asserting ignorant opinions
  • concurrency
    • well, shit.
  • security
    • nothing is ever secure
    • google:   "best practices [noun phrase]"
  • coding practices
    • premature optimization is bad
    • java-specific optimization problems
    • iterate with small changes over something that works
    • source control: git
  • important
    • everyone on stack overflow is a fucking idiot

No comments:

Post a Comment