Hey, we are in the year 2020 now.

I’ve made an earlier version of this post that i kept editing and re-editing multiple times before i deleted it altogether because i thought it was too cheesy and i couldn’t express my idea well enough.

But I’m going to try again, i don’t know if I’ll succeed this time around, but I’ll try nevertheless.

Are new years resolutions useful ?

I don’t know and i don’t care.

My tentative resolutions

Here is a vague list of my resolutions for this year

But coming up with that list wasn’t as easy as i thought at first, because you see, there are a load of other cool technologies that i want to learn:

  • I know the basics of C, but i would like to deepen my knowledge of it and delve deeper into making some high level applications using it just to challenge myself and learn through it.
  • I also know the basics of C++, but same thing, would like to learn the secrets of the Standard Template Library, and also BOOST my knowledge regarding a huge C++ library ;)
  • The Go programming language intrigues me, and i keep hearing good stuff about it 3, would like to learn it.
  • Rust seems interesting, I want to see what it can do, SAME GOES FOR GO because they seem like they’re being advertised as high-level languages that offer some capabilities for low level FAST control and i want to learn this skill
  • There are some fundamental CS concepts I’m not so familiar with like asynchronous stuff and Futures or Promises ?4
  • Javascript ? Typescript ? Vue ? React ? A N G U L A R ???, NODEJS, etc… What are these things and how do they work ?5
  • PyQt5, seems like a decent tool to have in your tool set, also IPython, JUPYTER, etc …
  • I have to improve my python skills the same way i said for C/C++.
  • Java, you may have heard of it … You kinda … Need to at least improve it a bit i guess.5
  • Well, to put it lightly i dislike Java just a teeny tiny bit, but there are these things that claim to be able to solve a lot of headaches and that are completely JVM compatible, like:
    • Kotlin, they say it’s for android ?
    • Scala, this one seems like, really interesting, i think you should drop everything you’re planning to do and learn this, claims to be able to support OOP, FP, and some other niceties ? SIGN ME UP !
    • Clojure, a java-compatible lisp ? Sign me up !
  • Erlang, Elixir, F#, C#, etc …
  • Game development, Unreal engine, Unity, etc …
  • Other things i will be adding as i remember them.

So yeah, … There is a lot of stuff i want to learn, and I’m fully aware that i wont be able to learn it all, that being said, the above to do list covers a decent amount of what i aim to learn.

Too many things to learn, attempting to learn them all will yield failure and stumped progress.

Which is exactly why i felt non-productive these past months (even years); I tried to absorb a lot of material and ended up not learning as much and i always felt-and still feel- inadequate about my not having learned some of them, but i could never verbalize that in a satisfactory way that circumvented the whole ‘impostor syndrome’ discussion/accusation.

Which bring me, finally 6, to the point of this post; and that is, to convince you that i am incompetent in a lot CS related domains.

But when i say incompetent, i don’t mean it as a self-depreciative remark or belittlement.

When i say that i am incompetent, i mean it technically

But then how to make people understand it mid-conversation, instead of having them genuflect and ‘reassure me’ that feeling inadequate is actually a normal thing and that it is proof that i am highly critical of myself which is a fine pointer that i am actually decently competent and thereby setting the entire discussion two steps back !

When i say that i feel incompetent/inadequate, sure, tell me all of that pathetic (and frankly, completely useless 7) sounding stuff .

But when i say that i AM incompetent in the context of a conversation, it means just that, IN-COMPETENT 8, basically that i am not knowledgable enough in the relevant technology to provide any decent contribution.

It’s kind of frustrating that people sometime seem to not actually listen to what you’re telling them and instead just regurgitate those kind of unproductive statements.

Just a semantics issue

Is it though ?

I’ll grant you that, it certainly seems true that i can dispel the confusion immediately by explaining what i mean by the term, …

Problem being, seeing as there are a lot of cs concepts/technologies/topics, there are a lot of chances of this type of confusion.

And I admit that clearing the misunderstanding is still a lot better than not, but I wish the default state was that of no misunderstanding at all.

In the end, all i really want is for people to listen to what I am saying/read what I am writing, actually understand it and engage with it

Avoiding misunderstanding

Don’t get me wrong, it makes me feel bad and is generally not a good feeling to admit that i am incompetent in a domain, but when when i say it I’m not (generally) in the mind space of ‘ow look at me i feel incredibly clumsy and terribly ashamed about this’, so the above applies, etc.

My 2020 pledge

Hard decisions must be made, and the sole observation i have been consistently making is that when you spread yourself too thin you’re not as efficient/effective.

I also know that the two things i always kept wanting to do are making decent progress in SICP And learning the ways of Haskell programming, also LISP/SCHEME and such, but that is, to me right now, almost equivalent with making progress in SICP.

It follows, then, that instead of trying to follow that many goals, it ought to be better if i chose a really small subset and dedicated myself to it, and only to it, and actively avoided anything that is not directly linked to it.

I think that is easier said than done, but i shall try nonetheless.

Looking back at that ToDo list …

SICP and Haskell are the most important things to learn for me in 2020 and i will try my best to stay as focused on them as i can.

I am already doing this a lot, –as the date I am writing this (2020-01-17)– i have made decent progress in SICP.

This I intend to do with Haskell and the other stuff as well.

But i really want to try and limit all other use of anything else when I’m using the computer for my “leisure” time, at least.

So, that’s it.

Welcome to 2020 everyone.

TL;DR :: I want to learn the ways of LISP, and i want to learn the ways of Haskell. I want to train my brain with some rigorous math exercises.

And all the other goals are secondary to this.

Yep, even updating my blog isn’t as important to me as progressing in SICP.

  1. Will create a blog post for this. 

  2. I realize what the reasearch says about most new years resolution, but even then, going to the gym for even 4 months (especially with my general metabolism) is good enough for me, plus there’s a small chance that this gym-going habit will catch on. 

  3. Well, i also hear of bad stuff, and this goes for all things I’m saying here, but the uncertainty is fueling me even more. 

  4. Shame on me for not knowing this, i really should. 

  5. I fucking hate these things.  2

  6. My god I’ve kept this post as draft for so much because i kept not knowing how to write it. 

  7. It does not exactly help advance the conversation in any way that is actually relevant to whatever technical discussion is going on. 

  8. From the merriam-webster :: 2 : inadequate to or unsuitable for a particular purpose, for a particular purpose, … sigh