Programming

Currently Learning (for)

CPP

  • Learning it for solving DSA.
  • Also the fact that is similar to C.

python

  • First programming language that I have learned.
  • The one most comfortable with.
  • I know they break readability but oh god, do I love py.oneliners.

JS

  • The modern web is bloated with JS. I hate this. But it is also what makes most of web possible.
  • Gotta understand this mess.

Liquid

  • For [[ Jekyll ]] for https://notes.whoibrar.com

[[ Java ]]

  • Not actively learning, picked up some from people around me.

Not Programming

HTML & CSS

[[ Markdown ]]

  • Everything I write is almost every time in markdown, I know it isn’t but it can be considered plain text.

Want to Learn (also why)

[[ Rust ]]

  • It has no garbage collector and its awesome!
    • Heard that sentence many times but did make much sense. Later I watched video titled Rust makes you feel like a GENIUS - YouTube and it did a great job of introducing Borrow Checker
    • Borrow Checker has two rules for Data
      • One owner
      • Multiple Readers and Single Writer
    • Also the fact that it can achieve near C speeds.

[[ Ruby ]]

  • I did care about the language, it until I found about the Lucy Stiff and book Why’s (Poignant) Guide to Ruby, will definitely want to finish that book sometime.

[[ Lisp ]]

Esolangs

Learning Resources

Programming 101

  • Programming is about
    • Data analysis
    • Data Transformation
    • Data Generation
  • Fundamentals of Every Programming Language
    • Operations
      • Types : Arithmetic, Logic etc
      • Usually give a single output for two inputs
      • Generally, generate new value rather than mutating existing
    • Variables
      • Computer variables differ from mathematical variables in that they can store different values at different times.
    • Branching
    • Looping
    • Functions
    • Input / Output
  • Program is set of functions
    • any function can call any other
    • no code exists outside of functions
    • execution begins by calling main function
    • variables of function exist only in that function
  • System Calls
    • capabilities exposed by Operating system for program management and i/o.
    • Invoked by hardware mechanism (CPU instruction)
    • Invoked in most languages by special functions
  • Metaprogramming -> source
    • What is it
      • Metaprogramming allows us to extend a language with new features by defining how the written source code is to be transformed into a more low-level code.
      • These extensions can be big new language feature like support for object-oriented programming, or small domain-specific extension which would be too specific to be included in the standard.

More Terms

  • Why is it Called Bugs
    • Origins from when Analog Computing was used and there were real bugs stopping the program from running or causing other issues
  • Code Smell
    • When the program doesn’t particularly give an error but it still indicates a deeper problem with the code
  • Unreachable Code
    • Basically, code that will never be reached
  • Dead Code
    • Code whose results are not used even if it is executed.

Favorite Quotes

“The key to performance is elegance, not battalions of special cases.”
~ Jon Bentley and Doug McIlroy

Premature optimization is the root of all evil
~ Donald Knuth

“When C coders talk about strong typing they mean hitting the keys harder”
~ unknown

“We still have an error, which is different than previous error, that means making some progress “
~ Code Beauty


Return to CompSci


Notes mentioning this note