Focus on the Fundamentals

  • In all of my learning of programming and computer science I would like to keep a focus on having strong fundamentals. This desire to have strong fundamentals is what informs my decisions on what to learn and in what order.

Languages

JavaScript

  • Many sources online say you should take either JavaScript or Python as your first language.
  • I like that JavaScript has more of a closeness to C-syntax since C is a high priority on my list of languages to learn.
  • With JavaScript I can build and interact with the full stack of web development. I can work from browser to server. This means the skills I learn can be applied to more places.
  • JavaScript is thought of having a closeness to Lisp. So this also feeds in to my desire to learn Lisp.
  • In learning JavaScript I believe it will be easy to crossover into Python. But I don’t think it would be as easy the other way around. In the end, Python being a very important language, I will still get to learning it at some point no matter what.
  • It’s important to really grokk one language. Then it will be easier to pick up the rest because I will actually understand the core principles of programming.
    • Sort of like mastering one key in song writing. Then later it will be easy to pick up the rest of the keys.
  • JavaScript works in the browser which means that I can build little applications that can run in browser. No need to download anything.

Lisp/Elisp

  • I learned lisp because of reading that it will help you to be a better programming. However they also say it shouldn’t be your first language.
  • As a result of learning lisp I was lead towards Emacs
  • Emacs I believe also helps me to be a better programmer
    • All of the greatest engineers in the world use emacs

    • Emacs is the 100 year editor

    • You have to be way smart to use emacs well and it makes you incredibily powerful if you can master it.

    • I find there is a certain power in being able to customize your tools. And once you get the hang of it customizing it is actually quite simple

      The great programmers, on the other hand, will adapt their environment to suit themselves, in such ways as writing scripts or their own tools, or extending their tools.

  • Emacs gives me inspiration to keep learing lisp and by extension programming fundamentals in general.
  • Emacs is a mix of C and [Emacs-]Lisp so it re enforces my skills in each of those areas.

C

  • C, even more so then C++, seems to be at the core of computer programming and computer science in general.
  • With C I’m indirectly developing skills in most other languages.
  • C gives you an appreciation of how computers work.

Blockchain

  • I find blockchain technology facinating.
  • I love the mix of technology, economics, and finance.
  • I’m intersted in the GameFi space. But I’m also very interested in DeFi, general tokenomics and DAO space.

Summary

  • The tech, computer science and programming landscape is vast.
  • The things above are my core interest but for sure I’m very intersted in various aspects of computer science and tech.